From 00b19a82668f3b5c42c6835d152f9256e2c3b2ff Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 8 Aug 2025 10:10:50 +0200 Subject: [PATCH 001/119] New Crowdin updates (#2866) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations combobox_overview.md (French) * New translations dropdownlist_overview.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations entityclass.md (French) * New translations websocketclass.md (French) * New translations createstylesheet.md (French) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) --- .../version-20/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md index eae2c9e78e256c..c6cb692c09bf89 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md @@ -70,7 +70,7 @@ IP:port/4DACTION/action_Session ``` ```4d - //action_Session メソッド + //action_Session method Case of :(Session#Null) If(Session.hasPrivilege("WebAdmin")) //"WebAdmin" アクセス権がセッションに紐づいているかを確認 From 892575fb305ea15b3a49e0d4d0145f27c45b687b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 8 Aug 2025 14:14:25 +0200 Subject: [PATCH 002/119] Feature/improve soap (#2867) * fix links * final * after closure --- docs/Notes/updates.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 9f1ecc3abb3426..7e345b2d4b08d9 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -115,6 +115,12 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Behavior changes + +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 From 35d94f9172c6209e28a631ad006e2a2929a553d0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 11 Aug 2025 10:18:18 +0200 Subject: [PATCH 003/119] New Crowdin updates (#2869) * New translations orda-events.md (Spanish) * New translations vectorclass.md (Spanish) * New translations vectorclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations web.md (Japanese) * New translations process-activity.md (Japanese) * New translations updates.md (Japanese) * New translations orda-events.md (Japanese) * New translations orda-events.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations authentication.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations process-activity.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations authentication.md (French) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations webserverconfig.md (French) * New translations web.md (French) * New translations process-activity.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations orda-events.md (French) * New translations create-deployment-license.md (French) * New translations debuglogfiles.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations create-deployment-license.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations web.md (Spanish) * New translations process-activity.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations updates.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations updates.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations authentication.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) --- .../docusaurus-plugin-content-docs/current/Notes/updates.md | 6 ++++++ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 6 ++++++ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 6 ++++++ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 6 ++++++ 4 files changed, 24 insertions(+) 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 9053f699dfa3de..64de63859e1f0c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -169,6 +169,12 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Cambios de comportamiento + +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R10. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md index 6ef10ae1658572..951d164b0e46a1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -157,6 +157,12 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Changements de comportement + +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 Lisez [**Les nouveautés de 4D 20 R10**](https://blog.4d.com/fe-whats-new-in-4d-20-R10/), l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R10. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md index a8b26ae4ace5df..c0aa4f48c4ee26 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -158,6 +158,12 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### 動作の変更 + +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 [**4D 20 R10の新機能**](https://blog.4d.com/en-whats-new-in-4d-20-R10/) 4D 20 R10 の新機能と拡張機能をすべてリストアップしたブログ記事です。 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 4dfe31a544cba8..833b0892282804 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -157,6 +157,12 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Mudanças de comportamento + +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 Leia [**O que há de novo no 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R10. From 82e6e8ce13c83bef14f5d5e170de5a5300bdb531 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 11 Aug 2025 14:15:58 +0200 Subject: [PATCH 004/119] fixed links in command legacy --- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From fb122fc6a82f170d57adc630143e5d371c7e7324 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 13 Aug 2025 10:46:49 +0200 Subject: [PATCH 005/119] New Crowdin updates (#2871) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations listbox-set-property.md (French) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations string.md (Japanese) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations classes.md (French) * New translations components.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations classes.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations orda-events.md (French) * New translations vectorclass.md (French) * New translations vectorclass.md (French) * New translations websocketclass.md (French) * New translations classes.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations orda-events.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations listbox-set-property.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations process-activity.md (French) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations updates.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations string.md (Spanish) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations updates.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaierror.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Spanish) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations authentication.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations this.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations labels.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations labels.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations cli.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations formeditor.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations compile-project.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations num.md (Spanish) * New translations string.md (Spanish) --- i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md | 2 +- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/REST/genInfo.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../docusaurus-plugin-content-docs/version-21/REST/genInfo.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md index 348b801ed8a783..d8f8c0149f1323 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). +Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md index 348b801ed8a783..d8f8c0149f1323 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). +Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md index 348b801ed8a783..d8f8c0149f1323 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). +Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From cf27a48a3784bef4665938449756f2f2e53e7b8f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 18 Aug 2025 11:14:11 +0200 Subject: [PATCH 006/119] New Crowdin updates (#2873) * New translations wp-export-variable.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations wp-export-document.md (French) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) --- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 618a8eedb7b7e7..840991a04d0272 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 618a8eedb7b7e7..840991a04d0272 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 618a8eedb7b7e7..840991a04d0272 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) From db431b25039c91f62d82e4b2cbefd47280b385af Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 20 Aug 2025 09:42:55 +0200 Subject: [PATCH 007/119] New Crowdin updates (#2874) * New translations mandata.md (French) * New translations dataclassclass.md (French) * New translations mandata.md (French) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations $singleton.md (French) * New translations http-request-handler.md (French) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations wa-set-context.md (Spanish) * New translations string.md (Spanish) * New translations mandata.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Spanish) * New translations classes.md (Spanish) --- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../fr/docusaurus-plugin-content-docs/current/REST/genInfo.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../version-20-R10/REST/genInfo.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../docusaurus-plugin-content-docs/version-21/REST/genInfo.md | 2 +- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- 28 files changed, 32 insertions(+), 32 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index e122ecdf423030..b4c2ea5824cb55 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 4ccd334c12e81f..6fb0bcfe3b253b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 2c07ce37e8d865..4feda5a989c3d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1137,7 +1137,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3905,7 +3905,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index e122ecdf423030..b4c2ea5824cb55 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 072da0f1050400..7d59f919977170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 67bc1ec431ffc8..2fb0dddac7c155 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index fdb8611f0b61ad..efd8465f621ec4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3902,7 +3902,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 072da0f1050400..7d59f919977170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 70ceccbf7b40d6..f36b0aad301c2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index c394508d9bed5b..caee460543efc5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index b74fd7aff2a034..765b9628dbd8f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3906,7 +3906,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 70ceccbf7b40d6..f36b0aad301c2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 21257ef833a0bf..6bf64392b8daa5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1133,7 +1133,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3886,7 +3886,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) From d51ea723b27378176d0284d9c64960d21d5b99db Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 21 Aug 2025 09:58:29 +0200 Subject: [PATCH 008/119] New Crowdin updates (#2875) * New translations remotedatastores.md (French) * New translations updates.md (Spanish) * New translations global-stamp.md (Spanish) * New translations orda-events.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations updates.md (Japanese) * New translations global-stamp.md (Japanese) * New translations orda-events.md (Japanese) * New translations remotedatastores.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations code-overview.md (French) * New translations compiler.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations compiler.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations general.md (Japanese) * New translations methods.md (Japanese) * New translations architecture.md (Japanese) * New translations code-overview.md (Japanese) * New translations compiler.md (Japanese) * New translations components.md (Japanese) * New translations documentation.md (Japanese) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (Portuguese, Brazilian) * New translations compiler.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (French) * New translations $attributes.md (Spanish) * New translations $attributes.md (Japanese) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (French) * New translations $method.md (French) * New translations $lock.md (Spanish) * New translations $method.md (Spanish) * New translations $lock.md (Japanese) * New translations $method.md (Japanese) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations authusers.md (French) * New translations configuration.md (French) * New translations gettingstarted.md (French) * New translations classfunctions.md (Spanish) * New translations authusers.md (Spanish) * New translations configuration.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations classfunctions.md (Japanese) * New translations authusers.md (Japanese) * New translations configuration.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations configuration.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations handling_users_groups.md (French) * New translations overview.md (French) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations handling_users_groups.md (Japanese) * New translations overview.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-export-document.md (Japanese) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (French) * New translations vp-get-value.md (French) * New translations vp-import-document.md (French) * New translations vp-get-stylesheets.md (Spanish) * New translations vp-get-value.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-get-stylesheets.md (Japanese) * New translations vp-get-value.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-remove-table-rows.md (Spanish) * New translations vp-remove-table.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-remove-table-rows.md (Japanese) * New translations vp-remove-table.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-remove-table-rows.md (Portuguese, Brazilian) * New translations vp-remove-table.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-current-sheet.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-current-sheet.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations vp-set-current-sheet.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations vp-set-current-sheet.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations formulas.md (French) * New translations formulas.md (Spanish) * New translations getting-started.md (French) * New translations from-qodlyscript-to-4d.md (French) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations templates.md (French) * New translations getting-started.md (Spanish) * New translations from-qodlyscript-to-4d.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations templates.md (Spanish) * New translations formulas.md (Japanese) * New translations getting-started.md (Japanese) * New translations from-qodlyscript-to-4d.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations http-request-handler.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations templates.md (Japanese) * New translations formulas.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations webserverobject.md (French) * New translations wp-get-attributes.md (French) * New translations wp-insert-break.md (French) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations webserverobject.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webserverobject.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-table-append-row.md (French) * New translations writeprointerface.md (French) * New translations wp-insert-document-body.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations wp-insert-break.md (Japanese) * New translations wp-insert-document-body.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-table-append-row.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form.md (French) * New translations form-event.md (Spanish) * New translations form.md (Spanish) * New translations form-event.md (Japanese) * New translations form.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations formula-from-string.md (French) * New translations formula-from-string.md (Spanish) * New translations formula-from-string.md (Japanese) * New translations formula-from-string.md (Portuguese, Brazilian) * New translations new-shared-collection.md (French) * New translations object-get-data-source-formula.md (French) * New translations print-form.md (French) * New translations process-info.md (French) * New translations new-shared-collection.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations print-form.md (Spanish) * New translations process-info.md (Spanish) * New translations new-shared-collection.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations print-form.md (Japanese) * New translations process-info.md (Japanese) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (French) * New translations smtp-new-transporter.md (Spanish) * New translations smtp-new-transporter.md (Japanese) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations compatibility.md (French) * New translations database.md (French) * New translations interface.md (French) * New translations client-server.md (Spanish) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations interface.md (Spanish) * New translations client-server.md (Japanese) * New translations compatibility.md (Japanese) * New translations database.md (Japanese) * New translations interface.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (French) * New translations web.md (French) * New translations security.md (Spanish) * New translations web.md (Spanish) * New translations string.md (Spanish) * New translations security.md (Japanese) * New translations web.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) --- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/TCPConnectionClass.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 166 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 14 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 30 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 82 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../current/WritePro/writeprointerface.md | 18 +- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 6 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/commands/smtp-new-transporter.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/TCPConnectionClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 20 +-- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 ++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 14 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 34 ++-- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 82 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../WritePro/writeprointerface.md | 18 +- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 20 +-- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Notes/updates.md | 118 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 14 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 30 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 82 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../version-21/WritePro/writeprointerface.md | 18 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/TCPConnectionClass.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 138 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 14 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 8 +- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 60 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 76 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 28 +-- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/commands/smtp-new-transporter.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 10 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/TCPConnectionClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 20 +-- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 18 +- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 132 +++++++------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 14 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 8 +- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 60 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 28 +-- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 10 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 20 +-- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 18 +- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/Notes/updates.md | 122 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 14 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 60 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++---- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 28 +-- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/TCPConnectionClass.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 138 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 30 ++-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 78 ++++---- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 14 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/commands/smtp-new-transporter.md | 4 +- .../current/settings/client-server.md | 24 +-- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 24 +-- .../current/settings/security.md | 8 +- .../current/settings/web.md | 40 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/TCPConnectionClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 20 +-- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 104 +++++------ .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 30 ++-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 88 +++++----- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 14 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-20-R10/settings/client-server.md | 24 +-- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 24 +-- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 40 ++--- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 20 +-- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/Notes/updates.md | 122 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 30 ++-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 78 ++++---- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 14 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 38 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++---- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-21/settings/client-server.md | 24 +-- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/database.md | 16 +- .../version-21/settings/interface.md | 24 +-- .../version-21/settings/web.md | 40 ++--- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/TCPConnectionClass.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 166 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 14 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/commands/smtp-new-transporter.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/TCPConnectionClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 20 +-- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 ++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 14 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 78 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 20 +-- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 100 +++++------ .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 14 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-set-custom-functions.md | 4 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 52 +++--- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../commands/smtp-new-transporter.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- 887 files changed, 8626 insertions(+), 8626 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index 4b41fc002cb1ab..cbe8be2571dc20 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onConnection` se activa cuando se establece la conexión. 2. `onData` se activa cada vez que se reciben datos. 3. Se activa `onShutdown` o `onError`: - - `onShutdown` se activa cuando la conexión se cierra correctamente. - - `onError` se activa si se produce un error. + - `onShutdown` se activa cuando la conexión se cierra correctamente. + - `onError` se activa si se produce un error. 4. `onTerminate` siempre se activa justo antes de que la TCPConnection se libere (la conexión se cierra o se produce un error). #### Objeto TCPEvent diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index dc0b5a8bdb81ab..d2daec9d290eff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 209a1daf6f52d8..b9a18ff620c4cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: -- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). -- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). -- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). + - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). + - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). + - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index d210e1a4e5733b..4d25873c20bb67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 64de63859e1f0c..2e98a7ff7719c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,9 +171,9 @@ In binary databases, you need to select the required components in the 4D instal #### Cambios de comportamiento -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -212,20 +212,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado -- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. -- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). -- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). -- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. -- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. -- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. -- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. -- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. -- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. + - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. + - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). + - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). + - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. + - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. + - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. + - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. + - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. + - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -254,8 +254,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento -- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). -- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. + - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). + - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -284,9 +284,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento -- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. -- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. + - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. + - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. + - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -294,25 +294,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado -- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). -- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). -- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. -- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. -- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. -- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. -- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). -- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). -- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. -- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. + - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). + - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). + - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. + - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. + - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. + - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. + - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. + - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). + - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). + - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. + - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento -- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). -- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). + - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). + - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -320,21 +320,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado -- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. -- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. + - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Cambios de comportamiento -- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). -- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. + - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). + - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -342,24 +342,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. -- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). -- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. -- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). -- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) -- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. -- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. + - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. + - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). + - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. + - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). + - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) + - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. + - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento -- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. -- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). + - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. + - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -367,21 +367,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado -- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). -- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) -- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. + - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). + - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) + - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento -- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). -- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. + - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). + - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -395,15 +395,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado -- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. -- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. + - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. + - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento -- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. + - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 086ad86ee9d7d0..6403abc6f122c5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md index 5beaa5f717c17c..2a2c8c212ebeed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 ecac98bd608bb7..c79333546aaf9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 3bb2eb19a0f57e..75eb7461d886fa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -321,12 +321,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: -- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` -- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente + - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` + - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. -- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. + - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md index 681c3352fb09db..298b233fd2a5ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md index ec63e8eb56445e..f69e07af2020a7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ Si surge un problema al añadir o modificar una entidad, se le devolverá un err :::note -- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). -- **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: + - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). + - **Booleanos** son true o false. + - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index ceccb568517c05..26259a80cdb1e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Una sesión se abre después de que el usuario haya iniciado sesión correctamente (ver más abajo). -> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
-> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. +> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
+> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. ## Forzar el modo de inicio de sesión @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 5e65abf6ea6b63..44537e451f49b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index d23c7032c8f9ba..e854ca72d491ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ En el parámetro *formulaObj*, pase un objeto que contenga las fórmulas 4D que > **ATENCIÓN** -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 29b19390090283..b54e8fff9daf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index facb115670bf95..5b985b633281fd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 6a5929785ac538..e36b294ecdbc05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index cb189885bf97f9..ba0e48106f3028 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 22056b4f4e48a2..27910c04913772 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md index 7a1cd053401abd..66a61c54e79788 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md index d1c77227cb7186..4b893aee1c3cde 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md index 1358e18b92a2e4..2048b233e917a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index fedadd9d395fbe..ed23c2791d71ff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ El comando `SMTP New transporter` el elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index fbe18967d2676d..a3f4a9182e93e2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onConnection` se activa cuando se establece la conexión. 2. `onData` se activa cada vez que se reciben datos. 3. Se activa `onShutdown` o `onError`: - - `onShutdown` se activa cuando la conexión se cierra correctamente. - - `onError` se activa si se produce un error. + - `onShutdown` se activa cuando la conexión se cierra correctamente. + - `onError` se activa si se produce un error. 4. `onTerminate` siempre se activa justo antes de que la TCPConnection se libere (la conexión se cierra o se produce un error). #### Objeto TCPEvent diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index f4215154de6605..35dc1e027ddfeb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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..9cb80c2d0eb549 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index e379dd73f4912b..155226e4b16804 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: -- la periodicidad de las copias de seguridad automáticas -- los archivos a incluir en cada copia de seguridad -- las funcionalidades avanzadas permiten ejecutar tareas automáticas + - la periodicidad de las copias de seguridad automáticas + - los archivos a incluir en cada copia de seguridad + - las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. + - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. + - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. @@ -139,11 +139,11 @@ El usuario no ve ninguna caja de diálogo; la operación es completamente autom > En el caso de una restauración automática, sólo se restauran los siguientes elementos: > -> - archivo .4DD -> - archivo .4DIndx -> - archivo .4DSyncData -> - archivo .4DSyncHeader -> - Carpeta External Data +> - archivo .4DD +> - archivo .4DIndx +> - archivo .4DSyncData +> - archivo .4DSyncHeader +> - Carpeta External Data > > Si desea obtener los archivos adjuntos o los archivos del proyecto, debe realizar una [restauración manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 122a0395c08180..0aa7c3050737e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index f780ef9be2a24d..a12a7f4383b866 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 209a1daf6f52d8..b9a18ff620c4cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: -- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). -- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). -- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). + - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). + - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). + - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 6da59e6c97d55e..1f675a4d86f9f0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -48,8 +48,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -73,9 +73,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 d82ec8269a7b3a..0c2f7a4f769a86 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 @@ -39,20 +39,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado -- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. -- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). -- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). -- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. -- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. -- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. -- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. -- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. -- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. + - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. + - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). + - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). + - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. + - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. + - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. + - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. + - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. + - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento -- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). -- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. + - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). + - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento -- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. -- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. + - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. + - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. + - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado -- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). -- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). -- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. -- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. -- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. -- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. -- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). -- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). -- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. -- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. + - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). + - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). + - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. + - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. + - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. + - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. + - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. + - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). + - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). + - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. + - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento -- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). -- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). + - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). + - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado -- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. -- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. + - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Cambios de comportamiento -- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). -- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. + - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). + - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. -- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). -- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. -- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). -- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) -- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. -- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. + - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. + - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). + - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. + - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). + - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) + - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. + - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento -- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. -- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). + - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. + - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado -- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). -- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) -- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. + - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). + - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) + - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento -- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). -- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. + - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). + - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado -- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. -- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. + - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. + - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento -- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. + - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 163716adebf666..a012ba936d84c7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 6a6eb8c18fccf1..312390bb364e25 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index a68cafc8accf20..25c5e832dd4c74 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -120,9 +120,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 9f30f95e0bee18..e5c023c74dc4ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -52,8 +52,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -84,8 +84,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -202,9 +202,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -260,7 +260,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -277,17 +277,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -297,9 +297,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -325,8 +325,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -334,12 +334,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: -- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` -- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente + - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` + - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. -- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. + - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -399,16 +399,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -442,8 +442,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Puede definir la opción [etiqueta o versión](#tags-and-versions) para una depe ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). -- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. -- **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. -- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. -- **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. + - **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). + - **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. + - **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. + - **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. + - **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. La versión actual de la dependencia de GitHub se muestra a la derecha del elemento de la dependencia: @@ -524,8 +524,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -541,11 +541,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -590,13 +590,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 0424c8317dd555..5e5adbeac0bf42 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 ceccb568517c05..26259a80cdb1e9 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Una sesión se abre después de que el usuario haya iniciado sesión correctamente (ver más abajo). -> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
-> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. +> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
+> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. ## Forzar el modo de inicio de sesión @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index ce43ad5c50c92a..f3f4fcc5d0f427 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index d23c7032c8f9ba..e854ca72d491ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ En el parámetro *formulaObj*, pase un objeto que contenga las fórmulas 4D que > **ATENCIÓN** -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 41a1b586494a9d..39f6937781b698 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -128,8 +128,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 979c997dc5f3c5..81fe353cd4dd44 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos Se soportan gestores de solicitudes HTTP personalizados: -- cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, -- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). + - cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, + - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -117,10 +117,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -208,11 +208,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index b7275944048a9f..bcad278ae763c0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada uno de estos métodos y partes de código, el compilador comprobará si se respetan las reglas de seguridad de hilos, y devolverá errores en caso de que haya problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 5988064c941307..d253ad2ebbc034 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -146,24 +146,24 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -179,8 +179,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -310,9 +310,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -364,7 +364,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 53a74bd7541a51..f54bad738b3034 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index de710cd9d2102d..39bc7be2b0c004 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index 355633c3e4ffb9..b4e81269ad020a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index b1777d0a1ecce1..d4450f98092e22 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index fedadd9d395fbe..ed23c2791d71ff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ El comando `SMTP New transporter` -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3905,7 +3905,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 513d2fdda8fdee..516b88ef8f1386 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas -- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. -- Si se llama a `.new()` en una clase inexistente, se devuelve un error. + - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. + - Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md index 8372233057679f..944900df8642e6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 846550e7f5f448..de9144bc49f66b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onConnection` se activa cuando se establece la conexión. 2. `onData` se activa cada vez que se reciben datos. 3. Se activa `onShutdown` o `onError`: - - `onShutdown` se activa cuando la conexión se cierra correctamente. - - `onError` se activa si se produce un error. + - `onShutdown` se activa cuando la conexión se cierra correctamente. + - `onError` se activa si se produce un error. 4. `onTerminate` siempre se activa justo antes de que la TCPConnection se libere (la conexión se cierra o se produce un error). #### Objeto TCPEvent diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index f4215154de6605..35dc1e027ddfeb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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..9cb80c2d0eb549 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md index e379dd73f4912b..155226e4b16804 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: -- la periodicidad de las copias de seguridad automáticas -- los archivos a incluir en cada copia de seguridad -- las funcionalidades avanzadas permiten ejecutar tareas automáticas + - la periodicidad de las copias de seguridad automáticas + - los archivos a incluir en cada copia de seguridad + - las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. + - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. + - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. @@ -139,11 +139,11 @@ El usuario no ve ninguna caja de diálogo; la operación es completamente autom > En el caso de una restauración automática, sólo se restauran los siguientes elementos: > -> - archivo .4DD -> - archivo .4DIndx -> - archivo .4DSyncData -> - archivo .4DSyncHeader -> - Carpeta External Data +> - archivo .4DD +> - archivo .4DIndx +> - archivo .4DSyncData +> - archivo .4DSyncHeader +> - Carpeta External Data > > Si desea obtener los archivos adjuntos o los archivos del proyecto, debe realizar una [restauración manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 122a0395c08180..0aa7c3050737e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index dc0b5a8bdb81ab..d2daec9d290eff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index d210e1a4e5733b..4d25873c20bb67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 b730b0bbfb1492..415a5e1f4c8790 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 @@ -134,8 +134,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento -- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). -- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. + - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). + - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -164,9 +164,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento -- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. -- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. + - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. + - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. + - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -174,20 +174,20 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado -- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). -- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). -- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. -- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. -- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. -- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. -- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). -- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). -- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. -- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. + - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). + - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). + - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. + - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. + - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. + - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. + - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. + - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). + - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). + - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. + - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento @@ -200,21 +200,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado -- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. -- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. + - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Cambios de comportamiento -- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). -- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. + - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). + - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -222,24 +222,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. -- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). -- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. -- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). -- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) -- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. -- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. + - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. + - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). + - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. + - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). + - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) + - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. + - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento -- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. -- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). + - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. + - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -247,21 +247,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado -- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). -- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) -- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. + - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). + - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) + - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento -- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). -- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. + - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). + - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -283,7 +283,7 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Cambios de comportamiento -- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. + - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 5beaa5f717c17c..2a2c8c212ebeed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md index ecac98bd608bb7..c79333546aaf9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 3bb2eb19a0f57e..17a1dc3a55f6cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 681c3352fb09db..298b233fd2a5ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 ceccb568517c05..26259a80cdb1e9 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Una sesión se abre después de que el usuario haya iniciado sesión correctamente (ver más abajo). -> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
-> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. +> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
+> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. ## Forzar el modo de inicio de sesión @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5e65abf6ea6b63..44537e451f49b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md index d23c7032c8f9ba..e854ca72d491ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ En el parámetro *formulaObj*, pase un objeto que contenga las fórmulas 4D que > **ATENCIÓN** -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 29b19390090283..b54e8fff9daf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index facb115670bf95..5b985b633281fd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 6a5929785ac538..e164069fe5b689 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index cb189885bf97f9..ba0e48106f3028 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 22056b4f4e48a2..27910c04913772 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index de710cd9d2102d..39bc7be2b0c004 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index 355633c3e4ffb9..b4e81269ad020a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index b1777d0a1ecce1..d4450f98092e22 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md index fedadd9d395fbe..ed23c2791d71ff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ El comando `SMTP New transporter` le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index 9e10d3449e7a19..6cca28d60eb8df 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Toutes les fonctions de callback reçoivent deux paramètres : 1. `onConnection` est déclenchée lorsque la connexion est établie. 2. `onData` est déclenchée à chaque fois que des données sont reçues. 3. `onShutdown` ou `onError` est déclenchée : - - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. - - `onError` est déclenchée en cas d'erreur. + - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. + - `onError` est déclenchée en cas d'erreur. 4. `onTerminate` est toujours déclenchée juste avant que la TCPConnection soit libérée (la connexion est fermée ou une erreur s'est produite). #### Objet TCPEvent 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 aa94b2fc1eac72..df9bcc10992a2e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index db63beabb77e04..91166fb527d796 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : -- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). -- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). -- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). + - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). + - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). + - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index ecbadaf53b312b..5e370324f87391 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 951d164b0e46a1..6f0769bfbaa9c9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,9 +159,9 @@ In binary databases, you need to select the required components in the 4D instal #### Changements de comportement -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -242,8 +242,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. -- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. + - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. + - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -272,9 +272,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. -- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. -- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. + - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. + - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. + - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -282,25 +282,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). -- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). -- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). -- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. -- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. -- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. -- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. -- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. -- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). -- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). -- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. -- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. + - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). + - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). + - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). + - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. + - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. + - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. + - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. + - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. + - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). + - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). + - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. + - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement -- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). -- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). + - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). + - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -308,21 +308,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. -- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). -- 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 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. + - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. + - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). + - 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 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. #### Changements de comportement -- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). -- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). + - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). + - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -330,24 +330,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. -- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). -- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. -- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). -- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) -- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. -- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). -- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). -- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. + - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. + - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). + - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. + - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). + - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) + - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. + - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). + - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). + - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement -- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. -- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. -- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). + - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. + - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. + - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -355,21 +355,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). -- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). -- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) -- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. + - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). + - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). + - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) + - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement -- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). -- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. + - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). + - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -383,15 +383,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts -- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. -- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. -- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. -- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. + - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. + - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. + - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. + - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement -- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. + - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 1f4e78f6cc9c23..99054de4a22e01 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..b6b261c6a82eac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 0dd5ed8c4fdfbf..9b1833f30a7a94 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. + - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..3e505993076a99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 5740fc0d6c2ff1..f311bd3e223da4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md index e250d67261da91..9c67dadb514342 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ Lorsqu'une session utilisateur web est ouverte, vous pouvez la gérer via l'obje Une session est ouverte après que l'utilisateur a été connecté avec succès (voir ci-dessous). -> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
-> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. +> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
+> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. ## Mode Force login @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 9a7e1a0cf81fdb..7107fc2990f8a6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index a5817d0aa7344d..84e91529e50622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index a9e16ab1adf8ea..ab10ddb15ec38c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -128,10 +128,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index a61af9ff781cc8..5d709bf93ae09c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : -- *4daction/* (la méthode projet appelée doit également être à thread-safe) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) -- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) + - *4daction/* (la méthode projet appelée doit également être à thread-safe) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) + - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index daf11db9f41587..81698313b1d91d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 6cddcc5504bfd3..5471c3bfed703e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index a312698abd737f..7f5b5c680bfea3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,27 +24,27 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : -| Constante | Type | Valeur | Commentaire | -| --------------------------- | ------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | -| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | -| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | -| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | -| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | +| Constante | Type | Valeur | Commentaire | +| --------------------------- | ------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | +| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | +| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | +| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | +| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | | wk section break | Integer | 1 | \| wk section break \| Integer \| 1 \| Saut de section : définit une nouvelle section \|Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertion à utiliser pour le break dans la destination *targetObj* :| Constante | Type | Valeur | Commentaire | | ---------- | ------- | ------ | --------------------------------------- | | wk append | Integer | 2 | Insérer le contenu à la fin de la cible | | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | -| wk replace | Integer | 0 | Remplacer le contenu de la cible |* Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | +| wk replace | Integer | 0 | Remplacer le contenu de la cible | * Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Les contenus insérés ne sont pas inclus dans la plage mise à jour | -| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante.* Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d +| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. * Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d $nbInvoices:=Records in selection([INVOICE]) For($j;1;$nbInvoices) ... //traitement des factures @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md index 8e4b4910b6ac60..c4c80a9153de6c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md index 2151b672b79934..e4d6424de97c3a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index e0601b81d3cbd6..82fd558c7f3cd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ La commande `SMTP New transporter` l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 307a32aaf19dc6..4fc721eae0f3a4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index a4b8cb51bd9cbe..1e5cbb7ef76d9c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Toutes les fonctions de callback reçoivent deux paramètres : 1. `onConnection` est déclenchée lorsque la connexion est établie. 2. `onData` est déclenchée à chaque fois que des données sont reçues. 3. `onShutdown` ou `onError` est déclenchée : - - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. - - `onError` est déclenchée en cas d'erreur. + - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. + - `onError` est déclenchée en cas d'erreur. 4. `onTerminate` est toujours déclenchée juste avant que la TCPConnection soit libérée (la connexion est fermée ou une erreur s'est produite). #### Objet TCPEvent diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 9da5511bdf5b7a..4448b28230ca79 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index f3cd2662e9f6de..ed236bce715b93 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : -- la périodicité des sauvegardes automatiques -- les fichiers à inclure dans chaque sauvegarde -- les fonctionnalités avancées permettant d'exécuter des tâches automatiques + - la périodicité des sauvegardes automatiques + - les fichiers à inclure dans chaque sauvegarde + - les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. + - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. + - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. @@ -138,11 +138,11 @@ Aucune boîte de dialogue n’est présentée à l’utilisateur, l’opération > En cas de restitution automatique, seuls les éléments suivants sont restitués : > -> - Fichier .4DD -> - Fichier .4DIndx -> - Fichier .4DSyncData -> - Fichier .4DSyncHeader -> - Dossier External Data +> - Fichier .4DD +> - Fichier .4DIndx +> - Fichier .4DSyncData +> - Fichier .4DSyncHeader +> - Dossier External Data > > Si vous souhaitez obtenir les fichiers joints ou les fichiers de projet, vous devez effectuer une [restauration manuelle](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 1b7faf45be6041..bbb5877378151f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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..07c7cc5a3e58e0 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index db63beabb77e04..91166fb527d796 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : -- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). -- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). -- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). + - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). + - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). + - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 6c237313576428..e830d7305c57de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -51,8 +51,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -76,9 +76,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 8e2c83e3ad3b5c..c5f56eb300b840 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 @@ -81,8 +81,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. -- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. + - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. + - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. -- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. -- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. + - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. + - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. + - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). -- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). -- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). -- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. -- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. -- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. -- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. -- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. -- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). -- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). -- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. -- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. + - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). + - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). + - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). + - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. + - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. + - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. + - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. + - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. + - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). + - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). + - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. + - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement -- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). -- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). + - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). + - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. -- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). -- 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 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. + - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. + - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). + - 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 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. #### Changements de comportement -- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). -- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). + - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). + - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -169,24 +169,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. -- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). -- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. -- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). -- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) -- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. -- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). -- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). -- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. + - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. + - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). + - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. + - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). + - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) + - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. + - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). + - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). + - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement -- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. -- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. -- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). + - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. + - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. + - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). -- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). -- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) -- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. + - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). + - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). + - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) + - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement -- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). -- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. + - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). + - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts -- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. -- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. -- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. -- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. + - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. + - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. + - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. + - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement -- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. + - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ba1fd2735d3605..e330e4922d449a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..29c800d4d3c734 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -120,9 +120,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -175,11 +175,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index a200cf127c27d5..a41348684a5651 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -52,8 +52,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -84,8 +84,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -202,9 +202,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -260,7 +260,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -277,17 +277,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -297,9 +297,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -325,8 +325,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. + - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -399,16 +399,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -442,8 +442,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). -- **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. -- **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. -- **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. -- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. + - **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). + - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. + - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. + - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. + - **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -524,8 +524,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -541,11 +541,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -590,13 +590,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..ce74f984e8662b 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 76d5a6bbd7b1f0..3fcd42322177a2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 e250d67261da91..9c67dadb514342 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 @@ -11,8 +11,8 @@ Lorsqu'une session utilisateur web est ouverte, vous pouvez la gérer via l'obje Une session est ouverte après que l'utilisateur a été connecté avec succès (voir ci-dessous). -> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
-> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. +> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
+> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. ## Mode Force login @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 9e4d78895e35dc..75fd4a0bc88afd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index d24a5ac2255b1c..802d308d7277c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -128,8 +128,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 61877412ae2d4c..1ae4af16b38bbd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -117,10 +117,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 1b2b27e26c6d0a..05a96e326d5f89 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST Pour chacune de ces méthodes ou parties de code, le compilateur vérifiera si les règles thread-safe sont respectées, et retournera une erreur en cas de problème. Pour plus d'informations à propos des règles thread-safe, veuillez vous référer au paragraphe *Ecrire une méthode thread-safe* dans le chapitre *Process* du manuel de [Langage 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : -- *4daction/* (la méthode projet appelée doit également être à thread-safe) -- *4dcgi/* (les méthodes base appelées doivent également être thread-safe) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) -- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) + - *4daction/* (la méthode projet appelée doit également être à thread-safe) + - *4dcgi/* (les méthodes base appelées doivent également être thread-safe) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) + - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index a2d1f2e0c7862c..99fdbc5d1f6199 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -309,9 +309,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -363,7 +363,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 332cbfb4f2ca8d..fb2a05807a87d8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index a312698abd737f..7f5b5c680bfea3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,27 +24,27 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : -| Constante | Type | Valeur | Commentaire | -| --------------------------- | ------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | -| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | -| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | -| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | -| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | +| Constante | Type | Valeur | Commentaire | +| --------------------------- | ------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | +| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | +| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | +| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | +| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | | wk section break | Integer | 1 | \| wk section break \| Integer \| 1 \| Saut de section : définit une nouvelle section \|Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertion à utiliser pour le break dans la destination *targetObj* :| Constante | Type | Valeur | Commentaire | | ---------- | ------- | ------ | --------------------------------------- | | wk append | Integer | 2 | Insérer le contenu à la fin de la cible | | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | -| wk replace | Integer | 0 | Remplacer le contenu de la cible |* Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | +| wk replace | Integer | 0 | Remplacer le contenu de la cible | * Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Les contenus insérés ne sont pas inclus dans la plage mise à jour | -| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante.* Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d +| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. * Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d $nbInvoices:=Records in selection([INVOICE]) For($j;1;$nbInvoices) ... //traitement des factures @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 9e5f7ad5a9d05f..4b98187d7cf741 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index beaa5cb365a0b5..1884e7d3fc1f52 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index e0601b81d3cbd6..82fd558c7f3cd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ La commande `SMTP New transporter` -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3902,7 +3902,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 9d1cb639f79189..b1b0365605edcc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes -- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. -- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. + - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. + - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md index f026e9fde75c7c..e5c0997f07ca47 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 307a32aaf19dc6..4fc721eae0f3a4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 9e10d3449e7a19..6cca28d60eb8df 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Toutes les fonctions de callback reçoivent deux paramètres : 1. `onConnection` est déclenchée lorsque la connexion est établie. 2. `onData` est déclenchée à chaque fois que des données sont reçues. 3. `onShutdown` ou `onError` est déclenchée : - - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. - - `onError` est déclenchée en cas d'erreur. + - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. + - `onError` est déclenchée en cas d'erreur. 4. `onTerminate` est toujours déclenchée juste avant que la TCPConnection soit libérée (la connexion est fermée ou une erreur s'est produite). #### Objet TCPEvent diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 9da5511bdf5b7a..4448b28230ca79 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md index f3cd2662e9f6de..ed236bce715b93 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : -- la périodicité des sauvegardes automatiques -- les fichiers à inclure dans chaque sauvegarde -- les fonctionnalités avancées permettant d'exécuter des tâches automatiques + - la périodicité des sauvegardes automatiques + - les fichiers à inclure dans chaque sauvegarde + - les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. + - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. + - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. @@ -138,11 +138,11 @@ Aucune boîte de dialogue n’est présentée à l’utilisateur, l’opération > En cas de restitution automatique, seuls les éléments suivants sont restitués : > -> - Fichier .4DD -> - Fichier .4DIndx -> - Fichier .4DSyncData -> - Fichier .4DSyncHeader -> - Dossier External Data +> - Fichier .4DD +> - Fichier .4DIndx +> - Fichier .4DSyncData +> - Fichier .4DSyncHeader +> - Dossier External Data > > Si vous souhaitez obtenir les fichiers joints ou les fichiers de projet, vous devez effectuer une [restauration manuelle](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 1b7faf45be6041..bbb5877378151f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 aa94b2fc1eac72..df9bcc10992a2e 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index ecbadaf53b312b..5e370324f87391 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 efc6f3254a2bd7..42a0156f88c10c 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 @@ -134,8 +134,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. -- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. + - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. + - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -164,9 +164,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. -- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. -- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. + - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. + - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. + - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -174,25 +174,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). -- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). -- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). -- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. -- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. -- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. -- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. -- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. -- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). -- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). -- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. -- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. + - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). + - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). + - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). + - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. + - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. + - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. + - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. + - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. + - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). + - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). + - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. + - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement -- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). -- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). + - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). + - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -200,21 +200,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. -- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). -- 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 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. + - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. + - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). + - 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 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. #### Changements de comportement -- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). -- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). + - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). + - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -222,24 +222,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. -- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). -- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. -- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). -- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) -- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. -- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). -- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). -- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. + - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. + - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). + - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. + - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). + - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) + - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. + - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). + - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). + - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement -- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. -- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. -- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). + - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. + - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. + - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -247,21 +247,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). -- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). -- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) -- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. + - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). + - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). + - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) + - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement -- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). -- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. + - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). + - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -283,7 +283,7 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Changements de comportement -- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. + - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..b6b261c6a82eac 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index f2548492d1ada3..3b206b26848f7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..3e505993076a99 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 5740fc0d6c2ff1..f311bd3e223da4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 e250d67261da91..9c67dadb514342 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 @@ -11,8 +11,8 @@ Lorsqu'une session utilisateur web est ouverte, vous pouvez la gérer via l'obje Une session est ouverte après que l'utilisateur a été connecté avec succès (voir ci-dessous). -> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
-> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. +> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
+> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. ## Mode Force login @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 9a7e1a0cf81fdb..7107fc2990f8a6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index a5817d0aa7344d..84e91529e50622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index a61af9ff781cc8..201a3d3dc58230 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index daf11db9f41587..81698313b1d91d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 6cddcc5504bfd3..5471c3bfed703e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index a312698abd737f..7f5b5c680bfea3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,27 +24,27 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : -| Constante | Type | Valeur | Commentaire | -| --------------------------- | ------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | -| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | -| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | -| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | -| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | +| Constante | Type | Valeur | Commentaire | +| --------------------------- | ------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | +| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | +| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | +| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | +| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | | wk section break | Integer | 1 | \| wk section break \| Integer \| 1 \| Saut de section : définit une nouvelle section \|Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertion à utiliser pour le break dans la destination *targetObj* :| Constante | Type | Valeur | Commentaire | | ---------- | ------- | ------ | --------------------------------------- | | wk append | Integer | 2 | Insérer le contenu à la fin de la cible | | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | -| wk replace | Integer | 0 | Remplacer le contenu de la cible |* Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | +| wk replace | Integer | 0 | Remplacer le contenu de la cible | * Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Les contenus insérés ne sont pas inclus dans la plage mise à jour | -| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante.* Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d +| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. * Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d $nbInvoices:=Records in selection([INVOICE]) For($j;1;$nbInvoices) ... //traitement des factures @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 9e5f7ad5a9d05f..4b98187d7cf741 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index beaa5cb365a0b5..1884e7d3fc1f52 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md index e0601b81d3cbd6..82fd558c7f3cd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ La commande `SMTP New transporter` 送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index 3c4e67a05b69a6..163dc1fa78c271 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し 1. `onConnection` は接続が確立した時にトリガーされます。 2. `onData` はデータが受信されるたびにトリガーされます。 3. `onShutdown` または `onError` はそれぞれ以下の場合にトリガーされます: - - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 - - `onError` はエラーが発生した場合にトリガーされます。 + - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 + - `onError` はエラーが発生した場合にトリガーされます。 4. `onTerminate` は常にTCPConnection がリリースされる直前にトリガーされます(接続が閉じられたか、エラーが発生した場合です)。 #### TCPEvent オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index a421e9046f83c1..bccd183b3423bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 275394a1dab283..4d09df782992d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: -- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 -- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 -- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 + - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 + - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 + - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 67b11a22727950..2e756d989d8014 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 c0aa4f48c4ee26..b56ad9566e6e1d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -160,9 +160,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -243,8 +243,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 -- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 + - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 + - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -274,9 +274,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 -- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 -- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 + - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 + - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 + - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -284,25 +284,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 -- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 -- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 -- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 -- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 -- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 -- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 -- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 -- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 -- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 -- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 -- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 -- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 + - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 + - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 + - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 + - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 + - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 + - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 + - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 + - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 + - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 + - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 + - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 + - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 + - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 -- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 -- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 + - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 + - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -310,21 +310,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 -- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 -- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 -- [制限付エンティティセレクション](../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#強制ログイン)。 -- 新しい [$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/))。 + - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 + - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 + - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 + - [制限付エンティティセレクション](../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#強制ログイン)。 + - 新しい [$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/))。 #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 -- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 + - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 + - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -332,24 +332,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 -- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 -- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 -- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 -- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 -- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート -- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 -- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 -- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 -- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 + - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 + - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 + - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 + - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 + - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 + - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート + - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 + - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 + - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 + - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 -- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 -- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 -- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 + - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 + - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 + - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 + - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -357,21 +357,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 -- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 -- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 -- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 -- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 -- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 + - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 + - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 + - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 + - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 + - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 + - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 -- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 -- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 + - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 + - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -385,15 +385,15 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 -- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 -- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 + - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 + - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 + - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 -- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 + - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 33bc7539dc0b38..552cb58d4ecdda 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md index e0d5eb69a426f8..9e562869f6c322 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 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..a8a1f2e3fde1b7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index 5979f2a6997c4c..059e4eeddabb19 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md index 6748776051563e..a696826968337d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md index 722858ec7053d5..d1128f908f0860 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ RESTリクエストで定義されたリレートエンティティのコレク :::note -- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 -- **ブール** は true または false です。 -- `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 + - **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 + - **ブール** は true または false です。 + - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md index 3261d080e8448f..7dd546d4efabf0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 -> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
-> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 +> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
+> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 ## 強制ログインモード @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 5d069870ab5a4e..d00f1cabd92020 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index 8c040c531c5c18..a4ac181ca663cc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ title: VP SET CUSTOM FUNCTIONS > **警告** -> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 -> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index b68bcfc3a991bc..9a91c5604ce4dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 883be9680d24b6..fe5f718531ff93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 9ded11857f4f7f..c3f857a7e0b955 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -73,15 +73,15 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: -- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) -- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 17c2d431301349..1fcccdee63d7f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 020a8dc923f782..b9d772a6d7bb50 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 @@ -629,7 +629,7 @@ This option allows you to designate a user, previously defined in the [4D passwo Keep-Alive接続を設定する 2つのオプションがあります: -- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

+ - **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

- **タイムアウト**: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。

diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md index 097eda5af0b378..9991b3a1b720af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md index aba37f55ba8ba5..3c58d365a85c90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 99d4d0ca7a8ace..9986b0a7644cfc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- ブール -- 日付 -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - ブール + - 日付 + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md index 62887e306c2f26..bfdc231296e94e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index 509c272ec9aaff..42c387e4084be0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ displayed_sidebar: docs > > SMTP接続は、以下の場合に自動的に閉じられます: > -> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 -> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 +> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 +> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md index ba21d38bca8883..6e7406bdf9f07b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md index 9a0a68e1cb6570..28d2770330b4d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 + - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 -- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 -- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 + - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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..dee6d27d5cbc73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 450abf1176c9cf..208c9341397e29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index fd36d392890c55..dae83d963d3e62 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し 1. `onConnection` は接続が確立した時にトリガーされます。 2. `onData` はデータが受信されるたびにトリガーされます。 3. `onShutdown` または `onError` はそれぞれ以下の場合にトリガーされます: - - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 - - `onError` はエラーが発生した場合にトリガーされます。 + - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 + - `onError` はエラーが発生した場合にトリガーされます。 4. `onTerminate` は常にTCPConnection がリリースされる直前にトリガーされます(接続が閉じられたか、エラーが発生した場合です)。 #### TCPEvent オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 6aee01ba447654..199b5df3cca138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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..657829ce598c98 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 6cb8c4dba500f6..e7dd506b28fcb2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: -- 自動バックアップ用のスケジューラー設定 -- 各バックアップに含めるファイル -- 自動タスクの実行を可能にする高度な設定 + - 自動バックアップ用のスケジューラー設定 + - 各バックアップに含めるファイル + - 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 + - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 + - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 @@ -141,11 +141,11 @@ title: バックアップ設定 > 自動復元の場合、復元されるのは次の要素に限られます: > -> - .4DD ファイル -> - .4DIndx ファイル -> - .4DSyncData ファイル -> - .4DSyncHeader ファイル -> - External Data フォルダー +> - .4DD ファイル +> - .4DIndx ファイル +> - .4DSyncData ファイル +> - .4DSyncHeader ファイル +> - External Data フォルダー > > 添付ファイルやプロジェクトファイルを取得したい場合、[手動の復元](restore.md#手動でバックアップから復元する-標準ダイアログ) をおこなう必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 2d464e24017b76..56031713faf0fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index 5ced8fbcb3e9a5..d5d31f0b890637 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 275394a1dab283..4d09df782992d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: -- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 -- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 -- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 + - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 + - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 + - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 053fb26ffbd4a6..c98e0e88207fa6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -48,8 +48,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -73,9 +73,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 359fe1da8101c5..b5a54a0832b98f 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 @@ -81,8 +81,8 @@ title: リリースノート #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 -- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 + - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 + - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -112,9 +112,9 @@ title: リリースノート #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 -- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 -- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 + - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 + - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 + - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -139,8 +139,8 @@ title: リリースノート #### 動作の変更 -- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 -- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 + - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 + - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -148,21 +148,21 @@ title: リリースノート #### ハイライト -- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 -- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 -- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 -- [制限付エンティティセレクション](../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#強制ログイン)。 -- 新しい [$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/))。 + - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 + - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 + - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 + - [制限付エンティティセレクション](../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#強制ログイン)。 + - 新しい [$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/))。 #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 -- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 + - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 + - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -170,24 +170,24 @@ title: リリースノート #### ハイライト -- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 -- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 -- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 -- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 -- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 -- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート -- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 -- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 -- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 -- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 + - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 + - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 + - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 + - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 + - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 + - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート + - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 + - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 + - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 + - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 -- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 -- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 -- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 + - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 + - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 + - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 + - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -195,21 +195,21 @@ title: リリースノート #### ハイライト -- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 -- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 -- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 -- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 -- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 -- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 + - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 + - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 + - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 + - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 + - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 + - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 -- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 -- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 + - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 + - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -223,15 +223,15 @@ title: リリースノート #### ハイライト -- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 -- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 -- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 + - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 + - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 + - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 -- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 + - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 9b6f26afd6daa1..a67a2c73bd0249 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index e1e76859c3dc67..c1201dea525f67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 1dc15ee343d9c6..504e63ace4d540 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -121,9 +121,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 63488266de291f..4321afc51a3669 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -52,8 +52,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -61,14 +61,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -84,8 +84,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -93,8 +93,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -202,9 +202,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -260,7 +260,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -277,17 +277,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -297,9 +297,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -325,8 +325,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -442,8 +442,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -504,11 +504,11 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 -- **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 -- **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 -- **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 -- **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 + - **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 + - **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 + - **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 + - **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 + - **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 現在のGitHub 依存関係バージョンは、依存関係の項目の右側に表示されます: @@ -595,8 +595,8 @@ You can modify the [version setting](#defining-a-github-dependency-version-range GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index f2fb2e5f5ad9b9..95335f5e527e6c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ title: Documentation ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: Documentation - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: Documentation ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: Documentation 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: Documentation `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 3261d080e8448f..7dd546d4efabf0 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 @@ -11,8 +11,8 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 -> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
-> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 +> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
+> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 ## 強制ログインモード @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index d2178137e0151b..5309c3668387b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index 8c040c531c5c18..a4ac181ca663cc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ title: VP SET CUSTOM FUNCTIONS > **警告** -> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 -> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index d7df59f12047f0..fa84a99ffa29ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -38,20 +38,20 @@ title: はじめに ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -129,8 +129,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -147,10 +147,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index e5e45790d725f5..1dfe242eeda202 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 カスタムのHTTP リクエストハンドラーは以下の条件の元にサポートされます: -- [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること -- メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 + - [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること + - メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 :::warning @@ -62,9 +62,9 @@ title: HTTP Request handler ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -84,8 +84,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -117,17 +117,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -208,11 +208,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 2bb9bec7a8c8b0..8759bf2fda3be9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) これらそれぞれのメソッドとコードの部分について、スレッドセーフのルールが遵守されているかをコンパイラーがチェックし、問題があった場合にはエラーを返します。 スレッドセーフルールについての詳細は、[4Dランゲージリファレンス](https://doc.4d.com) マニュアルの *プロセス* の章の *スレッドセーフなメソッドの書き方* の段落を参照ください。 @@ -61,8 +61,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -72,16 +72,16 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: -- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) -- *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) -- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) + - *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 858d01afba03f5..356587fc5d6544 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index d05f6e50c0a5e2..5cbbf2006c4386 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 6305cfc00401be..28eda06a2a0a2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index ec284ecd7a9bc4..1ceb2de53786d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 7b6bd571dad62d..352fff791b636b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- boolean -- date -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - boolean + - date + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index f80d1bd1b2f9c9..cdb231ed9fe273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index 509c272ec9aaff..42c387e4084be0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ displayed_sidebar: docs > > SMTP接続は、以下の場合に自動的に閉じられます: > -> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 -> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 +> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 +> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index e96fd983130c6e..c3bf63ac21735a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -108,9 +108,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 9a0a68e1cb6570..28d2770330b4d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 + - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 -- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 -- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 + - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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..aa7a5fc2b9e400 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 @@ -82,9 +82,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 765b9628dbd8f5..b74fd7aff2a034 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3906,7 +3906,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 450abf1176c9cf..208c9341397e29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index db3cb9922d3000..1c987ab3ac26bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し 1. `onConnection` は接続が確立した時にトリガーされます。 2. `onData` はデータが受信されるたびにトリガーされます。 3. `onShutdown` または `onError` はそれぞれ以下の場合にトリガーされます: - - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 - - `onError` はエラーが発生した場合にトリガーされます。 + - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 + - `onError` はエラーが発生した場合にトリガーされます。 4. `onTerminate` は常にTCPConnection がリリースされる直前にトリガーされます(接続が閉じられたか、エラーが発生した場合です)。 #### TCPEvent オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 6aee01ba447654..199b5df3cca138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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..657829ce598c98 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md index 6cb8c4dba500f6..e7dd506b28fcb2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: -- 自動バックアップ用のスケジューラー設定 -- 各バックアップに含めるファイル -- 自動タスクの実行を可能にする高度な設定 + - 自動バックアップ用のスケジューラー設定 + - 各バックアップに含めるファイル + - 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 + - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 + - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 @@ -141,11 +141,11 @@ title: バックアップ設定 > 自動復元の場合、復元されるのは次の要素に限られます: > -> - .4DD ファイル -> - .4DIndx ファイル -> - .4DSyncData ファイル -> - .4DSyncHeader ファイル -> - External Data フォルダー +> - .4DD ファイル +> - .4DIndx ファイル +> - .4DSyncData ファイル +> - .4DSyncHeader ファイル +> - External Data フォルダー > > 添付ファイルやプロジェクトファイルを取得したい場合、[手動の復元](restore.md#手動でバックアップから復元する-標準ダイアログ) をおこなう必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 2d464e24017b76..56031713faf0fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index a421e9046f83c1..bccd183b3423bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 67b11a22727950..2e756d989d8014 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 eb435eba5b6f23..9d33d6122f2e2a 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 @@ -134,8 +134,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 -- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 + - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 + - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -165,9 +165,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 -- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 -- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 + - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 + - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 + - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -175,25 +175,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 -- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 -- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 -- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 -- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 -- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 -- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 -- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 -- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 -- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 -- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 -- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 -- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 + - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 + - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 + - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 + - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 + - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 + - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 + - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 + - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 + - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 + - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 + - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 + - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 + - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 -- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 -- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 + - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 + - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -201,21 +201,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 -- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 -- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 -- [制限付エンティティセレクション](../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#強制ログイン)。 -- 新しい [$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/))。 + - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 + - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 + - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 + - [制限付エンティティセレクション](../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#強制ログイン)。 + - 新しい [$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/))。 #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 -- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 + - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 + - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -223,24 +223,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 -- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 -- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 -- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 -- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 -- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート -- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 -- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 -- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 -- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 + - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 + - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 + - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 + - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 + - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 + - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート + - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 + - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 + - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 + - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 -- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 -- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 -- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 + - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 + - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 + - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 + - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -248,21 +248,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 -- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 -- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 -- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 -- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 -- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 + - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 + - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 + - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 + - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 + - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 + - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 -- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 -- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 + - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 + - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -284,7 +284,7 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 + - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index e0d5eb69a426f8..9e562869f6c322 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md index c922921306853f..a8a1f2e3fde1b7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 5979f2a6997c4c..059e4eeddabb19 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 6748776051563e..a696826968337d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 3261d080e8448f..7dd546d4efabf0 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 @@ -11,8 +11,8 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 -> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
-> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 +> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
+> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 ## 強制ログインモード @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5d069870ab5a4e..d00f1cabd92020 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md index 8c040c531c5c18..a4ac181ca663cc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ title: VP SET CUSTOM FUNCTIONS > **警告** -> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 -> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index b68bcfc3a991bc..9a91c5604ce4dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 883be9680d24b6..fe5f718531ff93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 9ded11857f4f7f..c227634e28caa5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 17c2d431301349..1fcccdee63d7f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 020a8dc923f782..fe41c5175f7a14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 6305cfc00401be..28eda06a2a0a2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index ec284ecd7a9bc4..1ceb2de53786d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 7b6bd571dad62d..352fff791b636b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- boolean -- date -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - boolean + - date + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index f80d1bd1b2f9c9..cdb231ed9fe273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md index 509c272ec9aaff..42c387e4084be0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ displayed_sidebar: docs > > SMTP接続は、以下の場合に自動的に閉じられます: > -> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 -> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 +> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 +> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md index ba21d38bca8883..6e7406bdf9f07b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: 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..dee6d27d5cbc73 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 @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index ab14480d12c124..a9985b845d4e41 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas as funções de chamada de retorno recebem dois parâmetros de objectos: 1. O `onConnection` é acionado quando a conexão é estabelecida. 2. `onData` é acionado cada vez que os dados são recebidos. 3. O `onShutdown` ou o `onError` estão ativados: - - O `onShutdown` é acionado quando a conexão for fechada corretamente. - - `onError` é acionado se ocorrer um erro. + - O `onShutdown` é acionado quando a conexão for fechada corretamente. + - `onError` é acionado se ocorrer um erro. 4. O `onTerminate` é sempre acionado logo antes de a TCPConnection ser liberada (a conexão é fechada ou ocorre um erro). #### Objeto TCPEvent diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 1138d8154a484c..f5d90dd86392b9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 5562a804e07ab3..d96e75a9aee559 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: -- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). -- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). -- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). + - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). + - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). + - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 7e1d6622e178ba..67357d2f8733bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 833b0892282804..7f997593978e8b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,9 +159,9 @@ In binary databases, you need to select the required components in the 4D instal #### Mudanças de comportamento -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -200,20 +200,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. -- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). -- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). -- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. -- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. -- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. -- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. -- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. -- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. -- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. + - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. + - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). + - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). + - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. + - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. + - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. + - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. + - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. + - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. + - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -242,8 +242,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. -- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. + - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. + - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -272,9 +272,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. -- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. -- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. + - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. + - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. + - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -282,25 +282,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). -- When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). -- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). -- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. -- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. -- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. -- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. -- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. -- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). -- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). -- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. -- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. -- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. + - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). + - When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). + - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). + - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. + - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. + - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. + - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. + - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. + - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). + - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). + - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. + - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. + - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento -- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). -- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). + - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). + - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -308,21 +308,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. -- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. + - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Mudanças de comportamento -- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). -- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. + - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). + - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -330,24 +330,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. -- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). -- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. -- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). -- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) -- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. -- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. + - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. + - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). + - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. + - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). + - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) + - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. + - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento -- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. -- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). + - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. + - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -355,21 +355,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) -- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. + - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) + - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento -- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). -- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. + - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). + - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -383,15 +383,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques -- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. -- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. + - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. + - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento -- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. + - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 2d483010e8a237..ae9c77ede12e60 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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..2d6736f653cf78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index b6c05fefa599fc..f46faa0b61b065 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -39,8 +39,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: -- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. -- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). + - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. + - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: -- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), -- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). + - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), + - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: -- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, -- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** -- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. + - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, + - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** + - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -234,7 +234,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : + - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,9 +284,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". -- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". + - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. -- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. + - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md index 6fc3020dad7369..c1b08acda98594 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md index d21437b56a1f5a..61aa1e6d319a20 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md @@ -193,9 +193,9 @@ Se surgir um problema ao adicionar ou modificar uma entidade, ser-lhe-á enviado :::note -- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). -- **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: + - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). + - **Booleanos** son true o false. + - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md index f552e7d35b35e5..fcaff5d5555aa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Uma sessão é aberta depois que o usuário é autenticado com sucesso (veja abaixo). -> - On 4D Server, opening a REST session requires that a free 4D client license is available.
-> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. +> - On 4D Server, opening a REST session requires that a free 4D client license is available.
+> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. ## Force login mode @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index a2a1c8771fb6ec..569a3566bf39f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ In the *formulaObj* parameter, pass an object containing the 4D formulas that ca > **AVISO** -> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. -> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. +> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. +> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index a07d153673411c..cb4d9c72d21047 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index c7087a7d78fa5c..9a2b43bb33fca4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- handle an authentication via oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - handle an authentication via oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -95,8 +95,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: -- the first matching pattern is executed -- the following patterns are not executed even if they match the URL + - the first matching pattern is executed + - the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -128,17 +128,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). -- "method": class function belonging to the class. + - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). + - "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -219,11 +219,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: -- *handle function* in the *GeneralHandling* class -- *manageAccount* na classe *UsersHandling* -- *handleInvoices* na classe \*FinancialHandling -- *handleDocs* na classe *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* + - *handle function* in the *GeneralHandling* class + - *manageAccount* na classe *UsersHandling* + - *handleInvoices* na classe \*FinancialHandling + - *handleDocs* na classe *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 1463e612fb2c56..cd92034eb88767 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 146662cec4481d..13d80f1e562734 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- acionar o código 4D configurando eventos -- e muito mais. + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - acionar o código 4D configurando eventos + - e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D -- Desenvolvimento: 4D v20 R2 ou superior -- Desenvolvimento: 4D Server v20 R2 ou superior -- Qodly Studio only works with 4D projects (binary databases are not supported). -- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). -- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). + - Desenvolvimento: 4D v20 R2 ou superior + - Desenvolvimento: 4D Server v20 R2 ou superior + - Qodly Studio only works with 4D projects (binary databases are not supported). + - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). + - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: -- ao nível da aplicação 4D -- a nível do projeto + - ao nível da aplicação 4D + - a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: -- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). -- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. + - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). + - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code The following commands and classes are dedicated to the server-side management of Qodly pages: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. -- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. -- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. -- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. + - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. + - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. + - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: -- Você pode chamar seus métodos a partir de funções classe. -- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. + - Você pode chamar seus métodos a partir de funções classe. + - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty -- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty + - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. -- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. -- O [servidor Web 4D](webServer.md) deve estar em execução. + - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. + - O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -309,9 +309,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: -- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, -- a licença associada ao 4D é liberada, -- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. + - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, + - a licença associada ao 4D é liberada, + - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -363,7 +363,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. -- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. + - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index e6222856a3d812..c546ee102e2cd9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- O caminho não deve começar nem terminar com uma barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- com 4D em modo remoto, na pasta de recursos locais. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta -- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta + - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). -- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). + - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index ae118bb3c8a11f..9f57b41f63b0af 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md index 5a7b84e56d29c0..f92975731a6d8c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index 41c11c1e359b7b..30037ce286891f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ The `SMTP New transporter` command o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index 5e345425438479..24bbe9f4ef4d39 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Todas as funções de chamada de retorno recebem dois parâmetros de objectos: 1. O `onConnection` é acionado quando a conexão é estabelecida. 2. `onData` é acionado cada vez que os dados são recebidos. 3. O `onShutdown` ou o `onError` estão ativados: - - O `onShutdown` é acionado quando a conexão for fechada corretamente. - - `onError` é acionado se ocorrer um erro. + - O `onShutdown` é acionado quando a conexão for fechada corretamente. + - `onError` é acionado se ocorrer um erro. 4. O `onTerminate` é sempre acionado logo antes de a TCPConnection ser liberada (a conexão é fechada ou ocorre um erro). #### Objeto TCPEvent diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index c63253d649fce3..f145ad3f0030a5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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..143ed134bd5e1b 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 9122d4ff37673f..92da3be1d32080 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: -- a periodicidade das cópias de segurança automáticas -- os arquivos a incluir em cada backup -- as funcionalidades avançadas que permitem executar tarefas automáticas + - a periodicidade das cópias de segurança automáticas + - os arquivos a incluir em cada backup + - as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. + - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. + - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. @@ -141,11 +141,11 @@ O usuário não vê uma caixa de diálogo, a operação é automática. O objeti > No caso de uma restauração automática, somente os seguintes elementos são restaurados: > -> - ficheiro .4DD -> - ficheiro .4DIndx -> - .4DSyncData file -> - ficheiro .4DSyncHeader -> - Pasta External Data +> - ficheiro .4DD +> - ficheiro .4DIndx +> - .4DSyncData file +> - ficheiro .4DSyncHeader +> - Pasta External Data > > Se quiser obter os arquivos anexados ou os arquivos do projeto, você deve realizar uma [restauração manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 556bb6af1296b0..704ebdc0162f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index 67a39c8d81d25d..f98382730ba66b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 5562a804e07ab3..d96e75a9aee559 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: -- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). -- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). -- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). + - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). + - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). + - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 03616bbe2c57c7..08405ce2e879d5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -49,8 +49,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -74,9 +74,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 4406f1744cd649..bda81ac2c4baa2 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 @@ -39,20 +39,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. -- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). -- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). -- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. -- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. -- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. -- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. -- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. -- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. -- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. + - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. + - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). + - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). + - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. + - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. + - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. + - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. + - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. + - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. + - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. -- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. + - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. + - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. -- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. -- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. + - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. + - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. + - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). -- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). -- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. -- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. -- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. -- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. -- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. -- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). -- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). -- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. -- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. -- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. + - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). + - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). + - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. + - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. + - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. + - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. + - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. + - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). + - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). + - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. + - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. + - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento -- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). -- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). + - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). + - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -147,21 +147,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. -- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. + - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Mudanças de comportamento -- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). -- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. + - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). + - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. -- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). -- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. -- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). -- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) -- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. -- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. + - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. + - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). + - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. + - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). + - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) + - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. + - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento -- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. -- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). + - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. + - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) -- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. + - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) + - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento -- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). -- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. + - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). + - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -222,15 +222,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques -- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. -- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. + - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. + - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento -- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. + - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 89f7200ce40369..ceb561ae20b10d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 29f41eb921bd1a..f89c79f64e5a21 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -120,9 +120,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index c78e4286cff83c..3a277756e5fa88 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -52,8 +52,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: -- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. -- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). + - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. + - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: -- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), -- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). + - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), + - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: -- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, -- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** -- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. + - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, + - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** + - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -84,8 +84,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -202,9 +202,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : + - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -260,7 +260,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -277,17 +277,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -297,9 +297,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". -- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". + - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -325,8 +325,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. -- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. + - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -399,16 +399,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -442,8 +442,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Você pode definir a opção [tag ou versão](#tags-and-versions) para uma depen ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). -- **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. -- **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. -- **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. -- **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). + - **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). + - **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. + - **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. + - **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. + - **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). A versão atual da dependência do GitHub é exibida no lado direito do item de dependência: @@ -524,8 +524,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -541,11 +541,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -590,13 +590,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index f3a85b723ead42..36d3ee0320e863 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 f552e7d35b35e5..fcaff5d5555aa3 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Uma sessão é aberta depois que o usuário é autenticado com sucesso (veja abaixo). -> - On 4D Server, opening a REST session requires that a free 4D client license is available.
-> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. +> - On 4D Server, opening a REST session requires that a free 4D client license is available.
+> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. ## Force login mode @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index a2a1c8771fb6ec..569a3566bf39f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ In the *formulaObj* parameter, pass an object containing the 4D formulas that ca > **AVISO** -> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. -> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. +> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. +> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 6bcadedbf99395..9c6345ce096f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -128,8 +128,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -146,10 +146,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1de6c9b89e4d15..509e11e0a6cb9f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- handle an authentication via oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - handle an authentication via oAuth 2.0. ## Requisitos Custom HTTP Request handlers are supported: -- quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, -- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). + - quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, + - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -84,8 +84,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: -- the first matching pattern is executed -- the following patterns are not executed even if they match the URL + - the first matching pattern is executed + - the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -117,17 +117,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). -- "method": class function belonging to the class. + - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). + - "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -208,11 +208,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: -- *handle function* in the *GeneralHandling* class -- *manageAccount* na classe *UsersHandling* -- *handleInvoices* na classe \*FinancialHandling -- *handleDocs* na classe *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* + - *handle function* in the *GeneralHandling* class + - *manageAccount* na classe *UsersHandling* + - *handleInvoices* na classe \*FinancialHandling + - *handleDocs* na classe *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 772b825b9b04c1..562e616a835a1e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada um desses métodos e partes de código, o compilador irá verificar se as regras de segurança de threads são respeitadas, e retornará erros em caso de problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index d1108f678dd9b7..1591d97b78a034 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- acionar o código 4D configurando eventos -- e muito mais. + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - acionar o código 4D configurando eventos + - e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D -- Desenvolvimento: 4D v20 R2 ou superior -- Desenvolvimento: 4D Server v20 R2 ou superior -- Qodly Studio only works with 4D projects (binary databases are not supported). -- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). -- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). + - Desenvolvimento: 4D v20 R2 ou superior + - Desenvolvimento: 4D Server v20 R2 ou superior + - Qodly Studio only works with 4D projects (binary databases are not supported). + - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). + - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: -- ao nível da aplicação 4D -- a nível do projeto + - ao nível da aplicação 4D + - a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: -- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). -- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. + - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). + - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -146,24 +146,24 @@ There is no direct compatibility between apps implemented with 4D and apps imple The following commands and classes are dedicated to the server-side management of Qodly pages: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. -- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. -- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. -- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. + - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. + - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. + - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: -- Você pode chamar seus métodos a partir de funções classe. -- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. + - Você pode chamar seus métodos a partir de funções classe. + - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty -- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty + - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -179,8 +179,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. -- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. -- O [servidor Web 4D](webServer.md) deve estar em execução. + - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. + - O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -310,9 +310,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: -- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, -- a licença associada ao 4D é liberada, -- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. + - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, + - a licença associada ao 4D é liberada, + - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -364,7 +364,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. -- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. + - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 15253435c6bf01..bfa6e7452d2fcd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- O caminho não deve começar nem terminar com uma barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- com 4D em modo remoto, na pasta de recursos locais. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta -- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta + - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). -- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). + - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 8279b68a3320eb..241cf8f08802d9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 06e4be9e27340c..9932777fa589eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index 41c11c1e359b7b..30037ce286891f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ The `SMTP New transporter` command -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3886,7 +3886,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 51b288575d7208..ff6661f192e020 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas -- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. -- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. + - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. + - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md index d474fd0e038e34..e7f4dff58d6d8f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index ab14480d12c124..a9985b845d4e41 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas as funções de chamada de retorno recebem dois parâmetros de objectos: 1. O `onConnection` é acionado quando a conexão é estabelecida. 2. `onData` é acionado cada vez que os dados são recebidos. 3. O `onShutdown` ou o `onError` estão ativados: - - O `onShutdown` é acionado quando a conexão for fechada corretamente. - - `onError` é acionado se ocorrer um erro. + - O `onShutdown` é acionado quando a conexão for fechada corretamente. + - `onError` é acionado se ocorrer um erro. 4. O `onTerminate` é sempre acionado logo antes de a TCPConnection ser liberada (a conexão é fechada ou ocorre um erro). #### Objeto TCPEvent diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index c63253d649fce3..f145ad3f0030a5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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..143ed134bd5e1b 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md index 9122d4ff37673f..92da3be1d32080 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: -- a periodicidade das cópias de segurança automáticas -- os arquivos a incluir em cada backup -- as funcionalidades avançadas que permitem executar tarefas automáticas + - a periodicidade das cópias de segurança automáticas + - os arquivos a incluir em cada backup + - as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. + - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. + - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. @@ -141,11 +141,11 @@ O usuário não vê uma caixa de diálogo, a operação é automática. O objeti > No caso de uma restauração automática, somente os seguintes elementos são restaurados: > -> - ficheiro .4DD -> - ficheiro .4DIndx -> - .4DSyncData file -> - ficheiro .4DSyncHeader -> - Pasta External Data +> - ficheiro .4DD +> - ficheiro .4DIndx +> - .4DSyncData file +> - ficheiro .4DSyncHeader +> - Pasta External Data > > Se quiser obter os arquivos anexados ou os arquivos do projeto, você deve realizar uma [restauração manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 556bb6af1296b0..704ebdc0162f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 1138d8154a484c..f5d90dd86392b9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 7e1d6622e178ba..67357d2f8733bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md index 6308d745616b51..2d6736f653cf78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index b6c05fefa599fc..e249d09c4454c3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,7 +284,7 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 6fc3020dad7369..c1b08acda98594 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 f552e7d35b35e5..fcaff5d5555aa3 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Uma sessão é aberta depois que o usuário é autenticado com sucesso (veja abaixo). -> - On 4D Server, opening a REST session requires that a free 4D client license is available.
-> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. +> - On 4D Server, opening a REST session requires that a free 4D client license is available.
+> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. ## Force login mode @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md index a2a1c8771fb6ec..569a3566bf39f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ In the *formulaObj* parameter, pass an object containing the 4D formulas that ca > **AVISO** -> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. -> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. +> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. +> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index a07d153673411c..cb4d9c72d21047 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 1463e612fb2c56..0b8acd50f8d5f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index e6222856a3d812..e51eb633529c2d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index ae118bb3c8a11f..9f57b41f63b0af 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 06e4be9e27340c..9932777fa589eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md index 41c11c1e359b7b..30037ce286891f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ The `SMTP New transporter` command el elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index 54894c3af956cc..e89f0eed941e0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 3d98894fd86ba5..9cb80c2d0eb549 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md index e379dd73f4912b..155226e4b16804 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: -- la periodicidad de las copias de seguridad automáticas -- los archivos a incluir en cada copia de seguridad -- las funcionalidades avanzadas permiten ejecutar tareas automáticas + - la periodicidad de las copias de seguridad automáticas + - los archivos a incluir en cada copia de seguridad + - las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. + - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. + - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. @@ -139,11 +139,11 @@ El usuario no ve ninguna caja de diálogo; la operación es completamente autom > En el caso de una restauración automática, sólo se restauran los siguientes elementos: > -> - archivo .4DD -> - archivo .4DIndx -> - archivo .4DSyncData -> - archivo .4DSyncHeader -> - Carpeta External Data +> - archivo .4DD +> - archivo .4DIndx +> - archivo .4DSyncData +> - archivo .4DSyncHeader +> - Carpeta External Data > > Si desea obtener los archivos adjuntos o los archivos del proyecto, debe realizar una [restauración manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 36a92919469a8b..99fd7295b126a7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md index 9d1cb639f79189..b1b0365605edcc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes -- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. -- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. + - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. + - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md index f026e9fde75c7c..e5c0997f07ca47 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index 97ee1a22f9519e..e8b5a0245406bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md index f3cd2662e9f6de..ed236bce715b93 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : -- la périodicité des sauvegardes automatiques -- les fichiers à inclure dans chaque sauvegarde -- les fonctionnalités avancées permettant d'exécuter des tâches automatiques + - la périodicité des sauvegardes automatiques + - les fichiers à inclure dans chaque sauvegarde + - les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. + - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. + - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. @@ -138,11 +138,11 @@ Aucune boîte de dialogue n’est présentée à l’utilisateur, l’opération > En cas de restitution automatique, seuls les éléments suivants sont restitués : > -> - Fichier .4DD -> - Fichier .4DIndx -> - Fichier .4DSyncData -> - Fichier .4DSyncHeader -> - Dossier External Data +> - Fichier .4DD +> - Fichier .4DIndx +> - Fichier .4DSyncData +> - Fichier .4DSyncHeader +> - Dossier External Data > > Si vous souhaitez obtenir les fichiers joints ou les fichiers de projet, vous devez effectuer une [restauration manuelle](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 3f1b6436ef1e91..2dbedc9655644c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index eacb93bd59f35f..fde54ce68e3b01 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 81090d6fc2c115..657829ce598c98 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md index 6cb8c4dba500f6..e7dd506b28fcb2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: -- 自動バックアップ用のスケジューラー設定 -- 各バックアップに含めるファイル -- 自動タスクの実行を可能にする高度な設定 + - 自動バックアップ用のスケジューラー設定 + - 各バックアップに含めるファイル + - 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 + - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 + - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 @@ -141,11 +141,11 @@ title: バックアップ設定 > 自動復元の場合、復元されるのは次の要素に限られます: > -> - .4DD ファイル -> - .4DIndx ファイル -> - .4DSyncData ファイル -> - .4DSyncHeader ファイル -> - External Data フォルダー +> - .4DD ファイル +> - .4DIndx ファイル +> - .4DSyncData ファイル +> - .4DSyncHeader ファイル +> - External Data フォルダー > > 添付ファイルやプロジェクトファイルを取得したい場合、[手動の復元](restore.md#手動でバックアップから復元する-標準ダイアログ) をおこなう必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index e37db10b0ae5a5..804217b5d17516 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md index 51b288575d7208..ff6661f192e020 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas -- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. -- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. + - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. + - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md index d474fd0e038e34..e7f4dff58d6d8f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e6033ed940d735..ca94ba2f4d4146 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 10b9f28462322f..143ed134bd5e1b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md index 9122d4ff37673f..92da3be1d32080 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: -- a periodicidade das cópias de segurança automáticas -- os arquivos a incluir em cada backup -- as funcionalidades avançadas que permitem executar tarefas automáticas + - a periodicidade das cópias de segurança automáticas + - os arquivos a incluir em cada backup + - as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. + - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. + - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. @@ -141,11 +141,11 @@ O usuário não vê uma caixa de diálogo, a operação é automática. O objeti > No caso de uma restauração automática, somente os seguintes elementos são restaurados: > -> - ficheiro .4DD -> - ficheiro .4DIndx -> - .4DSyncData file -> - ficheiro .4DSyncHeader -> - Pasta External Data +> - ficheiro .4DD +> - ficheiro .4DIndx +> - .4DSyncData file +> - ficheiro .4DSyncHeader +> - Pasta External Data > > Se quiser obter os arquivos anexados ou os arquivos do projeto, você deve realizar uma [restauração manual](restore.md#manually-restoring-a-backup-standard-dialog). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 58ac0e31a2c1ba..4b80f44d529a0b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. From ab5b866eda247bfe255ad4972830222d67d5fa7e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 22 Aug 2025 11:55:07 +0200 Subject: [PATCH 010/119] fix links --- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From 837066efa01731952cbfde092166e64eccb4bd12 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 25 Aug 2025 11:33:32 +0200 Subject: [PATCH 011/119] New Crowdin updates (#2878) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sdi.md (Japanese) * New translations debugger.md (Spanish) * New translations develop-components.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) --- .../version-21/WritePro/commands/wp-export-variable.md | 2 +- .../version-20/API/SessionClass.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 22cf5a3c10a7c8..87f8fb1a48e924 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descripción -The **WP EXPORT VARIABLE** command exports the *wpDoc* 4D Write Pro object to the 4D *destination* variable in the specified *format*. +El comando **WP EXPORT VARIABLE** exporta el objeto *wpDoc* 4D Write Pro a la variable *destination* 4D en el *format* especificado. En *wpDoc*, pase el objeto 4D Write Pro que desea exportar. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md index c6cb692c09bf89..eae2c9e78e256c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md @@ -70,7 +70,7 @@ IP:port/4DACTION/action_Session ``` ```4d - //action_Session method + //action_Session メソッド Case of :(Session#Null) If(Session.hasPrivilege("WebAdmin")) //"WebAdmin" アクセス権がセッションに紐づいているかを確認 From 44a00c7c3202205438e00973370d4d8bef0effd1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 26 Aug 2025 14:50:35 +0200 Subject: [PATCH 012/119] New Crowdin updates (#2879) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations parameters.md (French) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations qodly-studio.md (French) * New translations process-activity.md (Spanish) * New translations process-number.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations dt_number.md (Spanish) * New translations http-request-handler.md (French) * New translations managing-formulas.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-table-append-row.md (French) * New translations wp-insert-document-body.md (French) * New translations openai.md (Japanese) * New translations dt_number.md (Spanish) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations compile-project.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations openaiembedding.md (Japanese) * New translations dt_number.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations openai.md (Japanese) * New translations openaiembedding.md (Japanese) * New translations compile-project.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations string.md (French) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From 551a5c0f81584e4d66ac5ac0aff17ff88d484fd4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 26 Aug 2025 18:37:30 +0200 Subject: [PATCH 013/119] blog posts ref --- docs/API/SessionClass.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/API/SessionClass.md b/docs/API/SessionClass.md index ed2886e8de489f..1ad435a7823c29 100644 --- a/docs/API/SessionClass.md +++ b/docs/API/SessionClass.md @@ -58,6 +58,10 @@ The availability of properties and functions in the `Session` object depends on |[](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) ## .clearPrivileges() From 87b57f8e808ce6f9950203c3c5c5f87e322d4e3b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 27 Aug 2025 09:57:49 +0200 Subject: [PATCH 014/119] New Crowdin updates (#2880) * New translations geninfo.md (French) * New translations ordaclasses.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations database.md (French) * New translations command-index.md (French) * New translations tcpeventclass.md (French) * New translations tools.md (French) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations clientserver.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-remove-table-columns.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations clientserver.md (French) * New translations updates.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-remove-table-columns.md (French) * New translations command-index.md (French) * New translations tools.md (French) * New translations database.md (French) * New translations string.md (French) * New translations generate-uuid.md (French) * New translations generate-uuid.md (French) * New translations database.md (Spanish) * New translations command-index.md (Spanish) * New translations super.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations license-info.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations tools.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations license-info.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations session-storage.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations super.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations updates.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) --- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/API/SessionClass.md | 9 +++++++++ .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-21/API/SessionClass.md | 5 +++++ .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/API/SessionClass.md | 9 +++++++++ .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-21/API/SessionClass.md | 5 +++++ .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- 24 files changed, 64 insertions(+), 16 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 7b9392b7d194f3..270d7f8c31aad5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index b4c2ea5824cb55..e122ecdf423030 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index f9fd60a5858123..eeb2e5d677b629 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() @@ -391,6 +396,10 @@ Else End if ``` +#### Ver también + +[**Blog posts about this feature**](https://blog.4d.com/?s=hasPrivilege) + diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 6fb0bcfe3b253b..4ccd334c12e81f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 7b9392b7d194f3..270d7f8c31aad5 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 @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index b4c2ea5824cb55..e122ecdf423030 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 fa9c1b82f11051..572d98fdbec957 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -80,6 +80,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 7d59f919977170..072da0f1050400 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 75b05496143148..24aa2d6557f5c9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() @@ -391,6 +396,10 @@ Else End if ``` +#### Voir également + +[**Blog posts about this feature**](https://blog.4d.com/?s=hasPrivilege) + diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 2fb0dddac7c155..67bc1ec431ffc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 b2e186f8db0785..eb6f8bb2834237 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 @@ -86,6 +86,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 7d59f919977170..072da0f1050400 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 dbdb9acd8d6eef..160f28b397b146 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index f36b0aad301c2f..70ceccbf7b40d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 6ea1fd129e4c34..fa555959894d8e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) From 7f5bd44806514cfcd8ca902ece208588b05e21fd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 27 Aug 2025 14:51:43 +0200 Subject: [PATCH 015/119] fix links --- .../version-20-R10/API/SessionClass.md | 2 +- .../version-20-R10/API/SessionClass.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index eeb2e5d677b629..0b242fc5fb6d6d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -398,7 +398,7 @@ End if #### Ver también -[**Blog posts about this feature**](https://blog.4d.com/?s=hasPrivilege) +[*Blog posts about this feature*](https://blog.4d.com/?s=hasPrivilege) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 24aa2d6557f5c9..b4623acbc355ce 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -398,7 +398,7 @@ End if #### Voir également -[**Blog posts about this feature**](https://blog.4d.com/?s=hasPrivilege) +[*Blog posts about this feature*](https://blog.4d.com/?s=hasPrivilege) From 1e125ba59253df87c031cea4127d486bee90de1b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 28 Aug 2025 16:11:51 +0200 Subject: [PATCH 016/119] New Crowdin updates (#2883) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations command-index.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations tools.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations tab-component.png (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) --- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 22 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++--- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 166 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 30 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 82 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../current/WritePro/writeprointerface.md | 18 +- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 6 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 5 - .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 ++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 34 ++-- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 82 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../WritePro/writeprointerface.md | 18 +- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/SessionClass.md | 5 - .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 30 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 82 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../version-21/WritePro/writeprointerface.md | 18 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 14 +- .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 28 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++--- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 18 +- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 138 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 8 +- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 60 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 76 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 10 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 14 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 18 +- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 132 +++++++------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 8 +- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 60 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 10 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/SessionClass.md | 14 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 18 +- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 60 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++---- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 28 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++--- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 138 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 30 ++-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 78 ++++---- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/commands/string.md | 2 +- .../current/settings/client-server.md | 24 +-- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 24 +-- .../current/settings/security.md | 8 +- .../current/settings/web.md | 40 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 4 + .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 104 +++++------ .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 30 ++-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 88 +++++----- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 24 +-- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 24 +-- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 40 ++--- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 30 ++-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 78 ++++---- .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 38 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++---- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 24 +-- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/database.md | 16 +- .../version-21/settings/interface.md | 24 +-- .../version-21/settings/web.md | 40 ++--- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 22 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++--- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 166 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++------- .../current/Project/documentation.md | 38 ++-- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++---- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++-- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 4 + .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++--- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 ++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 +++++++-------- .../version-20-R10/Project/documentation.md | 38 ++-- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 78 ++++---- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++-- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++--- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 100 +++++------ .../version-21/Project/documentation.md | 38 ++-- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 52 +++--- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++-- 926 files changed, 8731 insertions(+), 8736 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene 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 270d7f8c31aad5..7b9392b7d194f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e89f0eed941e0f..54894c3af956cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md index 155226e4b16804..6f7d863df9f98b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: - - la periodicidad de las copias de seguridad automáticas - - los archivos a incluir en cada copia de seguridad - - las funcionalidades avanzadas permiten ejecutar tareas automáticas +- la periodicidad de las copias de seguridad automáticas +- los archivos a incluir en cada copia de seguridad +- las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. +- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. +- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 99fd7295b126a7..36a92919469a8b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index d2daec9d290eff..dc0b5a8bdb81ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index b9a18ff620c4cd..209a1daf6f52d8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: - - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). - - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). - - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). +- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). +- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). +- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 4d25873c20bb67..d210e1a4e5733b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 2e98a7ff7719c6..64de63859e1f0c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,9 +171,9 @@ In binary databases, you need to select the required components in the 4D instal #### Cambios de comportamiento - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -212,20 +212,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado - - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. - - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). - - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). - - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. - - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. - - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. - - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. - - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. - - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. +- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. +- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). +- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). +- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. +- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. +- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. +- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. +- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. +- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -254,8 +254,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento - - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). - - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. +- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). +- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -284,9 +284,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento - - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. - - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. - - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. +- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. +- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -294,25 +294,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado - - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). - - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). - - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. - - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. - - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. - - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. +- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). +- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). +- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. +- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. +- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. +- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. +- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. +- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). +- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. +- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento - - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). - - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). +- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). +- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -320,21 +320,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado - - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. - - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. +- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Cambios de comportamiento - - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). - - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. +- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). +- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -342,24 +342,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado - - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. - - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. - - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). - - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) - - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. - - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. +- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. +- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). +- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. +- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). +- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) +- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. +- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento - - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. - - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). +- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. +- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -367,21 +367,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado - - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). - - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) - - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. +- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). +- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) +- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento - - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). - - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. +- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). +- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -395,15 +395,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado - - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. - - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. +- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. +- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento - - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. +- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 6403abc6f122c5..086ad86ee9d7d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md index 2a2c8c212ebeed..5beaa5f717c17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 c79333546aaf9b..ecac98bd608bb7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 75eb7461d886fa..3bb2eb19a0f57e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -321,12 +321,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: - - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente +- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` +- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. +- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md index 298b233fd2a5ab..681c3352fb09db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md index f69e07af2020a7..ec63e8eb56445e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ Si surge un problema al añadir o modificar una entidad, se le devolverá un err :::note - - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). - - **Booleanos** son true o false. - - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). +- **Booleanos** son true o false. +- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index 26259a80cdb1e9..eacc596f917ac9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 44537e451f49b5..5e65abf6ea6b63 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index b54e8fff9daf39..29b19390090283 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 5b985b633281fd..facb115670bf95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index e36b294ecdbc05..6a5929785ac538 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index ba0e48106f3028..cb189885bf97f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 27910c04913772..22056b4f4e48a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md index 66a61c54e79788..7a1cd053401abd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md index 4b893aee1c3cde..d1c77227cb7186 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md index 2048b233e917a3..1358e18b92a2e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md index 839c648096a676..b03e5465634991 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md index 273169e5c379b3..8c18e521f0ab9c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md index 268da473a21865..8c07899f17c912 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). - - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. +- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: 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 b380e47d56b673..052d2beaf51c2c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 0b242fc5fb6d6d..47c4339417a6b8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 35dc1e027ddfeb..f4215154de6605 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 155226e4b16804..6f7d863df9f98b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: - - la periodicidad de las copias de seguridad automáticas - - los archivos a incluir en cada copia de seguridad - - las funcionalidades avanzadas permiten ejecutar tareas automáticas +- la periodicidad de las copias de seguridad automáticas +- los archivos a incluir en cada copia de seguridad +- las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. +- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. +- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 0aa7c3050737e9..122a0395c08180 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index a12a7f4383b866..f780ef9be2a24d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index b9a18ff620c4cd..209a1daf6f52d8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: - - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). - - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). - - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). +- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). +- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). +- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 1f675a4d86f9f0..6da59e6c97d55e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -48,8 +48,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -73,9 +73,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 0c2f7a4f769a86..d82ec8269a7b3a 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 @@ -39,20 +39,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado - - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. - - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). - - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). - - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. - - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. - - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. - - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. - - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. - - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. +- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. +- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). +- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). +- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. +- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. +- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. +- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. +- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. +- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento - - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). - - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. +- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). +- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento - - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. - - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. - - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. +- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. +- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado - - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). - - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). - - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. - - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. - - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. - - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. +- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). +- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). +- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. +- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. +- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. +- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. +- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. +- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). +- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. +- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento - - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). - - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). +- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). +- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado - - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. - - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. +- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Cambios de comportamiento - - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). - - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. +- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). +- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado - - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. - - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. - - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). - - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) - - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. - - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. +- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. +- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). +- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. +- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). +- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) +- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. +- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento - - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. - - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). +- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. +- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado - - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). - - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) - - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. +- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). +- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) +- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento - - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). - - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. +- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). +- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado - - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. - - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. +- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. +- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento - - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. +- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a012ba936d84c7..163716adebf666 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t Este evento también se activa: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 312390bb364e25..6a6eb8c18fccf1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 25c5e832dd4c74..a68cafc8accf20 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -120,9 +120,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index e5c023c74dc4ad..9f30f95e0bee18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -52,8 +52,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -84,8 +84,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -202,9 +202,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -260,7 +260,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -277,17 +277,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -297,9 +297,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -325,8 +325,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -334,12 +334,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: - - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente +- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` +- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. +- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -399,16 +399,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -442,8 +442,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Puede definir la opción [etiqueta o versión](#tags-and-versions) para una depe ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). - - **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. - - **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. - - **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. - - **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. +- **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). +- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. +- **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. +- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. +- **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. La versión actual de la dependencia de GitHub se muestra a la derecha del elemento de la dependencia: @@ -524,8 +524,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -541,11 +541,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -590,13 +590,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 5e5adbeac0bf42..0424c8317dd555 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 26259a80cdb1e9..eacc596f917ac9 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index f3f4fcc5d0f427..ce43ad5c50c92a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 39f6937781b698..41a1b586494a9d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -128,8 +128,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 81fe353cd4dd44..979c997dc5f3c5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos Se soportan gestores de solicitudes HTTP personalizados: - - cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, - - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). +- cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, +- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -117,10 +117,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -208,11 +208,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index bcad278ae763c0..b7275944048a9f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada uno de estos métodos y partes de código, el compilador comprobará si se respetan las reglas de seguridad de hilos, y devolverá errores en caso de que haya problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index d253ad2ebbc034..5988064c941307 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -146,24 +146,24 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -179,8 +179,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -310,9 +310,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -364,7 +364,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index f54bad738b3034..53a74bd7541a51 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 39bc7be2b0c004..de710cd9d2102d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index b4e81269ad020a..355633c3e4ffb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index d4450f98092e22..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index f22ae453755ef5..40f657ba12dfd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 273169e5c379b3..8c18e521f0ab9c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 268da473a21865..8c07899f17c912 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). - - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. +- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: 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 51600cdc9fccc1..060f745580ee32 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 @@ -82,9 +82,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -177,9 +177,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -193,16 +193,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -241,8 +241,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -262,9 +262,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -272,7 +272,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -306,9 +306,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene 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 270d7f8c31aad5..7b9392b7d194f3 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 @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 35dc1e027ddfeb..f4215154de6605 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 0aa7c3050737e9..122a0395c08180 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index d2daec9d290eff..dc0b5a8bdb81ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 4d25873c20bb67..d210e1a4e5733b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 2a2c8c212ebeed..5beaa5f717c17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md index c79333546aaf9b..ecac98bd608bb7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 17a1dc3a55f6cb..3bb2eb19a0f57e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 298b233fd2a5ab..681c3352fb09db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 26259a80cdb1e9..eacc596f917ac9 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 44537e451f49b5..5e65abf6ea6b63 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index b54e8fff9daf39..29b19390090283 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 5b985b633281fd..facb115670bf95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index e164069fe5b689..6a5929785ac538 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index ba0e48106f3028..cb189885bf97f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 27910c04913772..22056b4f4e48a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 39bc7be2b0c004..de710cd9d2102d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index b4e81269ad020a..355633c3e4ffb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index d4450f98092e22..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 839c648096a676..b03e5465634991 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: 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 b380e47d56b673..052d2beaf51c2c 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 @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient 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 572d98fdbec957..c64b4f8a9728c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -45,6 +45,15 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi ::: +:::info To learn more + +Blog posts about this feature: + +- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +- [Permissions: Inspect Session Privileges for Easy Debugging](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) + +::: + ### Types de sessions Les types de sessions suivants sont pris en charge par cette classe : @@ -80,11 +89,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e8b5a0245406bc..97ee1a22f9519e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md index ed236bce715b93..916ec43a99d04c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : - - la périodicité des sauvegardes automatiques - - les fichiers à inclure dans chaque sauvegarde - - les fonctionnalités avancées permettant d'exécuter des tâches automatiques +- la périodicité des sauvegardes automatiques +- les fichiers à inclure dans chaque sauvegarde +- les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. +- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. +- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 2dbedc9655644c..3f1b6436ef1e91 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 df9bcc10992a2e..aa94b2fc1eac72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 91166fb527d796..db63beabb77e04 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : - - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). - - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). - - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). +- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). +- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). +- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 5e370324f87391..ecbadaf53b312b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 6f0769bfbaa9c9..951d164b0e46a1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,9 +159,9 @@ In binary databases, you need to select the required components in the 4D instal #### Changements de comportement - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -242,8 +242,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. - - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. +- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. +- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -272,9 +272,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. - - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. - - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. +- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. +- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. +- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -282,25 +282,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). - - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). - - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). - - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. - - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. - - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. - - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. - - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. - - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). - - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). - - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. - - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. +- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). +- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). +- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). +- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. +- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. +- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. +- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. +- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. +- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). +- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). +- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. +- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement - - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). - - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). +- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). +- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -308,21 +308,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. - - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). - - 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 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. +- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. +- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). +- 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 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. #### Changements de comportement - - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). - - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). +- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). +- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -330,24 +330,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. - - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). - - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. - - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). - - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) - - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. - - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). - - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). - - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. +- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. +- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). +- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. +- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). +- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) +- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. +- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). +- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). +- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement - - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. - - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). +- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. +- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. +- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -355,21 +355,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). - - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). - - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) - - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. +- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). +- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). +- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) +- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement - - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). - - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. +- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). +- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -383,15 +383,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts - - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. - - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. - - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. - - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. +- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. +- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. +- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. +- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement - - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. +- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 99054de4a22e01..1f4e78f6cc9c23 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 b6b261c6a82eac..d0e9f6ced759c4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 9b1833f30a7a94..0dd5ed8c4fdfbf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. - - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 3e505993076a99..98f9bd11147e88 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index f311bd3e223da4..5740fc0d6c2ff1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md index 9c67dadb514342..5fd562894348b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 7107fc2990f8a6..9a7e1a0cf81fdb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 84e91529e50622..a5817d0aa7344d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index ab10ddb15ec38c..a9e16ab1adf8ea 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -128,10 +128,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 5d709bf93ae09c..a61af9ff781cc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : - - *4daction/* (la méthode projet appelée doit également être à thread-safe) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) - - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) +- *4daction/* (la méthode projet appelée doit également être à thread-safe) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) +- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 81698313b1d91d..daf11db9f41587 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 5471c3bfed703e..6cddcc5504bfd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 7f5b5c680bfea3..d9285ee439492b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md index c4c80a9153de6c..8e4b4910b6ac60 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md index e4d6424de97c3a..2151b672b79934 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md index ec0153d728629d..f884369402cd33 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md index 30dcbc4cc83b39..b079d06c464f44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. - - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. +- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. - - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. +- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. - - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. +- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base - - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. +- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) - - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). +- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md index b5036401cc05a5..4668a251012507 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. - - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. +- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. - - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. - - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. +- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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 860ea31a77884c..fc721bb398efad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index b4623acbc355ce..933498f2244a73 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -13,6 +13,15 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi ::: +:::info To learn more + +Blog posts about this feature: + +- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +- [Permissions: Inspect Session Privileges for Easy Debugging](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) + +::: + ### Types de sessions Les types de sessions suivants sont pris en charge par cette classe : @@ -48,11 +57,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 4448b28230ca79..9da5511bdf5b7a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index ed236bce715b93..916ec43a99d04c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : - - la périodicité des sauvegardes automatiques - - les fichiers à inclure dans chaque sauvegarde - - les fonctionnalités avancées permettant d'exécuter des tâches automatiques +- la périodicité des sauvegardes automatiques +- les fichiers à inclure dans chaque sauvegarde +- les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. +- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. +- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index bbb5877378151f..1b7faf45be6041 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 07c7cc5a3e58e0..bc7cb2ef2796ea 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 91166fb527d796..db63beabb77e04 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : - - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). - - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). - - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). +- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). +- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). +- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index e830d7305c57de..6c237313576428 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -51,8 +51,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -76,9 +76,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 c5f56eb300b840..8e2c83e3ad3b5c 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 @@ -81,8 +81,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. - - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. +- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. +- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. - - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. - - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. +- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. +- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. +- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). - - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). - - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). - - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. - - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. - - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. - - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. - - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. - - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). - - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). - - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. - - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. +- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). +- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). +- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). +- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. +- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. +- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. +- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. +- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. +- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). +- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). +- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. +- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement - - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). - - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). +- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). +- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. - - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). - - 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 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. +- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. +- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). +- 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 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. #### Changements de comportement - - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). - - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). +- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). +- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -169,24 +169,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. - - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). - - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. - - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). - - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) - - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. - - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). - - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). - - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. +- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. +- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). +- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. +- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). +- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) +- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. +- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). +- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). +- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement - - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. - - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). +- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. +- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. +- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). - - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). - - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) - - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. +- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). +- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). +- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) +- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement - - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). - - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. +- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). +- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts - - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. - - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. - - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. - - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. +- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. +- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. +- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. +- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement - - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. +- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index e330e4922d449a..ba1fd2735d3605 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 29c800d4d3c734..8cda46ce589c99 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -120,9 +120,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -175,11 +175,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index a41348684a5651..a200cf127c27d5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -52,8 +52,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -84,8 +84,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -202,9 +202,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -260,7 +260,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -277,17 +277,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -297,9 +297,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -325,8 +325,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. - - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -399,16 +399,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -442,8 +442,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). - - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. - - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. - - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. - - **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. +- **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). +- **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. +- **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. +- **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. +- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -524,8 +524,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -541,11 +541,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -590,13 +590,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 ce74f984e8662b..1dca2c5fb3f211 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 3fcd42322177a2..76d5a6bbd7b1f0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 9c67dadb514342..5fd562894348b5 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 75fd4a0bc88afd..9e4d78895e35dc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 802d308d7277c3..d24a5ac2255b1c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -128,8 +128,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1ae4af16b38bbd..61877412ae2d4c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -117,10 +117,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 05a96e326d5f89..1b2b27e26c6d0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST Pour chacune de ces méthodes ou parties de code, le compilateur vérifiera si les règles thread-safe sont respectées, et retournera une erreur en cas de problème. Pour plus d'informations à propos des règles thread-safe, veuillez vous référer au paragraphe *Ecrire une méthode thread-safe* dans le chapitre *Process* du manuel de [Langage 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : - - *4daction/* (la méthode projet appelée doit également être à thread-safe) - - *4dcgi/* (les méthodes base appelées doivent également être thread-safe) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) - - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) +- *4daction/* (la méthode projet appelée doit également être à thread-safe) +- *4dcgi/* (les méthodes base appelées doivent également être thread-safe) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) +- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 99fdbc5d1f6199..a2d1f2e0c7862c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -309,9 +309,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -363,7 +363,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index fb2a05807a87d8..332cbfb4f2ca8d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 7f5b5c680bfea3..d9285ee439492b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 4b98187d7cf741..9e5f7ad5a9d05f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 1884e7d3fc1f52..beaa5cb365a0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index be3dfaa8f78096..55d2c6e41c55f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 30dcbc4cc83b39..b079d06c464f44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. - - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. +- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. - - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. +- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. - - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. +- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base - - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. +- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) - - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). +- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index b5036401cc05a5..4668a251012507 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. - - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. +- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. - - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. - - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. +- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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 deebc7df65d7bf..deeb0217c8108f 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 @@ -82,9 +82,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient 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 eb6f8bb2834237..abb8a4f1e3bd87 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 @@ -51,6 +51,15 @@ Articles de blog sur cette fonctionnalité : ::: +:::info To learn more + +Blog posts about this feature: + +- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +- [Permissions: Inspect Session Privileges for Easy Debugging](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) + +::: + ### Types de sessions Les types de sessions suivants sont pris en charge par cette classe : @@ -86,11 +95,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 4448b28230ca79..9da5511bdf5b7a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index bbb5877378151f..1b7faf45be6041 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 df9bcc10992a2e..aa94b2fc1eac72 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 5e370324f87391..ecbadaf53b312b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 b6b261c6a82eac..d0e9f6ced759c4 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index 3b206b26848f7e..f2548492d1ada3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 3e505993076a99..98f9bd11147e88 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index f311bd3e223da4..5740fc0d6c2ff1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 9c67dadb514342..5fd562894348b5 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 7107fc2990f8a6..9a7e1a0cf81fdb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 84e91529e50622..a5817d0aa7344d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 201a3d3dc58230..a61af9ff781cc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 81698313b1d91d..daf11db9f41587 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 5471c3bfed703e..6cddcc5504bfd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 7f5b5c680bfea3..d9285ee439492b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 4b98187d7cf741..9e5f7ad5a9d05f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 1884e7d3fc1f52..beaa5cb365a0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md index ec0153d728629d..f884369402cd33 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : 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 860ea31a77884c..fc721bb398efad 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 @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 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 160f28b397b146..dbdb9acd8d6eef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index fde54ce68e3b01..eacb93bd59f35f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md index e7dd506b28fcb2..eb0d78f1eaa124 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: - - 自動バックアップ用のスケジューラー設定 - - 各バックアップに含めるファイル - - 自動タスクの実行を可能にする高度な設定 +- 自動バックアップ用のスケジューラー設定 +- 各バックアップに含めるファイル +- 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 804217b5d17516..e37db10b0ae5a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index bccd183b3423bf..a421e9046f83c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 4d09df782992d4..275394a1dab283 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: - - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 - - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 - - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 +- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 +- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 +- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 2e756d989d8014..67b11a22727950 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 b56ad9566e6e1d..c0aa4f48c4ee26 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -160,9 +160,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -243,8 +243,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 - - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 +- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -274,9 +274,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 - - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 - - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 +- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -284,25 +284,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 - - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 - - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 - - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 - - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 - - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 - - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 - - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 - - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 - - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 - - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 - - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 - - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 +- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 +- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 +- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 +- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 +- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 +- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 +- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 +- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 +- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 +- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 +- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 +- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 +- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 - - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 - - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 +- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 +- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -310,21 +310,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 - - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 - - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 - - [制限付エンティティセレクション](../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#強制ログイン)。 - - 新しい [$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/))。 +- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 +- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 +- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 +- [制限付エンティティセレクション](../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#強制ログイン)。 +- 新しい [$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/))。 #### 動作の変更 - - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -332,24 +332,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 - - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 - - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 - - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 - - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 - - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート - - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 - - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 - - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 - - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 +- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 +- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 +- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 +- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 +- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 +- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート +- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 +- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 +- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 +- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 - - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 - - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 - - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 +- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 +- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -357,21 +357,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 - - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 - - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 - - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 - - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 - - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 +- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 +- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 +- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 +- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 +- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 +- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 - - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 - - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 +- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 +- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -385,15 +385,15 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 - - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 - - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 +- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 +- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 +- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 - - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 +- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 552cb58d4ecdda..33bc7539dc0b38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md index 9e562869f6c322..e0d5eb69a426f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 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 a8a1f2e3fde1b7..c922921306853f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index 059e4eeddabb19..5979f2a6997c4c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md index a696826968337d..6748776051563e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md index d1128f908f0860..722858ec7053d5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ RESTリクエストで定義されたリレートエンティティのコレク :::note - - **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 - - **ブール** は true または false です。 - - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 +- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 +- **ブール** は true または false です。 +- `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md index 7dd546d4efabf0..d6ad27ed13737d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index d00f1cabd92020..5d069870ab5a4e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 9a91c5604ce4dd..b68bcfc3a991bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index fe5f718531ff93..883be9680d24b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index c3f857a7e0b955..9ded11857f4f7f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -73,15 +73,15 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: - - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) - - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 1fcccdee63d7f9..17c2d431301349 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index b9d772a6d7bb50..020a8dc923f782 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 @@ -629,7 +629,7 @@ This option allows you to designate a user, previously defined in the [4D passwo Keep-Alive接続を設定する 2つのオプションがあります: - - **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

+- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

- **タイムアウト**: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。

diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md index 9991b3a1b720af..097eda5af0b378 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md index 3c58d365a85c90..aba37f55ba8ba5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 9986b0a7644cfc..99d4d0ca7a8ace 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - ブール - - 日付 - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- ブール +- 日付 +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md index bfdc231296e94e..62887e306c2f26 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md index 0fcef929673fec..a4268656a3bb72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md @@ -31,7 +31,7 @@ displayed_sidebar: docs **String** コマンドは、*expression* に渡した数値、日付、時間、文字列、またはブールを文字列に変換します。 -引数を何も渡さなかった場合、適切なデフォルトの形式の文字列で返されます。 *format* を指定すると、結果の文字列は指定した形式になります。 +If you do not pass any other parameter, the string is returned with the appropriate default format. *format* を指定すると、結果の文字列は指定した形式になります。 オプションの*addTime* 引数は、日付に時間を複合フォーマットで追加します。 この引数は *expression* 引数が日付型の時にのみ使用できます (後述)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md index 6e7406bdf9f07b..ba21d38bca8883 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md index 28d2770330b4d8..9a0a68e1cb6570 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 - - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 +- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 - - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 - - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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 dee6d27d5cbc73..5f4c17e5e218a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 270807975f714f..b26f73ab038774 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -390,6 +390,10 @@ Else End if ``` +#### 参照 + +[*Blog posts about this feature*](https://blog.4d.com/?s=hasPrivilege) + diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 199b5df3cca138..6aee01ba447654 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index e7dd506b28fcb2..eb0d78f1eaa124 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: - - 自動バックアップ用のスケジューラー設定 - - 各バックアップに含めるファイル - - 自動タスクの実行を可能にする高度な設定 +- 自動バックアップ用のスケジューラー設定 +- 各バックアップに含めるファイル +- 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 56031713faf0fc..2d464e24017b76 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index d5d31f0b890637..5ced8fbcb3e9a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 4d09df782992d4..275394a1dab283 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: - - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 - - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 - - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 +- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 +- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 +- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index c98e0e88207fa6..053fb26ffbd4a6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -48,8 +48,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -73,9 +73,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 b5a54a0832b98f..359fe1da8101c5 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 @@ -81,8 +81,8 @@ title: リリースノート #### 動作の変更 - - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 - - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 +- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -112,9 +112,9 @@ title: リリースノート #### 動作の変更 - - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 - - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 - - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 +- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -139,8 +139,8 @@ title: リリースノート #### 動作の変更 - - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 - - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 +- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 +- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -148,21 +148,21 @@ title: リリースノート #### ハイライト - - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 - - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 - - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 - - [制限付エンティティセレクション](../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#強制ログイン)。 - - 新しい [$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/))。 +- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 +- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 +- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 +- [制限付エンティティセレクション](../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#強制ログイン)。 +- 新しい [$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/))。 #### 動作の変更 - - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -170,24 +170,24 @@ title: リリースノート #### ハイライト - - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 - - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 - - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 - - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 - - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 - - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート - - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 - - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 - - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 - - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 +- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 +- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 +- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 +- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 +- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 +- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート +- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 +- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 +- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 +- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 - - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 - - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 - - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 +- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 +- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -195,21 +195,21 @@ title: リリースノート #### ハイライト - - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 - - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 - - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 - - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 - - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 - - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 +- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 +- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 +- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 +- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 +- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 +- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 - - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 - - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 +- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 +- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -223,15 +223,15 @@ title: リリースノート #### ハイライト - - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 - - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 - - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 +- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 +- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 +- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 - - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 +- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a67a2c73bd0249..9b6f26afd6daa1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index c1201dea525f67..e1e76859c3dc67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 504e63ace4d540..1dc15ee343d9c6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -121,9 +121,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 4321afc51a3669..63488266de291f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -52,8 +52,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -61,14 +61,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -84,8 +84,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -93,8 +93,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -202,9 +202,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -260,7 +260,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -277,17 +277,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -297,9 +297,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -325,8 +325,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -442,8 +442,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -504,11 +504,11 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 - - **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 - - **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 - - **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 - - **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 +- **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 +- **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 +- **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 +- **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 +- **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 現在のGitHub 依存関係バージョンは、依存関係の項目の右側に表示されます: @@ -595,8 +595,8 @@ You can modify the [version setting](#defining-a-github-dependency-version-range GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 95335f5e527e6c..f2fb2e5f5ad9b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ title: Documentation ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: Documentation - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: Documentation ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: Documentation 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: Documentation `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 7dd546d4efabf0..d6ad27ed13737d 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index caee460543efc5..c394508d9bed5b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 5309c3668387b6..d2178137e0151b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index fa84a99ffa29ba..d7df59f12047f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -38,20 +38,20 @@ title: はじめに ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -129,8 +129,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -147,10 +147,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1dfe242eeda202..e5e45790d725f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 カスタムのHTTP リクエストハンドラーは以下の条件の元にサポートされます: - - [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること - - メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 +- [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること +- メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 :::warning @@ -62,9 +62,9 @@ title: HTTP Request handler ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -84,8 +84,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -117,17 +117,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -208,11 +208,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 8759bf2fda3be9..2bb9bec7a8c8b0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) これらそれぞれのメソッドとコードの部分について、スレッドセーフのルールが遵守されているかをコンパイラーがチェックし、問題があった場合にはエラーを返します。 スレッドセーフルールについての詳細は、[4Dランゲージリファレンス](https://doc.4d.com) マニュアルの *プロセス* の章の *スレッドセーフなメソッドの書き方* の段落を参照ください。 @@ -61,8 +61,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -72,16 +72,16 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: - - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) - - *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) - - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) +- *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 356587fc5d6544..858d01afba03f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 5cbbf2006c4386..d05f6e50c0a5e2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 28eda06a2a0a2f..6305cfc00401be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index 1ceb2de53786d0..ec284ecd7a9bc4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 352fff791b636b..7b6bd571dad62d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - boolean - - date - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- boolean +- date +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index cdb231ed9fe273..f80d1bd1b2f9c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index c3bf63ac21735a..e96fd983130c6e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -108,9 +108,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 28d2770330b4d8..9a0a68e1cb6570 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 - - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 +- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 - - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 - - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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 aa7a5fc2b9e400..fdf86e820851e7 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 @@ -82,9 +82,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 199b5df3cca138..6aee01ba447654 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 56031713faf0fc..2d464e24017b76 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index bccd183b3423bf..a421e9046f83c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 2e756d989d8014..67b11a22727950 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 9e562869f6c322..e0d5eb69a426f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md index a8a1f2e3fde1b7..c922921306853f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 059e4eeddabb19..5979f2a6997c4c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md index a696826968337d..6748776051563e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 7dd546d4efabf0..d6ad27ed13737d 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index f36b0aad301c2f..70ceccbf7b40d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index d00f1cabd92020..5d069870ab5a4e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 9a91c5604ce4dd..b68bcfc3a991bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index fe5f718531ff93..883be9680d24b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index c227634e28caa5..9ded11857f4f7f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 1fcccdee63d7f9..17c2d431301349 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index fe41c5175f7a14..020a8dc923f782 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 28eda06a2a0a2f..6305cfc00401be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index 1ceb2de53786d0..ec284ecd7a9bc4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 352fff791b636b..7b6bd571dad62d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - boolean - - date - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- boolean +- date +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index cdb231ed9fe273..f80d1bd1b2f9c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 6e7406bdf9f07b..ba21d38bca8883 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: 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 dee6d27d5cbc73..5f4c17e5e218a7 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 @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém 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 fa555959894d8e..6ea1fd129e4c34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index ca94ba2f4d4146..e6033ed940d735 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md index 92da3be1d32080..bfc9bb25c04c1c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: - - a periodicidade das cópias de segurança automáticas - - os arquivos a incluir em cada backup - - as funcionalidades avançadas que permitem executar tarefas automáticas +- a periodicidade das cópias de segurança automáticas +- os arquivos a incluir em cada backup +- as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. +- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 4b80f44d529a0b..58ac0e31a2c1ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index f5d90dd86392b9..1138d8154a484c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index d96e75a9aee559..5562a804e07ab3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: - - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). - - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). - - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). +- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). +- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). +- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 67357d2f8733bf..7e1d6622e178ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 7f997593978e8b..833b0892282804 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,9 +159,9 @@ In binary databases, you need to select the required components in the 4D instal #### Mudanças de comportamento - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). ## 4D 20 R10 @@ -200,20 +200,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. - - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). - - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). - - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. - - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. - - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. - - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. - - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. - - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. - - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. +- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. +- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). +- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). +- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. +- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. +- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. +- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. +- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. +- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. +- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -242,8 +242,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. - - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. +- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. +- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -272,9 +272,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. - - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. - - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. +- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. +- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. +- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -282,25 +282,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). - - When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). - - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). - - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. - - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. - - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. - - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. - - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. - - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). - - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). - - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. - - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. - - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. +- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). +- When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). +- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). +- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. +- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. +- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. +- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. +- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. +- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). +- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). +- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. +- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. +- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento - - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). - - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). +- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). +- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -308,21 +308,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. - - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. +- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Mudanças de comportamento - - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). - - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. +- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). +- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -330,24 +330,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. - - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). - - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. - - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). - - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) - - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. - - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. +- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. +- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). +- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. +- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). +- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) +- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. +- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento - - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. - - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). +- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. +- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -355,21 +355,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) - - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. +- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) +- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento - - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). - - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. +- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). +- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -383,15 +383,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques - - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. - - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. +- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. +- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento - - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. +- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index ae9c77ede12e60..2d483010e8a237 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 2d6736f653cf78..6308d745616b51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index f46faa0b61b065..b6c05fefa599fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -39,8 +39,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: - - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. - - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). +- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. +- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: - - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), - - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). +- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), +- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: - - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, - - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** - - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. +- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, +- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** +- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -234,7 +234,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: - - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,9 +284,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". +- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. - - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. +- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md index c1b08acda98594..6fc3020dad7369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md index 61aa1e6d319a20..d21437b56a1f5a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md @@ -193,9 +193,9 @@ Se surgir um problema ao adicionar ou modificar uma entidade, ser-lhe-á enviado :::note - - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). - - **Booleanos** son true o false. - - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). +- **Booleanos** son true o false. +- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md index fcaff5d5555aa3..5b5a61e9954050 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index cb4d9c72d21047..a07d153673411c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 9a2b43bb33fca4..c7087a7d78fa5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - handle an authentication via oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- handle an authentication via oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -95,8 +95,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: - - the first matching pattern is executed - - the following patterns are not executed even if they match the URL +- the first matching pattern is executed +- the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -128,17 +128,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. - - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). - - "method": class function belonging to the class. +- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). +- "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -219,11 +219,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: - - *handle function* in the *GeneralHandling* class - - *manageAccount* na classe *UsersHandling* - - *handleInvoices* na classe \*FinancialHandling - - *handleDocs* na classe *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* +- *handle function* in the *GeneralHandling* class +- *manageAccount* na classe *UsersHandling* +- *handleInvoices* na classe \*FinancialHandling +- *handleDocs* na classe *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index cd92034eb88767..1463e612fb2c56 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 13d80f1e562734..146662cec4481d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - acionar o código 4D configurando eventos - - e muito mais. +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- acionar o código 4D configurando eventos +- e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D - - Desenvolvimento: 4D v20 R2 ou superior - - Desenvolvimento: 4D Server v20 R2 ou superior - - Qodly Studio only works with 4D projects (binary databases are not supported). - - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). - - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). +- Desenvolvimento: 4D v20 R2 ou superior +- Desenvolvimento: 4D Server v20 R2 ou superior +- Qodly Studio only works with 4D projects (binary databases are not supported). +- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). +- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: - - ao nível da aplicação 4D - - a nível do projeto +- ao nível da aplicação 4D +- a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: - - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). - - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. +- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). +- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code The following commands and classes are dedicated to the server-side management of Qodly pages: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. - - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. - - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. - - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. +- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. +- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. +- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: - - Você pode chamar seus métodos a partir de funções classe. - - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. +- Você pode chamar seus métodos a partir de funções classe. +- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty - - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty +- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. - - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. - - O [servidor Web 4D](webServer.md) deve estar em execução. +- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. +- O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -309,9 +309,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: - - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, - - a licença associada ao 4D é liberada, - - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. +- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, +- a licença associada ao 4D é liberada, +- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -363,7 +363,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. - - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. +- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index c546ee102e2cd9..e6222856a3d812 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - O caminho não deve começar nem terminar com uma barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - com 4D em modo remoto, na pasta de recursos locais. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta - - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta +- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). - - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). +- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 9f57b41f63b0af..ae118bb3c8a11f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md index f92975731a6d8c..5a7b84e56d29c0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md index 08307bb537735e..4fd62d255b810f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md index e14ad720abe5ce..a8de63c5c093d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md index 50a676171a8a74..b7f34d3e4b2d0c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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 59cf606f92fedb..0367e339700974 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index b9e7ba45b3c0ac..38a726c3bc2556 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -391,6 +391,10 @@ Else End if ``` +#### Veja também + +[*Blog posts about this feature*](https://blog.4d.com/?s=hasPrivilege) + diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index f145ad3f0030a5..c63253d649fce3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 92da3be1d32080..bfc9bb25c04c1c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: - - a periodicidade das cópias de segurança automáticas - - os arquivos a incluir em cada backup - - as funcionalidades avançadas que permitem executar tarefas automáticas +- a periodicidade das cópias de segurança automáticas +- os arquivos a incluir em cada backup +- as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. +- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 704ebdc0162f49..556bb6af1296b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index f98382730ba66b..67a39c8d81d25d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index d96e75a9aee559..5562a804e07ab3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: - - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). - - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). - - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). +- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). +- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). +- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 08405ce2e879d5..03616bbe2c57c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -49,8 +49,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -74,9 +74,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 bda81ac2c4baa2..4406f1744cd649 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 @@ -39,20 +39,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. - - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). - - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). - - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. - - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. - - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. - - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. - - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. - - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. - - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. +- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. +- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). +- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). +- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. +- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. +- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. +- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. +- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. +- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. +- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. - - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. +- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. +- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. - - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. - - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. +- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. +- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. +- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). - - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). - - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. - - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. - - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. - - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. - - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. - - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). - - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). - - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. - - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. - - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. +- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). +- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). +- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. +- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. +- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. +- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. +- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. +- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). +- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). +- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. +- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. +- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento - - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). - - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). +- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). +- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -147,21 +147,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. - - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. +- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Mudanças de comportamento - - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). - - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. +- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). +- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. - - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). - - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. - - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). - - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) - - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. - - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. +- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. +- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). +- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. +- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). +- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) +- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. +- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento - - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. - - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). +- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. +- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) - - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. +- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) +- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento - - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). - - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. +- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). +- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -222,15 +222,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques - - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. - - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. +- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. +- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento - - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. +- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ceb561ae20b10d..89f7200ce40369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index f89c79f64e5a21..29f41eb921bd1a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -120,9 +120,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 3a277756e5fa88..c78e4286cff83c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -52,8 +52,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: - - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. - - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). +- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. +- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: - - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), - - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). +- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), +- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: - - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, - - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** - - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. +- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, +- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** +- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -84,8 +84,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -202,9 +202,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: - - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -260,7 +260,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -277,17 +277,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -297,9 +297,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". +- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -325,8 +325,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. - - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. +- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -399,16 +399,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -442,8 +442,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Você pode definir a opção [tag ou versão](#tags-and-versions) para uma depen ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). - - **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. - - **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. - - **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. - - **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). +- **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). +- **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. +- **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. +- **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. +- **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). A versão atual da dependência do GitHub é exibida no lado direito do item de dependência: @@ -524,8 +524,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -541,11 +541,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -590,13 +590,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 36d3ee0320e863..f3a85b723ead42 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 fcaff5d5555aa3..5b5a61e9954050 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 9c6345ce096f49..6bcadedbf99395 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -128,8 +128,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -146,10 +146,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 509e11e0a6cb9f..1de6c9b89e4d15 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - handle an authentication via oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- handle an authentication via oAuth 2.0. ## Requisitos Custom HTTP Request handlers are supported: - - quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, - - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). +- quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, +- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -84,8 +84,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: - - the first matching pattern is executed - - the following patterns are not executed even if they match the URL +- the first matching pattern is executed +- the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -117,17 +117,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. - - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). - - "method": class function belonging to the class. +- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). +- "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -208,11 +208,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: - - *handle function* in the *GeneralHandling* class - - *manageAccount* na classe *UsersHandling* - - *handleInvoices* na classe \*FinancialHandling - - *handleDocs* na classe *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* +- *handle function* in the *GeneralHandling* class +- *manageAccount* na classe *UsersHandling* +- *handleInvoices* na classe \*FinancialHandling +- *handleDocs* na classe *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 562e616a835a1e..772b825b9b04c1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada um desses métodos e partes de código, o compilador irá verificar se as regras de segurança de threads são respeitadas, e retornará erros em caso de problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 1591d97b78a034..d1108f678dd9b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - acionar o código 4D configurando eventos - - e muito mais. +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- acionar o código 4D configurando eventos +- e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D - - Desenvolvimento: 4D v20 R2 ou superior - - Desenvolvimento: 4D Server v20 R2 ou superior - - Qodly Studio only works with 4D projects (binary databases are not supported). - - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). - - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). +- Desenvolvimento: 4D v20 R2 ou superior +- Desenvolvimento: 4D Server v20 R2 ou superior +- Qodly Studio only works with 4D projects (binary databases are not supported). +- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). +- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: - - ao nível da aplicação 4D - - a nível do projeto +- ao nível da aplicação 4D +- a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: - - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). - - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. +- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). +- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -146,24 +146,24 @@ There is no direct compatibility between apps implemented with 4D and apps imple The following commands and classes are dedicated to the server-side management of Qodly pages: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. - - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. - - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. - - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. +- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. +- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. +- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: - - Você pode chamar seus métodos a partir de funções classe. - - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. +- Você pode chamar seus métodos a partir de funções classe. +- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty - - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty +- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -179,8 +179,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. - - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. - - O [servidor Web 4D](webServer.md) deve estar em execução. +- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. +- O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -310,9 +310,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: - - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, - - a licença associada ao 4D é liberada, - - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. +- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, +- a licença associada ao 4D é liberada, +- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -364,7 +364,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. - - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. +- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index bfa6e7452d2fcd..15253435c6bf01 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - O caminho não deve começar nem terminar com uma barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - com 4D em modo remoto, na pasta de recursos locais. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta - - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta +- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). - - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). +- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 241cf8f08802d9..8279b68a3320eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 9932777fa589eb..06e4be9e27340c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index 7e4493042ef320..379594a459210d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index e14ad720abe5ce..a8de63c5c093d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 50a676171a8a74..b7f34d3e4b2d0c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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 b13a314a936fc3..2d6ad4f28702f2 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 @@ -82,9 +82,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -177,9 +177,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -193,16 +193,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -242,8 +242,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -263,9 +263,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -273,7 +273,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -307,9 +307,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index f145ad3f0030a5..c63253d649fce3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 704ebdc0162f49..556bb6af1296b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index f5d90dd86392b9..1138d8154a484c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 67357d2f8733bf..7e1d6622e178ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md index 2d6736f653cf78..6308d745616b51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index e249d09c4454c3..b6c05fefa599fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,7 +284,7 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md index c1b08acda98594..6fc3020dad7369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 fcaff5d5555aa3..5b5a61e9954050 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index cb4d9c72d21047..a07d153673411c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 0b8acd50f8d5f4..1463e612fb2c56 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index e51eb633529c2d..e6222856a3d812 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 9f57b41f63b0af..ae118bb3c8a11f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 9932777fa589eb..06e4be9e27340c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 08307bb537735e..4fd62d255b810f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: 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 59cf606f92fedb..0367e339700974 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 @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. From 467d4fcfbbbc26ca2843d71dd51ac18002c09bb2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 29 Aug 2025 14:39:17 +0200 Subject: [PATCH 017/119] icu update 21 + index rebuild --- docs/Notes/updates.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 7e345b2d4b08d9..7e68492a5e5b20 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -117,6 +117,12 @@ In binary databases, you need to select the required components in the 4D instal #### Behavior changes +:::caution Index rebuild + +4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Depending on the size of the data file, this operation can take a while and may require to be planned. + +::: + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). From 666c641fb15a1afef0e94fa56c0b076953f8ca3b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 1 Sep 2025 10:15:40 +0200 Subject: [PATCH 018/119] New Crowdin updates (#2885) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations restore.md (French) * New translations settings.md (French) * New translations dt_pointer.md (French) * New translations basics.md (French) * New translations clientserver.md (French) * New translations onbegindragover.md (French) * New translations ondisplaydetail.md (French) * New translations onheader.md (French) * New translations objectlibrary.md (French) * New translations properties_formsize.md (French) * New translations formobjects_overview.md (French) * New translations list_overview.md (French) * New translations properties_subform.md (French) * New translations stepper.md (French) * New translations analysis.md (French) * New translations repair.md (French) * New translations properties.md (French) * New translations updates.md (French) * New translations remotedatastores.md (French) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations $attributes.md (French) * New translations $method.md (French) * New translations authusers.md (French) * New translations gettingstarted.md (French) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-custom-functions.md (French) * New translations getting-started.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations dt_pointer.md (French) * New translations clientserver.md (French) * New translations dt_pointer.md (French) * New translations clientserver.md (French) * New translations webadmin.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations basics.md (Spanish) * New translations onbegindragover.md (Spanish) * New translations ondisplaydetail.md (Spanish) * New translations onheader.md (Spanish) * New translations objectlibrary.md (Spanish) * New translations properties_formsize.md (Spanish) * New translations formobjects_overview.md (Spanish) * New translations list_overview.md (Spanish) * New translations properties_subform.md (Spanish) * New translations stepper.md (Spanish) * New translations analysis.md (Spanish) * New translations repair.md (Spanish) * New translations properties.md (Spanish) * New translations updates.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations $attributes.md (Spanish) * New translations authusers.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations getting-started.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations form.md (Spanish) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations basics.md (Japanese) * New translations onbegindragover.md (Japanese) * New translations ondisplaydetail.md (Japanese) * New translations onheader.md (Japanese) * New translations objectlibrary.md (Japanese) * New translations properties_formsize.md (Japanese) * New translations formobjects_overview.md (Japanese) * New translations list_overview.md (Japanese) * New translations properties_subform.md (Japanese) * New translations stepper.md (Japanese) * New translations analysis.md (Japanese) * New translations repair.md (Japanese) * New translations properties.md (Japanese) * New translations updates.md (Japanese) * New translations authusers.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations getting-started.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) --- .../current/API/TCPConnectionClass.md | 4 ++-- .../current/Backup/settings.md | 10 +++++----- .../current/Notes/updates.md | 6 ++++++ .../current/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../current/commands/smtp-new-transporter.md | 4 ++-- .../version-20-R10/API/SessionClass.md | 4 ---- .../version-20-R10/API/TCPConnectionClass.md | 4 ++-- .../version-20-R10/Backup/settings.md | 10 +++++----- .../version-20-R10/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- .../version-21/API/TCPConnectionClass.md | 4 ++-- .../version-21/Backup/settings.md | 10 +++++----- .../version-21/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- .../current/API/TCPConnectionClass.md | 4 ++-- .../current/Backup/settings.md | 10 +++++----- .../current/Notes/updates.md | 6 ++++++ .../current/REST/authUsers.md | 4 ++-- .../WritePro/commands/wp-insert-break.md | 18 +++++++++--------- .../current/commands/smtp-new-transporter.md | 4 ++-- .../version-20-R10/API/SessionClass.md | 13 ------------- .../version-20-R10/API/TCPConnectionClass.md | 4 ++-- .../version-20-R10/Backup/settings.md | 10 +++++----- .../version-20-R10/REST/authUsers.md | 4 ++-- .../WritePro/commands/wp-insert-break.md | 18 +++++++++--------- .../commands/smtp-new-transporter.md | 4 ++-- .../version-21/API/TCPConnectionClass.md | 4 ++-- .../version-21/Backup/settings.md | 10 +++++----- .../version-21/REST/authUsers.md | 4 ++-- .../WritePro/commands/wp-insert-break.md | 18 +++++++++--------- .../commands/smtp-new-transporter.md | 4 ++-- .../current/API/TCPConnectionClass.md | 4 ++-- .../current/Backup/settings.md | 10 +++++----- .../current/Notes/updates.md | 6 ++++++ .../current/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../current/commands/smtp-new-transporter.md | 4 ++-- .../version-20-R10/API/SessionClass.md | 4 ---- .../version-20-R10/API/TCPConnectionClass.md | 4 ++-- .../version-20-R10/Backup/settings.md | 10 +++++----- .../version-20-R10/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- .../version-21/API/TCPConnectionClass.md | 4 ++-- .../version-21/Backup/settings.md | 10 +++++----- .../version-21/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- .../current/API/TCPConnectionClass.md | 4 ++-- .../current/Backup/settings.md | 10 +++++----- .../current/Notes/updates.md | 6 ++++++ .../current/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../current/commands/smtp-new-transporter.md | 4 ++-- .../version-20-R10/API/SessionClass.md | 4 ---- .../version-20-R10/API/TCPConnectionClass.md | 4 ++-- .../version-20-R10/Backup/settings.md | 10 +++++----- .../version-20-R10/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- .../version-21/API/TCPConnectionClass.md | 4 ++-- .../version-21/Backup/settings.md | 10 +++++----- .../version-21/REST/authUsers.md | 4 ++-- .../commands/vp-set-custom-functions.md | 4 ++-- .../commands/smtp-new-transporter.md | 4 ++-- 68 files changed, 201 insertions(+), 202 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index cbe8be2571dc20..4b41fc002cb1ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onConnection` se activa cuando se establece la conexión. 2. `onData` se activa cada vez que se reciben datos. 3. Se activa `onShutdown` o `onError`: - - `onShutdown` se activa cuando la conexión se cierra correctamente. - - `onError` se activa si se produce un error. + - `onShutdown` se activa cuando la conexión se cierra correctamente. + - `onError` se activa si se produce un error. 4. `onTerminate` siempre se activa justo antes de que la TCPConnection se libere (la conexión se cierra o se produce un error). #### Objeto TCPEvent diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md index 6f7d863df9f98b..e379dd73f4912b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -139,11 +139,11 @@ El usuario no ve ninguna caja de diálogo; la operación es completamente autom > En el caso de una restauración automática, sólo se restauran los siguientes elementos: > -> - archivo .4DD -> - archivo .4DIndx -> - archivo .4DSyncData -> - archivo .4DSyncHeader -> - Carpeta External Data +> - archivo .4DD +> - archivo .4DIndx +> - archivo .4DSyncData +> - archivo .4DSyncHeader +> - Carpeta External Data > > Si desea obtener los archivos adjuntos o los archivos del proyecto, debe realizar una [restauración manual](restore.md#manually-restoring-a-backup-standard-dialog). 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 64de63859e1f0c..15d4cabf130d96 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,6 +171,12 @@ In binary databases, you need to select the required components in the 4D instal #### Cambios de comportamiento +:::caution Index rebuild + +4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla. + +::: + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index eacc596f917ac9..ceccb568517c05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Una sesión se abre después de que el usuario haya iniciado sesión correctamente (ver más abajo). -> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
-> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. +> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
+> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. ## Forzar el modo de inicio de sesión diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index e854ca72d491ee..d23c7032c8f9ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ En el parámetro *formulaObj*, pase un objeto que contenga las fórmulas 4D que > **ATENCIÓN** -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index ed23c2791d71ff..fedadd9d395fbe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ El comando `SMTP New transporter` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index a3f4a9182e93e2..fbe18967d2676d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Todas las funciones de retrollamada reciben dos parámetros: 1. `onConnection` se activa cuando se establece la conexión. 2. `onData` se activa cada vez que se reciben datos. 3. Se activa `onShutdown` o `onError`: - - `onShutdown` se activa cuando la conexión se cierra correctamente. - - `onError` se activa si se produce un error. + - `onShutdown` se activa cuando la conexión se cierra correctamente. + - `onError` se activa si se produce un error. 4. `onTerminate` siempre se activa justo antes de que la TCPConnection se libere (la conexión se cierra o se produce un error). #### Objeto TCPEvent diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 6f7d863df9f98b..e379dd73f4912b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -139,11 +139,11 @@ El usuario no ve ninguna caja de diálogo; la operación es completamente autom > En el caso de una restauración automática, sólo se restauran los siguientes elementos: > -> - archivo .4DD -> - archivo .4DIndx -> - archivo .4DSyncData -> - archivo .4DSyncHeader -> - Carpeta External Data +> - archivo .4DD +> - archivo .4DIndx +> - archivo .4DSyncData +> - archivo .4DSyncHeader +> - Carpeta External Data > > Si desea obtener los archivos adjuntos o los archivos del proyecto, debe realizar una [restauración manual](restore.md#manually-restoring-a-backup-standard-dialog). 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 eacc596f917ac9..ceccb568517c05 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Una sesión se abre después de que el usuario haya iniciado sesión correctamente (ver más abajo). -> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
-> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. +> - En 4D Server, para abrir una sesión REST es necesario disponer de una licencia gratuita cliente 4D.
+> - En 4D monopuesto, puede abrir hasta tres sesiones REST para realizar pruebas. ## Forzar el modo de inicio de sesión diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index e854ca72d491ee..d23c7032c8f9ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ En el parámetro *formulaObj*, pase un objeto que contenga las fórmulas 4D que > **ATENCIÓN** -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. -> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, los métodos permitidos por el comando [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (si los hay) son ignorados en el área 4D View Pro. +> - En cuanto se llama a `VP SET CUSTOM FUNCTIONS`, las funciones basadas en los comandos `SET TABLE TITLES` y `SET FIELD TITLES` son ignoradas en el área 4D View Pro. ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index ed23c2791d71ff..fedadd9d395fbe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ El comando `SMTP New transporter` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index 1e5cbb7ef76d9c..a4b8cb51bd9cbe 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Toutes les fonctions de callback reçoivent deux paramètres : 1. `onConnection` est déclenchée lorsque la connexion est établie. 2. `onData` est déclenchée à chaque fois que des données sont reçues. 3. `onShutdown` ou `onError` est déclenchée : - - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. - - `onError` est déclenchée en cas d'erreur. + - `onShutdown` est déclenchée lorsque la connexion est correctement fermée. + - `onError` est déclenchée en cas d'erreur. 4. `onTerminate` est toujours déclenchée juste avant que la TCPConnection soit libérée (la connexion est fermée ou une erreur s'est produite). #### Objet TCPEvent diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 916ec43a99d04c..f3cd2662e9f6de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -138,11 +138,11 @@ Aucune boîte de dialogue n’est présentée à l’utilisateur, l’opération > En cas de restitution automatique, seuls les éléments suivants sont restitués : > -> - Fichier .4DD -> - Fichier .4DIndx -> - Fichier .4DSyncData -> - Fichier .4DSyncHeader -> - Dossier External Data +> - Fichier .4DD +> - Fichier .4DIndx +> - Fichier .4DSyncData +> - Fichier .4DSyncHeader +> - Dossier External Data > > Si vous souhaitez obtenir les fichiers joints ou les fichiers de projet, vous devez effectuer une [restauration manuelle](restore.md#manually-restoring-a-backup-standard-dialog). 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 5fd562894348b5..e250d67261da91 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 @@ -11,8 +11,8 @@ Lorsqu'une session utilisateur web est ouverte, vous pouvez la gérer via l'obje Une session est ouverte après que l'utilisateur a été connecté avec succès (voir ci-dessous). -> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
-> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. +> - Sur 4D Server, l'ouverture d'une session REST nécessite une licence client 4D disponible.
+> - Sur 4D mono-utilisateur, vous pouvez ouvrir jusqu'à trois sessions REST à des fins de test. ## Mode Force login diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index d9285ee439492b..a312698abd737f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -30,21 +30,21 @@ Dans *targetObj*, passez : Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : -| Constante | Type | Valeur | Commentaire | -| --------------------------- | ------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | -| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | -| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | -| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | -| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | +| Constante | Type | Valeur | Commentaire | +| --------------------------- | ------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk column break | Integer | 3 | Pause de colonne : insère un saut de colonne | +| wk continuous section break | Integer | 5 | Définit un saut de section continu (souvent utilisé pour modifier le nombre de colonnes sans commencer une nouvelle page). | +| wk line break | Integer | 0 | Saut de ligne (dans le même paragraphe) | +| wk page break | Integer | 2 | Saut de page : définit une nouvelle page | +| wk paragraph break | Integer | 4 | Saut de paragraphe : définit un nouveau paragraphe | | wk section break | Integer | 1 | \| wk section break \| Integer \| 1 \| Saut de section : définit une nouvelle section \|Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertion à utiliser pour le break dans la destination *targetObj* :| Constante | Type | Valeur | Commentaire | | ---------- | ------- | ------ | --------------------------------------- | | wk append | Integer | 2 | Insérer le contenu à la fin de la cible | | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | -| wk replace | Integer | 0 | Remplacer le contenu de la cible | * Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | +| wk replace | Integer | 0 | Remplacer le contenu de la cible |* Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante :| Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | | wk exclude from range | Integer | 1 | Les contenus insérés ne sont pas inclus dans la plage mise à jour | -| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. * Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d +| wk include in range | Integer | 0 | Contenu inséré inclus dans la plage mise à jour (par défaut) |Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante.* Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré.## Exemple 1Lors de la construction des factures, vous voulez insérer des sauts de page sauf sur la dernière page :```4d $nbInvoices:=Records in selection([INVOICE]) For($j;1;$nbInvoices) ... //traitement des factures diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index 82fd558c7f3cd3..e0601b81d3cbd6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ La commande `SMTP New transporter` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index dae83d963d3e62..fd36d392890c55 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し 1. `onConnection` は接続が確立した時にトリガーされます。 2. `onData` はデータが受信されるたびにトリガーされます。 3. `onShutdown` または `onError` はそれぞれ以下の場合にトリガーされます: - - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 - - `onError` はエラーが発生した場合にトリガーされます。 + - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 + - `onError` はエラーが発生した場合にトリガーされます。 4. `onTerminate` は常にTCPConnection がリリースされる直前にトリガーされます(接続が閉じられたか、エラーが発生した場合です)。 #### TCPEvent オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index eb0d78f1eaa124..6cb8c4dba500f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -141,11 +141,11 @@ title: バックアップ設定 > 自動復元の場合、復元されるのは次の要素に限られます: > -> - .4DD ファイル -> - .4DIndx ファイル -> - .4DSyncData ファイル -> - .4DSyncHeader ファイル -> - External Data フォルダー +> - .4DD ファイル +> - .4DIndx ファイル +> - .4DSyncData ファイル +> - .4DSyncHeader ファイル +> - External Data フォルダー > > 添付ファイルやプロジェクトファイルを取得したい場合、[手動の復元](restore.md#手動でバックアップから復元する-標準ダイアログ) をおこなう必要があります。 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 d6ad27ed13737d..3261d080e8448f 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 @@ -11,8 +11,8 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 -> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
-> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 +> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
+> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 ## 強制ログインモード diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index a4ac181ca663cc..8c040c531c5c18 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ title: VP SET CUSTOM FUNCTIONS > **警告** -> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 -> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index 42c387e4084be0..509c272ec9aaff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ displayed_sidebar: docs > > SMTP接続は、以下の場合に自動的に閉じられます: > -> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 -> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 +> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 +> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 1c987ab3ac26bb..db3cb9922d3000 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し 1. `onConnection` は接続が確立した時にトリガーされます。 2. `onData` はデータが受信されるたびにトリガーされます。 3. `onShutdown` または `onError` はそれぞれ以下の場合にトリガーされます: - - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 - - `onError` はエラーが発生した場合にトリガーされます。 + - `onShutdown` は接続が適切に閉じられた時にトリガーされます。 + - `onError` はエラーが発生した場合にトリガーされます。 4. `onTerminate` は常にTCPConnection がリリースされる直前にトリガーされます(接続が閉じられたか、エラーが発生した場合です)。 #### TCPEvent オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md index e7dd506b28fcb2..0e37e810c9dc72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -141,11 +141,11 @@ title: バックアップ設定 > 自動復元の場合、復元されるのは次の要素に限られます: > -> - .4DD ファイル -> - .4DIndx ファイル -> - .4DSyncData ファイル -> - .4DSyncHeader ファイル -> - External Data フォルダー +> - .4DD ファイル +> - .4DIndx ファイル +> - .4DSyncData ファイル +> - .4DSyncHeader ファイル +> - External Data フォルダー > > 添付ファイルやプロジェクトファイルを取得したい場合、[手動の復元](restore.md#手動でバックアップから復元する-標準ダイアログ) をおこなう必要があります。 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 d6ad27ed13737d..3261d080e8448f 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 @@ -11,8 +11,8 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 -> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
-> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 +> - 4D Server 上では、開かれる RESTセッションにつき、4Dクライアントライセンスが 1 消費されます。
+> - シングルユーザーの 4D では、テスト目的で RESTセッションを 3つまで開くことができます。 ## 強制ログインモード diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md index a4ac181ca663cc..8c040c531c5c18 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ title: VP SET CUSTOM FUNCTIONS > **警告** -> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 -> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出された場合、[VP SET ALLOWED METHODS](vp-set-allowed-methods.md) コマンドにより許可されたメソッド (あれば) は同 4D View Pro エリアにおいて無視されます。 +> - `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md index 42c387e4084be0..509c272ec9aaff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ displayed_sidebar: docs > > SMTP接続は、以下の場合に自動的に閉じられます: > -> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 -> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 +> - [`.keepAlive`](#keepalive) プロパティが true (デフォルト) の場合に、transporter オブジェクトが消去された時。 +> - [`keepAlive`](../API/SMTPTransporterClass.md#keepalive) プロパティがfalse に設定されている場合に、[`.send()`](../API/SMTPTransporterClass.md#send) 関数が実行された後。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index a9985b845d4e41..ab14480d12c124 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -197,8 +197,8 @@ Todas as funções de chamada de retorno recebem dois parâmetros de objectos: 1. O `onConnection` é acionado quando a conexão é estabelecida. 2. `onData` é acionado cada vez que os dados são recebidos. 3. O `onShutdown` ou o `onError` estão ativados: - - O `onShutdown` é acionado quando a conexão for fechada corretamente. - - `onError` é acionado se ocorrer um erro. + - O `onShutdown` é acionado quando a conexão for fechada corretamente. + - `onError` é acionado se ocorrer um erro. 4. O `onTerminate` é sempre acionado logo antes de a TCPConnection ser liberada (a conexão é fechada ou ocorre um erro). #### Objeto TCPEvent diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md index bfc9bb25c04c1c..9122d4ff37673f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -141,11 +141,11 @@ O usuário não vê uma caixa de diálogo, a operação é automática. O objeti > No caso de uma restauração automática, somente os seguintes elementos são restaurados: > -> - ficheiro .4DD -> - ficheiro .4DIndx -> - .4DSyncData file -> - ficheiro .4DSyncHeader -> - Pasta External Data +> - ficheiro .4DD +> - ficheiro .4DIndx +> - .4DSyncData file +> - ficheiro .4DSyncHeader +> - Pasta External Data > > Se quiser obter os arquivos anexados ou os arquivos do projeto, você deve realizar uma [restauração manual](restore.md#manually-restoring-a-backup-standard-dialog). 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 833b0892282804..a5b1b31604f263 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,6 +159,12 @@ In binary databases, you need to select the required components in the 4D instal #### Mudanças de comportamento +:::caution Index rebuild + +4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada. + +::: + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md index 5b5a61e9954050..f552e7d35b35e5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Uma sessão é aberta depois que o usuário é autenticado com sucesso (veja abaixo). -> - On 4D Server, opening a REST session requires that a free 4D client license is available.
-> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. +> - On 4D Server, opening a REST session requires that a free 4D client license is available.
+> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. ## Force login mode diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index 569a3566bf39f4..a2a1c8771fb6ec 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ In the *formulaObj* parameter, pass an object containing the 4D formulas that ca > **AVISO** -> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. -> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. +> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. +> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md index 30037ce286891f..41c11c1e359b7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ The `SMTP New transporter` command diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md index 24bbe9f4ef4d39..5e345425438479 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/TCPConnectionClass.md @@ -196,8 +196,8 @@ Todas as funções de chamada de retorno recebem dois parâmetros de objectos: 1. O `onConnection` é acionado quando a conexão é estabelecida. 2. `onData` é acionado cada vez que os dados são recebidos. 3. O `onShutdown` ou o `onError` estão ativados: - - O `onShutdown` é acionado quando a conexão for fechada corretamente. - - `onError` é acionado se ocorrer um erro. + - O `onShutdown` é acionado quando a conexão for fechada corretamente. + - `onError` é acionado se ocorrer um erro. 4. O `onTerminate` é sempre acionado logo antes de a TCPConnection ser liberada (a conexão é fechada ou ocorre um erro). #### Objeto TCPEvent diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index bfc9bb25c04c1c..9122d4ff37673f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -141,11 +141,11 @@ O usuário não vê uma caixa de diálogo, a operação é automática. O objeti > No caso de uma restauração automática, somente os seguintes elementos são restaurados: > -> - ficheiro .4DD -> - ficheiro .4DIndx -> - .4DSyncData file -> - ficheiro .4DSyncHeader -> - Pasta External Data +> - ficheiro .4DD +> - ficheiro .4DIndx +> - .4DSyncData file +> - ficheiro .4DSyncHeader +> - Pasta External Data > > Se quiser obter os arquivos anexados ou os arquivos do projeto, você deve realizar uma [restauração manual](restore.md#manually-restoring-a-backup-standard-dialog). 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 5b5a61e9954050..f552e7d35b35e5 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 @@ -11,8 +11,8 @@ Cuando se abre una sesión de usuario web, puede manejarla a través del objeto Uma sessão é aberta depois que o usuário é autenticado com sucesso (veja abaixo). -> - On 4D Server, opening a REST session requires that a free 4D client license is available.
-> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. +> - On 4D Server, opening a REST session requires that a free 4D client license is available.
+> - Em 4D single-user, pode abrir até três sessões REST para fins de teste. ## Force login mode diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md index 569a3566bf39f4..a2a1c8771fb6ec 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-custom-functions.md @@ -39,8 +39,8 @@ In the *formulaObj* parameter, pass an object containing the 4D formulas that ca > **AVISO** -> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. -> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. +> - Assim que `VP SET CUSTOM FUNCTIONS` for chamado, os métodos permitidos pelo [VP SET ALLOWED METHODS](vp-set-allowed-methods.md) (se houver) são ignorados na área 4D View Pro. +> - As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TABLE TITLES` and `SET FIELD TITLES` commands are ignored in the 4D View Pro area. ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md index 30037ce286891f..41c11c1e359b7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/smtp-new-transporter.md @@ -33,8 +33,8 @@ The `SMTP New transporter` command -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 618a8eedb7b7e7..840991a04d0272 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 618a8eedb7b7e7..840991a04d0272 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) From c49178b6b1472d08fc067b4506c1ccae8839e94f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 20 Aug 2025 09:42:55 +0200 Subject: [PATCH 027/119] New Crowdin updates (#2874) * New translations mandata.md (French) * New translations dataclassclass.md (French) * New translations mandata.md (French) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations $singleton.md (French) * New translations http-request-handler.md (French) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations wa-set-context.md (Spanish) * New translations string.md (Spanish) * New translations mandata.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Spanish) * New translations classes.md (Spanish) --- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../fr/docusaurus-plugin-content-docs/current/REST/genInfo.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../version-20-R10/REST/genInfo.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../docusaurus-plugin-content-docs/version-21/REST/genInfo.md | 2 +- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20/ViewPro/method-list.md | 4 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- 28 files changed, 32 insertions(+), 32 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index e122ecdf423030..b4c2ea5824cb55 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 4ccd334c12e81f..6fb0bcfe3b253b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 2c07ce37e8d865..4feda5a989c3d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1137,7 +1137,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3905,7 +3905,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index e122ecdf423030..b4c2ea5824cb55 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 7a0a85d4f52577..fbdde891935a18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 072da0f1050400..7d59f919977170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 67bc1ec431ffc8..2fb0dddac7c155 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index fdb8611f0b61ad..efd8465f621ec4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3902,7 +3902,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md index d8f8c0149f1323..348b801ed8a783 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/genInfo.md @@ -10,7 +10,7 @@ Vous pouvez obtenir plusieurs informations du serveur REST : ## Catalogue -Use the [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass), or [`$catalog/$all`]($catalog.md#catalogall) parameters to get the list of [exposed dataclasses and their attributes](configuration.md#exposing-tables-and-fields). +Utilisez les paramètres [`$catalog`]($catalog.md), [`$catalog/{dataClass}`]($catalog.md#catalogdataclass) ou [`$catalog/$all`]($catalog.md#catalogall) pour obtenir la liste des [dataclass exposées et de leurs attributs](configuration.md#exposing-tables-and-fields). Pour obtenir la collection de toutes les dataclass exposées avec leurs attributs : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 072da0f1050400..7d59f919977170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 70ceccbf7b40d6..f36b0aad301c2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index c394508d9bed5b..caee460543efc5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index b74fd7aff2a034..765b9628dbd8f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3906,7 +3906,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 70ceccbf7b40d6..f36b0aad301c2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 9aff390b955ca6..dbce5f598859fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 21257ef833a0bf..6bf64392b8daa5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1133,7 +1133,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3886,7 +3886,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index a69e8faeea2a78..9f8db97da06cb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 3095815f840351..042bb9c8815ff4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) From 26f9b168fb6984c3d25ded790c7e184689ab5a0d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 21 Aug 2025 09:58:29 +0200 Subject: [PATCH 028/119] New Crowdin updates (#2875) * New translations remotedatastores.md (French) * New translations updates.md (Spanish) * New translations global-stamp.md (Spanish) * New translations orda-events.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations updates.md (Japanese) * New translations global-stamp.md (Japanese) * New translations orda-events.md (Japanese) * New translations remotedatastores.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations code-overview.md (French) * New translations compiler.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations compiler.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations general.md (Japanese) * New translations methods.md (Japanese) * New translations architecture.md (Japanese) * New translations code-overview.md (Japanese) * New translations compiler.md (Japanese) * New translations components.md (Japanese) * New translations documentation.md (Japanese) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (Portuguese, Brazilian) * New translations compiler.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (French) * New translations $attributes.md (Spanish) * New translations $attributes.md (Japanese) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (French) * New translations $method.md (French) * New translations $lock.md (Spanish) * New translations $method.md (Spanish) * New translations $lock.md (Japanese) * New translations $method.md (Japanese) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations authusers.md (French) * New translations configuration.md (French) * New translations gettingstarted.md (French) * New translations classfunctions.md (Spanish) * New translations authusers.md (Spanish) * New translations configuration.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations classfunctions.md (Japanese) * New translations authusers.md (Japanese) * New translations configuration.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations configuration.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations handling_users_groups.md (French) * New translations overview.md (French) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations handling_users_groups.md (Japanese) * New translations overview.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-export-document.md (Japanese) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (French) * New translations vp-get-value.md (French) * New translations vp-import-document.md (French) * New translations vp-get-stylesheets.md (Spanish) * New translations vp-get-value.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-get-stylesheets.md (Japanese) * New translations vp-get-value.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-remove-table-rows.md (Spanish) * New translations vp-remove-table.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-remove-table-rows.md (Japanese) * New translations vp-remove-table.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-remove-table-rows.md (Portuguese, Brazilian) * New translations vp-remove-table.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-current-sheet.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-current-sheet.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations vp-set-current-sheet.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations vp-set-current-sheet.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations formulas.md (French) * New translations formulas.md (Spanish) * New translations getting-started.md (French) * New translations from-qodlyscript-to-4d.md (French) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations templates.md (French) * New translations getting-started.md (Spanish) * New translations from-qodlyscript-to-4d.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations templates.md (Spanish) * New translations formulas.md (Japanese) * New translations getting-started.md (Japanese) * New translations from-qodlyscript-to-4d.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations http-request-handler.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations templates.md (Japanese) * New translations formulas.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations webserverobject.md (French) * New translations wp-get-attributes.md (French) * New translations wp-insert-break.md (French) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations webserverobject.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webserverobject.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-table-append-row.md (French) * New translations writeprointerface.md (French) * New translations wp-insert-document-body.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations wp-insert-break.md (Japanese) * New translations wp-insert-document-body.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-table-append-row.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form.md (French) * New translations form-event.md (Spanish) * New translations form.md (Spanish) * New translations form-event.md (Japanese) * New translations form.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations formula-from-string.md (French) * New translations formula-from-string.md (Spanish) * New translations formula-from-string.md (Japanese) * New translations formula-from-string.md (Portuguese, Brazilian) * New translations new-shared-collection.md (French) * New translations object-get-data-source-formula.md (French) * New translations print-form.md (French) * New translations process-info.md (French) * New translations new-shared-collection.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations print-form.md (Spanish) * New translations process-info.md (Spanish) * New translations new-shared-collection.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations print-form.md (Japanese) * New translations process-info.md (Japanese) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (French) * New translations smtp-new-transporter.md (Spanish) * New translations smtp-new-transporter.md (Japanese) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations compatibility.md (French) * New translations database.md (French) * New translations interface.md (French) * New translations client-server.md (Spanish) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations interface.md (Spanish) * New translations client-server.md (Japanese) * New translations compatibility.md (Japanese) * New translations database.md (Japanese) * New translations interface.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (French) * New translations web.md (French) * New translations security.md (Spanish) * New translations web.md (Spanish) * New translations string.md (Spanish) * New translations security.md (Japanese) * New translations web.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) --- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 160 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 30 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 82 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../current/WritePro/writeprointerface.md | 18 +- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 6 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 +++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 34 ++-- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 82 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../WritePro/writeprointerface.md | 18 +- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 30 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 82 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../version-21/WritePro/writeprointerface.md | 18 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 132 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 8 +- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 60 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 76 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 10 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 18 +- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 132 +++++++-------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 8 +- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 60 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 10 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 18 +- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 60 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 132 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 30 ++-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 78 ++++----- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++--- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 24 +-- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 24 +-- .../current/settings/security.md | 8 +- .../current/settings/web.md | 40 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 104 ++++++------ .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 30 ++-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 88 +++++----- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 24 +-- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 24 +-- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 40 ++--- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 30 ++-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 78 ++++----- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 38 ++--- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 24 +-- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/database.md | 16 +- .../version-21/settings/interface.md | 24 +-- .../version-21/settings/web.md | 40 ++--- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 160 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++--- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 +++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 78 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-20/ViewPro/method-list.md | 4 +- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 100 +++++------ .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 52 +++--- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- 847 files changed, 8256 insertions(+), 8256 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index dc0b5a8bdb81ab..d2daec9d290eff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 209a1daf6f52d8..b9a18ff620c4cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: -- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). -- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). -- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). + - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). + - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). + - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index d210e1a4e5733b..4d25873c20bb67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 a8506312f9bf45..cd3d918181d68b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -219,20 +219,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado -- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. -- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). -- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). -- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. -- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. -- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. -- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. -- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. -- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. + - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. + - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). + - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). + - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. + - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. + - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. + - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. + - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. + - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -261,8 +261,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento -- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). -- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. + - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). + - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -291,9 +291,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento -- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. -- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. + - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. + - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. + - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -301,25 +301,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado -- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). -- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). -- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. -- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. -- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. -- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. -- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). -- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). -- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. -- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. + - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). + - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). + - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. + - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. + - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. + - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. + - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. + - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). + - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). + - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. + - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento -- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). -- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). + - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). + - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -327,21 +327,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado -- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. -- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. + - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Cambios de comportamiento -- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). -- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. + - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). + - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -349,24 +349,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. -- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). -- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. -- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). -- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) -- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. -- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. + - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. + - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). + - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. + - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). + - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) + - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. + - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento -- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. -- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). + - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. + - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -374,21 +374,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado -- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). -- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) -- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. + - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). + - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) + - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento -- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). -- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. + - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). + - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -402,15 +402,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado -- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. -- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. + - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. + - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento -- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. + - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 086ad86ee9d7d0..6403abc6f122c5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md index 5beaa5f717c17c..2a2c8c212ebeed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 ecac98bd608bb7..c79333546aaf9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 3bb2eb19a0f57e..75eb7461d886fa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -321,12 +321,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: -- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` -- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente + - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` + - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. -- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. + - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md index 681c3352fb09db..298b233fd2a5ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md index ec63e8eb56445e..f69e07af2020a7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ Si surge un problema al añadir o modificar una entidad, se le devolverá un err :::note -- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). -- **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: + - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). + - **Booleanos** son true o false. + - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index ceccb568517c05..24b7bf5648a51f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 5e65abf6ea6b63..44537e451f49b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 29b19390090283..b54e8fff9daf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index facb115670bf95..5b985b633281fd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 6a5929785ac538..e36b294ecdbc05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index cb189885bf97f9..ba0e48106f3028 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 22056b4f4e48a2..27910c04913772 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md index 7a1cd053401abd..66a61c54e79788 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md index d1c77227cb7186..4b893aee1c3cde 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md index 1358e18b92a2e4..2048b233e917a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md index b03e5465634991..839c648096a676 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. -- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). -- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. + - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). + - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). -- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md index 6bb87b46f5aa7b..de79b558326cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. -- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: + - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. -- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). + - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). -- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). + - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). -- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md index 8c18e521f0ab9c..273169e5c379b3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: -- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. -- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. -- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. + - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. + - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. + - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. -- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. + - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. -- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. + - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. -- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. + - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base -- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. + - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) -- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). + - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md index ee3a539cd2cf6c..937c8080907814 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md index 8c07899f17c912..268da473a21865 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. -- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. + - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. -- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html + - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic -- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. + - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). -- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. + - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md index 052d2beaf51c2c..b380e47d56b673 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: -- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) -- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) -- [Usar procesos apropiativos](#use-preemptive-processes) + - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) + - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) + - [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: -- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. + - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. -- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) -- estado: respuesta dada por el servidor. -- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. + - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) + - estado: respuesta dada por el servidor. + - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. -- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. + - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. -- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. + - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. -- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. + - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. -- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. -- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. -- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. + - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. + - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. -- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". + - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: -- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. -- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). -- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. + - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. + - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). + - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 513d2fdda8fdee..516b88ef8f1386 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas -- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. -- Si se llama a `.new()` en una clase inexistente, se devuelve un error. + - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. + - Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index 8372233057679f..944900df8642e6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index f4215154de6605..35dc1e027ddfeb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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..9cb80c2d0eb549 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index e379dd73f4912b..eb8078048537b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: -- la periodicidad de las copias de seguridad automáticas -- los archivos a incluir en cada copia de seguridad -- las funcionalidades avanzadas permiten ejecutar tareas automáticas + - la periodicidad de las copias de seguridad automáticas + - los archivos a incluir en cada copia de seguridad + - las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. + - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. + - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 122a0395c08180..0aa7c3050737e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index f780ef9be2a24d..a12a7f4383b866 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 209a1daf6f52d8..b9a18ff620c4cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: -- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). -- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). -- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). + - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). + - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). + - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 6da59e6c97d55e..1f675a4d86f9f0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -48,8 +48,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -73,9 +73,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 d82ec8269a7b3a..0c2f7a4f769a86 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 @@ -39,20 +39,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado -- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. -- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). -- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). -- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. -- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. -- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. -- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. -- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. -- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. + - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. + - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). + - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). + - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. + - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. + - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. + - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. + - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. + - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento -- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). -- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. + - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). + - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento -- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. -- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. -- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. + - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. + - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. + - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado -- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). -- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). -- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. -- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. -- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. -- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. -- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. -- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). -- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). -- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. -- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. + - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). + - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). + - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. + - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. + - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. + - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. + - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. + - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). + - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). + - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. + - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento -- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). -- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). + - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). + - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado -- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. -- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. + - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Cambios de comportamiento -- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). -- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. + - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). + - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado -- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. -- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). -- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. -- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). -- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) -- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. -- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. + - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. + - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). + - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. + - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). + - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) + - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. + - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento -- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. -- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). + - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. + - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado -- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). -- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) -- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. + - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). + - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) + - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento -- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). -- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. + - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). + - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado -- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. -- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). -- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. + - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. + - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento -- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. + - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 163716adebf666..a012ba936d84c7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 6a6eb8c18fccf1..312390bb364e25 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index a68cafc8accf20..25c5e832dd4c74 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -120,9 +120,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 9f30f95e0bee18..e5c023c74dc4ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -52,8 +52,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -84,8 +84,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -202,9 +202,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -260,7 +260,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -277,17 +277,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -297,9 +297,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -325,8 +325,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -334,12 +334,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: -- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` -- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente + - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` + - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. -- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. + - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -399,16 +399,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -442,8 +442,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Puede definir la opción [etiqueta o versión](#tags-and-versions) para una depe ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). -- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. -- **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. -- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. -- **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. + - **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). + - **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. + - **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. + - **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. + - **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. La versión actual de la dependencia de GitHub se muestra a la derecha del elemento de la dependencia: @@ -524,8 +524,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -541,11 +541,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -590,13 +590,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 0424c8317dd555..5e5adbeac0bf42 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 ceccb568517c05..24b7bf5648a51f 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index ce43ad5c50c92a..f3f4fcc5d0f427 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 41a1b586494a9d..39f6937781b698 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -128,8 +128,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 979c997dc5f3c5..81fe353cd4dd44 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos Se soportan gestores de solicitudes HTTP personalizados: -- cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, -- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). + - cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, + - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -117,10 +117,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -208,11 +208,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index b7275944048a9f..bcad278ae763c0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada uno de estos métodos y partes de código, el compilador comprobará si se respetan las reglas de seguridad de hilos, y devolverá errores en caso de que haya problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 5988064c941307..d253ad2ebbc034 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -146,24 +146,24 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -179,8 +179,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -310,9 +310,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -364,7 +364,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 53a74bd7541a51..f54bad738b3034 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index de710cd9d2102d..39bc7be2b0c004 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index 355633c3e4ffb9..b4e81269ad020a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index b1777d0a1ecce1..d4450f98092e22 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index 40f657ba12dfd0..f22ae453755ef5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. -- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). -- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. + - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). + - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). -- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index 6bb87b46f5aa7b..de79b558326cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. -- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: + - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. -- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). + - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). -- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). + - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). -- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 8c18e521f0ab9c..273169e5c379b3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: -- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. -- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. -- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. + - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. + - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. + - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. -- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. + - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. -- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. + - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. -- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. + - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base -- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. + - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) -- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). + - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index ee3a539cd2cf6c..937c8080907814 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 8c07899f17c912..268da473a21865 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. -- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. + - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. -- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html + - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic -- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. + - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). -- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. + - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: 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 060f745580ee32..51600cdc9fccc1 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 @@ -82,9 +82,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: -- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) -- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) -- [Usar procesos apropiativos](#use-preemptive-processes) + - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) + - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) + - [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: -- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. + - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -177,9 +177,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. -- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) -- estado: respuesta dada por el servidor. -- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. + - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) + - estado: respuesta dada por el servidor. + - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -193,16 +193,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. -- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. + - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. -- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. + - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. -- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. + - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -241,8 +241,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -262,9 +262,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. -- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. -- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. -- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. + - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. + - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -272,7 +272,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. -- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". + - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -306,9 +306,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: -- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. -- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). -- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. + - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. + - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). + - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 4feda5a989c3d9..2c07ce37e8d865 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1137,7 +1137,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3905,7 +3905,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 513d2fdda8fdee..516b88ef8f1386 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas -- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. -- Si se llama a `.new()` en una clase inexistente, se devuelve un error. + - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. + - Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md index 8372233057679f..944900df8642e6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index e8bdc8c311c943..2f5406c0df3c06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: -- Text -- Blob -- Object -- Imagen + - Text + - Blob + - Object + - Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: -- Content-Type:text/plain si el cuerpo es un Texto -- Content-Type:application/octet-stream si el body es un Blob -- Content-Type:application/json si el body es un objeto -- Content-Type:image/jpeg, image/gif... si el body es una imagen + - Content-Type:text/plain si el cuerpo es un Texto + - Content-Type:application/octet-stream si el body es un Blob + - Content-Type:application/json si el body es un objeto + - Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index f4215154de6605..35dc1e027ddfeb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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..9cb80c2d0eb549 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 122a0395c08180..0aa7c3050737e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index dc0b5a8bdb81ab..d2daec9d290eff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: -- [objetos de subformulario](FormObjects/subform_overview.md) -- [formularios heredados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulario](FormObjects/subform_overview.md) + - [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: -- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. -- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. -- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: + - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. + - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. + - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: -- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. + - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. -- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. + - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: -- una página 1: una página principal, mostrada por defecto -- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. + - una página 1: una página principal, mostrada por defecto + - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: -- Coloque la información más importante en la primera página y la menos importante en otras. -- Organice cada tema en su propia página. -- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). -- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. + - Coloque la información más importante en la primera página y la menos importante en otras. + - Organice cada tema en su propia página. + - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). + - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index b56b453cb2a0a2..a549dcc06d28ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: -- Crear y ejecutar código 4D -- Mostrar las cajas de diálogo -- Seleccione los objetos de formulario -- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades -- Modificar los archivos del proyecto (actualizar, eliminar) + - Crear y ejecutar código 4D + - Mostrar las cajas de diálogo + - Seleccione los objetos de formulario + - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades + - Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: -- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). + - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). -- Utilizando un objeto con la siguiente estructura: + - Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: -- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. -- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. -- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. + - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. + - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. + - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: -- borrar o modificar un script cuyo archivo es de sólo lectura. -- crear dos objetos con el mismo ID interno. + - borrar o modificar un script cuyo archivo es de sólo lectura. + - crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index a5f6af94871bb5..adf4e370f8ed57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: -- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. -- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. + - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. + - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: -- formularios proyecto -- páginas formulario 1 + - formularios proyecto + - páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) -- **Cortar** o **Copiar** al portapapeles -- **Pegar** un objeto del tablero portapapeles -- **Borrar** - elimina el objeto de la librería -- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. + - **Cortar** o **Copiar** al portapapeles + - **Pegar** un objeto del tablero portapapeles + - **Borrar** - elimina el objeto de la librería + - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): -- Listas -- Formatos/Filtros -- Imágenes -- Mensajes de ayuda (asociados a un campo) -- Métodos objeto + - Listas + - Formatos/Filtros + - Imágenes + - Mensajes de ayuda (asociados a un campo) + - Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 1e2051b156d9a3..c83800791d8150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en -- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). + - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. -- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). + - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). -- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. + - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index f10f0acc5801ee..bbceacbfc30cfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: -- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. -- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. + - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. + - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: -- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. + - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. -- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. + - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4deecc62b856a1..6bd35744f75fcd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: -- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. -- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. + - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. + - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: -- La selección, -- El estado desplegado/colapsado de sus elementos, -- La posición del cursor de desplazamiento. + - La selección, + - El estado desplegado/colapsado de sus elementos, + - La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. -- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. -- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. + - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. + - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. -- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). + - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). -- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index d210e1a4e5733b..4d25873c20bb67 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: -- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: -- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. -- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. + - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. + - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index c6822aab4fdc97..cc8d6b7e0fd9cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: -- rectángulos -- líneas -- óvalos + - rectángulos + - líneas + - óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 44dd6b6649dcfd..8d9dc854e98bd2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: -- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. -- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. -- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. + - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. + - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. + - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. -- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, -- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, -- Si el valor es 0: el separador se ha movido a su posición original. + - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, + - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, + - Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 453a3b38a316cd..034059d2b33310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también -- [indicadores de progreso](progressIndicator.md) -- [rulers](ruler.md) + - [indicadores de progreso](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index c06a9428ab317f..e57f6f3248c56a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: -- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. -- **Formulario padre**: un formulario que contiene uno o más subformularios. -- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. -- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. -- **Formulario listado**: instancia de subformulario mostrada como una lista. -- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. + - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. + - **Formulario padre**: un formulario que contiene uno o más subformularios. + - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. + - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. + - **Formulario listado**: instancia de subformulario mostrada como una lista. + - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: -- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. + - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor -- si el subformulario pertenece a la página formulario actual o a la página 0. + - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor + - si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index bc49bec408f392..15cc1db6001b65 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: -- un objeto -- una lista de selección -- un array + - un objeto + - una lista de selección + - un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index ee918a3624a6ab..2a64dd60b222cf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) -- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); -- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); -- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). + - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); + - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); + - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 7e5de28937bccd..b37afb17f3bf5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md index d8c13124f8d1a4..fa95af5d7e9d02 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. -- La segunda tabla lista las tablas del archivo del proyecto. + - La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index bd014a9a40fc59..d4c00814f4df3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 0d7adf2eed2567..8908d04f54c6f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: -- nombre: "REST Handler: \" -- tipo: tipo Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - tipo: tipo Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md index de76bc42b61a43..d6479dadfaeb10 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): -- Ventanas del editor de código -- Ventanas del editor de formularios + - Ventanas del editor de código + - Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de datos...** -- **Base de datos a partir de una definición de estructura...** + - **Base de datos...** + - **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. -- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. -- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. + - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. + - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 5beaa5f717c17c..2a2c8c212ebeed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: -- **Tema Light por defecto** -- **Tema oscuro por defecto** + - **Tema Light por defecto** + - **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: -- definir una fuente y un tamaño de fuente para todo el editor de código, -- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. + - definir una fuente y un tamaño de fuente para todo el editor de código, + - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md index ecac98bd608bb7..c79333546aaf9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: -- `Métodos` -- `Formularios` -- `TableForms` + - `Métodos` + - `Formularios` + - `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: -- conversión de base de datos, -- peticiones del servidor web, -- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) -- depuración de comandos, -- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). + - conversión de base de datos, + - peticiones del servidor web, + - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) + - depuración de comandos, + - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 3bb2eb19a0f57e..17a1dc3a55f6cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). -- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. -- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. + - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. + - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: -- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. -- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). + - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. + - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: -- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), -- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). + - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), + - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: -- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, -- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** -- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. + - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, + - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** + - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: -- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), -- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). + - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), + - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: -- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. -- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. + - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. + - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. -- Comprima los archivos componentes en formato ZIP. -- Nombre este archivo con el mismo nombre que el repositorio GitHub. -- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. + - Comprima los archivos componentes en formato ZIP. + - Nombre este archivo con el mismo nombre que el repositorio GitHub. + - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: -- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: + - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` -- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: + - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: -- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. -- "\*": la última versión lanzada. -- "1.\*": todas las versiones de la versión principal 1. -- "1.2.\*": todos los parches de la versión menor 1.2. -- ">=1.2.3": la última versión, a partir de la versión 1.2.3. -- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. -- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. -- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. -- "<=1.2.3": la última versión hasta la 1.2.3. -- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. -- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. + - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. + - "\*": la última versión lanzada. + - "1.\*": todas las versiones de la versión principal 1. + - "1.2.\*": todos los parches de la versión menor 1.2. + - ">=1.2.3": la última versión, a partir de la versión 1.2.3. + - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. + - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. + - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. + - "<=1.2.3": la última versión hasta la 1.2.3. + - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. + - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. -- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". + - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". -- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". + - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: -- en macOs: `$HOME/Library/Caches//Dependencies` -- en Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: -- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). -- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). -- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. -- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). -- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). -- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. -- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. -- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). -- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. -- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. + - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). + - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). + - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. + - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). + - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). + - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. + - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. + - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). + - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. + - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: -- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. -- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. + - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. + - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. -- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). -- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). + - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). + - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: -- Verificación automática y manual de las versiones disponibles -- Actualización automática y manual de los componentes + - Verificación automática y manual de las versiones disponibles + - Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. + - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) -- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. + - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: -- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: + - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) -- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: + - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: -- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. -- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. + - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. + - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: -- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), -- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. + - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), + - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: -- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. -- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. + - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. + - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 681c3352fb09db..298b233fd2a5ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: -- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) -- Clases -- Formularios -- Tablas y campos + - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) + - Clases + - Formularios + - Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. -- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. + - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. + - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado -- La etiqueta del título es soportada: + - La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` -- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: + - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` -- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: + - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` -- La etiqueta de la tabla es soportada: + - La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La etiqueta del enlace es soportada: + - La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Las etiquetas de imagen son soportadas: + - Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- Vista del explorador: + - Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) -- Vista del editor de código: + - Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 3e00709ef356f2..e6ac9d9bc68246 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 55410971e14d95..7d332d71a27938 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- otras sesiones REST -- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. + - otras sesiones REST + - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 8fae210e340e57..50dca9d1af3f1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: -- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. -- usando **GET requests**, con parámetros directamente pasados en la URL. + - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. + - usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: -- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. -- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. -- Los parámetros deben estar incluidos en una colección (formato JSON). -- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. -- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. + - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. + - Los parámetros deben estar incluidos en una colección (formato JSON). + - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. + - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | -- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. -- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados + - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. + - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 ceccb568517c05..24b7bf5648a51f 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: -- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - la renderización de una página Qodly + - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: -- algún código para identificar y autenticar al remitente de la petición REST, -- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. + - algún código para identificar y autenticar al remitente de la petición REST, + - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 5f7baab9858c7b..635ae239c235db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: -- crear y configurar un proyecto de aplicación 4D básico -- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. + - crear y configurar un proyecto de aplicación 4D básico + - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 0147048cc64381..80cd1ec4ec8a4f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), -- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), + - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). -- **Pausar proceso**: permite pausar los procesos seleccionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). + - **Pausar proceso**: permite pausar los procesos seleccionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 7b89e9bf488624..f5bec3d8b68cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: -- haciendo clic en el botón **Pausa**, -- haciendo clic en la lista, -- presionando la barra espaciadora. + - haciendo clic en el botón **Pausa**, + - haciendo clic en la lista, + - presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index cf460ad0c0d35b..9784455c589457 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", o ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", o ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: -- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. + - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: -- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: -- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. -- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. + - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: -- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. -- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. + - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. + - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 3cffc70a02a70e..4e1ca7ad5d3faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index ddf88d1521f080..a132f4e4e78712 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: -- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) -- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) + - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) + - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5e65abf6ea6b63..44537e451f49b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: -- Los documentos 4D View Pro (extensión ".4vp") -- Microsoft Excel (extensión ".xlsx") -- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) -- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Los documentos 4D View Pro (extensión ".4vp") + - Microsoft Excel (extensión ".xlsx") + - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) + - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas -- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. -- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. + - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 29b19390090283..b54e8fff9daf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas -- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. + - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. -- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. + - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. + - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. -- Para seleccionar una línea, haga clic en el número correspondiente. + - Para seleccionar una línea, haga clic en el número correspondiente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. + - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: -- area - El nombre del área 4D View Pro -- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - area - El nombre del área 4D View Pro + - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: -- .4vp -- .xlsx -- .txt y .csv -- .sjs -- .pdf (sólo para exportación) + - .4vp + - .xlsx + - .txt y .csv + - .sjs + - .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index e63a91059426ad..5872ab721ceeae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. -- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. -- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. + - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. + - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` -- Código 4D equivalente: + - Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index bfa9671bc5f3c6..7e2b17009870e7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index facb115670bf95..5b985b633281fd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- gestionar una autenticación a través de oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: -- *funciónhandle* en la clase \*GeneralHandling -- *manageAccount* en la clase *UsersHandling* -- *handleInvoices* en la clase *FinancialHandling* -- *handleDocs* en la clase *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* + - *funciónhandle* en la clase \*GeneralHandling + - *manageAccount* en la clase *UsersHandling* + - *handleInvoices* en la clase *FinancialHandling* + - *handleDocs* en la clase *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 6a5929785ac538..e164069fe5b689 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml + - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para tablas con el atributo "Exponer como recurso REST" + - Triggers para tablas con el atributo "Exponer como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index cb189885bf97f9..ba0e48106f3028 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: -- create Qodly pages by placing components on a canvas -- mapear componentes a Qodly Sources -- activar código 4D configurando eventos -- y mucho más. + - create Qodly pages by placing components on a canvas + - mapear componentes a Qodly Sources + - activar código 4D configurando eventos + - y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D -- Desarrollo: 4D v20 R2 o superior -- Despliegue: 4D Server v20 R2 o superior -- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). -- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). -- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). + - Desarrollo: 4D v20 R2 o superior + - Despliegue: 4D Server v20 R2 o superior + - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). + - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). + - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: -- a nivel de la aplicación 4D -- a nivel del proyecto + - a nivel de la aplicación 4D + - a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: -- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. -- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. -- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. -- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. + - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. + - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. + - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: -- Puede llamar a sus métodos desde funciones clase. -- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. + - Puede llamar a sus métodos desde funciones clase. + - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: -- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía -- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). + - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía + - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. -- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. -- El [servidor web 4D](webServer.md) debe estar ejecutándose. + - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. + - El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: -- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), -- se libera la licencia asociada de 4D, -- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. + - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), + - se libera la licencia asociada de 4D, + - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: -- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. -- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. + - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. + - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index fe6a075457925b..9f07c189b3543c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: -- 4DTEXT, para insertar variables y expresiones 4D como texto, -- 4DHTML, para insertar el código HTML, -- 4DEVAL, para evaluar toda expresión 4D, -- 4DSCRIPT, para ejecutar un método 4D, -- 4DINCLUDE, para incluir una página dentro de otra, -- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, -- 4DCODE, para insertar el código 4D, -- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, -- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, -- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. + - 4DTEXT, para insertar variables y expresiones 4D como texto, + - 4DHTML, para insertar el código HTML, + - 4DEVAL, para evaluar toda expresión 4D, + - 4DSCRIPT, para ejecutar un método 4D, + - 4DINCLUDE, para incluir una página dentro de otra, + - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, + - 4DCODE, para insertar el código 4D, + - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, + - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, + - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 1a299ab8b15ce8..a0858488933fff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) + - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) -- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. + - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. + - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 22056b4f4e48a2..27910c04913772 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- La ruta no debe comenzar ni terminar con una barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 -- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. + - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. -- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: + - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (por defecto) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (por defecto) + - 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` -- “User-Agent: \*” - todos los robots son afectados. -- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. -- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. -- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. + - “User-Agent: \*” - todos los robots son afectados. + - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. + - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. + - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- con 4D en modo remoto, en la carpeta de recursos locales. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) -- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta -- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) + - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta + - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). -- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). + - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 95c4e1111fd0e3..3d4b7a154447c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: -- un servidor web para la aplicación local, -- un servidor web para el componente #1, -- un servidor web para el componente #2. + - un servidor web para la aplicación local, + - un servidor web para el componente #1, + - un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- el procesamiento de las etiquetas 4D y las llamadas de métodos, -- sesiones web y gestión del protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - el procesamiento de las etiquetas 4D y las llamadas de métodos, + - sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: -- el servidor web de la aplicación local a partir de un componente o -- el servidor que ha recibido la solicitud (sin importar el servidor), + - el servidor web de la aplicación local a partir de un componente o + - el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. -- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. -- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). + - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. + - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index d24b56d6743060..fd4cc87b4f648f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 4aefc2608bc0b1..b2c43941951413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. -- Si *targetObj* no es un rango, *rangeUpdate* se ignora. + - Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index febf1ee68cb3e9..e38b27ad1f12c1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: -- la documentación de configuración del Asistente para tablas, -- la I.A. integrada. documentation. + - la documentación de configuración del Asistente para tablas, + - la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: -- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). -- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). -- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). + - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). + - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). + - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: -- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, -- las fórmulas de ruptura (si se puede insertar una línea de ruptura) -- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, -- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. + - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, + - las fórmulas de ruptura (si se puede insertar una línea de ruptura) + - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, + - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index de710cd9d2102d..39bc7be2b0c004 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: -- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). -- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). + - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). + - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index 355633c3e4ffb9..b4e81269ad020a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: -- el objeto *formData* pasado como parámetro a este comando, si existe, -- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, -- o, un objeto vacío. + - el objeto *formData* pasado como parámetro a este comando, si existe, + - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, + - o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 5d6d8d4c2581f6..6154cc3aea3326 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: -- number (real, longint...). Los valores numéricos se almacenan siempre como reales. -- text -- boolean -- date -- time (almacenado como número de milisegundos - real) -- null -- objeto compartido -- colección compartida + - number (real, longint...). Los valores numéricos se almacenan siempre como reales. + - text + - boolean + - date + - time (almacenado como número de milisegundos - real) + - null + - objeto compartido + - colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index b1777d0a1ecce1..d4450f98092e22 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: -- el nombre de un formulario, o -- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o -- un objeto que contiene la descripción del formulario. + - el nombre de un formulario, o + - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o + - un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: -- **Impresión de área de detalle** + - **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). -- **Impresión de área de formulario** + - **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impresión de sección** + - **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: -- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. -- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. + - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. + - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: -- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). -- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. + - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). + - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md index d4a6922bde6cc9..b4751f2dfdaa35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | -- Valores posibles para "state": + - Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores posibles para "type": + - Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md index b03e5465634991..839c648096a676 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. -- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). -- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. + - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). + - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). -- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index 6bb87b46f5aa7b..de79b558326cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. -- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: + - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. -- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). + - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). -- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). + - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). -- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md index ee3a539cd2cf6c..937c8080907814 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md index 052d2beaf51c2c..b380e47d56b673 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 @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: -- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) -- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) -- [Usar procesos apropiativos](#use-preemptive-processes) + - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) + - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) + - [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: -- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. + - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. -- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) -- estado: respuesta dada por el servidor. -- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. + - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) + - estado: respuesta dada por el servidor. + - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. -- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. + - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. -- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. + - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. -- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. + - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. -- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. -- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. -- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. + - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. + - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. -- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". + - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: -- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. -- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). -- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. + - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. + - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). + - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 307a32aaf19dc6..4fc721eae0f3a4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. 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 aa94b2fc1eac72..df9bcc10992a2e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index db63beabb77e04..91166fb527d796 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : -- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). -- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). -- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). + - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). + - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). + - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index ecbadaf53b312b..5e370324f87391 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 c66c7f4e3f5b79..1590910e8abf48 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -249,8 +249,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. -- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. + - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. + - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -279,9 +279,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. -- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. -- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. + - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. + - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. + - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -289,25 +289,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). -- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). -- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). -- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. -- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. -- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. -- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. -- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. -- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). -- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). -- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. -- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. + - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). + - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). + - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). + - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. + - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. + - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. + - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. + - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. + - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). + - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). + - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. + - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement -- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). -- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). + - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). + - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -315,21 +315,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. -- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). -- 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 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. + - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. + - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). + - 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 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. #### Changements de comportement -- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). -- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). + - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). + - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -337,24 +337,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. -- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). -- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. -- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). -- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) -- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. -- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). -- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). -- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. + - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. + - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). + - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. + - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). + - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) + - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. + - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). + - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). + - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement -- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. -- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. -- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). + - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. + - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. + - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -362,21 +362,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). -- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). -- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) -- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. + - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). + - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). + - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) + - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement -- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). -- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. + - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). + - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -390,15 +390,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts -- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. -- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. -- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. -- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. + - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. + - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. + - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. + - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement -- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. + - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 1f4e78f6cc9c23..99054de4a22e01 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..b6b261c6a82eac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 0dd5ed8c4fdfbf..9b1833f30a7a94 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. + - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..3e505993076a99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 5740fc0d6c2ff1..f311bd3e223da4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md index e250d67261da91..c7e5b0c19ca430 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 9a7e1a0cf81fdb..7107fc2990f8a6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index a5817d0aa7344d..84e91529e50622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index a9e16ab1adf8ea..ab10ddb15ec38c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -128,10 +128,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index a61af9ff781cc8..5d709bf93ae09c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : -- *4daction/* (la méthode projet appelée doit également être à thread-safe) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) -- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) + - *4daction/* (la méthode projet appelée doit également être à thread-safe) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) + - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index daf11db9f41587..81698313b1d91d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 6cddcc5504bfd3..5471c3bfed703e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index a312698abd737f..df6d8a6a39ff8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md index 8e4b4910b6ac60..c4c80a9153de6c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md index 2151b672b79934..e4d6424de97c3a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md index f884369402cd33..ec0153d728629d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. -- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). -- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. + - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). + - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). -- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). -- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. + - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). + - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md index d2ac339200efa2..5db5b3ca0ddae4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. -- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : + - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). + - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). -- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). + - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). -- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file + - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md index b079d06c464f44..30dcbc4cc83b39 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. -- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. + - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. -- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. + - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. -- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. + - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base -- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. + - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) -- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). + - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md index 88a67bd5979b36..dccaae09a40f18 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. -- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. + - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. -- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. + - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: -- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. + - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. -- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : + - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : -- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; -- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". + - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; + - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : -- Acceptation de saisie : **Entrée** -- Annulation de saisie : **Echap** -- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) + - Acceptation de saisie : **Entrée** + - Annulation de saisie : **Echap** + - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md index 4668a251012507..b5036401cc05a5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. -- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. + - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. -- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. -- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. + - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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 fc721bb398efad..860ea31a77884c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : -- [Process Web simultanés maxi](#maximum-concurrent-web-processes) -- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) -- [Utiliser des process préemptifs](#use-preemptive-processes) + - [Process Web simultanés maxi](#maximum-concurrent-web-processes) + - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) + - [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : -- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. + - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. -- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) -- statut : réponse donnée par le serveur. -- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. + - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) + - statut : réponse donnée par le serveur. + - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. -- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. + - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. -- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. + - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. -- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. + - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. -- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. -- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. -- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. -- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. + - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. + - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. + - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. -- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. + - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : -- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. -- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). -- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. + - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. + - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). + - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 9d1cb639f79189..b1b0365605edcc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes -- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. -- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. + - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. + - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index f026e9fde75c7c..e5c0997f07ca47 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 307a32aaf19dc6..4fc721eae0f3a4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 9da5511bdf5b7a..4448b28230ca79 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index f3cd2662e9f6de..624bba23391b05 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : -- la périodicité des sauvegardes automatiques -- les fichiers à inclure dans chaque sauvegarde -- les fonctionnalités avancées permettant d'exécuter des tâches automatiques + - la périodicité des sauvegardes automatiques + - les fichiers à inclure dans chaque sauvegarde + - les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. + - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. + - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 1b7faf45be6041..bbb5877378151f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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..07c7cc5a3e58e0 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index db63beabb77e04..91166fb527d796 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : -- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). -- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). -- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). + - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). + - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). + - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 6c237313576428..e830d7305c57de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -51,8 +51,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -76,9 +76,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 8e2c83e3ad3b5c..c5f56eb300b840 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 @@ -81,8 +81,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. -- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. + - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. + - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement -- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. -- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. -- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. + - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. + - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. + - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). -- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). -- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). -- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. -- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. -- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. -- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. -- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. -- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). -- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). -- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. -- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). -- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. + - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). + - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). + - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). + - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. + - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. + - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. + - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. + - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. + - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). + - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). + - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. + - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). + - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement -- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). -- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). + - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). + - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts -- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. -- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). -- 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 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. + - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. + - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). + - 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 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. #### Changements de comportement -- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). -- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). + - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). + - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -169,24 +169,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. -- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). -- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. -- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). -- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) -- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. -- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). -- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). -- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. + - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. + - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). + - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. + - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). + - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) + - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. + - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). + - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). + - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement -- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. -- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. -- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). + - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. + - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. + - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts -- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). -- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). -- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) -- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. + - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). + - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). + - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) + - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement -- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). -- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. + - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). + - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts -- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. -- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. -- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. -- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). -- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. + - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. + - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. + - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. + - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement -- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. + - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ba1fd2735d3605..e330e4922d449a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..29c800d4d3c734 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -120,9 +120,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -175,11 +175,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index a200cf127c27d5..a41348684a5651 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -52,8 +52,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -84,8 +84,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -202,9 +202,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -260,7 +260,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -277,17 +277,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -297,9 +297,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -325,8 +325,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. + - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -399,16 +399,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -442,8 +442,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). -- **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. -- **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. -- **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. -- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. + - **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). + - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. + - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. + - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. + - **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -524,8 +524,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -541,11 +541,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -590,13 +590,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..ce74f984e8662b 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 76d5a6bbd7b1f0..3fcd42322177a2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 e250d67261da91..c7e5b0c19ca430 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 9e4d78895e35dc..75fd4a0bc88afd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index d24a5ac2255b1c..802d308d7277c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -128,8 +128,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 61877412ae2d4c..1ae4af16b38bbd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -117,10 +117,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 1b2b27e26c6d0a..05a96e326d5f89 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST Pour chacune de ces méthodes ou parties de code, le compilateur vérifiera si les règles thread-safe sont respectées, et retournera une erreur en cas de problème. Pour plus d'informations à propos des règles thread-safe, veuillez vous référer au paragraphe *Ecrire une méthode thread-safe* dans le chapitre *Process* du manuel de [Langage 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : -- *4daction/* (la méthode projet appelée doit également être à thread-safe) -- *4dcgi/* (les méthodes base appelées doivent également être thread-safe) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) -- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) + - *4daction/* (la méthode projet appelée doit également être à thread-safe) + - *4dcgi/* (les méthodes base appelées doivent également être thread-safe) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) + - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index a2d1f2e0c7862c..99fdbc5d1f6199 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -309,9 +309,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -363,7 +363,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 332cbfb4f2ca8d..fb2a05807a87d8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index a312698abd737f..df6d8a6a39ff8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 9e5f7ad5a9d05f..4b98187d7cf741 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index beaa5cb365a0b5..1884e7d3fc1f52 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index 55d2c6e41c55f2..be3dfaa8f78096 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. -- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). -- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. + - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). + - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). -- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). -- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. + - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). + - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index d2ac339200efa2..5db5b3ca0ddae4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. -- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : + - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). + - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). -- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). + - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). -- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file + - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index b079d06c464f44..30dcbc4cc83b39 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. -- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. + - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. -- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. + - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. -- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. + - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base -- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. + - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) -- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). + - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 88a67bd5979b36..dccaae09a40f18 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. -- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. + - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. -- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. + - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: -- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. + - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. -- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : + - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : -- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; -- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". + - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; + - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : -- Acceptation de saisie : **Entrée** -- Annulation de saisie : **Echap** -- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) + - Acceptation de saisie : **Entrée** + - Annulation de saisie : **Echap** + - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 4668a251012507..b5036401cc05a5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. -- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. + - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. -- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. -- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. + - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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..deebc7df65d7bf 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 @@ -82,9 +82,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : -- [Process Web simultanés maxi](#maximum-concurrent-web-processes) -- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) -- [Utiliser des process préemptifs](#use-preemptive-processes) + - [Process Web simultanés maxi](#maximum-concurrent-web-processes) + - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) + - [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : -- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. + - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. -- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) -- statut : réponse donnée par le serveur. -- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. + - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) + - statut : réponse donnée par le serveur. + - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. -- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. + - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. -- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. + - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. -- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. + - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. -- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. -- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. -- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. -- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. + - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. + - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. + - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. -- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. + - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : -- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. -- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). -- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. + - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. + - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). + - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index efd8465f621ec4..fdb8611f0b61ad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3902,7 +3902,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 9d1cb639f79189..b1b0365605edcc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes -- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. -- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. + - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. + - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md index f026e9fde75c7c..e5c0997f07ca47 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 307a32aaf19dc6..4fc721eae0f3a4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : -- text -- blob -- object -- image + - text + - blob + - object + - image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : -- Text -- Blob -- Object -- Image + - Text + - Blob + - Object + - Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : -- Content-Type:text/plain si le body est un texte -- Content-Type:application/octet-stream si le body est un Blob -- Content-Type:application/json si le body est un objet -- Content-Type:image/jpeg, image/gif... si le body est une image + - Content-Type:text/plain si le body est un texte + - Content-Type:application/octet-stream si le body est un Blob + - Content-Type:application/json si le body est un objet + - Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 9da5511bdf5b7a..4448b28230ca79 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 1b7faf45be6041..bbb5877378151f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 aa94b2fc1eac72..df9bcc10992a2e 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : -- [objets de sous-formulaire](FormObjects/subform_overview.md) -- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) + - [objets de sous-formulaire](FormObjects/subform_overview.md) + - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : + - **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : -- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. + - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. -- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. + - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : -- une page 1 : une page principale, affichée par défaut -- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. + - une page 1 : une page principale, affichée par défaut + - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. + - 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 69f494bd4c96d0..a8e027a858e3db 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : -- Créer et exécuter du code 4D -- Afficher les boîtes de dialogue -- Sélectionnez des objets de formulaire -- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés -- Modifier les fichiers de projet (mettre à jour, supprimer) + - Créer et exécuter du code 4D + - Afficher les boîtes de dialogue + - Sélectionnez des objets de formulaire + - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés + - Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : -- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). + - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). -- En utilisant un objet avec la structure suivante : + - En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : -- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. -- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. -- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. + - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. + - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. + - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : -- supprimer ou modifier un script dont le fichier est en lecture seule. -- créer deux objets avec le même ID interne. + - supprimer ou modifier un script dont le fichier est en lecture seule. + - créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 3e37b327071589..74597e4f33ad74 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : -- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. -- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. + - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. + - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : -- formulaires projet -- pages 1 des formulaires + - formulaires projet + - pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) -- **Couper** ou **Copier** vers le conteneur de données -- **Coller** un objet à partir du conteneur de données -- **Effacer** - supprime l'objet de la bibliothèque -- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. + - **Couper** ou **Copier** vers le conteneur de données + - **Coller** un objet à partir du conteneur de données + - **Effacer** - supprime l'objet de la bibliothèque + - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : -- Enumérations -- Formats/Filtres -- Images -- Messages d’aide (liés à un champ) -- Méthodes objet + - Enumérations + - Formats/Filtres + - Images + - Messages d’aide (liés à un champ) + - Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..1ab1f2468d20e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. + - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. + - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. + - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 71ca53ca29663e..3975192bd288ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : -- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. -- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. + - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. + - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : -- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. + - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. -- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. + - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index aa32863caa2e9d..4ecac54599da22 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : -- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. -- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. + - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. + - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : -- La sélection, -- L’état déployé/contracté des éléments, -- La position du curseur de défilement. + - La sélection, + - L’état déployé/contracté des éléments, + - La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. -- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. -- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. + - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. + - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. -- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). + - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). -- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index ecbadaf53b312b..5e370324f87391 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). -- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. + - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : -- Ne rien faire : ignore le double-clic. -- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. + - Ne rien faire : ignore le double-clic. + - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : -- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. -- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. -- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. + - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. + - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. + - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 3a8c52a17e060c..522f4bb609875e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : -- rectangles -- lignes -- ovales + - rectangles + - lignes + - ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 63b61e272c7a0a..455819ccb29fb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : -- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. -- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. -- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. -- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. + - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. + - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. + - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. + - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. -- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, -- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, -- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. + - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, + - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, + - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index e48f045aad20bc..aaf8a2ef9d1791 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index abd9d336f929c2..211a36f4fe1939 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : -- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. -- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). -- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. -- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. -- **Formulaire liste écran** : instance de sous-formulaire en liste. -- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. + - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. + - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). + - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. + - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. + - **Formulaire liste écran** : instance de sous-formulaire en liste. + - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: -- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. -- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. + - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. + - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. -- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. + - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. + - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : -- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée -- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. + - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée + - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : -- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. -- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. + - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. + - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : -- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` -- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` + - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` + - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index ffdb38e99ad775..0ec07cb47cd10e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : -- un objet -- une liste déroulante -- un tableau + - un objet + - une liste déroulante + - un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index fe63997661a170..2f4e9c9a419512 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) -- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; -- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; -- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. + - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; + - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; + - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index d3d641c6e7d143..b9e4d91af4330c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : -- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. + - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). -- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. + - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. -- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. + - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. -- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. + - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. -- **Taille** : taille (en octets) des données traitées par l’opération. + - **Taille** : taille (en octets) des données traitées par l’opération. -- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. + - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. -- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. + - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. -- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. + - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* -- **Enregistrements** : numéro de l’enregistrement. + - **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md index e829a363d9b569..fa58970ba5d2c8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. -- Le deuxième tableau liste les tables du fichier de structure. + - Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : -- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", -- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". + - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", + - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md index 174df7f636257f..c7504859766eb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : -- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. -- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. + - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. + - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 9b0733a2694544..48c74a65b4b864 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : -- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. -- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : + - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. + - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : -- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). -- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. + - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). + - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index cff4979c77ce9d..893dd7b0d65fc2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : -- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. -- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. -- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. + - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. + - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. + - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : -- nom : "REST Handler : \" -- type : type Worker Server HTTP -- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. + - nom : "REST Handler : \" + - type : type Worker Server HTTP + - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 7360fc6a8f99fd..8a6a0f445c4066 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : -- Fenêtres de l'éditeur de code -- Fenêtres de l'éditeur de formulaires + - Fenêtres de l'éditeur de code + - Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : -- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). -- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). -- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. + - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). + - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). + - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : -- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. -- **Clair** : Utiliser le thème clair -- **Sombre** : utiliser le thème sombre + - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. + - **Clair** : Utiliser le thème clair + - **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : -- **Database...** -- **Base de données à partir d'une définition de structure...** + - **Database...** + - **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : -- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; -- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . + - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; + - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. -- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. -- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. + - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. + - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index aed53f1d39992c..8630544dd8e932 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : -- **Default Light Theme** -- **Default Dark Theme** + - **Default Light Theme** + - **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : -- définir une police et une taille de police pour l'ensemble de l'éditeur de code, -- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. + - définir une police et une taille de police pour l'ensemble de l'éditeur de code, + - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. -- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. -- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. + - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. + - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : -- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). + - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). -- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : + - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) -- **Non** (par défaut) : Pas de surbrillance -- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué -- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné + - **Non** (par défaut) : Pas de surbrillance + - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué + - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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..b6b261c6a82eac 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : -- 4D -- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` -- `TableForms` + - `Methods` + - `Formulaires` + - `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : -- conversion de base de données, -- requêtes de serveur Web, -- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) -- débogage de commandes, -- Requêtes 4D Server (générées sur les postes clients et sur le serveur). + - conversion de base de données, + - requêtes de serveur Web, + - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) + - débogage de commandes, + - Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index f2548492d1ada3..3b206b26848f7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). -- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. -- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. + - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. + - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : -- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. -- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). + - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. + - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : -- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), -- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). + - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), + - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : -- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, -- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** -- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. + - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, + - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** + - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : -- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), -- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). + - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), + - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : -- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. -- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. + - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. + - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : -- Compressez les fichiers des composants au format ZIP. -- Nommez cette archive avec le même nom que le dépôt GitHub. -- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. + - Compressez les fichiers des composants au format ZIP. + - Nommez cette archive avec le même nom que le dépôt GitHub. + - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: -- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : + - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` -- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : + - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : -- "latest" : la version ayant le badge "latest" dans les releases GitHub. -- "\*" : la dernière version publiée. -- "1.\*" : toutes les versions de la version majeure 1. -- "1.2.\*" : tous les correctifs de la version mineure 1.2. -- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. -- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. -- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. -- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. -- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. -- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. + - "latest" : la version ayant le badge "latest" dans les releases GitHub. + - "\*" : la dernière version publiée. + - "1.\*" : toutes les versions de la version majeure 1. + - "1.2.\*" : tous les correctifs de la version mineure 1.2. + - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. + - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. + - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. + - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. + - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. + - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. -- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". + - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". -- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. + - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : -- sous macOs : `$HOME/Library/Caches//Dependencies` -- sous Windows : `C:\Users\\AppData\Local\\Dependencies` + - sous macOs : `$HOME/Library/Caches//Dependencies` + - sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : -- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. -- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. -- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. -- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). -- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). -- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. -- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. -- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. -- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. -- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. + - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. + - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. + - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. + - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). + - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). + - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. + - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. + - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. + - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. + - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : -- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. -- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. + - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. + - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. -- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). -- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). + - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). + - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : -- Vérification automatique et manuelle des versions disponibles -- Mise à jour automatique et manuelle des composants + - Vérification automatique et manuelle des versions disponibles + - Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. + - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) -- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. + - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : -- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : + - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) -- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : + - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : -- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. -- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. + - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. + - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : -- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), -- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. + - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), + - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : -- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. -- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. + - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. + - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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..3e505993076a99 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : -- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) -- Classes -- Formulaires -- Tables et champs + - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) + - Classes + - Formulaires + - Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... -- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. -- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. + - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) -- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). + - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). -- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. + - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : -- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, -- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. + - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, + - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : -- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. + - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown -- La balise de titre est prise en charge : + - La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` -- Les balises de style (italique, gras, barré) sont prises en charge : + - Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` -- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : + - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` -- La balise de tableau est prise en charge : + - La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` -- La balise de lien est prise en charge : + - La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- Les balises d'image sont prises en charge : + - Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` -- Vue de l'explorateur : + - Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) -- Vue de l'éditeur de code : + - Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 06cb0b2e7f5f55..7585103f4f02b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. + - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 9bb7a1a9f8c763..f291bc472820ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : -- d'autres sessions REST -- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. + - d'autres sessions REST + - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : -- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` -- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). + - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` + - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 5740fc0d6c2ff1..f311bd3e223da4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : -- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. -- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. + - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. + - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : -- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. -- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. -- Les paramètres doivent être inclus dans une collection (format JSON). -- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. -- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. + - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. + - Les paramètres doivent être inclus dans une collection (format JSON). + - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. + - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | -- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. -- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés + - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. + - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 e250d67261da91..c7e5b0c19ca430 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : -- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles -- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur -- `/rest/$getWebForm` - le rendu d'une page Qodly + - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles + - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur + - `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : -- un code pour identifier et authentifier l'expéditeur de la demande REST, -- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. + - un code pour identifier et authentifier l'expéditeur de la demande REST, + - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 6c2cf627e3265d..428c68438e2e72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : -- créer et configurer un projet d'application 4D basique -- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. + - créer et configurer un projet d'application 4D basique + - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 799e30c2db5283..e82af6421603b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) -- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. -- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. -- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. + - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. + - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. + - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : -- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, -- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), -- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. + - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, + - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), + - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) -- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. + - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Endormir process** : permet d’endormir le ou les process sélectionné(s). -- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. -- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). + - **Endormir process** : permet d’endormir le ou les process sélectionné(s). + - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. + - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. -- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. + - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 9d3dd86b8f6bda..8d964c8b8ee7fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : -- en cliquant sur le bouton **Pause**, -- en cliquant dans la liste, -- en appuyant sur la barre d’espace. + - en cliquant sur le bouton **Pause**, + - en cliquant dans la liste, + - en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index e25e474a6ccd30..01c8c873fe4fef 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", or ".csv") -- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", or ".csv") + - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : -- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. + - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : -- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. -- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. + - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : -- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 7be68c67b0c15f..ba7deb2c1a617b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index c28b402a6b1381..6ef3aed705324f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : -- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) -- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) + - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) + - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 9a7e1a0cf81fdb..7107fc2990f8a6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : -- Les documents 4D View Pro (extension ".4vp") -- Microsoft Excel (extension ".xlsx") -- documents texte (extension ".txt", ".csv", le document doit être en utf-8) -- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") + - Les documents 4D View Pro (extension ".4vp") + - Microsoft Excel (extension ".xlsx") + - documents texte (extension ".txt", ".csv", le document doit être en utf-8) + - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index a5817d0aa7344d..84e91529e50622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes -- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. + - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. -- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. + - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). + - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). -- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. + - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. -- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. + - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. -- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. + - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : -- area - Le nom de la zone 4D View Pro -- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. + - area - Le nom de la zone 4D View Pro + - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : -- .4vp -- .xlsx -- .txt et .csv -- .sjs -- .pdf (à des fins d'export uniquement) + - .4vp + - .xlsx + - .txt et .csv + - .sjs + - .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index d09a66e2938ac9..be935548f38b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. -- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. -- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. + - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. + - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple -- Code QodlyScript : + - Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` -- Code équivalent en langage 4D : + - Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 17ba86d4b8ef83..cd23ee1daf5a41 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : -- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) -- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. + - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) + - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index a61af9ff781cc8..201a3d3dc58230 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; + - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages + - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages -- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" + - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" -- Triggers pour les tables comportant l'attribut "Expose as REST resource" + - Triggers pour les tables comportant l'attribut "Expose as REST resource" -- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST + - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : -- toutes les commandes du thème *Web Server* -- toutes les commandes du thème *Client HTTP*. + - toutes les commandes du thème *Web Server* + - toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index daf11db9f41587..81698313b1d91d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- déclencher du code 4D en configurant des événements -- et bien plus encore ! + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - déclencher du code 4D en configurant des événements + - et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox La résolution recommandée est de 1920x1080. #### Application 4D -- Développement : 4D 20 R2 ou version ultérieure -- Déploiement : 4D Server 20 R2 ou version ultérieure -- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). -- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). -- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). + - Développement : 4D 20 R2 ou version ultérieure + - Déploiement : 4D Server 20 R2 ou version ultérieure + - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). + - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). + - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : -- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. + - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). + - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: -- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. -- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. -- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. -- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. + - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. + - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. + - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. + - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : -- Vous pouvez appeler vos méthodes à partir des fonctions de classe. -- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. + - Vous pouvez appeler vos méthodes à partir des fonctions de classe. + - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide -- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide + - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. -- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. -- Le [serveur Web 4D](webServer.md) doit être démarré. + - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. + - Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : -- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, -- la licence 4D associée est libérée, -- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. + - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, + - la licence 4D associée est libérée, + - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. -- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. + - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index c71cb2bb77fe56..003879e7952808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : -- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, -- 4DHTML, pour insérer du code HTML, -- 4DEVAL, pour évaluer toute expression 4D, -- 4DSCRIPT, pour exécuter une méthode 4D, -- 4DINCLUDE, pour inclure une page dans une autre, -- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, -- 4DCODE, pour insérer du code 4D, -- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, -- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, -- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. + - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, + - 4DHTML, pour insérer du code HTML, + - 4DEVAL, pour évaluer toute expression 4D, + - 4DSCRIPT, pour exécuter une méthode 4D, + - 4DINCLUDE, pour inclure une page dans une autre, + - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, + - 4DCODE, pour insérer du code 4D, + - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, + - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, + - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index cd5e261e41ece9..8425d866f7cdae 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) -- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) + - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) -- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. + - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : -- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). + - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). -- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. + - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : -- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. -- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. + - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. + - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : -- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. + - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. -- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. + - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. -- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. + - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : -- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), -- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). + - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), + - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. -- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. + - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. -- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. + - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. -- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. + - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 6cddcc5504bfd3..5471c3bfed703e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : -- Le chemin est relatif au [dossier HTML racine ](#root-folder), -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Le chemin ne doit pas commencer ou finir par un slash. + - Le chemin est relatif au [dossier HTML racine ](#root-folder), + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (par défaut) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (par défaut) + - 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` -- “User-Agent: \*” - tous les robots sont concernés. -- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. -- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. -- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. + - “User-Agent: \*” - tous les robots sont concernés. + - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. + - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. + - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : -- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). -- avec 4D en mode remote, dans le fichier des ressources locales. + - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). + - avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. -- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). -- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), -- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier -- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). + - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). + - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), + - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier + - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : -- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. -- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). -- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). + - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. + - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). + - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 80ee10ccfba2e9..f63adab7ff5b45 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : -- un serveur web pour l'application hôte, -- un serveur web pour le composant n°1, -- un serveur web pour le composant n°2. + - un serveur web pour l'application hôte, + - un serveur web pour le composant n°1, + - un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : -- les appels vers la méthode base `On Web Authentication` et `On Web Connection` -- le traitement des balises 4D et les appels de méthodes, -- sessions web et gestion du protocole TLS. + - les appels vers la méthode base `On Web Authentication` et `On Web Connection` + - le traitement des balises 4D et les appels de méthodes, + - sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : -- le serveur Web de l'application hôte à partir d'un composant ou -- le serveur qui a reçu la requête (quel que soit le serveur) + - le serveur Web de l'application hôte à partir d'un composant ou + - le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. -- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. -- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). + - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. + - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index a312698abd737f..df6d8a6a39ff8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : -- une plage, ou -- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou -- un document 4D Write Pro + - une plage, ou + - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou + - un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | -- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : + - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. -- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. + - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 46ec6f90585fa9..f83b3a2c602bdd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : -- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), -- le formulaire courant est un sous-formulaire, -- un formulaire table est actuellement affiché à l'écran. + - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), + - le formulaire courant est un sous-formulaire, + - un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : -- l'objet *formData* passé en paramètre à cette commande, le cas échéant, -- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, -- ou un objet vide. + - l'objet *formData* passé en paramètre à cette commande, le cas échéant, + - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, + - ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` -- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. + - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 5b553fcd1c85d3..457e0da1d396c5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : -- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. -- text -- boolean -- date -- heure (stockée en nombre de milliseconds - réel) -- Null -- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. -- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. + - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. + - text + - boolean + - date + - heure (stockée en nombre de milliseconds - réel) + - Null + - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. + - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 9e5f7ad5a9d05f..4b98187d7cf741 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : -- le nom d'un formulaire, -- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou -- un objet contenant la description du formulaire à utiliser. + - le nom d'un formulaire, + - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou + - un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : -- **Impression du corps d'un formulaire** + - **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). -- **Impression de zone de formulaire** + - **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impression de section** + - **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : -- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. -- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. + - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. + - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : -- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). -- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. + - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). + - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index beaa5cb365a0b5..1884e7d3fc1f52 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | -- Valeurs possibles pour "state" : + - Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | -- Valeurs possibles pour "type" : + - Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md index f884369402cd33..ec0153d728629d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. -- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). -- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. + - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). + - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). -- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). -- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. + - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). + - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index d2ac339200efa2..5db5b3ca0ddae4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. -- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : + - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). + - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). -- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). + - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). -- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file + - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md index 88a67bd5979b36..dccaae09a40f18 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. -- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. + - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. -- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. + - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: -- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. + - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. -- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : + - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : -- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; -- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". + - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; + - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : -- Acceptation de saisie : **Entrée** -- Annulation de saisie : **Echap** -- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) + - Acceptation de saisie : **Entrée** + - Annulation de saisie : **Echap** + - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : 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 fc721bb398efad..860ea31a77884c 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 @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : -- [Process Web simultanés maxi](#maximum-concurrent-web-processes) -- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) -- [Utiliser des process préemptifs](#use-preemptive-processes) + - [Process Web simultanés maxi](#maximum-concurrent-web-processes) + - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) + - [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : -- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. + - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. -- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) -- statut : réponse donnée par le serveur. -- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. + - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) + - statut : réponse donnée par le serveur. + - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. -- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. + - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. -- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. + - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. -- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. + - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. -- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. -- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. + - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. + - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. -- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. -- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. -- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. + - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. + - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. + - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. -- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. + - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : -- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. -- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). -- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. + - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. + - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). + - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 450abf1176c9cf..208c9341397e29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index a421e9046f83c1..bccd183b3423bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 275394a1dab283..4d09df782992d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: -- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 -- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 -- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 + - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 + - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 + - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 67b11a22727950..2e756d989d8014 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 5354ab71427490..46d05beb459033 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -250,8 +250,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 -- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 + - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 + - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -281,9 +281,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 -- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 -- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 + - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 + - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 + - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -291,25 +291,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 -- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 -- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 -- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 -- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 -- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 -- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 -- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 -- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 -- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 -- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 -- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 -- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 + - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 + - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 + - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 + - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 + - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 + - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 + - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 + - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 + - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 + - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 + - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 + - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 + - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 -- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 -- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 + - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 + - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -317,21 +317,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 -- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 -- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 -- [制限付エンティティセレクション](../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#強制ログイン)。 -- 新しい [$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/))。 + - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 + - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 + - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 + - [制限付エンティティセレクション](../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#強制ログイン)。 + - 新しい [$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/))。 #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 -- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 + - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 + - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -339,24 +339,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 -- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 -- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 -- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 -- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 -- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート -- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 -- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 -- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 -- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 + - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 + - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 + - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 + - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 + - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 + - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート + - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 + - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 + - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 + - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 -- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 -- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 -- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 + - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 + - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 + - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 + - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -364,21 +364,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 -- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 -- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 -- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 -- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 -- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 + - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 + - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 + - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 + - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 + - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 + - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 -- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 -- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 + - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 + - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -392,15 +392,15 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト -- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 -- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 -- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 + - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 + - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 + - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 -- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 + - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 33bc7539dc0b38..552cb58d4ecdda 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md index e0d5eb69a426f8..9e562869f6c322 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 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..a8a1f2e3fde1b7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index 5979f2a6997c4c..059e4eeddabb19 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md index 6748776051563e..a696826968337d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md index 722858ec7053d5..d1128f908f0860 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ RESTリクエストで定義されたリレートエンティティのコレク :::note -- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 -- **ブール** は true または false です。 -- `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 + - **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 + - **ブール** は true または false です。 + - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md index 3261d080e8448f..2f959e853d7591 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 5d069870ab5a4e..d00f1cabd92020 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index b68bcfc3a991bc..9a91c5604ce4dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 883be9680d24b6..fe5f718531ff93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 9ded11857f4f7f..c3f857a7e0b955 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -73,15 +73,15 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: -- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) -- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 17c2d431301349..1fcccdee63d7f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 020a8dc923f782..b9d772a6d7bb50 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 @@ -629,7 +629,7 @@ This option allows you to designate a user, previously defined in the [4D passwo Keep-Alive接続を設定する 2つのオプションがあります: -- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

+ - **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

- **タイムアウト**: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。

diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md index 097eda5af0b378..9991b3a1b720af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md index aba37f55ba8ba5..3c58d365a85c90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 99d4d0ca7a8ace..9986b0a7644cfc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- ブール -- 日付 -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - ブール + - 日付 + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md index 62887e306c2f26..bfdc231296e94e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md index ba21d38bca8883..6e7406bdf9f07b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md index 9a0a68e1cb6570..28d2770330b4d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 + - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 -- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 -- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 + - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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..dee6d27d5cbc73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 450abf1176c9cf..208c9341397e29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 6aee01ba447654..199b5df3cca138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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..657829ce598c98 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 6cb8c4dba500f6..0e37e810c9dc72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: -- 自動バックアップ用のスケジューラー設定 -- 各バックアップに含めるファイル -- 自動タスクの実行を可能にする高度な設定 + - 自動バックアップ用のスケジューラー設定 + - 各バックアップに含めるファイル + - 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 + - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 + - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 2d464e24017b76..56031713faf0fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index 5ced8fbcb3e9a5..d5d31f0b890637 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 275394a1dab283..4d09df782992d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: -- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 -- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 -- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 + - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 + - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 + - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 053fb26ffbd4a6..c98e0e88207fa6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -48,8 +48,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -73,9 +73,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 359fe1da8101c5..b5a54a0832b98f 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 @@ -81,8 +81,8 @@ title: リリースノート #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 -- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 + - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 + - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -112,9 +112,9 @@ title: リリースノート #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 -- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 -- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 + - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 + - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 + - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -139,8 +139,8 @@ title: リリースノート #### 動作の変更 -- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 -- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 + - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 + - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -148,21 +148,21 @@ title: リリースノート #### ハイライト -- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 -- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 -- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 -- [制限付エンティティセレクション](../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#強制ログイン)。 -- 新しい [$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/))。 + - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 + - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 + - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 + - [制限付エンティティセレクション](../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#強制ログイン)。 + - 新しい [$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/))。 #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 -- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 + - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 + - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -170,24 +170,24 @@ title: リリースノート #### ハイライト -- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 -- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 -- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 -- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 -- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 -- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート -- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 -- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 -- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 -- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 + - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 + - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 + - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 + - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 + - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 + - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート + - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 + - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 + - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 + - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 -- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 -- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 -- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 + - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 + - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 + - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 + - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -195,21 +195,21 @@ title: リリースノート #### ハイライト -- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 -- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 -- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 -- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 -- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 -- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 + - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 + - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 + - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 + - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 + - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 + - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 -- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 -- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 + - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 + - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -223,15 +223,15 @@ title: リリースノート #### ハイライト -- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 -- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 -- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 -- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 + - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 + - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 + - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 + - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 -- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 + - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 9b6f26afd6daa1..a67a2c73bd0249 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index e1e76859c3dc67..c1201dea525f67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 1dc15ee343d9c6..504e63ace4d540 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -121,9 +121,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 63488266de291f..4321afc51a3669 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -52,8 +52,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -61,14 +61,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -84,8 +84,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -93,8 +93,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -202,9 +202,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -260,7 +260,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -277,17 +277,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -297,9 +297,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -325,8 +325,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -442,8 +442,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -504,11 +504,11 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 -- **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 -- **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 -- **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 -- **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 + - **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 + - **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 + - **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 + - **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 + - **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 現在のGitHub 依存関係バージョンは、依存関係の項目の右側に表示されます: @@ -595,8 +595,8 @@ You can modify the [version setting](#defining-a-github-dependency-version-range GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index f2fb2e5f5ad9b9..95335f5e527e6c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ title: Documentation ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: Documentation - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: Documentation ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: Documentation 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: Documentation `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 3261d080e8448f..2f959e853d7591 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index d2178137e0151b..5309c3668387b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index d7df59f12047f0..fa84a99ffa29ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -38,20 +38,20 @@ title: はじめに ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -129,8 +129,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -147,10 +147,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index e5e45790d725f5..1dfe242eeda202 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 カスタムのHTTP リクエストハンドラーは以下の条件の元にサポートされます: -- [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること -- メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 + - [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること + - メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 :::warning @@ -62,9 +62,9 @@ title: HTTP Request handler ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -84,8 +84,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -117,17 +117,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -208,11 +208,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 2bb9bec7a8c8b0..8759bf2fda3be9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) これらそれぞれのメソッドとコードの部分について、スレッドセーフのルールが遵守されているかをコンパイラーがチェックし、問題があった場合にはエラーを返します。 スレッドセーフルールについての詳細は、[4Dランゲージリファレンス](https://doc.4d.com) マニュアルの *プロセス* の章の *スレッドセーフなメソッドの書き方* の段落を参照ください。 @@ -61,8 +61,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -72,16 +72,16 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: -- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) -- *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) -- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) + - *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) + - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 858d01afba03f5..356587fc5d6544 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index d05f6e50c0a5e2..5cbbf2006c4386 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 6305cfc00401be..28eda06a2a0a2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index ec284ecd7a9bc4..1ceb2de53786d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 7b6bd571dad62d..352fff791b636b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- boolean -- date -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - boolean + - date + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index f80d1bd1b2f9c9..cdb231ed9fe273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index e96fd983130c6e..c3bf63ac21735a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -108,9 +108,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 9a0a68e1cb6570..28d2770330b4d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 + - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 -- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). + - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 -- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 + - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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..aa7a5fc2b9e400 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 @@ -82,9 +82,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 765b9628dbd8f5..b74fd7aff2a034 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1138,7 +1138,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3906,7 +3906,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 450abf1176c9cf..208c9341397e29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: -- text -- blob -- object -- image + - text + - blob + - object + - image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: -- Text -- BLOB -- Object -- ピクチャー + - Text + - BLOB + - Object + - ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: -- Content-Type: 本文がテキストの場合にはtext/plain -- Content-Type: 本文がBlob の場合にはapplication/octet-stream -- Content-Type: 本文がオブジェクトの場合にはapplication/json -- Content-Type: image/jpeg、image/gif... (本文が画像の場合) + - Content-Type: 本文がテキストの場合にはtext/plain + - Content-Type: 本文がBlob の場合にはapplication/octet-stream + - Content-Type: 本文がオブジェクトの場合にはapplication/json + - Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 6aee01ba447654..199b5df3cca138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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..657829ce598c98 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 2d464e24017b76..56031713faf0fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index a421e9046f83c1..bccd183b3423bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: -- [サブフォームオブジェクト](FormObjects/subform_overview.md) -- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) + - [サブフォームオブジェクト](FormObjects/subform_overview.md) + - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: -- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 -- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: + - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 + - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 + - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 + - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 + - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: -- ページ1: デフォルトで表示されるメインページ -- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます + - ページ1: デフォルトで表示されるメインページ + - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: -- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 -- トピックごとに、専用ページにまとめる。 -- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 -- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 + - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 + - トピックごとに、専用ページにまとめる。 + - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 + - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 2957ab4f5948ec..3b5a305a52788f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: -- 4Dコードを作成・実行する -- ダイアログを表示する -- オブジェクトを選択する -- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する -- プロジェクトファイルを編集する (更新・削除) + - 4Dコードを作成・実行する + - ダイアログを表示する + - オブジェクトを選択する + - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する + - プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: -- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 + - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 -- 次の構造を持つオブジェクトの使用: + - 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 -- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 -- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 + - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 + - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: -- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき -- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき + - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき + - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index a86503db3951f7..29247432425683 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: -- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます -- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです + - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます + - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: -- プロジェクトフォーム -- フォームのページ1 + - プロジェクトフォーム + - フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) -- ペーストボードへの **カット** または **コピー** -- ペーストボードからオブジェクトを **ペースト** -- **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 + - ペーストボードへの **カット** または **コピー** + - ペーストボードからオブジェクトを **ペースト** + - **クリア** でライブラリからオブジェクトを削除 + - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: -- リスト -- フォーマット/フィルター -- ピクチャー -- ヘルプTips (フィールドにリンク) -- オブジェクトメソッド + - リスト + - フォーマット/フィルター + - ピクチャー + - ヘルプTips (フィールドにリンク) + - オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index b1c963d014258a..e5c43ac356e2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの -- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 + - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 -- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 + - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 -- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 + - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 796d56be1053a4..c846d512cef507 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 + - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 + - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 + - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 -- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 + - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 453b8482218253..4bbe509cb9a258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 -- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 + - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 + - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: -- 選択された項目 -- 項目の展開/折りたたみ状況 -- スクロールカーソルの位置 + - 選択された項目 + - 項目の展開/折りたたみ状況 + - スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 + - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 + - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 -- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 + - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 + - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 67b11a22727950..2e756d989d8014 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 + - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: -- 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 + - 何もしない: ダブルクリックを無視します。 + - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: -- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 -- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 + - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 + - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 + - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index db4b8ddfb3586c..b5e6f8d3e97ef4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: -- 四角 -- 線 -- 楕円 + - 四角 + - 線 + - 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 89558aadffe1d6..01b27f6fe5dd2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: -- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 + - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 + - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 + - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 + - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 -- この値が負数の場合: スプリッターは上または左方向へ移動されました。 -- この値が正数の場合: スプリッターは下または右方向へ移動されました。 -- この値が 0 の場合: スプリッターは元の位置に移動されました。 + - この値が負数の場合: スプリッターは上または左方向へ移動されました。 + - この値が正数の場合: スプリッターは下または右方向へ移動されました。 + - この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 3441134390cdd7..ca316f93ed13eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 -- [進捗インジケーター](progressIndicator.md) -- [ルーラー](ruler.md) + - [進捗インジケーター](progressIndicator.md) + - [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 140dd6f5bccbe0..42924315d34a8a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: -- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 -- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 -- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 -- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 -- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 + - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 + - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 + - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 + - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 + - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 + - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 + - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 + - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 -- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 -- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 + - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 + - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: -- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 -- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 + - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 + - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: -- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 -- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 + - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 + - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: -- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 -- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 + - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 + - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 31fd406343928b..e8e126265e682c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: -- オブジェクト -- 選択リスト -- 配列 + - オブジェクト + - 選択リスト + - 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index acd1812e9e7576..cf3f24dced5d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) -- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 -- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 -- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 + - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 + - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 + - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index af7ed70ab1110a..5c9912a9c739df 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: -- **操作**: ログファイル中での一連の操作番号 + - **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) -- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル + - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル -- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 + - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 + - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 -- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) + - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) -- **日付と時刻**: 処理が実行された日付と時刻 + - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 + - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 + - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* -- **レコード**: レコード番号 + - **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md index b75a3f3cf278d1..e5be8ff2634acd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 -- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 + - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 -- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) -- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 + - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) + - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md index 4ca87d5be46b6d..c913e67801a6d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: -- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 + - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 + - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 440d7232052353..d95ad27ca22a23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: -- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 -- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: + - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 + - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: -- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 -- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 + - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 + - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 64faceac356656..d0ab7d5d8e597b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: -- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 -- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 -- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 + - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 + - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 + - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 + - プロセス名: "REST Handler: \" + - タイプ: HTTP Server Worker + - セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md index cf71cee6b3d2aa..43e98ce12d2cce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): -- コードエディターウィンドウ -- フォームエディターウィンドウ + - コードエディターウィンドウ + - フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 -- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 -- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 + - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 + - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 + - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: -- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 -- **Light**: ライトテーマを使用します。 -- **Dark**: ダークテーマを使用します。 + - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 + - **Light**: ライトテーマを使用します。 + - **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: -- **データベース...** -- **ストラクチャー定義を使用したデータベース...** + - **データベース...** + - **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: -- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき -- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき + - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき + - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 + - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 + - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index e0d5eb69a426f8..9e562869f6c322 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: -- **デフォルトのLightテーマ** -- **デフォルトのDarkテーマ** + - **デフォルトのLightテーマ** + - **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: -- コードエディター全体のグローバルフォントとフォントサイズを設定する。 -- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 + - コードエディター全体のグローバルフォントとフォントサイズを設定する。 + - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 -- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 -- **チェック有り**: リージョン設定が使用されます。 + - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 + - **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 + - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: + - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: -- **なし**: 強調なし -- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) -- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 -- **太字**: 括弧が太字で表示されます。 + - **なし**: 強調なし + - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) + - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 + - **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) -- **しない**(デフォルト): ハイライトなし -- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 -- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 + - **しない**(デフォルト): ハイライトなし + - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 + - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md index c922921306853f..a8a1f2e3fde1b7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: -- 4D -- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) + - 4D + - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: -- `Methods` -- `Forms` -- `TableForms` + - `Methods` + - `Forms` + - `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: -- データベース変換 -- Webサーバーリクエスト -- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) -- コマンドデバッグ -- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) + - データベース変換 + - Webサーバーリクエスト + - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) + - コマンドデバッグ + - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 5979f2a6997c4c..059e4eeddabb19 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 -- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 + - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 + - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: -- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 -- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 + - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 + - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 -- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 + - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 + - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: -- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) -- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) -- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) + - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) + - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) + - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: -- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 + - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 + - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: -- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 -- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 + - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 + - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 -- ZIP形式でコンポーネントファイルを圧縮します。 -- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 -- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 + - ZIP形式でコンポーネントファイルを圧縮します。 + - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 + - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: + - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: + - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: -- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 -- "`*`": リリースされている最新バージョン。 -- "`1.*`": メジャーバージョン 1 の全バージョン。 -- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 -- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 -- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 -- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 -- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 -- "`<=1.2.3`": 1.2.3 までの最新バージョン。 -- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 -- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 + - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 + - "`*`": リリースされている最新バージョン。 + - "`1.*`": メジャーバージョン 1 の全バージョン。 + - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 + - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 + - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 + - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 + - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 + - "`<=1.2.3`": 1.2.3 までの最新バージョン。 + - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 + - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 + - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 -- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 + - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: -- macOs: `$HOME/Library/Caches//Dependencies` -- Windows: `C:\Users\\AppData\Local\\Dependencies` + - macOs: `$HOME/Library/Caches//Dependencies` + - Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 -- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 + - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 + - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 -- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 + - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 + - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: -- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 -- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 + - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 + - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 6748776051563e..a696826968337d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: -- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) -- クラス -- Forms -- テーブルとフィールド + - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) + - クラス + - Forms + - テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... -- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 -- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 + - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) -- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 + - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 + - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: -- `Documentation` ペインにある **作成する** ボタンをクリックするか、 -- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 + - `Documentation` ペインにある **作成する** ボタンをクリックするか、 + - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: -- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) + - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown -- 見出しタグ: + - 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` -- スタイルタグ (イタリック、太字、取り消し線) : + - スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` -- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): + - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` -- テーブルタグ: + - テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` -- リンクタグ: + - リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- 画像タグ: + - 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` -- エクスプローラーの表示: + - エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) -- コードエディターの表示: + - コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 013ed6ad228fc7..4abb8fa2e5d970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 + - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md index d6a83ce65447f3..1ded5dd7335092 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: -- 他の REST セッション -- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 + - 他の REST セッション + - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: -- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 -- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 + - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 + - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index bf98fb587668af..e50b78e469b7f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: -- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 -- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 + - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 + - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: -- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 -- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 -- 引数はコレクション (JSON形式) の中に格納する必要があります。 -- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 + - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 + - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 + - 引数はコレクション (JSON形式) の中に格納する必要があります。 + - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 + - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | -- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 -- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 + - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 + - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 3261d080e8448f..2f959e853d7591 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: -- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス -- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 -- `/rest/$getWebForm` - Qodlyページのレンダリング + - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス + - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 + - `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: -- RESTリクエストの送信元を識別し、認証するためのコード -- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し + - RESTリクエストの送信元を識別し、認証するためのコード + - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index e68534d0d31a73..9aadde0ae7aff3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: -- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 -- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 + - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 + - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index a2c66fa4609967..206a12ab269c49 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 + - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 + - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 + - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: -- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 -- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 -- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 + - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 + - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 + - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 + - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 + - **プロセスを一時停止**: 選択したプロセスを一時停止します。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 + - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 8820a4e8efd6ae..5828467910a979 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: -- **停止** ボタンをクリックする -- リストの中をクリックする -- スペースバーを押す + - **停止** ボタンをクリックする + - リストの中をクリックする + - スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index d7901194653d79..70870aa1aea9a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt" または ".csv") -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt" または ".csv") + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 + - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: -- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 + - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: -- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 -- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 + - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 + - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 163d884fe9f6ea..4b85db02c19f3e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index a2c15488013851..7ac63c9deef533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: -- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 -- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 + - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 + - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5d069870ab5a4e..d00f1cabd92020 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : -- 4D View Pro ドキュメント (拡張子 ".4vp") -- Microsoft Excel 形式 (拡張子 ".xlsx") -- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) -- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") + - 4D View Pro ドキュメント (拡張子 ".4vp") + - Microsoft Excel 形式 (拡張子 ".xlsx") + - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) + - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 -- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 -- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 + - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 + - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 + - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index b68bcfc3a991bc..9a91c5604ce4dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 + - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 + - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- 列を選択するには、対応する文字 (アルファベット) をクリックします。 + - 列を選択するには、対応する文字 (アルファベット) をクリックします。 -- 行を選択するには、対応する番号をクリックします。 + - 行を選択するには、対応する番号をクリックします。 -- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 + - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 -- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 + - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: -- area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 + - area - 4D View Pro エリアの名称 + - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: -- .4vp -- .xlsx -- .txt と .csv -- .sjs -- .pdf (エクスポートのみ) + - .4vp + - .xlsx + - .txt と .csv + - .sjs + - .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 89dfb36cb849a2..a66a66a3b6d4b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 -- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 -- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 + - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 + - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 -- QodlyScript コード: + - QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` -- 上に相当する 4Dランゲージのコード: + - 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 1e516d2de163ba..8d19ba1776734b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: -- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 -- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 + - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 + - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 883be9680d24b6..fe5f718531ff93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: -- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 -- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする -- oAuth 2.0 経由での認証を管理する + - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 + - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする + - oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: -- 聞くべきURL パターン -- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 -- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) + - 聞くべきURL パターン + - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 + - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: -- 最初に合致したパターンが実行されます。 -- それ以降のパターンは、URL に合致していたとしても実行されません。 + - 最初に合致したパターンが実行されます。 + - それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 -- "method": クラスに属性ているクラス関数 + - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 + - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: -- *GeneralHandling* クラス内の*handle 関数* -- *UsersHandling* クラス内の *manageAccount* -- *FinancialHandling* クラス内の *handleInvoices* -- *DocsHandling* クラス内の *handleDocs* -- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* + - *GeneralHandling* クラス内の*handle 関数* + - *UsersHandling* クラス内の *manageAccount* + - *FinancialHandling* クラス内の *handleInvoices* + - *DocsHandling* クラス内の *handleDocs* + - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 9ded11857f4f7f..c227634e28caa5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) + - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) -- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) + - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) -- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 + - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 -- "RESTリソースとして公開" 属性が有効なテーブルのトリガー + - "RESTリソースとして公開" 属性が有効なテーブルのトリガー -- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) + - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: -- *Webサーバー* テーマの全コマンド -- *HTTPクライアント* テーマの全コマンド + - *Webサーバー* テーマの全コマンド + - *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 17c2d431301349..1fcccdee63d7f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: -- キャンバス上にコンポーネントを配置して Qodlyページを作成する -- コンポーネントを Qodly Sources にマッピングする -- イベントを設定して 4Dコードをトリガーする -- さらに沢山のことが可能です + - キャンバス上にコンポーネントを配置して Qodlyページを作成する + - コンポーネントを Qodly Sources にマッピングする + - イベントを設定して 4Dコードをトリガーする + - さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション -- 開発: 4D v20 R2 以上 -- 運用: 4D Server v20 R2 以上 -- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 -- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 -- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 + - 開発: 4D v20 R2 以上 + - 運用: 4D Server v20 R2 以上 + - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 + - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 + - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: -- 4Dアプリケーションレベルで -- プロジェクトレベルで + - 4Dアプリケーションレベルで + - プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: -- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 -- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 + - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 + - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: -- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 -- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 -- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 -- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 + - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 + - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 + - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 + - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: -- クラス関数からメソッドを呼び出すことができます。 -- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 + - クラス関数からメソッドを呼び出すことができます。 + - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: -- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 -- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 + - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 + - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 -- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 -- [4D Webサーバー](webServer.md) を起動しておく必要があります。 + - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 + - [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: -- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 -- 関連する 4Dライセンスが解放されます。 -- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 + - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 + - 関連する 4Dライセンスが解放されます。 + - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: -- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 -- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 -- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 + - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 + - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 + - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 2b30a136bc6766..d2afc2319f0170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: -- 4DTEXT: 4D変数および式をテキストとして挿入します。 -- 4DHTML: HTMLコードを挿入します。 -- 4DEVAL: 4D式を評価します。 -- 4DSCRIPT: 4Dメソッドを実行します。 -- 4DINCLUDE: ページを他のページに含めます。 -- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 -- 4DCODE: 4Dコードを挿入します。 -- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 -- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 -- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 + - 4DTEXT: 4D変数および式をテキストとして挿入します。 + - 4DHTML: HTMLコードを挿入します。 + - 4DEVAL: 4D式を評価します。 + - 4DSCRIPT: 4Dメソッドを実行します。 + - 4DINCLUDE: ページを他のページに含めます。 + - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 + - 4DCODE: 4Dコードを挿入します。 + - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 + - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 + - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index e42bb64f817d64..aca61d9038357d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) + - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) -- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 + - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: -- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 + - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 -- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 + - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: -- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 -- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 + - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 + - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 -- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 + - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 -- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 -- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 + - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: -- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 -- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 + - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 + - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 + - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 + - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 + - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 + - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 020a8dc923f782..fe41c5175f7a14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 -- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 + - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (デフォルト) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (デフォルト) + - 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` -- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 -- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 -- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 + - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 + - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 + - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: -- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4Dリモートモードでは、ローカルのリソースフォルダー内 + - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 + - 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 -- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 -- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 -- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 + - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 + - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 + - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 + - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: -- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 -- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 -- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 + - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 + - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 + - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 23b39e7e675585..d6128159127ebe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: -- ホストアプリケーションの Webサーバーを1つ -- コンポーネント#1 の Webサーバーを1つ -- コンポーネント#2 の Webサーバーを1つ + - ホストアプリケーションの Webサーバーを1つ + - コンポーネント#1 の Webサーバーを1つ + - コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: -- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し -- 4Dタグの処理とメソッドの呼び出し -- Webセッションや TLSプロトコルの管理 + - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し + - 4Dタグの処理とメソッドの呼び出し + - Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: -- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や -- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 + - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や + - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 -- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 -- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 + - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 + - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 9de16429321acb..75a443b6172d1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) + - 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | -- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: + - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index f0e5c9d984ab9e..7d89b03a109738 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: -- レンジ -- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) -- 4D Write Pro ドキュメント + - レンジ + - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) + - 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 -- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 + - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index fc2acfdb8020c0..32e52084f1faf9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. + - the Table Wizard configuration documentation, + - the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: -- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 -- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 -- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 + - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 + - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 + - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: -- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ -- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) -- 表の列として使用できるデータクラス属性 -- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ + - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ + - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) + - 表の列として使用できるデータクラス属性 + - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only + - use of a predefined AI provider and necessity to pass your OpenAI key + - basic chatting features + - no image handling + - non-configurable predefined action commands + - predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. + - in the 4D Write Pro Toolbar, in the **Import Export** tab, + - in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) -- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. -- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. + - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. + - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 6305cfc00401be..28eda06a2a0a2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: -- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 -- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 + - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 + - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index ec284ecd7a9bc4..1ceb2de53786d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: -- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 -- カレントフォームがサブフォームである場合。 -- テーブルフォームが現在画面上に表示されている場合。 + - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 + - カレントフォームがサブフォームである場合。 + - テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: -- コマンドに引数として渡された*formData* オブジェクト(あれば)。 -- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 -- または、空のオブジェクト。 + - コマンドに引数として渡された*formData* オブジェクト(あれば)。 + - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 + - または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` -- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 + - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 7b6bd571dad62d..352fff791b636b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: -- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 -- text -- boolean -- date -- 時間 (ミリ秒の数 (実数) として保存されます)。 -- null -- 共有オブジェクト -- 共有コレクション + - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 + - text + - boolean + - date + - 時間 (ミリ秒の数 (実数) として保存されます)。 + - null + - 共有オブジェクト + - 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index f80d1bd1b2f9c9..cdb231ed9fe273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: -- フォーム名 -- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) -- フォームの詳細を格納しているオブジェクト + - フォーム名 + - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) + - フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: -- **詳細エリアの印刷** + - **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 -- **フォームエリアの印刷** + - **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **セクション印刷** + - **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: -- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 -- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 + - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 + - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: -- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 -- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 + - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 + - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 6ba3012ac1915d..a9bafc2eb7a12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | -- "state" の取り得る値: + - "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | -- "type" の取り得る値: + - "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md index ba21d38bca8883..6e7406bdf9f07b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 -- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 -- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 + - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 + - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: -- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 -- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 -- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 -- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 + - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 + - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 + - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 + - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 -- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. -- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 -- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 + - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. + - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 + - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: -- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). -- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. + - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). + - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 + - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index b89b518f527aec..c3e00c2d71417f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 -- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: + - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. -- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 + - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 -- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 + - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 -- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file + - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md index 8bccad86936066..b920691ca0dbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 -- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 + - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 + - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 + - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 -- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 + - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 -- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 + - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 -- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 + - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 -- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 + - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) -- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 + - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md index 5a7a741d2fec4b..873541121213ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 -- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 + - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 -- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 + - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: -- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 + - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 -- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: + - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: -- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) -- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) -- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 + - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) + - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) + - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: -- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; -- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 + - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; + - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: -- 入力フォーム確定: **Enter** -- 入力フォームキャンセル: **Esc** -- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) + - 入力フォーム確定: **Enter** + - 入力フォームキャンセル: **Esc** + - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: 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..dee6d27d5cbc73 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 @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: -- [最大同時Webプロセス](#最大同時webプロセス) -- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) -- [Use preemptive processes](#use-preemptive-processes) + - [最大同時Webプロセス](#最大同時webプロセス) + - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) + - [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 -- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 + - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 -- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 + - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 -- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) -- state: サーバーの返答。 -- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 + - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) + - state: サーバーの返答。 + - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 -- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 + - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 -- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 + - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 -- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 + - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 -- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 -- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 + - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 + - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 -- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 -- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 -- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 + - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 + - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 + - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 -- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 + - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: -- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 -- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 -- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 + - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 + - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 + - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 1138d8154a484c..f5d90dd86392b9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 5562a804e07ab3..d96e75a9aee559 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: -- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). -- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). -- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). + - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). + - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). + - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 7e1d6622e178ba..67357d2f8733bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 2a241e00bb28bf..6399969341d035 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -207,20 +207,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. -- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). -- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). -- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. -- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. -- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. -- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. -- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. -- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. -- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. + - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. + - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). + - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). + - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. + - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. + - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. + - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. + - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. + - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. + - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -249,8 +249,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. -- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. + - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. + - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -279,9 +279,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. -- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. -- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. + - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. + - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. + - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -289,25 +289,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). -- When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). -- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). -- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. -- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. -- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. -- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. -- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. -- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). -- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). -- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. -- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. -- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. + - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). + - When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). + - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). + - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. + - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. + - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. + - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. + - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. + - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). + - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). + - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. + - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. + - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento -- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). -- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). + - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). + - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -315,21 +315,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. -- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. + - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Mudanças de comportamento -- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). -- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. + - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). + - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -337,24 +337,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. -- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). -- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. -- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). -- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) -- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. -- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. + - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. + - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). + - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. + - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). + - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) + - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. + - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento -- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. -- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). + - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. + - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -362,21 +362,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) -- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. + - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) + - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento -- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). -- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. + - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). + - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -390,15 +390,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques -- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. -- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. + - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. + - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento -- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. + - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 2d483010e8a237..ae9c77ede12e60 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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..2d6736f653cf78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index b6c05fefa599fc..f46faa0b61b065 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -39,8 +39,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: -- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. -- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). + - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. + - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: -- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), -- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). + - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), + - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: -- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, -- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** -- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. + - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, + - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** + - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -234,7 +234,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : + - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,9 +284,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". -- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". + - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. -- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. + - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md index 6fc3020dad7369..c1b08acda98594 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md index d21437b56a1f5a..61aa1e6d319a20 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md @@ -193,9 +193,9 @@ Se surgir um problema ao adicionar ou modificar uma entidade, ser-lhe-á enviado :::note -- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). -- **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: + - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). + - **Booleanos** son true o false. + - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md index f552e7d35b35e5..2a4dbdad883a65 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index a07d153673411c..cb4d9c72d21047 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index c7087a7d78fa5c..9a2b43bb33fca4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- handle an authentication via oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - handle an authentication via oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -95,8 +95,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: -- the first matching pattern is executed -- the following patterns are not executed even if they match the URL + - the first matching pattern is executed + - the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -128,17 +128,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). -- "method": class function belonging to the class. + - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). + - "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -219,11 +219,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: -- *handle function* in the *GeneralHandling* class -- *manageAccount* na classe *UsersHandling* -- *handleInvoices* na classe \*FinancialHandling -- *handleDocs* na classe *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* + - *handle function* in the *GeneralHandling* class + - *manageAccount* na classe *UsersHandling* + - *handleInvoices* na classe \*FinancialHandling + - *handleDocs* na classe *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 1463e612fb2c56..cd92034eb88767 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 146662cec4481d..13d80f1e562734 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- acionar o código 4D configurando eventos -- e muito mais. + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - acionar o código 4D configurando eventos + - e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D -- Desenvolvimento: 4D v20 R2 ou superior -- Desenvolvimento: 4D Server v20 R2 ou superior -- Qodly Studio only works with 4D projects (binary databases are not supported). -- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). -- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). + - Desenvolvimento: 4D v20 R2 ou superior + - Desenvolvimento: 4D Server v20 R2 ou superior + - Qodly Studio only works with 4D projects (binary databases are not supported). + - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). + - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: -- ao nível da aplicação 4D -- a nível do projeto + - ao nível da aplicação 4D + - a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: -- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). -- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. + - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). + - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code The following commands and classes are dedicated to the server-side management of Qodly pages: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. -- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. -- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. -- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. + - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. + - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. + - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: -- Você pode chamar seus métodos a partir de funções classe. -- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. + - Você pode chamar seus métodos a partir de funções classe. + - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty -- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty + - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. -- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. -- O [servidor Web 4D](webServer.md) deve estar em execução. + - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. + - O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -309,9 +309,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: -- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, -- a licença associada ao 4D é liberada, -- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. + - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, + - a licença associada ao 4D é liberada, + - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -363,7 +363,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. -- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. + - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index e6222856a3d812..c546ee102e2cd9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- O caminho não deve começar nem terminar com uma barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- com 4D em modo remoto, na pasta de recursos locais. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta -- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta + - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). -- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). + - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index ae118bb3c8a11f..9f57b41f63b0af 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md index 5a7b84e56d29c0..f92975731a6d8c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md index 4fd62d255b810f..08307bb537735e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. -- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). -- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. + - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). + - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). -- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md index bb202f65a5dfe4..6921cdc43ce710 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. -- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: + - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. -- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). + - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). -- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). + - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). -- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md index a8de63c5c093d0..e14ad720abe5ce 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: -- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. -- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. -- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. + - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. + - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. + - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. -- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. + - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. -- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. + - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. -- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. + - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados -- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. + - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) -- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). + - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md index 9b249ce8754399..41b003b167ebfe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md index b7f34d3e4b2d0c..50a676171a8a74 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. -- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. + - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. -- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html + - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic -- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. + - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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..59cf606f92fedb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: -- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) -- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) -- [Usar processos preemptivos](#use-preemptive-processes) + - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) + - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) + - [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: -- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. + - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. -- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) -- estado: resposta dada pelo servidor. -- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. + - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) + - estado: resposta dada pelo servidor. + - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. -- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. + - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. -- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. + - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. -- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. + - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. -- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. -- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. -- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. + - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. + - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. -- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". + - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: -- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. -- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). -- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. + - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. + - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). + - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 51b288575d7208..ff6661f192e020 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas -- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. -- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. + - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. + - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index d474fd0e038e34..e7f4dff58d6d8f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index c63253d649fce3..f145ad3f0030a5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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..143ed134bd5e1b 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 9122d4ff37673f..7e1cf1df45e40b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: -- a periodicidade das cópias de segurança automáticas -- os arquivos a incluir em cada backup -- as funcionalidades avançadas que permitem executar tarefas automáticas + - a periodicidade das cópias de segurança automáticas + - os arquivos a incluir em cada backup + - as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. + - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. + - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 556bb6af1296b0..704ebdc0162f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index 67a39c8d81d25d..f98382730ba66b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 5562a804e07ab3..d96e75a9aee559 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: -- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). -- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). -- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). + - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). + - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). + - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 03616bbe2c57c7..08405ce2e879d5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -49,8 +49,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -74,9 +74,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 4406f1744cd649..bda81ac2c4baa2 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 @@ -39,20 +39,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. -- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). -- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. -- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). -- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. -- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. -- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). -- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. -- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. -- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). -- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. -- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. -- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. + - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. + - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). + - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). + - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. + - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). + - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. + - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. + - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). + - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. + - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. + - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). + - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. + - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. + - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. -- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. + - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. + - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento -- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. -- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. -- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. + - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. + - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. + - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). -- Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). -- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). -- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. -- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. -- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. -- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. -- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. -- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). -- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). -- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. -- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. -- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. + - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). + - Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). + - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). + - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. + - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. + - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. + - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. + - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. + - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). + - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). + - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. + - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. + - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento -- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). -- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). + - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). + - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -147,21 +147,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques -- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. -- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). -- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). -- 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 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. + - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. + - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). + - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). + - 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 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. #### Mudanças de comportamento -- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). -- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. + - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). + - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. -- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). -- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). -- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. -- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). -- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) -- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. -- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). -- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). -- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. + - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. + - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). + - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). + - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. + - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). + - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) + - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. + - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). + - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). + - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento -- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. -- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). -- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. -- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). + - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. + - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). + - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. + - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques -- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). -- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). -- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). -- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). -- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). -- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). -- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) -- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) -- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. + - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). + - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). + - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). + - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). + - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). + - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). + - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) + - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) + - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento -- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). -- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. + - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). + - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -222,15 +222,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques -- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. -- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. -- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. -- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). -- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. + - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. + - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. + - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. + - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento -- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. + - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 89f7200ce40369..ceb561ae20b10d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. + - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. + - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). + - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, + - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. -- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: + - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` -- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: + - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` -- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: + - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 29f41eb921bd1a..f89c79f64e5a21 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -120,9 +120,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index c78e4286cff83c..3a277756e5fa88 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -52,8 +52,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: -- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. -- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). + - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. + - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: -- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), -- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). + - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), + - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: -- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, -- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** -- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. + - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, + - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** + - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -84,8 +84,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -202,9 +202,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: -- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : + - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -260,7 +260,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -277,17 +277,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -297,9 +297,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". -- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". + - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -325,8 +325,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed + - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file + - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. + - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. -- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. + - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. + - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). + - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. + - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... + - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -399,16 +399,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -442,8 +442,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Você pode definir a opção [tag ou versão](#tags-and-versions) para uma depen ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). -- **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. -- **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. -- **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. -- **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). + - **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). + - **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. + - **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. + - **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. + - **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). A versão atual da dependência do GitHub é exibida no lado direito do item de dependência: @@ -524,8 +524,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -541,11 +541,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -590,13 +590,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index f3a85b723ead42..36d3ee0320e863 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 f552e7d35b35e5..2a4dbdad883a65 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 6bcadedbf99395..9c6345ce096f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -128,8 +128,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -146,10 +146,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1de6c9b89e4d15..509e11e0a6cb9f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), -- handle an authentication via oAuth 2.0. + - using a given URL as a resource provider or a file-uploading box (to download or upload various files), + - redirecting on specific pages according to a context (user authenticated, privileges granted...), + - handle an authentication via oAuth 2.0. ## Requisitos Custom HTTP Request handlers are supported: -- quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, -- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). + - quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, + - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: -- a listened URL pattern -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler + - a listened URL pattern + - a function and its class where the code is implemented to handle the listened URL pattern + - the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -84,8 +84,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: -- the first matching pattern is executed -- the following patterns are not executed even if they match the URL + - the first matching pattern is executed + - the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -117,17 +117,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: -- `/4DACTION` -- `/rest` -- `/$lib/renderer` -- `/$shared` + - `/4DACTION` + - `/rest` + - `/$lib/renderer` + - `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). -- "method": class function belonging to the class. + - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). + - "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -208,11 +208,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: -- *handle function* in the *GeneralHandling* class -- *manageAccount* na classe *UsersHandling* -- *handleInvoices* na classe \*FinancialHandling -- *handleDocs* na classe *DocsHandling* -- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* + - *handle function* in the *GeneralHandling* class + - *manageAccount* na classe *UsersHandling* + - *handleInvoices* na classe \*FinancialHandling + - *handleDocs* na classe *DocsHandling* + - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 772b825b9b04c1..562e616a835a1e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada um desses métodos e partes de código, o compilador irá verificar se as regras de segurança de threads são respeitadas, e retornará erros em caso de problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: -- *4daction/* (el método proyecto llamado también debe ser hilo seguro) -- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) -- *4dwebtest/* -- *4dblank/* -- *4dstats/* -- *4dhtmlstats/* -- *4dcacheclear/* -- *rest/* -- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) -- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) + - *4daction/* (el método proyecto llamado también debe ser hilo seguro) + - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) + - *4dwebtest/* + - *4dblank/* + - *4dstats/* + - *4dhtmlstats/* + - *4dcacheclear/* + - *rest/* + - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) + - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index d1108f678dd9b7..1591d97b78a034 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: -- create Qodly pages by placing components on a canvas -- map components to Qodly Sources -- acionar o código 4D configurando eventos -- e muito mais. + - create Qodly pages by placing components on a canvas + - map components to Qodly Sources + - acionar o código 4D configurando eventos + - e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: -- Chrome -- Edge -- FireFox + - Chrome + - Edge + - FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D -- Desenvolvimento: 4D v20 R2 ou superior -- Desenvolvimento: 4D Server v20 R2 ou superior -- Qodly Studio only works with 4D projects (binary databases are not supported). -- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). -- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). + - Desenvolvimento: 4D v20 R2 ou superior + - Desenvolvimento: 4D Server v20 R2 ou superior + - Qodly Studio only works with 4D projects (binary databases are not supported). + - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). + - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: -- ao nível da aplicação 4D -- a nível do projeto + - ao nível da aplicação 4D + - a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: -- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). -- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. + - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). + - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -146,24 +146,24 @@ There is no direct compatibility between apps implemented with 4D and apps imple The following commands and classes are dedicated to the server-side management of Qodly pages: -- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. -- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. -- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. -- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. + - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. + - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. + - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. + - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: -- Você pode chamar seus métodos a partir de funções classe. -- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. + - Você pode chamar seus métodos a partir de funções classe. + - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: -- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty -- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). + - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty + - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -179,8 +179,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. -- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. -- O [servidor Web 4D](webServer.md) deve estar em execução. + - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. + - O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -310,9 +310,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: -- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, -- a licença associada ao 4D é liberada, -- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. + - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, + - a licença associada ao 4D é liberada, + - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -364,7 +364,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: -- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). -- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. -- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. + - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). + - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. + - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 15253435c6bf01..bfa6e7452d2fcd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. -- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- O caminho não deve começar nem terminar com uma barra. + - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. -- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. + - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: -- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). -- com 4D em modo remoto, na pasta de recursos locais. + - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). + - com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. -- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). -- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) -- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta -- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). + - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). + - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) + - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta + - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: -- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. -- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). -- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). + - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. + - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). + - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 8279b68a3320eb..241cf8f08802d9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 06e4be9e27340c..9932777fa589eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index 379594a459210d..7e4493042ef320 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. -- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). -- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. + - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). + - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). -- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index bb202f65a5dfe4..6921cdc43ce710 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. -- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: + - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. -- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). + - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). -- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). + - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). -- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index a8de63c5c093d0..e14ad720abe5ce 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: -- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. -- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. -- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. + - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. + - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. + - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. -- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. + - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. -- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. + - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. -- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. + - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados -- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. + - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) -- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). + - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 9b249ce8754399..41b003b167ebfe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index b7f34d3e4b2d0c..50a676171a8a74 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. -- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. + - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. -- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html + - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic -- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. + - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. + - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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..b13a314a936fc3 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 @@ -82,9 +82,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: -- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) -- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) -- [Usar processos preemptivos](#use-preemptive-processes) + - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) + - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) + - [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: -- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. + - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -177,9 +177,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. -- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) -- estado: resposta dada pelo servidor. -- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. + - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) + - estado: resposta dada pelo servidor. + - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -193,16 +193,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. -- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. + - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. -- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. + - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. -- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. + - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -242,8 +242,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -263,9 +263,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. -- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. -- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. -- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. + - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. + - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -273,7 +273,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. -- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". + - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -307,9 +307,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: -- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. -- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). -- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. + - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. + - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). + - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md index 6bf64392b8daa5..21257ef833a0bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/method-list.md @@ -1133,7 +1133,7 @@ $vpObj:=VP Export to object("vpArea";New object("includeFormatInfo";False)) ### VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object @@ -3886,7 +3886,7 @@ VP REMOVE TABLE("ViewProArea"; "people"; vk table remove style; 2) -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 51b288575d7208..ff6661f192e020 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas -- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. -- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. + - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. + - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md index d474fd0e038e34..e7f4dff58d6d8f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index e4c03a133f8be1..6526a74cdccc72 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: -- text -- blob -- object -- image + - text + - blob + - object + - image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: -- Text -- Blob -- Object -- Imagem + - Text + - Blob + - Object + - Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: -- Content-Type:text/plain se o corpo é um Texto -- Content-Type:application/octet-stream se o corpo é um Blob -- Content-Type:application/json se o corpo é um objeto -- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem + - Content-Type:text/plain se o corpo é um Texto + - Content-Type:application/octet-stream se o corpo é um Blob + - Content-Type:application/json se o corpo é um objeto + - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index c63253d649fce3..f145ad3f0030a5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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..143ed134bd5e1b 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 556bb6af1296b0..704ebdc0162f49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 1138d8154a484c..f5d90dd86392b9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: -- [objetos de subformulário](FormObjects/subform_overview.md) -- [formulários herdados](./properties_FormProperties.md#inherited-form-name) + - [objetos de subformulário](FormObjects/subform_overview.md) + - [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: -- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. -- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. -- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: + - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. + - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. + - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: -- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. + - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. -- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. + - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: -- uma página 1: uma página principal, exibida por defeito -- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. + - uma página 1: uma página principal, exibida por defeito + - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: -- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. -- Organize cada tópico na sua própria página. -- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). -- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. + - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. + - Organize cada tópico na sua própria página. + - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). + - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 50c036cfa4e172..1976dfab5cc6e9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: -- Criar e executar código 4D -- Exibir diálogos -- Seleccionar objectos do formulário -- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades -- Modificar ficheiros de projeto (atualizar, apagar) + - Criar e executar código 4D + - Exibir diálogos + - Seleccionar objectos do formulário + - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades + - Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: -- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). + - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). -- Utilizar um objeto com a seguinte estrutura: + - Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: -- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. -- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. -- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. + - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. + - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. + - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: -- eliminar ou modificar um script cujo ficheiro é só de leitura. -- criar dois objectos com o mesmo ID interno. + - eliminar ou modificar um script cujo ficheiro é só de leitura. + - criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index efa0e17a907175..2546b3af5ce86d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: -- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. -- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. + - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. + - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: -- **.4dproject** -- **.4dz** + - **.4dproject** + - **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: -- formulários projecto -- páginas formulário 1 + - formulários projecto + - páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) -- **Cortar** ou **Copiar** para a área de transferência -- **Colar** um objeto da área de transferência -- **Clear** - exclui o objeto da biblioteca -- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. + - **Cortar** ou **Copiar** para a área de transferência + - **Colar** um objeto da área de transferência + - **Clear** - exclui o objeto da biblioteca + - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): -- Listas -- Formatos/Filtros -- Imagens -- Dicas de ajuda (ligadas a um campo) -- Métodos objecto + - Listas + - Formatos/Filtros + - Imagens + - Dicas de ajuda (ligadas a um campo) + - Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 59cd45b373b908..8190745cf00f5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em -- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). + - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. -- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). + - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). -- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. + - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 2b2ff0255f62a4..ee433526b04f38 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: -- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. -- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. + - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. + - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: -- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. + - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. -- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. + - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 98e8e0757a1496..18b5e12ecbad35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: -- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. -- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. + - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. + - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: -- A selecção, -- O estado expandido/recolhido dos seus itens, -- A posição do cursor de rolagem. + - A selecção, + - O estado expandido/recolhido dos seus itens, + - A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): -- `OBJECT SET FONT` -- `OBJECT SET FONT STYLE` -- `OBJECT SET FONT SIZE` -- `OBJECT SET FILTER` -- `OBJECT SET ENTERABLE` -- `OBJECT SET SCROLLBAR` -- `OBJECT SET SCROLL POSITION` -- `OBJECT SET RGB COLORS` + - `OBJECT SET FONT` + - `OBJECT SET FONT STYLE` + - `OBJECT SET FONT SIZE` + - `OBJECT SET FILTER` + - `OBJECT SET ENTERABLE` + - `OBJECT SET SCROLLBAR` + - `OBJECT SET SCROLL POSITION` + - `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. -- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. -- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. + - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. + - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. -- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). + - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). -- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). + - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 7e1d6622e178ba..67357d2f8733bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). -- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. + - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: -- Não fazer nada: Ignora o duplo clique. -- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. + - Não fazer nada: Ignora o duplo clique. + - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: -- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. -- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. -- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. + - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. + - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. + - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index befe7cdd72f1fb..5e6535494a6135 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: -- retângulos -- linhas -- ovals + - retângulos + - linhas + - ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index c624643b6ed698..00c8677749a98a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: -- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. -- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. -- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. -- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. + - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. + - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. + - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. + - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. -- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, -- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, -- Se o valor for 0: o divisor foi movido para a sua posição original. + - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, + - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, + - Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 9d7391c49e6918..7610cecefa7aea 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também -- [progress indicators](progressIndicator.md) -- [rulers](ruler.md) + - [progress indicators](progressIndicator.md) + - [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index e1f1d4853cf367..b472d374fe88ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: -- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. -- **Formulário pai**: um formulário que contém um ou mais subformulários. -- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. -- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. -- **Formulário lista**: instância do subformulário exibido como uma lista. -- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. + - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. + - **Formulário pai**: um formulário que contém um ou mais subformulários. + - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. + - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. + - **Formulário lista**: instância do subformulário exibido como uma lista. + - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: -- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. -- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. + - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. + - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): -- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. -- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. + - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. + - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): -- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído -- se o subformulário pertence à página formulário atual ou à página 0. + - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído + - se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: -- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. -- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. + - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. + - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: -- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` -- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` + - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` + - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index ddfbf5182f546a..f63a09ee25c6a1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: -- um objeto -- uma lista de escolha -- um array + - um objeto + - uma lista de escolha + - um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index b46a43a9cb707f..1874c230c87282 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) -- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; -- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; -- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. + - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; + - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; + - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index ce0260fae633f8..718f34458fb45e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: -- **Operación**: número de secuencia de la operación en el archivo de historial. + - **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). -- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. + - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. -- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. + - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. -- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. + - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. -- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. + - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. -- **Fecha y hora**: fecha y hora en que se realizó la operación. + - **Fecha y hora**: fecha y hora en que se realizó la operación. -- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. + - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. -- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. + - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* -- **Registros**: número del registro. + - **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md index 6a2b8390d33a66..ac2e7fd1a50dc6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. -- A segunda tabela lista as tabelas do ficheiro de projeto. + - A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: -- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", -- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". + - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", + - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 819c0908dd1497..e27c3f1f6ae59f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: -- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. -- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: + - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. + - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: -- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). -- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. + - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). + - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 061e0c6def1e49..ff2efe2b2b9483 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: -- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. -- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. -- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. + - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. + - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. + - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: -- nombre: "REST Handler: \" -- type: type Worker Server HTTP -- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. + - nombre: "REST Handler: \" + - type: type Worker Server HTTP + - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md index e5968402c5d1f8..489847b36fb8f3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): -- Method Editor windows -- Janelas do editor de formulários + - Method Editor windows + - Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: -- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). -- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). -- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. + - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). + - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). + - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: -- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. -- **Claro**: utilizar el tema claro -- **Sombra**: utilizar el tema Sombra + - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. + - **Claro**: utilizar el tema claro + - **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: -- **Base de dados...** -- **Base de dados a partir da definição da estrutura...** + - **Base de dados...** + - **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: -- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; -- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. + - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; + - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. -- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. -- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. + - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. + - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 0d2618f571d757..612d3c05d3f8fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: -- **Tema Light predefinido** -- **Tema escuro predefinido** + - **Tema Light predefinido** + - **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: -- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, -- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. + - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, + - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. -- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. -- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. + - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. + - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: -- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). + - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). -- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": + - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) -- **No**(por defecto): no resaltado -- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto -- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto + - **No**(por defecto): no resaltado + - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto + - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md index 6308d745616b51..2d6736f653cf78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: -- 4D -- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) + - 4D + - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: -- `Página Métodos` -- `Formulários` -- `TableForms` + - `Página Métodos` + - `Formulários` + - `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: -- conversão da base de dados, -- pedidos do servidor Web, -- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) -- depuração de comandos, -- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). + - conversão da base de dados, + - pedidos do servidor Web, + - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) + - depuração de comandos, + - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index b6c05fefa599fc..e249d09c4454c3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). -- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. -- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. + - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. + - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: -- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), -- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). + - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), + - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: -- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. -- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. + - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. + - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: -- Compacte os arquivos de componentes no formato ZIP. -- Nomeie este arquivo com o mesmo nome do repositório do GitHub. -- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. + - Compacte os arquivos de componentes no formato ZIP. + - Nomeie este arquivo com o mesmo nome do repositório do GitHub. + - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` -- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: + - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: -- "latest": a versão com o selo "latest" nas versões GitHub. -- "\*": a versão mais recente lançada. -- "1.\*": todas as versões da versão principal 1. -- "1.2.\*": todos os patches da versão menor 1.2. -- ">=1.2.3": a última versão, começando com a versão 1.2.3. -- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. -- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. -- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. -- "<=1.2.3": a versão mais recente até a 1.2.3. -- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. -- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. + - "latest": a versão com o selo "latest" nas versões GitHub. + - "\*": a versão mais recente lançada. + - "1.\*": todas as versões da versão principal 1. + - "1.2.\*": todos os patches da versão menor 1.2. + - ">=1.2.3": a última versão, começando com a versão 1.2.3. + - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. + - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. + - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. + - "<=1.2.3": a versão mais recente até a 1.2.3. + - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. + - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,7 +284,7 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. -- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". + - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: -- en macOs: `$HOME/Library/Caches//Dependencies` -- no Windows: `C:\Users\\AppData\Local\\Dependencies` + - en macOs: `$HOME/Library/Caches//Dependencies` + - no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: -- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). -- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). -- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. -- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). -- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. -- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. -- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). -- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. -- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. + - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). + - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). + - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. + - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). + - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. + - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. + - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). + - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. + - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: -- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. -- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. + - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. + - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. -- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). -- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). + - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). + - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: -- Verificação automática e manual das versões disponíveis -- Atualização automática e manual de componentes + - Verificação automática e manual das versões disponíveis + - Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: -- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. + - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) -- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. + - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: -- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: + - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) -- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: + - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: -- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. -- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. + - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. + - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: -- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), -- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). + - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), + - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: -- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. -- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. + - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. + - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 6fc3020dad7369..c1b08acda98594 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: -- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) -- Classes -- Formulários -- Tabela + - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) + - Classes + - Formulários + - Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... -- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. + - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. -- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. + - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) -- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). + - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). -- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. + - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: -- haga clic en el botón **Crear** en el panel `Documentation` o, -- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. + - haga clic en el botón **Crear** en el panel `Documentation` o, + - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): -- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. + - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado -- A etiqueta de título é suportada: + - A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` -- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: + - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` -- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: + - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` -- A etiqueta de tabela é suportada: + - A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` -- A etiqueta de ligação é suportada: + - A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` -- As etiquetas de imagem são suportadas: + - As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` -- Explorer view: + - Explorer view: ![](../assets/en/Project/explorer_Doc.png) -- Code editor view: + - Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 90cb64398ccff7..caba09f6643420 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). -- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. + - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 6e2dfde4a12fb3..dd48476a7fcfe5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: -- outras sessões REST -- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. + - outras sessões REST + - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: -- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` -- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). + - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` + - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 3c9932bb4f93c7..206f046a875fa3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: -- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. -- usando solicitações **GET**, com parâmetros passados diretamente no URL. + - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. + - usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: -- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. -- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. -- Os parâmetros devem ser incluídos numa coleção (formato JSON). -- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. -- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. + - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. + - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. + - Os parâmetros devem ser incluídos numa coleção (formato JSON). + - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. + - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | -- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. -- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos + - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. + - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 f552e7d35b35e5..2a4dbdad883a65 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: -- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis -- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario -- `/rest/$getWebForm` - Renderização de uma página Qodly + - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis + - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario + - `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: -- some code to identify and authenticate the REST request sender, -- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. + - some code to identify and authenticate the REST request sender, + - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 27aad6d6b81bb5..d9eebedfbac004 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: -- criar e configurar um banco de dados 4D simples -- acessar aos dados do banco 4D através de REST usando um navegador padrão. + - criar e configurar um banco de dados 4D simples + - acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index fad2c4c98b5da4..30393392c3e856 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) -- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. -- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. -- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. + - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. + - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: -- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, -- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), -- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. + - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, + - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), + - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) -- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. + - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. -- **Pausar processo**: pode ser usado para pausar os processos selecionados. -- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. -- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). + - **Pausar processo**: pode ser usado para pausar os processos selecionados. + - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. + - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. -- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. + - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index c9786f2d62d820..66fa7e9eb96532 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: -- haciendo clic en el botón **Pausa**, -- clicando na lista, -- premindo a barra de espaços. + - haciendo clic en el botón **Pausa**, + - clicando na lista, + - premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 667ae23ab125a4..e283eb9cf3a573 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: -- 4D View Pro (".4vp") -- Microsoft Excel (".xlsx") -- PDF (".pdf") -- CSV (".txt", ou ".csv") -- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") + - 4D View Pro (".4vp") + - Microsoft Excel (".xlsx") + - PDF (".pdf") + - CSV (".txt", ou ".csv") + - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: -- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. -- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. + - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: -- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: -- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. -- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. + - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: -- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. -- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. + - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. + - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index fc90cc04ccc72f..3a6361ba1ce077 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: -- `vk current sheet` -- `vk workbook` + - `vk current sheet` + - `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 40e8f143e18c79..47e8cd97ce06bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: -- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy -- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) + - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy + - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 89009c2424490e..950f0b3fadd449 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: -- Os documentos 4D View Pro (extensão ".4vp") -- Microsoft Excel (extensão ".xlsx") -- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) -- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") + - Os documentos 4D View Pro (extensão ".4vp") + - Microsoft Excel (extensão ".xlsx") + - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) + - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas -- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. -- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). -- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) -- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. -- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. + - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. + - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). + - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) + - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. + - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index a07d153673411c..cb4d9c72d21047 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas -- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. + - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. -- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. + - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) -- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). + - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). -- Para selecionar uma linha, clique no número correspondente. + - Para selecionar uma linha, clique no número correspondente. -- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. + - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. -- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. + - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: -- área - O nome da área 4D View Pro -- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. + - área - O nome da área 4D View Pro + - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: -- .4vp -- .xlsx -- .txt e .csv -- .sjs -- .pdf (apenas para exportação) + - .4vp + - .xlsx + - .txt e .csv + - .sjs + - .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 836441d9b6ee0d..217af63b46f897 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. -- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. -- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. + - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. + - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo -- Código QodlyScript: + - Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` -- Código 4D equivalente no linguajem: + - Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 1d7161d9a2c5e7..977b254aee9de4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: -- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) -- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. + - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) + - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 1463e612fb2c56..0b8acd50f8d5f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) -- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); + - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); -- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml + - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml -- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) + - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) -- Triggers para as tabelas com o atributo "Expor como recurso REST" + - Triggers para as tabelas com o atributo "Expor como recurso REST" -- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST + - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: -- todos los comandos del tema *Servidor Web*, -- todos los comandos del tema *Cliente HTTP*. + - todos los comandos del tema *Servidor Web*, + - todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index db7782b67a1684..48f067b2f19148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: -- 4DTEXT, para inserir variáveis e expressões 4D como texto, -- 4DHTML, para inserir código HTML, -- 4DEVAL, para avaliar qualquer expressão 4D, -- 4DSCRIPT, para executar um método 4D, -- 4DINCLUDE, para incluir uma página dentro de outra, -- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, -- 4DCODE, para inserir o código 4D, -- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, -- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, -- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. + - 4DTEXT, para inserir variáveis e expressões 4D como texto, + - 4DHTML, para inserir código HTML, + - 4DEVAL, para avaliar qualquer expressão 4D, + - 4DSCRIPT, para executar um método 4D, + - 4DINCLUDE, para incluir uma página dentro de outra, + - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, + - 4DCODE, para inserir o código 4D, + - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, + - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, + - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 0e029a4c08341a..895a31a450f2aa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) -- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) + - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) -- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. + - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: -- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). + - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). -- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. + - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: -- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. -- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. + - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. + - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: -- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. + - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. -- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. + - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. -- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. + - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: -- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), -- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). + - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), + - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. -- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. + - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. -- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. + - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. -- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. + - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. -- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. + - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index e6222856a3d812..e51eb633529c2d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: -- 192.168.5.17:8081 -- 192.168.5.17 -- 192.168.\* -- 192.168.\*:8081 -- http://192.168.5.17:8081 -- http://\*.myDomain.com -- http://myProject.myDomain.com -- \*.myDomain.com -- myProject.myDomain.com -- \* + - 192.168.5.17:8081 + - 192.168.5.17 + - 192.168.\* + - 192.168.\*:8081 + - http://192.168.5.17:8081 + - http://\*.myDomain.com + - http://myProject.myDomain.com + - \*.myDomain.com + - myProject.myDomain.com + - \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: -- GET -- HEAD -- POST -- PUT -- DELETE -- OPTIONS -- TRACE -- PATCH + - GET + - HEAD + - POST + - PUT + - DELETE + - OPTIONS + - TRACE + - PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: -- 1 = TLSv1_0 -- 2 = TLSv1_1 -- 3 = TLSv1_2 (padrão) -- 4 = TLSv1_3 + - 1 = TLSv1_0 + - 2 = TLSv1_1 + - 3 = TLSv1_2 (padrão) + - 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` -- "User-Agent: \*" - todos os robôs são afetados. -- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. -- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. -- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. + - "User-Agent: \*" - todos os robôs são afetados. + - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. + - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. + - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 74a343c263f4b0..13a20739a6d43d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: -- um servidor web para a aplicação local, -- um servidor Web para o componente #1, -- um servidor Web para o componente #2. + - um servidor web para a aplicação local, + - um servidor Web para o componente #1, + - um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: -- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` -- o processamento das etiquetas 4D e das chamadas de métodos, -- sessões Web e gestão do protocolo TLS. + - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` + - o processamento das etiquetas 4D e das chamadas de métodos, + - sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: -- o servidor Web da aplicação host a partir de um componente ou -- o servidor que recebeu o pedido (qualquer que seja o servidor), + - o servidor Web da aplicação host a partir de um componente ou + - o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. -- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. -- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. + - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. + - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index ae118bb3c8a11f..9f57b41f63b0af 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: -- um intervalo, ou -- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or -- um documento 4D Write Pro + - um intervalo, ou + - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or + - um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | -- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: + - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. -- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. + - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 23587c8ed23223..491bc78f5d2554 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: -- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), -- o formulário atual é um subformulário, -- um formulário de tabela é exibido na tela no momento. + - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), + - o formulário atual é um subformulário, + - um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: -- o objeto *formData* passado como parâmetro para esse comando, se houver, -- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, -- ou um objeto vazio. + - o objeto *formData* passado como parâmetro para esse comando, se houver, + - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, + - ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` -- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. + - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 2ffe7e88a60ae7..2128ff99f847fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: -- número (real, longint....). Valores numéricos são sempre armazenados como reais. -- text -- boolean -- date -- hora (armazenada como número de milissegundos - real) -- null -- objeto compartido -- coleção compartilhada + - número (real, longint....). Valores numéricos são sempre armazenados como reais. + - text + - boolean + - date + - hora (armazenada como número de milissegundos - real) + - null + - objeto compartido + - coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 06e4be9e27340c..9932777fa589eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: -- o nome de um formulário, ou -- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou -- um objeto contendo uma descrição do formulário. + - o nome de um formulário, ou + - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou + - um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: -- **Impressão da área de detalhe** + - **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. -- **Impressão da área do formulário** + - **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | -- **Impressão da seção** + - **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: -- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. -- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. + - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. + - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: -- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). -- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. + - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). + - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md index c35abaaaa85ce5..8ef8463555262b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | -- Valores possíveis para "state": + - Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | -- Valores possíveis para "type": + - Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 4fd62d255b810f..08307bb537735e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. -- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). -- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. + - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). + - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). -- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). -- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). -- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. + - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). + - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). + - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index bb202f65a5dfe4..6921cdc43ce710 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. -- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: + - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. -- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). + - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). -- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). + - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). -- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). + - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). -- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file + - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md index 9b249ce8754399..41b003b167ebfe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. -- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. + - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. -- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. + - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: -- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. + - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. -- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: + - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: -- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; -- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". + - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; + - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: -- Aceptación de formulario de entrada: **Entrada** -- Anulación de entrada: **Esc** -- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) + - Aceptación de formulario de entrada: **Entrada** + - Anulación de entrada: **Esc** + - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: 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..59cf606f92fedb 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 @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: -- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) -- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) -- [Usar processos preemptivos](#use-preemptive-processes) + - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) + - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) + - [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: -- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. + - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. -- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) -- estado: resposta dada pelo servidor. -- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. + - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) + - estado: resposta dada pelo servidor. + - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. -- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. + - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. -- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. + - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. -- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. + - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. -- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. -- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. + - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. + - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. -- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. -- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. -- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. + - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. + - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. + - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. -- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". + - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: -- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. -- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). -- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. + - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. + - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). + - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. From 00a276f2b10956a901a94dc3816a87f27fc1a774 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 22 Aug 2025 10:05:37 +0200 Subject: [PATCH 029/119] New Crowdin updates (#2876) * New translations classclass.md (French) * New translations document.md (French) * New translations classclass.md (Spanish) * New translations document.md (Spanish) * New translations classclass.md (Japanese) * New translations document.md (Japanese) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (French) * New translations webformclass.md (French) * New translations smtptransporterclass.md (Spanish) * New translations webformclass.md (Spanish) * New translations smtptransporterclass.md (Japanese) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations websocketclass.md (French) * New translations websocketserverclass.md (French) * New translations websocketclass.md (Spanish) * New translations websocketserverclass.md (Spanish) * New translations webformclass.md (Japanese) * New translations websocketclass.md (Japanese) * New translations websocketserverclass.md (Japanese) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations tls.md (French) * New translations webadmin.md (French) * New translations backup.md (French) * New translations log.md (French) * New translations restore.md (French) * New translations settings.md (French) * New translations tls.md (Spanish) * New translations webadmin.md (Spanish) * New translations backup.md (Spanish) * New translations log.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations tls.md (Japanese) * New translations webadmin.md (Japanese) * New translations backup.md (Japanese) * New translations log.md (Japanese) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations tls.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations backup.md (Portuguese, Brazilian) * New translations log.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations operators.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations operators.md (Spanish) * New translations variables.md (Spanish) * New translations basics.md (Spanish) * New translations operators.md (Japanese) * New translations variables.md (Japanese) * New translations basics.md (Japanese) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations debugger.md (French) * New translations building.md (French) * New translations clientserver.md (French) * New translations onafteredit.md (French) * New translations debugger.md (Spanish) * New translations building.md (Spanish) * New translations clientserver.md (Spanish) * New translations onafteredit.md (Spanish) * New translations debugger.md (Japanese) * New translations building.md (Japanese) * New translations clientserver.md (Japanese) * New translations onafteredit.md (Japanese) * New translations debugger.md (Portuguese, Brazilian) * New translations building.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (French) * New translations onclicked.md (French) * New translations onbegindragover.md (Spanish) * New translations onclicked.md (Spanish) * New translations onbegindragover.md (Japanese) * New translations onclicked.md (Japanese) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (French) * New translations ondragover.md (French) * New translations onheader.md (French) * New translations onheaderclick.md (French) * New translations ondisplaydetail.md (Spanish) * New translations ondragover.md (Spanish) * New translations onheader.md (Spanish) * New translations onheaderclick.md (Spanish) * New translations ondisplaydetail.md (Japanese) * New translations ondragover.md (Japanese) * New translations onheader.md (Japanese) * New translations onheaderclick.md (Japanese) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations classclass.md (Spanish) * New translations parameters.md (French) * New translations createstylesheet.md (Spanish) * New translations classclass.md (Spanish) * New translations basics.md (French) * New translations createstylesheet.md (Spanish) * New translations parameters.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) --- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/WebFormClass.md | 8 +-- .../current/API/WebSocketClass.md | 12 ++-- .../current/API/WebSocketServerClass.md | 12 ++-- .../current/Admin/webAdmin.md | 22 +++---- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 ++-- .../current/Concepts/operators.md | 58 +++++++++---------- .../current/Concepts/variables.md | 22 +++---- .../current/Debugging/basics.md | 24 ++++---- .../current/Events/onAfterEdit.md | 8 +-- .../current/Events/onClicked.md | 10 ++-- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/WebFormClass.md | 8 +-- .../current/API/WebSocketClass.md | 12 ++-- .../current/API/WebSocketServerClass.md | 12 ++-- .../current/Admin/webAdmin.md | 28 ++++----- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 ++-- .../current/Concepts/operators.md | 58 +++++++++---------- .../current/Concepts/variables.md | 22 +++---- .../current/Debugging/basics.md | 18 +++--- .../current/Events/onAfterEdit.md | 8 +-- .../current/Events/onClicked.md | 10 ++-- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/WebFormClass.md | 8 +-- .../current/API/WebSocketClass.md | 12 ++-- .../current/API/WebSocketServerClass.md | 12 ++-- .../current/Admin/webAdmin.md | 28 ++++----- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 ++-- .../current/Concepts/operators.md | 58 +++++++++---------- .../current/Concepts/variables.md | 22 +++---- .../current/Debugging/basics.md | 24 ++++---- .../current/Events/onAfterEdit.md | 8 +-- .../current/Events/onClicked.md | 10 ++-- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/WebFormClass.md | 8 +-- .../current/API/WebSocketClass.md | 12 ++-- .../current/API/WebSocketServerClass.md | 12 ++-- .../current/Admin/webAdmin.md | 22 +++---- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 ++-- .../current/Concepts/operators.md | 58 +++++++++---------- .../current/Concepts/variables.md | 22 +++---- .../current/Debugging/basics.md | 24 ++++---- .../current/Events/onAfterEdit.md | 8 +-- .../current/Events/onClicked.md | 10 ++-- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- 64 files changed, 427 insertions(+), 427 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md index 513d2fdda8fdee..516b88ef8f1386 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas -- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. -- Si se llama a `.new()` en una clase inexistente, se devuelve un error. + - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. + - Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md index 8372233057679f..944900df8642e6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: -- un objeto File -- un objeto de la carpeta + - un objeto File + - un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: -- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), -- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. + - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), + - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 9b93abeaf870fe..c2aac8d8067a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md index b22060e96f189f..c6b433cd74a1d7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: -- el *estado* no está habilitado actualmente en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* no está habilitado actualmente en el formulario web, + - el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: -- el *estado* ya ha sido activado en el formulario web, -- el *estado* no existe para el formulario web. + - el *estado* ya ha sido activado en el formulario web, + - el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index 54894c3af956cc..e89f0eed941e0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: -- `ws://host[:port]path[?query]` para conexiones estándar -- `wss://host[:port]path[?query]` para conexiones seguras TLS + - `ws://host[:port]path[?query]` para conexiones estándar + - `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. -- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. -- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. + - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. + - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. -- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. + - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. + - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index dd24f32e2a209e..7a39dc1916d619 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: -- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, -- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. + - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, + - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: -- una clase usuario para gestionar las conexiones al servidor, -- una clase usuario para gestionar mensajes. + - una clase usuario para gestionar las conexiones al servidor, + - una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: -- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. -- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. + - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. + - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 3d98894fd86ba5..9cb80c2d0eb549 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). -- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. + - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) -- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: + - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** -- Nunca se aceptan conexiones con HTTP que no sean localhost. -- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. + - Nunca se aceptan conexiones con HTTP que no sean localhost. + - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: -- **Desactivado** (por defecto) -- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición -- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) -- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones -- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas + - **Desactivado** (por defecto) + - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición + - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) + - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones + - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión -- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. + - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. -- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. + - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md index aad7ec52bd4d2d..67b4b4a52a5dfc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. -- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. + - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md index e379dd73f4912b..eb8078048537b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: -- la periodicidad de las copias de seguridad automáticas -- los archivos a incluir en cada copia de seguridad -- las funcionalidades avanzadas permiten ejecutar tareas automáticas + - la periodicidad de las copias de seguridad automáticas + - los archivos a incluir en cada copia de seguridad + - las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. + - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. -- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. + - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md index 9f489b93c64ef7..8c94b6b302a621 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: -- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. -- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). + - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. + - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) -- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) -- [**Operadores de tiempo**](dt_time.md#time-operators) -- [**Operadores de números**](dt_number.md#number-operators) -- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) -- [**Operadores de imágenes**](dt_picture.md#picture-operators) -- [**Operadores de punteros**](dt_pointer.md#pointer-operators) -- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) -- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) -- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) + - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) + - [**Operadores de tiempo**](dt_time.md#time-operators) + - [**Operadores de números**](dt_number.md#number-operators) + - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) + - [**Operadores de imágenes**](dt_picture.md#picture-operators) + - [**Operadores de punteros**](dt_pointer.md#pointer-operators) + - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) + - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) + - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: -- una condición seguida de un signo de interrogación (?) -- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) -- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) + - una condición seguida de un signo de interrogación (?) + - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) + - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Cadenas vacías -- [] - Colecciones vacías -- {} - Objetos vacios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Cadenas vacías + - [] - Colecciones vacías + - {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: -- 0 - cero numérico (Entero u otro) + - 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md index a1cc173febeb9b..6a6f75713e39cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: -- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, -- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. + - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, + - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos -- Para declarar variables básicas locales y de proceso: + - Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` -- Para declarar las variables objeto de la clase 4D: + - Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Para declarar las variables objeto de la clase usuario: + - Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: -- Evitar conflictos con los nombres de otras variables -- Utilizar los datos temporalmente -- Reducir el número de variables proceso + - Evitar conflictos con los nombres de otras variables + - Utilizar los datos temporalmente + - Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: -- Comunicación interprocesos en lugares específicos de su código -- Gestión de arrastrar y soltar interproceso -- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras + - Comunicación interprocesos en lugares específicos de su código + - Gestión de arrastrar y soltar interproceso + - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md index 2aa4f087cdaddc..db11281d20c0f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: -- un error impide que el código siga ejecutándose -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - un error impide que el código siga ejecutándose + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: -- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. + - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: -- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: + - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. -- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. + - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. -- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. + - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 36a92919469a8b..99fd7295b126a7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: -- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; -- Soltar un valor (acción similar a pegar); -- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. -- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). + - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; + - Soltar un valor (acción similar a pegar); + - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. + - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md index 40ba861bc720a5..21c7b1ccab37e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 5b1c5186896b9a..6b828dc261f3b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: -- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). -- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. + - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). + - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index c09175fbd2a07b..4193db89f0ecc0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: -- Si `$0` es igual a 0, se realiza una ordenación estándar. -- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. + - Si `$0` es igual a 0, se realiza una ordenación estándar. + - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md index 9d1cb639f79189..b1b0365605edcc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes -- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. -- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. + - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. + - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md index f026e9fde75c7c..e5c0997f07ca47 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : -- un objet File -- un objet Folder + - un objet File + - un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : -- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), -- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. + - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), + - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 098475b2abbeec..325787d945631f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md index d16c4e85d76af2..3d92f3b48c546e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : -- l'*état* n'est actuellement pas activé dans le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* n'est actuellement pas activé dans le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : -- l'*état* a déjà été activé sur le formulaire web, -- l'*état* n'existe pas pour le formulaire web. + - l'*état* a déjà été activé sur le formulaire web, + - l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index 97ee1a22f9519e..e8b5a0245406bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : -- `ws://host[:port]path[?query]` pour les connexions standard -- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées + - `ws://host[:port]path[?query]` pour les connexions standard + - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. -- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. -- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. + - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. + - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : -- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. -- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. + - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. + - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index f9e929fbc81107..aca94359426e7e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : -- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, -- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. + - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, + - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : -- une classe utilisateur pour gérer les connexions serveur, -- une classe utilisateur pour gérer les messages. + - une classe utilisateur pour gérer les connexions serveur, + - une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : -- lorsque le temps d'attente est atteint, détruit de force la socket. -- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. + - lorsque le temps d'attente est atteint, détruit de force la socket. + - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 87bace3ccb1808..3c407cc2d8f7ab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). -- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. + - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) -- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : + - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** -- Les connections HTTP autres que sur localhost ne sont jamais acceptées. -- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. + - Les connections HTTP autres que sur localhost ne sont jamais acceptées. + - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : -- **Désactivé** (valeur par défaut) -- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses -- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) -- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes -- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses + - **Désactivé** (valeur par défaut) + - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses + - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) + - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes + - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. -- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. -- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. -- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. + - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. + - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. + - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session -- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. + - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. -- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. + - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md index cb7258d7154a8b..4805c34089bb99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. -- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. + - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md index f3cd2662e9f6de..624bba23391b05 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : -- la périodicité des sauvegardes automatiques -- les fichiers à inclure dans chaque sauvegarde -- les fonctionnalités avancées permettant d'exécuter des tâches automatiques + - la périodicité des sauvegardes automatiques + - les fichiers à inclure dans chaque sauvegarde + - les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. + - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. -- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. + - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md index a43bc8ad2f2b11..d04fabfff81622 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : -- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. -- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). + - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. + - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : -- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) -- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) -- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) -- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) -- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) -- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) -- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) -- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) -- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) -- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) -- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) -- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) + - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) + - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) + - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) + - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) + - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) + - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) + - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) + - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) + - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) + - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) + - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) + - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : -- une condition suivie d'un point d'interrogation (?) -- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) -- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) + - une condition suivie d'un point d'interrogation (?) + - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) + - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: -- false -- Null -- undefined -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Chaînes vides -- [] - Collections vides -- {} - Objets vides + - false + - Null + - undefined + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Chaînes vides + - [] - Collections vides + - {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : -- 0 - zéro numérique (Entier ou autre) + - 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md index a1b7c382575f99..e88a916f5bb4f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : -- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, -- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. + - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, + - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples -- Pour déclarer les variables locales et les variables process basiques : + - Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` -- Pour déclarer les variables objet de classe 4D : + - Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- Pour déclarer les variables objet de classe utilisateur : + - Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : -- Eviter des conflits de noms avec les autres variables -- Utiliser temporairement des valeurs, -- Réduire le nombre de variables process + - Eviter des conflits de noms avec les autres variables + - Utiliser temporairement des valeurs, + - Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : -- Communication interprocess à des endroits particuliers de votre code -- Gestion du glisser-déposer interprocess -- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur + - Communication interprocess à des endroits particuliers de votre code + - Gestion du glisser-déposer interprocess + - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md index 275ca0da61c968..dbcecf17e36854 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : -- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. -- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. + - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. + - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : -- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. -- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. + - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. + - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : -- une erreur empêche la poursuite de l'exécution du code -- la méthode produit une fausse assertion (voir la commande `ASSERT`) + - une erreur empêche la poursuite de l'exécution du code + - la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : -- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. + - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. -- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. + - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. -- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. + - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 3f1b6436ef1e91..2dbedc9655644c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : -- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; -- Déposer une valeur (action similaire à coller); -- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. -- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). + - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; + - Déposer une valeur (action similaire à coller); + - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. + - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md index c4858cd18410e8..78486e986347fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : -- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. -- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. -- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. -- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée -- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem + - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. + - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. + - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. + - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée + - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 830756654af344..a6852001e87193 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : -- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). -- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. + - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). + - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 2c99b4f29b928c..bad94509cacfcd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : -- Si `$0` est égal à 0, un tri standard est effectué. -- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. + - Si `$0` est égal à 0, un tri standard est effectué. + - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md index fbe12394c69695..696256d301e551 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 -- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 -- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 + - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 + - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md index 1b71686ebb69e1..cb7edf57941cd8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: -- File オブジェクト -- Folder オブジェクト + - File オブジェクト + - Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: -- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 -- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 + - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 + - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 7d998df44714c1..6609af77779e06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: -- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 -- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 + - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 + - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 5cab3d46d6789e..4263a51c3caa38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: -- Webフォーム上で *state* が現在有効ではない。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* が現在有効ではない。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: -- Webフォーム上で *state* がすでに有効である。 -- Webフォーム上で *state* が存在しない。 + - Webフォーム上で *state* がすでに有効である。 + - Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index eacb93bd59f35f..fde54ce68e3b01 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: -- 標準接続用: `ws://host[:port]path[?query]` -- TLSセキュア接続用: `wss://host[:port]path[?query]` + - 標準接続用: `ws://host[:port]path[?query]` + - TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 -- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 -- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 + - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 + - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): -- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 + - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 + - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 14752f7a1265e9..84edc11d112719 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 -- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 -- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 + - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 + - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: -- サーバー接続を処理するためのユーザークラス -- メッセージを処理するためのユーザークラス + - サーバー接続を処理するためのユーザークラス + - メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: -- 待機時間に達したら強制的にソケットを破棄します。 -- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 + - 待機時間に達したら強制的にソケットを破棄します。 + - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 81090d6fc2c115..657829ce598c98 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 -- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 + - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) -- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: + - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** -- ローカルホスト以外による HTTP接続は受け付けません。 -- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 + - ローカルホスト以外による HTTP接続は受け付けません。 + - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: -- **無効化** (デフォルト) -- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 -- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) -- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 -- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 + - **無効化** (デフォルト) + - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 + - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) + - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 + - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 -- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 -- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 + - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 + - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 + - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション -- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 + - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 -- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 + - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md index a5aa9d4766ffb1..9448beb1c0f138 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 + - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md index 6cb8c4dba500f6..0e37e810c9dc72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: -- 自動バックアップ用のスケジューラー設定 -- 各バックアップに含めるファイル -- 自動タスクの実行を可能にする高度な設定 + - 自動バックアップ用のスケジューラー設定 + - 各バックアップに含めるファイル + - 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 + - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 + - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md index 837687ba132170..81e4364715346d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: -- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 -- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). + - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 + - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: -- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) -- [**日付演算子**](dt_date.md#日付演算子) -- [**時間演算子**](dt_time.md#時間演算子) -- [**数値演算子**](dt_number.md#数値演算子) -- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) -- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) -- [**ポインター演算子**](dt_pointer.md#ポインター演算子) -- [**文字列演算子**](dt_string.md#文字列演算子) -- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) -- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) -- [**Null 演算子**](dt_null_undefined.md#null-演算子) -- [**未定義演算子**](dt_null_undefined.md#未定義演算子) + - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) + - [**日付演算子**](dt_date.md#日付演算子) + - [**時間演算子**](dt_time.md#時間演算子) + - [**数値演算子**](dt_number.md#数値演算子) + - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) + - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) + - [**ポインター演算子**](dt_pointer.md#ポインター演算子) + - [**文字列演算子**](dt_string.md#文字列演算子) + - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) + - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) + - [**Null 演算子**](dt_null_undefined.md#null-演算子) + - [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: -- 条件とクエスチョンマーク (?) -- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) -- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 + - 条件とクエスチョンマーク (?) + - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) + - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: -- false -- Null -- undefined -- Null オブジェクト -- Null コレクション -- Null ポインター -- Null ピクチャー -- Null 日付 !00-00-00! -- "" - 空の文字列 -- [] - 空のコレクション -- {} - 空のオブジェクト + - false + - Null + - undefined + - Null オブジェクト + - Null コレクション + - Null ポインター + - Null ピクチャー + - Null 日付 !00-00-00! + - "" - 空の文字列 + - [] - 空のコレクション + - {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: -- 0 - 数値のゼロ (整数かどうかを問わず) + - 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md index bf38f56c24bd72..c5099654e05cd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: -- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます -- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます + - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます + - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 -- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: + - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` -- 4Dクラス型のオブジェクト変数の宣言: + - 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` -- ユーザークラス型のオブジェクト変数の宣言: + - ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: -- 他の変数名との重複を避ける。 -- データを一時的に使用する。 -- プロセス変数の数を減らす。 + - 他の変数名との重複を避ける。 + - データを一時的に使用する。 + - プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: -- コード内の特定の箇所におけるプロセス間通信 -- プロセス間のドラッグ&ドロップ処理 -- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 + - コード内の特定の箇所におけるプロセス間通信 + - プロセス間のドラッグ&ドロップ処理 + - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md index fbd57088fa81dc..a71c67b7a25903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: -- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 -- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 + - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 + - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: -- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 -- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 + - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 + - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: -- 以降のメソッド実行を妨げるエラーが発生した。 -- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 + - 以降のメソッド実行を妨げるエラーが発生した。 + - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 + - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 + - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 + - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: -- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: + - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 + - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 -- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 + - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index e37db10b0ae5a5..804217b5d17516 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: -- ペーストやカット、削除、キャンセルなどの標準の編集アクション -- 値のドロップ (ペーストと同様のアクション) -- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 -- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 + - ペーストやカット、削除、キャンセルなどの標準の編集アクション + - 値のドロップ (ペーストと同様のアクション) + - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 + - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md index a0ee2f849bb5d4..fb9943c47bf011 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: -- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 -- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 -- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 -- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 + - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 + - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 + - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 + - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 + - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 4cd0137a1c567d..5816317910d07c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: -- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 -- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 + - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 + - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 5317c52b286d9f..7120814e5d39cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: -- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 + - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 + - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md index 51b288575d7208..ff6661f192e020 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas -- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. -- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. + - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. + - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md index d474fd0e038e34..e7f4dff58d6d8f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: -- um objeto File -- um objeto folder + - um objeto File + - um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: -- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), -- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. + - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), + - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 6e63bfc3fc3252..293adb31fe2f7b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 72094b45cc78fb..4b46b5c6dcc890 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: -- o *estado* não está habilitado no momento no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* não está habilitado no momento no formulário Web, + - o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: -- o *estado* já foi ativado no formulário Web, -- o *estado* não existe para o formulário Web. + - o *estado* já foi ativado no formulário Web, + - o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e6033ed940d735..ca94ba2f4d4146 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: -- `ws://host[:port]path[?query]` para ligações padrão -- `wss://host[:port]path[?query]` para conexões TLS seguras + - `ws://host[:port]path[?query]` para ligações padrão + - `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. -- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. -- O WebSocket será válido enquanto o formulário ou o worker não for fechado. + - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. + - O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): -- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. -- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. + - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. + - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 4fd51bb7b34faa..50a87f6cc1943a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: -- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, -- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. + - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, + - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: -- uma classe de usuário para tratar as ligações ao servidor, -- uma classe de usuário para tratar as mensagens. + - uma classe de usuário para tratar as ligações ao servidor, + - uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: -- quando o tempo de espera é alcançado, a força destrói o meio. -- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. + - quando o tempo de espera é alcançado, a força destrói o meio. + - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 10b9f28462322f..143ed134bd5e1b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). -- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. + - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) -- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: + - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** -- Conexões com HTTP outras que localhost nunca são aceitas. -- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. + - Conexões com HTTP outras que localhost nunca são aceitas. + - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: -- **Desactivado** (por defecto) -- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas -- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) -- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições -- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas + - **Desactivado** (por defecto) + - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas + - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) + - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições + - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão -- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. + - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. -- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente + - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md index acca53eed85c04..47e9147f3da08d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: -- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. + - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md index 9122d4ff37673f..7e1cf1df45e40b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: -- a periodicidade das cópias de segurança automáticas -- os arquivos a incluir em cada backup -- as funcionalidades avançadas que permitem executar tarefas automáticas + - a periodicidade das cópias de segurança automáticas + - os arquivos a incluir em cada backup + - as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. + - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. -- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. + - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md index 9494e03c367619..61d094820c1784 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: -- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. -- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). + - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. + - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: -- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) -- [**Operadores de data**](dt_date.md#operadores-de-data) -- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) -- [**Operadores de números**](dt_number.md#number-operators) -- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) -- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) -- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) -- [**Operadores de string**](dt_string.md#string-operators) -- [**Operadores nas referências de objetos**](dt_object.md#object-operators) -- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) -- [**Operadores null**](dt_null_undefined.md#operadores-null) -- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) + - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) + - [**Operadores de data**](dt_date.md#operadores-de-data) + - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) + - [**Operadores de números**](dt_number.md#number-operators) + - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) + - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) + - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) + - [**Operadores de string**](dt_string.md#string-operators) + - [**Operadores nas referências de objetos**](dt_object.md#object-operators) + - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) + - [**Operadores null**](dt_null_undefined.md#operadores-null) + - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: -- uma condição seguida de um ponto de interrogação (?) -- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) -- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) + - uma condição seguida de um ponto de interrogação (?) + - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) + - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: -- false -- Null -- indefinido -- Null object -- Null collection -- Null pointer -- Null picture -- Null date !00-00-00! -- "" - Empty strings -- [] - Colecções vazias -- {} - Objectos vazios + - false + - Null + - indefinido + - Null object + - Null collection + - Null pointer + - Null picture + - Null date !00-00-00! + - "" - Empty strings + - [] - Colecções vazias + - {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: -- 0 - zero numérico (inteiro ou não) + - 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md index 9ffc9beea3d801..af79891afd9132 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: -- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, -- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. + - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, + - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos -- Para declarar variáveis básicas locais e de processo: + - Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` -- Para declarar variáveis objeto da classe 4D: + - Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` -- Para declarar as variáveis objeto da classe usuário: + - Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: -- Evitar conflitos com os nomes de outras variáveis -- Utilizar dados temporariamente -- Reduzir o número de variáveis do processo + - Evitar conflitos com os nomes de outras variáveis + - Utilizar dados temporariamente + - Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: -- Comunicação interprocessada em locais específicos ou o seu código -- Gestão de arrastar e soltar entre processos -- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor + - Comunicação interprocessada em locais específicos ou o seu código + - Gestão de arrastar e soltar entre processos + - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md index 1649d937a161c4..e4cb3ddc3f2033 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: -- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. -- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. + - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. + - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: -- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. -- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. + - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. + - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: -- um erro impede a continuação da execução do código -- el método produce una afirmación falsa (ver el comando `ASSERT`) + - um erro impede a continuação da execução do código + - el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: -- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. + - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. -- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. + - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. -- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. + - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: -- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: + - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. -- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. + - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. -- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. + - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 58ac0e31a2c1ba..4b80f44d529a0b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: -- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; -- Eliminar um valor (ação semelhante a colar); -- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. -- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). + - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; + - Eliminar um valor (ação semelhante a colar); + - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. + - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md index 7584b63ca7234e..1360748863f4b4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: -- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. -- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. -- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. -- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual -- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. + - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. + - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. + - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. + - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual + - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 3e97f1006409be..e91261464d1b11 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: -- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). -- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. + - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). + - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 8fb9d7da298645..8539316186b800 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: -- Se `$0` for igual a 0, é efetuada uma ordenação padrão. -- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. + - Se `$0` for igual a 0, é efetuada uma ordenação padrão. + - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. From f8f1cb336db4137d47002419278645507ead9773 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 22 Aug 2025 11:55:07 +0200 Subject: [PATCH 030/119] fix links --- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index baa258d137cef9..8f23388727915d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From 2b39e7a84a726526cea9eacd573587b72a570f09 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 25 Aug 2025 11:33:32 +0200 Subject: [PATCH 031/119] New Crowdin updates (#2878) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sdi.md (Japanese) * New translations debugger.md (Spanish) * New translations develop-components.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) --- .../version-20/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md index c6cb692c09bf89..eae2c9e78e256c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SessionClass.md @@ -70,7 +70,7 @@ IP:port/4DACTION/action_Session ``` ```4d - //action_Session method + //action_Session メソッド Case of :(Session#Null) If(Session.hasPrivilege("WebAdmin")) //"WebAdmin" アクセス権がセッションに紐づいているかを確認 From b34565d655bb296ca37d5606ea6b3e07b80f9612 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 26 Aug 2025 14:50:35 +0200 Subject: [PATCH 032/119] New Crowdin updates (#2879) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations parameters.md (French) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations qodly-studio.md (French) * New translations process-activity.md (Spanish) * New translations process-number.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations dt_number.md (Spanish) * New translations http-request-handler.md (French) * New translations managing-formulas.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-table-append-row.md (French) * New translations wp-insert-document-body.md (French) * New translations openai.md (Japanese) * New translations dt_number.md (Spanish) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations compile-project.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations openaiembedding.md (Japanese) * New translations dt_number.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations openai.md (Japanese) * New translations openaiembedding.md (Japanese) * New translations compile-project.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations string.md (French) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/current/ViewPro/formulas.md | 2 +- .../version-20-R10/ViewPro/formulas.md | 2 +- .../version-21/ViewPro/formulas.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md index 8f23388727915d..baa258d137cef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/formulas.md @@ -288,7 +288,7 @@ As soon as `VP SET CUSTOM FUNCTIONS` is called, the functions based upon `SET TA #### Conditions requises -- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), +- Le champ doit appartenir à la structure virtuelle de la base de données, c'est-à-dire qu'il doit être déclaré par les commandes [`SET TABLE TITLES`](../commandes-legacy/set-table-titles.md) et/ou [`SET FIELD TITLES`](../commandes-legacy/set-field-titles.md) avec le paramètre \* (voir l'exemple), - Les noms de table et de champ doivent être conformes à ECMA (voir également [la norme ECMA Script](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6)), - Le type de champ doit être pris en charge par 4D View Pro (voir ci-dessus). From 219bd28a5a42e0271da165ed9c7ea1bdab8a59d4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 27 Aug 2025 09:57:49 +0200 Subject: [PATCH 033/119] New Crowdin updates (#2880) * New translations geninfo.md (French) * New translations ordaclasses.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations database.md (French) * New translations command-index.md (French) * New translations tcpeventclass.md (French) * New translations tools.md (French) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations clientserver.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-remove-table-columns.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations clientserver.md (French) * New translations updates.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-remove-table-columns.md (French) * New translations command-index.md (French) * New translations tools.md (French) * New translations database.md (French) * New translations string.md (French) * New translations generate-uuid.md (French) * New translations generate-uuid.md (French) * New translations database.md (Spanish) * New translations command-index.md (Spanish) * New translations super.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations license-info.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations tools.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations license-info.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations session-storage.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations super.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations updates.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) --- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/API/SessionClass.md | 5 +++++ .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-21/API/SessionClass.md | 5 +++++ .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/API/SessionClass.md | 5 +++++ .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-remove-table-columns.md | 2 +- .../version-21/API/SessionClass.md | 5 +++++ .../version-21/ViewPro/commands/vp-find.md | 2 +- .../version-21/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- .../current/API/SessionClass.md | 5 +++++ .../current/ViewPro/commands/vp-find.md | 2 +- .../current/ViewPro/commands/vp-remove-table-columns.md | 2 +- 24 files changed, 56 insertions(+), 16 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 7b9392b7d194f3..270d7f8c31aad5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index b4c2ea5824cb55..e122ecdf423030 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index f9fd60a5858123..58d7ad424da112 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 6fb0bcfe3b253b..4ccd334c12e81f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 7b9392b7d194f3..270d7f8c31aad5 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 @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index b4c2ea5824cb55..e122ecdf423030 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index fbdde891935a18..7a0a85d4f52577 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 c64b4f8a9728c6..100123845d03e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,6 +89,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 7d59f919977170..072da0f1050400 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 75b05496143148..cd8d9873e855bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 2fb0dddac7c155..67bc1ec431ffc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 abb8a4f1e3bd87..d851dcea4de206 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 @@ -95,6 +95,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 7d59f919977170..072da0f1050400 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 840991a04d0272..618a8eedb7b7e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 dbdb9acd8d6eef..160f28b397b146 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index f36b0aad301c2f..70ceccbf7b40d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) 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 6ea1fd129e4c34..fa555959894d8e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) From 3875f814c69164893c2bb4ac4397f6dc7ea26783 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 28 Aug 2025 16:11:51 +0200 Subject: [PATCH 034/119] New Crowdin updates (#2883) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations command-index.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations tools.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations tab-component.png (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) --- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 22 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++---- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 160 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 30 ++-- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 82 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../current/WritePro/writeprointerface.md | 18 +- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 6 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 5 - .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 +++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 34 ++-- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 82 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../WritePro/writeprointerface.md | 18 +- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/SessionClass.md | 5 - .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 10 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Notes/updates.md | 118 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 30 ++-- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 82 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 2 +- .../commands/wp-insert-document-body.md | 2 +- .../version-21/WritePro/writeprointerface.md | 18 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 6 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 28 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++---- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 18 +- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 132 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 8 +- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 60 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 76 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 10 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/SessionClass.md | 5 - .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 18 +- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 132 +++++++-------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 8 +- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 60 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 10 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/SessionClass.md | 5 - .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 10 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 18 +- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/Notes/updates.md | 122 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 118 ++++++------- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 8 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 60 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 28 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++---- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Menus/properties.md | 4 +- .../current/Notes/updates.md | 132 +++++++-------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 30 ++-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 78 ++++----- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++--- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 24 +-- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 24 +-- .../current/settings/security.md | 8 +- .../current/settings/web.md | 40 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 28 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Menus/properties.md | 4 +- .../version-20-R10/Notes/updates.md | 104 ++++++------ .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 30 ++-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 88 +++++----- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 76 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 24 +-- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 24 +-- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 40 ++--- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 28 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 10 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/Menus/properties.md | 4 +- .../version-21/Notes/updates.md | 122 ++++++------- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 30 ++-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 78 ++++----- .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 38 ++--- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/qodly-studio.md | 64 +++---- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 76 ++++----- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 24 +-- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/database.md | 16 +- .../version-21/settings/interface.md | 24 +-- .../version-21/settings/web.md | 40 ++--- .../current/API/ClassClass.md | 4 +- .../current/API/Document.md | 8 +- .../current/API/OutgoingMessageClass.md | 24 +-- .../current/API/SMTPTransporterClass.md | 4 +- .../current/API/SessionClass.md | 5 - .../current/API/WebFormClass.md | 8 +- .../current/API/WebSocketClass.md | 12 +- .../current/API/WebSocketServerClass.md | 12 +- .../current/Admin/webAdmin.md | 22 +-- .../current/Backup/restore.md | 2 +- .../current/Backup/settings.md | 10 +- .../current/Concepts/operators.md | 58 +++---- .../current/Concepts/variables.md | 22 +-- .../current/Debugging/basics.md | 24 +-- .../current/Events/onAfterEdit.md | 8 +- .../current/Events/onClicked.md | 10 +- .../current/Events/onDragOver.md | 4 +- .../current/Events/onHeaderClick.md | 4 +- .../current/FormEditor/forms.md | 26 +-- .../current/FormEditor/macros.md | 24 +-- .../current/FormEditor/objectLibrary.md | 30 ++-- .../current/FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 34 ++-- .../current/FormObjects/properties_Subform.md | 12 +- .../current/FormObjects/shapes_overview.md | 6 +- .../current/FormObjects/splitters.md | 14 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 32 ++-- .../current/FormObjects/tabControl.md | 6 +- .../current/FormObjects/text.md | 6 +- .../current/MSC/analysis.md | 18 +- .../current/MSC/repair.md | 6 +- .../current/Notes/updates.md | 160 +++++++++--------- .../current/ORDA/global-stamp.md | 8 +- .../current/ORDA/orda-events.md | 10 +- .../current/ORDA/remoteDatastores.md | 12 +- .../current/Preferences/general.md | 28 +-- .../current/Preferences/methods.md | 22 +-- .../current/Project/architecture.md | 20 +-- .../current/Project/components.md | 134 +++++++-------- .../current/Project/documentation.md | 38 ++--- .../current/REST/$attributes.md | 2 +- .../current/REST/$lock.md | 8 +- .../current/REST/$method.md | 6 +- .../current/REST/ClassFunctions.md | 18 +- .../current/REST/authUsers.md | 10 +- .../current/REST/gettingStarted.md | 4 +- .../current/ServerWindow/processes.md | 22 +-- .../current/ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../current/ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../current/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../current/WebServer/gettingStarted.md | 4 +- .../current/WebServer/http-request-handler.md | 38 ++--- .../current/WebServer/preemptiveWeb.md | 32 ++-- .../current/WebServer/qodly-studio.md | 64 +++---- .../current/WebServer/templates.md | 20 +-- .../current/WebServer/webServerAdmin.md | 32 ++-- .../current/WebServer/webServerConfig.md | 78 ++++----- .../current/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../current/WritePro/writeprointerface.md | 36 ++-- .../current/commands/form-event.md | 4 +- .../current/commands/form.md | 14 +- .../current/commands/new-shared-collection.md | 16 +- .../current/commands/print-form.md | 20 +-- .../current/commands/process-info.md | 4 +- .../current/settings/client-server.md | 10 +- .../current/settings/compatibility.md | 12 +- .../current/settings/database.md | 16 +- .../current/settings/interface.md | 18 +- .../current/settings/security.md | 8 +- .../current/settings/web.md | 38 ++--- .../version-20-R10/API/ClassClass.md | 4 +- .../version-20-R10/API/Document.md | 8 +- .../API/OutgoingMessageClass.md | 24 +-- .../API/SMTPTransporterClass.md | 4 +- .../version-20-R10/API/WebFormClass.md | 8 +- .../version-20-R10/API/WebSocketClass.md | 12 +- .../API/WebSocketServerClass.md | 12 +- .../version-20-R10/Admin/webAdmin.md | 22 +-- .../version-20-R10/Backup/restore.md | 2 +- .../version-20-R10/Backup/settings.md | 10 +- .../version-20-R10/Concepts/operators.md | 58 +++---- .../version-20-R10/Concepts/variables.md | 22 +-- .../version-20-R10/Debugging/basics.md | 24 +-- .../version-20-R10/Events/onAfterEdit.md | 8 +- .../version-20-R10/Events/onClicked.md | 10 +- .../version-20-R10/Events/onDragOver.md | 4 +- .../version-20-R10/Events/onHeaderClick.md | 4 +- .../version-20-R10/FormEditor/forms.md | 26 +-- .../version-20-R10/FormEditor/macros.md | 24 +-- .../FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../FormObjects/shapes_overview.md | 6 +- .../version-20-R10/FormObjects/splitters.md | 14 +- .../version-20-R10/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-20-R10/FormObjects/tabControl.md | 6 +- .../version-20-R10/FormObjects/text.md | 6 +- .../version-20-R10/MSC/analysis.md | 18 +- .../version-20-R10/MSC/repair.md | 6 +- .../version-20-R10/Notes/updates.md | 160 +++++++++--------- .../version-20-R10/ORDA/global-stamp.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 14 +- .../version-20-R10/ORDA/remoteDatastores.md | 12 +- .../version-20-R10/Preferences/general.md | 28 +-- .../version-20-R10/Preferences/methods.md | 22 +-- .../version-20-R10/Project/architecture.md | 20 +-- .../version-20-R10/Project/components.md | 144 ++++++++-------- .../version-20-R10/Project/documentation.md | 38 ++--- .../version-20-R10/REST/$attributes.md | 2 +- .../version-20-R10/REST/$lock.md | 8 +- .../version-20-R10/REST/ClassFunctions.md | 18 +- .../version-20-R10/REST/authUsers.md | 10 +- .../version-20-R10/REST/gettingStarted.md | 4 +- .../version-20-R10/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-20-R10/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../WebServer/gettingStarted.md | 4 +- .../WebServer/http-request-handler.md | 42 ++--- .../version-20-R10/WebServer/preemptiveWeb.md | 34 ++-- .../version-20-R10/WebServer/qodly-studio.md | 64 +++---- .../version-20-R10/WebServer/templates.md | 20 +-- .../WebServer/webServerAdmin.md | 32 ++-- .../WebServer/webServerConfig.md | 78 ++++----- .../WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../WritePro/writeprointerface.md | 36 ++-- .../version-20-R10/commands/form-event.md | 4 +- .../version-20-R10/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-20-R10/commands/print-form.md | 20 +-- .../version-20-R10/commands/process-info.md | 4 +- .../version-20-R10/settings/client-server.md | 10 +- .../version-20-R10/settings/compatibility.md | 12 +- .../version-20-R10/settings/database.md | 16 +- .../version-20-R10/settings/interface.md | 18 +- .../version-20-R10/settings/security.md | 8 +- .../version-20-R10/settings/web.md | 38 ++--- .../version-21/API/ClassClass.md | 4 +- .../version-21/API/Document.md | 8 +- .../version-21/API/OutgoingMessageClass.md | 24 +-- .../version-21/API/SMTPTransporterClass.md | 4 +- .../version-21/API/WebFormClass.md | 8 +- .../version-21/API/WebSocketClass.md | 12 +- .../version-21/API/WebSocketServerClass.md | 12 +- .../version-21/Admin/webAdmin.md | 22 +-- .../version-21/Backup/restore.md | 2 +- .../version-21/Backup/settings.md | 10 +- .../version-21/Concepts/operators.md | 58 +++---- .../version-21/Concepts/variables.md | 22 +-- .../version-21/Debugging/basics.md | 24 +-- .../version-21/Events/onAfterEdit.md | 8 +- .../version-21/Events/onClicked.md | 10 +- .../version-21/Events/onDragOver.md | 4 +- .../version-21/Events/onHeaderClick.md | 4 +- .../version-21/FormEditor/forms.md | 26 +-- .../version-21/FormEditor/macros.md | 24 +-- .../version-21/FormEditor/objectLibrary.md | 30 ++-- .../FormEditor/properties_FormSize.md | 6 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-21/FormObjects/list_overview.md | 34 ++-- .../FormObjects/properties_Subform.md | 12 +- .../version-21/FormObjects/shapes_overview.md | 6 +- .../version-21/FormObjects/splitters.md | 14 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 32 ++-- .../version-21/FormObjects/tabControl.md | 6 +- .../version-21/FormObjects/text.md | 6 +- .../version-21/MSC/analysis.md | 18 +- .../version-21/MSC/repair.md | 6 +- .../version-21/ORDA/global-stamp.md | 8 +- .../version-21/ORDA/remoteDatastores.md | 12 +- .../version-21/Preferences/general.md | 28 +-- .../version-21/Preferences/methods.md | 22 +-- .../version-21/Project/architecture.md | 20 +-- .../version-21/Project/components.md | 100 +++++------ .../version-21/Project/documentation.md | 38 ++--- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$lock.md | 8 +- .../version-21/REST/ClassFunctions.md | 18 +- .../version-21/REST/authUsers.md | 10 +- .../version-21/REST/gettingStarted.md | 4 +- .../version-21/ServerWindow/processes.md | 22 +-- .../ServerWindow/real-time-monitor.md | 6 +- .../ViewPro/commands/vp-export-document.md | 30 ++-- .../version-21/ViewPro/commands/vp-find.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 4 +- .../ViewPro/commands/vp-get-value.md | 4 +- .../ViewPro/commands/vp-import-document.md | 18 +- .../commands/vp-remove-table-columns.md | 2 +- .../version-21/ViewPro/getting-started.md | 26 +-- .../WebServer/from-qodlyscript-to-4d.md | 8 +- .../version-21/WebServer/gettingStarted.md | 4 +- .../version-21/WebServer/preemptiveWeb.md | 14 +- .../version-21/WebServer/templates.md | 20 +-- .../version-21/WebServer/webServerAdmin.md | 32 ++-- .../version-21/WebServer/webServerConfig.md | 52 +++--- .../version-21/WebServer/webServerObject.md | 20 +-- .../WritePro/commands/wp-insert-break.md | 10 +- .../commands/wp-insert-document-body.md | 8 +- .../version-21/WritePro/writeprointerface.md | 36 ++-- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form.md | 14 +- .../commands/new-shared-collection.md | 16 +- .../version-21/commands/print-form.md | 20 +-- .../version-21/commands/process-info.md | 4 +- .../version-21/settings/client-server.md | 10 +- .../version-21/settings/compatibility.md | 12 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/web.md | 38 ++--- 930 files changed, 8884 insertions(+), 8924 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene 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 270d7f8c31aad5..7b9392b7d194f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e89f0eed941e0f..54894c3af956cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md index eb8078048537b5..e379dd73f4912b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: - - la periodicidad de las copias de seguridad automáticas - - los archivos a incluir en cada copia de seguridad - - las funcionalidades avanzadas permiten ejecutar tareas automáticas +- la periodicidad de las copias de seguridad automáticas +- los archivos a incluir en cada copia de seguridad +- las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. +- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. +- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 99fd7295b126a7..36a92919469a8b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index d2daec9d290eff..dc0b5a8bdb81ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index b9a18ff620c4cd..209a1daf6f52d8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: - - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). - - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). - - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). +- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). +- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). +- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 4d25873c20bb67..d210e1a4e5733b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 cd3d918181d68b..a8506312f9bf45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -219,20 +219,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado - - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. - - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). - - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). - - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. - - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. - - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. - - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. - - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. - - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. +- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. +- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). +- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). +- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. +- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. +- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. +- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. +- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. +- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -261,8 +261,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento - - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). - - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. +- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). +- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -291,9 +291,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento - - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. - - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. - - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. +- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. +- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -301,25 +301,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado - - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). - - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). - - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. - - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. - - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. - - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. +- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). +- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). +- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. +- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. +- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. +- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. +- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. +- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). +- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. +- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento - - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). - - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). +- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). +- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -327,21 +327,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado - - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. - - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. +- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Cambios de comportamiento - - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). - - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. +- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). +- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -349,24 +349,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado - - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. - - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. - - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). - - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) - - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. - - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. +- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. +- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). +- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. +- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). +- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) +- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. +- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento - - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. - - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). +- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. +- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -374,21 +374,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado - - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). - - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) - - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. +- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). +- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) +- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento - - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). - - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. +- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). +- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -402,15 +402,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado - - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. - - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. +- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. +- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento - - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. +- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 6403abc6f122c5..086ad86ee9d7d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md index 2a2c8c212ebeed..5beaa5f717c17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 c79333546aaf9b..ecac98bd608bb7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 75eb7461d886fa..3bb2eb19a0f57e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -321,12 +321,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: - - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente +- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` +- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. +- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md index 298b233fd2a5ab..681c3352fb09db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md index f69e07af2020a7..ec63e8eb56445e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ Si surge un problema al añadir o modificar una entidad, se le devolverá un err :::note - - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). - - **Booleanos** son true o false. - - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). +- **Booleanos** son true o false. +- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md index 24b7bf5648a51f..ceccb568517c05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 44537e451f49b5..5e65abf6ea6b63 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index b54e8fff9daf39..29b19390090283 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 5b985b633281fd..facb115670bf95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index e36b294ecdbc05..6a5929785ac538 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index ba0e48106f3028..cb189885bf97f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 27910c04913772..22056b4f4e48a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md index 66a61c54e79788..7a1cd053401abd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md index 4b893aee1c3cde..d1c77227cb7186 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md index 2048b233e917a3..1358e18b92a2e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md index 839c648096a676..b03e5465634991 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md index 273169e5c379b3..8c18e521f0ab9c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md index 268da473a21865..8c07899f17c912 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). - - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. +- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: 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 b380e47d56b673..052d2beaf51c2c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 58d7ad424da112..f9fd60a5858123 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 35dc1e027ddfeb..f4215154de6605 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index eb8078048537b5..e379dd73f4912b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: - - la periodicidad de las copias de seguridad automáticas - - los archivos a incluir en cada copia de seguridad - - las funcionalidades avanzadas permiten ejecutar tareas automáticas +- la periodicidad de las copias de seguridad automáticas +- los archivos a incluir en cada copia de seguridad +- las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. +- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. +- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 0aa7c3050737e9..122a0395c08180 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index a12a7f4383b866..f780ef9be2a24d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index b9a18ff620c4cd..209a1daf6f52d8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ Por razones de seguridad, en las áreas de entrada [multiestilo](./properties_Te También puede representar expresiones de campos y de variables en sus formularios utilizando objetos alternativos, más concretamente: - - Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). - - Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). - - Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). +- Puede mostrar e introducir datos de los campos de la base directamente en las columnas [de tipo List box](listbox_overview.md). +- Puede representar un campo de lista o una variable directamente en un formulario utilizando los objetos [Menús desplegables/Listas desplegables](dropdownList_Overview.md) y [Combo Box](comboBox_overview.md). +- Puede representar una expresión booleana como una [casilla de selección](checkbox_overview.md) o como un objeto [botón radio](radio_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 1f675a4d86f9f0..6da59e6c97d55e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -48,8 +48,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -73,9 +73,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 0c2f7a4f769a86..d82ec8269a7b3a 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 @@ -39,20 +39,20 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), #### Lo más destacado - - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. - - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). - - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). - - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. - - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. - - Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. - - Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. - - Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. - - Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. +- La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. +- Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). +- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). +- Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. +- Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. +- Los componentes interpretados pueden ahora [editarse desde el proyecto local](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) ahora se actualizan automáticamente al iniciar. +- Nuevo [componente AIKit 4D](../aikit/overview.md) que permite la interacción con las API IA de terceros. +- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md), y [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Nuevas funcionalidades [4D Netkit](https://developer.4d.com/4D-NetKit/) para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0. +- Interfaz 4D Write Pro: Nueva [IA integrada](../WritePro/writeprointerface.md#integrated-ai) para interactuar con **chatGTP** desde sus documentos 4D Write Pro. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos los bugs que se han corregido en 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento - - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). - - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. +- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). +- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento - - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. - - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. - - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. +- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. +- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado - - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). - - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). - - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. - - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. - - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. - - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. +- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). +- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). +- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. +- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. +- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. +- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. +- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. +- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). +- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. +- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento - - Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). - - La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). +- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo). +- La API REST [`$catalog`](../REST/$catalog.md) ahora devuelve singletons (si los hay). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado - - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. - - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. +- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Cambios de comportamiento - - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). - - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. +- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). +- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado - - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. - - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. - - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). - - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) - - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. - - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. +- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. +- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). +- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. +- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). +- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) +- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. +- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento - - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. - - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). +- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. +- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado - - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). - - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) - - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. +- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). +- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) +- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento - - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). - - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. +- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). +- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Lo más destacado - - Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. - - Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. +- Nueva [clase WebSocket](../API/WebSocketClass.md) para crear y gestionar conexiones WebSocket cliente desde 4D. +- Nueva capa de red QUIC [configuración de interfaz](../settings/client-server.md#network-layer). +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interfaz Write Pro 4D: nuevo [Asistente de tablas](../WritePro/writeprointerface.md). +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos los bugs que se han corregido en 4D 20 R2. #### Cambios de comportamiento - - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. +- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a012ba936d84c7..163716adebf666 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t Este evento también se activa: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 312390bb364e25..6a6eb8c18fccf1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 25c5e832dd4c74..a68cafc8accf20 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -120,9 +120,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index e5c023c74dc4ad..9f30f95e0bee18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -52,8 +52,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -84,8 +84,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -202,9 +202,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -260,7 +260,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -277,17 +277,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -297,9 +297,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -325,8 +325,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -334,12 +334,12 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: - - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente +- **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` +- **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. +- **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias @@ -399,16 +399,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -442,8 +442,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Puede definir la opción [etiqueta o versión](#tags-and-versions) para una depe ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). - - **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. - - **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. - - **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. - - **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. +- **Último**: seleccionado por defecto y permite descargar la versión etiquetada como la última versión (estable). +- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal. +- **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor. +- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible. +- **Siga la versión 4D**: descargue la última versión del componente compatible con la versión 4D en ejecución. Puede usar esta regla de dependencia sólo si las etiquetas de release de los componentes siguen la [convención de nombres](#naming-conventions-for-4d-version-tags) apropiada. La versión actual de la dependencia de GitHub se muestra a la derecha del elemento de la dependencia: @@ -524,8 +524,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -541,11 +541,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -590,13 +590,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 5e5adbeac0bf42..0424c8317dd555 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 24b7bf5648a51f..ceccb568517c05 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index f3f4fcc5d0f427..ce43ad5c50c92a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 39f6937781b698..41a1b586494a9d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -128,8 +128,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 81fe353cd4dd44..979c997dc5f3c5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos Se soportan gestores de solicitudes HTTP personalizados: - - cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, - - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). +- cuando las [sesiones escalables](./sessions.md#enabling-web-sessions) están habilitadas, +- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -117,10 +117,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -208,11 +208,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index bcad278ae763c0..b7275944048a9f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada uno de estos métodos y partes de código, el compilador comprobará si se respetan las reglas de seguridad de hilos, y devolverá errores en caso de que haya problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Por supuesto, el código ejecutado por estos métodos también debe ser hilo seg Las siguientes URLs 4D Web Server son hilo seguro y pueden ser utilizadas en modo apropiativo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para peticiones web en campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Icono de proceso web apropiativo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index d253ad2ebbc034..5988064c941307 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -146,24 +146,24 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -179,8 +179,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -310,9 +310,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -364,7 +364,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index f54bad738b3034..53a74bd7541a51 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 39bc7be2b0c004..de710cd9d2102d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index b4e81269ad020a..355633c3e4ffb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index d4450f98092e22..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index f22ae453755ef5..40f657ba12dfd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 273169e5c379b3..8c18e521f0ab9c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac Se ofrecen tres opciones de ubicación: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida. > Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema. Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas. Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado. #### Soporte de Mecab (versión japonesa) @@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ### Parámetros de la caché para la base - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D. - **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\ @@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios). El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 268da473a21865..8c07899f17c912 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l > Estos parámetros no se aplican a las bases proyecto abiertas en modo monopuesto. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - Si ha asociado una contraseña al usuario predeterminado, al abrir la base aparece una caja de diálogo en el que los usuarios deben introducir una contraseña. - Si no ha asociado una contraseña al Usuario Predeterminado, la caja de diálogo de Identificación de Usuario no aparecerá.**Nota:** puede "forzar" la visualización de la caja de diálogo Identificación de usuario cuando el modo "Usuario por defecto" está activo, por ejemplo para conectarse como Administrador o Diseñador. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Si no está marcada, los usuarios deben introducir tanto su nombre como su contraseña. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. Este botón permite al usuario acceder a una caja de diálogo que puede utilizar para modificar su contraseña (para más información sobre esta caja de diálogo, consulte "Modificación de la contraseña por el usuario" en [Garantizar el mantenimiento del sistema](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para ello, desmarque esta opción. ## Opciones @@ -43,7 +43,7 @@ Esta página contiene opciones relacionadas con la protección del acceso y de l - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para más información, consulte [Parámetros usuario](../settings/overview.md#user-settings). - - **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. +- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands-legacy/on-host-database-event-database-method.md) facilita las fases de inicialización y copia de seguridad de los componentes 4D. Por razones de seguridad, debe autorizar explícitamente la ejecución de este método en cada base de datos local. Para hacer esto, debe marcar esta opción. Por defecto, no está marcado. Cuando esta opción está seleccionada: 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 51600cdc9fccc1..060f745580ee32 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 @@ -82,9 +82,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -177,9 +177,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -193,16 +193,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -241,8 +241,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -262,9 +262,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -272,7 +272,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -306,9 +306,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 516b88ef8f1386..513d2fdda8fdee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Puede pasar uno o más parámetros opcionales *param*, que se pasarán a la [fun :::note Notas - - Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - - Si se llama a `.new()` en una clase inexistente, se devuelve un error. +- Si se llama a `.new()` en una [clase singleton](../Concepts/classes.md#singleton-classes) que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. +- Si se llama a `.new()` en una clase inexistente, se devuelve un error. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md index 944900df8642e6..8372233057679f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Esta propiedad es de **solo lectura**. La propiedad `.original` devuelveel elemento de destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser: - - un objeto File - - un objeto de la carpeta +- un objeto File +- un objeto de la carpeta Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo. @@ -585,8 +585,8 @@ La función `.getText()` devuelve el con Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar: - - en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), - - o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. +- en *charSetName*, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"), +- o en *charSetNum*, el ID MIBEnum (número) del nombre del conjunto estándar. > Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando `CONVERT FROM TEXT`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 2f5406c0df3c06..e8bdc8c311c943 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objeto 4D.OutgoingMessage es un objeto [no compartible](../Concepts/shared.md La propiedad `.body` contiene el cuerpo del mensaje saliente. Los siguientes tipos de datos están soportados en la propiedad `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image La propiedad `.body` es de lectura-escritura. @@ -108,17 +108,17 @@ La función `.setBody()` def Los siguientes tipos de datos están soportados en el *body*: - - Text - - Blob - - Object - - Imagen +- Text +- Blob +- Object +- Imagen Cuando se utiliza esta función, el encabezado content-type se define automáticamente en función del tipo *body*: - - Content-Type:text/plain si el cuerpo es un Texto - - Content-Type:application/octet-stream si el body es un Blob - - Content-Type:application/json si el body es un objeto - - Content-Type:image/jpeg, image/gif... si el body es una imagen +- Content-Type:text/plain si el cuerpo es un Texto +- Content-Type:application/octet-stream si el body es un Blob +- Content-Type:application/json si el body es un objeto +- Content-Type:image/jpeg, image/gif... si el body es una imagen Si *body* no es de un tipo de valor soportado, se devuelve un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index c2aac8d8067a35..9b93abeaf870fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propiedad `.keepAlive` contiene 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 270d7f8c31aad5..7b9392b7d194f3 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 @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index c6b433cd74a1d7..b22060e96f189f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La función `.disableState()` d Esta función no hace nada si: - - el *estado* no está habilitado actualmente en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* no está habilitado actualmente en el formulario web, +- el *estado* no existe para el formulario web. Si [activa](#enablestate) o desactiva varios estados en la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez finalizada la función. @@ -80,8 +80,8 @@ La función `.enableState()` act Esta función no hace nada si: - - el *estado* ya ha sido activado en el formulario web, - - el *estado* no existe para el formulario web. +- el *estado* ya ha sido activado en el formulario web, +- el *estado* no existe para el formulario web. Si activa o [desactiva](#disablestate) varios estados dentro de la misma función usuario, todas las modificaciones se envían al mismo tiempo al cliente una vez que la función termina. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 35dc1e027ddfeb..f4215154de6605 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La función `4D.WebSocket.new()` crea y En *url*, pase la URL a la que responderá el servidor WebSocket. Se pueden utilizar los siguientes patrones de URL: - - `ws://host[:port]path[?query]` para conexiones estándar - - `wss://host[:port]path[?query]` para conexiones seguras TLS +- `ws://host[:port]path[?query]` para conexiones estándar +- `wss://host[:port]path[?query]` para conexiones seguras TLS Si la conexión no es posible, se devuelve un objeto `null` y se genera un error (que puede interceptar utilizando un método instalado con `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la conexión no es posible, se devuelve un objeto `null` y se genera un error En *connectionHandler*, puede pasar un objeto que contenga funciones de retrollamada a ser llamadas según los eventos de conexión, así como el tipo de datos y encabezados a manejar. - - Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. - - El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. +- Las retrollamadas se llaman automáticamente en el contexto del formulario o worker que inicia la conexión. +- El WebSocket será válido siempre y cuando el formulario o trabajador no esté cerrado. | Propiedad | Tipo | Descripción | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La función `.terminate()` cierr En *code*, puede pasar un código de estado que explique por qué se está cerrando la conexión (ver también [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. - - Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. +- Si no se especifica, el código de cierre de la conexión se establece automáticamente en 1000 para un cierre normal o, en caso contrario, en otro valor estándar del rango 1001-1015 que indique la razón real por la que se cerró la conexión. +- Si se especifica, el valor de este parámetro de código anula el ajuste automático. El valor debe ser un número entero. O 1000, o un código personalizado en el rango 3000-4999. Si especifica un valor *code*, también debe especificar un valor *reason*. En *reason*, puede pasar una cadena que describa por qué se está cerrando la conexión. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 7a39dc1916d619..dd24f32e2a209e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Ver también [esta entrada de blog](https://blog.4d.com/new-built-in-websocket-s Para crear y manejar su Servidor WebSocket en 4D, tendrá que utilizar dos clases 4D integradas: - - esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, - - la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. +- esta clase (`4D.WebSocketServer`) para gestionar el propio servidor, +- la clase [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para administrar conexiones y mensajes. Además, tendrá que crear dos clases de usuario que contendrán funciones de retrollamada: - - una clase usuario para gestionar las conexiones al servidor, - - una clase usuario para gestionar mensajes. +- una clase usuario para gestionar las conexiones al servidor, +- una clase usuario para gestionar mensajes. Debe [crear el servidor WebSocket](#4dwebsocketservernew) dentro de un [worker](../Develop/processes.md#worker-processes) para mantener viva la conexión. @@ -387,8 +387,8 @@ De forma predeterminada, si no se establece un valor *timeout*, la función inic Si se establece un valor de *timeout*: - - cuando se alcanza el tiempo de espera, destruye forzosamente el socket. - - si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. +- cuando se alcanza el tiempo de espera, destruye forzosamente el socket. +- si *timeout* = 0, destruye el socket de forma forzada sin cerrar los frames ni intercambiar paquetes fin, y lo hace al instante sin esperar. 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 9cb80c2d0eb549..3d98894fd86ba5 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Es necesario configurar el lanzamiento al i Puede configurar el servidor web `WebAdmin` para que se lance al inicio de la aplicación 4D o 4D Server (antes de que se cargue cualquier proyecto). - - Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. +- Si utiliza una aplicación 4D con interfaz, seleccione la opción de menú **Archivo > Administración web > Parámetros....**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Seleccione la opción **Iniciar servidor WebAdmin al inicio** en la caja de diá ![alt-text](../assets/en/Admin/waSettings.png) - - Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: +- Tanto si utiliza la aplicación 4D con o sin interfaz, puede habilitar el modo de inicio automático utilizando el siguiente argumento *Interfaz de línea de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Cuando esta opción está seleccionada, podrá conectarse al servidor web `WebAd **Notas:** - - Nunca se aceptan conexiones con HTTP que no sean localhost. - - Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. +- Nunca se aceptan conexiones con HTTP que no sean localhost. +- Incluso si esta opción está activada, cuando [HTTPS aceptada](#accept-https) está activada y la configuración TLS es válida, las conexiones localhost utilizan HTTPS. #### Puerto HTTP @@ -95,11 +95,11 @@ Ruta de la carpeta donde se encuentran los archivos del certificado TLS. Por def Estado o formato del archivo de registro de peticiones HTTP (HTTPDebugLog_*nn*.txt, almacenado en la carpeta "Logs" de la aplicación -- *nn* es el número de archivo). Las siguientes opciones están disponibles: - - **Desactivado** (por defecto) - - **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición - - \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) - - **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones - - **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas +- **Desactivado** (por defecto) +- **Con todas las partes del body** - activado con las partes del cuerpo en respuesta y petición +- \*\*Sin las partes del body \*\* - activado sin partes del cuerpo (se indica el tamaño del cuerpo) +- **Con los cuerpos de las peticiones** - activado con la partes del cuerpo únicamente en las peticiones +- **Con la respuesta body** - activado con la partes del cuerpo únicamente en las respuestas #### Llave de acceso @@ -148,9 +148,9 @@ Ejemplo: ## Autenticación y sesión - - Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. +- Cuando se accede a una página de gestión web introduciendo una URL y sin identificación previa, se requiere una autenticación. El usuario debe introducir la [llave-de-acceso](#access-key) en una ventana de autenticación. Si la llave de acceso no fue definida en la configuración de `WebAdmin`, no es posible el acceso vía URL. - - Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. +- Cuando se accede a una página de gestión web directamente desde un elemento de menú de 4D o 4D Server (como **Registros > Explorador de datos** o **Ventana > Explorador de datos** (4D Server)), el acceso se concede sin autenticación, el usuario se autentifica automáticamente. Una vez concedido el acceso, se crea una [sesión web](WebServer/sessions.md) con el privilegio "WebAdmin" en la aplicación 4D. Mientras la sesión actual tenga el privilegio "WebAdmin", el componente `WebAdmin` entrega las páginas solicitadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 67b4b4a52a5dfc..aad7ec52bd4d2d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar - Si la caché contiene operaciones, el archivo de datos está intacto pero requiere integrar el archivo de historial actual. - Si la caché estaba en proceso de escritura, es probable que el archivo de datos esté dañado. Hay que restaurar la última copia de seguridad e integrar el archivo de historial actual. - - La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. +- La pérdida de archivo(s) de la aplicación. Este incidente puede producirse por sectores defectuosos en el disco que contiene la aplicación, un virus, un error de manipulación, etc. Hay que restaurar la última copia de seguridad y luego integrar el archivo de historial actual. Para saber si una aplicación ha sido dañada tras un incidente, basta con relanzarla con 4D. El programa realiza un auto diagnóstico y detalla las operaciones de reparación a realizar. En modo automático, estas operaciones se realizan directamente sin ninguna intervención por parte del usuario. Si se ha puesto en marcha una estrategia regular de copias de seguridad, las herramientas de restauración de 4D le permitirán (en la mayoría de los casos) recuperar la aplicación en el estado exacto en que se encontraba antes del incidente. > 4D puede lanzar procedimientos automáticamente de recuperación de las aplicaciones tras los incidentes. Estos mecanismos se gestionan mediante dos opciones disponibles en la página **Backup/Backup y Restauración** de las Propiedades. Para más información, consulte el párrafo [Restauración automática](settings.md#automatic-restore-and-log-integration). > Si la incidencia es el resultado de una operación inadecuada realizada sobre los datos (eliminación de un registro, por ejemplo), puede intentar reparar el archivo de datos utilizando la función "rollback" en el archivo de historial. Esta función está disponible en la página [Retroceder](MSC/rollback.md) del CSM. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md index eb8078048537b5..e379dd73f4912b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Parámetros de la copia de seguridad Los parámetros de copia de seguridad se definen a través de tres páginas en el [cuadro de diálogo de los parámetros](../settings/overview.md). Puede definir: - - la periodicidad de las copias de seguridad automáticas - - los archivos a incluir en cada copia de seguridad - - las funcionalidades avanzadas permiten ejecutar tareas automáticas +- la periodicidad de las copias de seguridad automáticas +- los archivos a incluir en cada copia de seguridad +- las funcionalidades avanzadas permiten ejecutar tareas automáticas > Las propiedades definidas en esta caja de diálogo se escriben en el archivo *Backup.4DSettings*, guardado en la carpeta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modificación de las opciones de copia de seguridad y restauración es opcion > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. +- **Copia de seguridad sólo si el archivo de datos ha sido modificado**: cuando se marca esta opción, 4D inicia las copias de seguridad programadas sólo si se han añadido, modificado o eliminado datos desde la última copia de seguridad. De lo contrario, la copia de seguridad programada se cancela y se pospone hasta la siguiente copia de seguridad programada. No se genera ningún error; sin embargo, el diario de copias de seguridad señala que la copia de seguridad se ha pospuesto. Esta opción también permite ahorrar tiempo de máquina para la copia de seguridad de las aplicaciones utilizadas principalmente para su visualización. Tenga en cuenta que al activar esta opción no se tienen en cuenta las modificaciones realizadas en los archivos de estructura o en los archivos adjuntos. > Este parámetro se refiere tanto a las copias de seguridad de la aplicación como de los archivos del historial. - - **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. +- **Eliminar el archivo de copia de seguridad más antiguo antes/después de la copia de seguridad**: esta opción sólo se utiliza si la opción "Conservar sólo los últimos X archivos de copia de seguridad" está marcada. Especifica si 4D debe comenzar borrando el archivo más antiguo antes de iniciar la copia de seguridad (**antes** opción) o si el borrado debe tener lugar una vez finalizada la copia de seguridad (opción **después**). Para que este mecanismo funcione, el archivo más antiguo no debe haber sido renombrado o movido. - **Si falla la copia de seguridad**: esta opción permite configurar el mecanismo utilizado para gestionar las copias de seguridad fallidas (copia de seguridad imposible). Cuando no se puede realizar una copia de seguridad, 4D le permite realizar un nuevo intento. - **Reintentar en la siguiente fecha y hora programada**: esta opción sólo tiene sentido cuando se trabaja con copias de seguridad automáticas programadas. Equivale a anular la copia de seguridad fallida. Se genera un error. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 8c94b6b302a621..9f489b93c64ef7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ El lenguaje 4D es compatible con los operadores que ya conoce de otros lenguajes El lenguaje 4D soporta los operadores **binarios** y **ternarios**: - - los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. - - los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). +- los operadores binarios operan en dos objetivos (como `2 + 3`) y aparecen entre sus dos objetivos. +- los operadores ternarios operan en tres objetivos. Like C, 4D has only one ternary operator, the [ternary conditional operator](#ternary-operator) (`a ? b : c`). Los valores que los operadores afectan son los operandos. En la expresión `1 + 2`, el símbolo + es un operador binario y sus dos operandos son los valores 1 y 2. @@ -33,18 +33,18 @@ $col:=New collection //$col se inicializa con una colección vacía Los resultados del operador dependen de los **tipos de datos** a los que se aplican. 4D soporta diferentes operadores en tipos de datos escalares. Se describen con los tipos de datos, en las siguientes secciones: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) - - [**Operadores de fechas**](dt_date.md#operadores-de-fechas) - - [**Operadores de tiempo**](dt_time.md#time-operators) - - [**Operadores de números**](dt_number.md#number-operators) - - [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) - - [**Operadores de imágenes**](dt_picture.md#picture-operators) - - [**Operadores de punteros**](dt_pointer.md#pointer-operators) - - [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) - - [**Operadores en las referencias de objetos**](dt_object.md#object-operators) - - [**Operadores de referencia de colección**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (en expresiones **booleanas**) +- [**Operadores de fechas**](dt_date.md#operadores-de-fechas) +- [**Operadores de tiempo**](dt_time.md#time-operators) +- [**Operadores de números**](dt_number.md#number-operators) +- [**Operadores de bits**](dt_number.md#bitwise-operators) (en expresiones de tipo **entero largo**) +- [**Operadores de imágenes**](dt_picture.md#picture-operators) +- [**Operadores de punteros**](dt_pointer.md#pointer-operators) +- [**Operadores de cadenas**](dt_string.md#operadores-de-cadenas) +- [**Operadores en las referencias de objetos**](dt_object.md#object-operators) +- [**Operadores de referencia de colección**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores Undefined**](dt_null_undefined.md#operadores-undefined) ## Operadores de asignación compuestos @@ -275,9 +275,9 @@ El operador condicional ternario permite escribir expresiones condicionales de u Se necesitan tres operandos en el siguiente orden: - - una condición seguida de un signo de interrogación (?) - - una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) - - una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) +- una condición seguida de un signo de interrogación (?) +- una expresión a ejecutar si la condición es [truthy](#truthy-and-falsy), seguida de dos puntos (:) +- una expresión a ejecutar si la condición es [falsy](#truthy-and-falsy) ### Sintaxis @@ -328,21 +328,21 @@ Además de un tipo, cada valor también tiene un valor booleano inherente, conoc Los siguientes valores son **falsy**: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Cadenas vacías - - [] - Colecciones vacías - - {} - Objetos vacios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Cadenas vacías +- [] - Colecciones vacías +- {} - Objetos vacios Todos los demás valores se consideran **truthy**, incluyendo: - - 0 - cero numérico (Entero u otro) +- 0 - cero numérico (Entero u otro) En 4D, la evaluación **truthy** y **falsy** refleja la **usabilidad** de un valor, lo que significa que un valor truthy existe y puede ser procesado por el código sin generar errores o resultados inesperados. La razón de ser de esto es ofrecer una forma conveniente de manejar valores *undefined* y *null* en objetos y colecciones, de modo que un número reducido de instrucciones [If…Else](flow-control.md#ifelseend-if) sean necesarias para evitar errores de ejecu diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index 6a6f75713e39cc..a1cc173febeb9b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Esta sintaxis solo soporta declaraciones de [variables locales y de proceso](#lo `varType` puede ser: - - un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, - - una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. +- un [tipo básico](Concepts/data-types.md), en cuyo caso la variable contiene un valor del tipo declarado, +- una [referencia de clase](Concepts/classes.md) (clase 4D o clase usuario), en cuyo caso la variable contiene una referencia a un objeto de la clase definida. Si se omite `varType`, se crea una variable de tipo **variant**. @@ -86,7 +86,7 @@ La sintaxis heredada utilizando los comandos `C_XX` es obsoleta a partir de 4D 2 ### Ejemplos - - Para declarar variables básicas locales y de proceso: +- Para declarar variables básicas locales y de proceso: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //también equivalente a C_OBJECT($o) ``` - - Para declarar las variables objeto de la clase 4D: +- Para declarar las variables objeto de la clase 4D: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Para declarar las variables objeto de la clase usuario: +- Para declarar las variables objeto de la clase usuario: ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Una variable local, como su nombre indica, es local a un método, accesible sól Es posible que desee utilizar una variable local para: - - Evitar conflictos con los nombres de otras variables - - Utilizar los datos temporalmente - - Reducir el número de variables proceso +- Evitar conflictos con los nombres de otras variables +- Utilizar los datos temporalmente +- Reducir el número de variables proceso El nombre de una variable local siempre comienza por el signo dólar ($) y puede contener hasta 31 caracteres adicionales. Si introduce un nombre más largo, 4D lo trunca a la longitud adecuada. @@ -224,9 +224,9 @@ En modo interpretado, las variables se mantienen dinámicamente; se crean y se b Un proceso puede leer y escribir las variables proceso de otro proceso utilizando los comandos `GET PROCESS VARIABLE` y `SET PROCESS VARIABLE`. Es una buena práctica de programación restringir el uso de estos comandos a la situación para la que fueron creados en 4D: - - Comunicación interprocesos en lugares específicos de su código - - Gestión de arrastrar y soltar interproceso - - En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras +- Comunicación interprocesos en lugares específicos de su código +- Gestión de arrastrar y soltar interproceso +- En Cliente/Servidor, la comunicación entre los procesos en las máquinas cliente y los procedimientos almacenados ejecutados en las máquinas servidoras Para más información, consulte el capítulo **Procesos** y la descripción de estos comandos. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index db11281d20c0f2..2aa4f087cdaddc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, puede que no haya suficiente memoria para crear un BLOB. O, cuan Estos son generalmente los tipos de errores más difíciles de encontrar. A excepción de los errores de digitación, todos los tipos de errores listados arriba están cubiertos hasta cierto punto por la expresión "error de diseño o de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por ejemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Los errores de diseño o de lógica también incluyen situaciones como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Un método no hace exactamente lo que espera, ya que la presencia de un parámetro opcional no está probada. A veces el código que muestra el error puede ser diferente al código que en realidad es el origen del problema. @@ -55,8 +55,8 @@ Para encontrar rápidamente el origen del problema, vuelva a abrir la versión i La ventana de error de sintaxis aparece automáticamente cuando se interrumpe la ejecución de un método. Esto puede ocurrir cuando: - - un error impide que el código siga ejecutándose - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- un error impide que el código siga ejecutándose +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ El área de texto superior muestra un mensaje describiendo el error. El área de La ventana de error de sintaxis propone varias opciones: - - **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. +- **Modificar**: detiene la ejecución de todos los métodos. 4D cambia al entorno de Diseño y el método con el error se abre en el editor de Código, permitiéndole corregirlo. Utilice esta opción cuando reconozca inmediatamente el error y pueda arreglarlo sin más investigación. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. La línea con el error puede ser parcialmente ejecutada, dependiendo de donde se encuentre el error. Continúe con precaución: el error puede impedir que el resto de su método se ejecute correctamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar un error que ocurre repetidamente (por ejemplo, en bucles), puede c ::: - - **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: +- **Abandonar**: detiene la ejecución del método y devuelve al estado antes del inicio de la ejecución del método: - Si un método formulario o método objeto se está ejecutando en respuesta a un evento, se detiene y se vuelve al formulario. - Si el método se está ejecutando desde dentro del entorno de la aplicación, volverá a ese entorno. - - **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. +- **Copiar**: copia la información de depuración en el portapapeles. La información describe el entorno interno del error (número, componente interno, etc.). Está formateado como texto tabulado. - - **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. +- **Guardar...**: guarda el contenido de la ventana de error de sintaxis y la cadena de llamadas en un archivo `.txt`. ## Depurador diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 0aa7c3050737e9..122a0395c08180 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento se puede utilizar para filtrar la entrada de datos en los objetos ed Cuando se utiliza, este evento se genera después de cada cambio realizado en el contenido de un objeto editable, independientemente de la acción que haya provocado la modificación, *es decir*: - - Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; - - Soltar un valor (acción similar a pegar); - - Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. - - Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). +- Acciones de edición estándar que modifican el contenido como pegar, cortar, borrar o cancelar; +- Soltar un valor (acción similar a pegar); +- Toda entrada de teclado realizada por el usuario; en este caso, el evento `On After Edit` se genera después de los eventos [`On Before Keystroke`](onBeforeKeystroke. d) y [`On After Keystroke`](onAfterKeystroke.md), si se utilizan. +- Cualquier modificación realizada mediante un comando del lenguaje que simule una acción del usuario (es decir, `POST KEY`). Dentro del evento `On After Edit`, los datos de texto que se ingresan son devueltos por el comando [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 21c7b1ccab37e5..40ba861bc720a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. Sin embargo, hay varias excepciones: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 6b828dc261f3b0..5b1c5186896b9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over El evento `On Drag Over` se envía repetidamente al objeto de destino cuando el puntero del ratón se mueve sobre el objeto. Normalmente, en respuesta a este evento: - - Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). - - Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. +- Obtenga los datos y las firmas que se encuentran en portapapeles (mediante el comando `GET PASTEBOARD DATA`). +- Según la naturaleza y el tipo de datos en el portapapeles, se **acepta** o **rechaza** el arrastrar y soltar. Para **aceptar** el arrastrar, el método del objeto de destino debe devolver 0 (cero). Para **rechazar** el arrastrar, el método de objeto debe retornar -1 (menos uno). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 4193db89f0ecc0..c09175fbd2a07b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Este evento se genera cuando se hace clic en el encabezado de una columna de lis Si se seleccionó la propiedad [Sortable](FormObjects/properties_Action.md#sortable) para el list box, se puede decidir si se autoriza o no una ordenación estándar de la columna pasando el valor 0 o -1 en la variable `$0`: - - Si `$0` es igual a 0, se realiza una ordenación estándar. - - Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. +- Si `$0` es igual a 0, se realiza una ordenación estándar. +- Si `$0` es igual a -1, no se realiza una ordenación estándar y el encabezado no muestra la flecha de ordenación. El desarrollador puede seguir generando una ordenación de columnas basada en criterios de ordenación personalizados utilizando el lenguaje 4D. Si la propiedad [Sortable](FormObjects/properties_Action.md#sortable) no está seleccionada para el list box, la variable `$0` no se utiliza. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index d2daec9d290eff..dc0b5a8bdb81ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Los formularios ofrecen la interfaz a través de la cual se introduce, modifica Los formularios también pueden contener otros formularios a través de las siguientes funcionalidades: - - [objetos de subformulario](FormObjects/subform_overview.md) - - [formularios heredados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulario](FormObjects/subform_overview.md) +- [formularios heredados](./properties_FormProperties.md#inherited-form-name) ## Creación de formularios Puede añadir o modificar formularios 4D utilizando los siguientes elementos: - - **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. - - **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. - - **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: +- **La interfaz 4D Developer:** cree nuevos formularios desde el menú **Archivo** o la ventana del **Explorador**. +- **El editor de formularios**: modifique sus formularios utilizando el **[editor de formularios](FormEditor/formEditor.md)**. +- **El código JSON:** cree y diseñe sus formularios utilizando JSON y guarde los archivos de los formularios en la [ubicación adecuada](Project/architecture#sources). Ejemplo: ``` { @@ -70,9 +70,9 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos: Hay dos categorías de formularios: - - **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. +- **Los formularios de proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo. - - **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. +- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados. Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después. @@ -80,15 +80,15 @@ Normalmente, se selecciona la categoría del formulario al crearlo, pero se pued Cada formulario consta de al menos dos páginas: - - una página 1: una página principal, mostrada por defecto - - una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. +- una página 1: una página principal, mostrada por defecto +- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas. Puede crear varias páginas para un formulario de entrada. Si tiene más campos o variables de los que caben en una pantalla, puede crear páginas adicionales para mostrarlos. Las páginas múltiples le permiten hacer lo siguiente: - - Coloque la información más importante en la primera página y la menos importante en otras. - - Organice cada tema en su propia página. - - Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). - - Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. +- Coloque la información más importante en la primera página y la menos importante en otras. +- Organice cada tema en su propia página. +- Reducir o eliminar el desplazamiento durante la entrada de datos definiendo el [orden de entrada](formEditor.md#data-entry-order). +- Deje espacio alrededor de los elementos del formulario para lograr un diseño de pantalla atractivo. Las páginas múltiples son útiles sólo para los formularios de entrada. No son para imprimir. Cuando se imprime un formulario de varias páginas, sólo se imprime la primera. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index a549dcc06d28ca..b56b453cb2a0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ El editor de formularios 4D soporta macros. Una macro es un conjunto de instrucc Por ejemplo, si tiene un informe recurrente con un formato específico (por ejemplo, cierto texto debe aparecer en rojo y cierto texto debe aparecer en verde), puede crear una macro para definir automáticamente el color. Puede crear macros para el editor de formularios 4D que pueden: - - Crear y ejecutar código 4D - - Mostrar las cajas de diálogo - - Seleccione los objetos de formulario - - Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades - - Modificar los archivos del proyecto (actualizar, eliminar) +- Crear y ejecutar código 4D +- Mostrar las cajas de diálogo +- Seleccione los objetos de formulario +- Añadir / eliminar / modificar los formularios, los objetos de formulario así como sus propiedades +- Modificar los archivos del proyecto (actualizar, eliminar) El código de las macros soporta [funciones de clase](Concepts/classes.md) y las [propiedades de objeto de formulario en JSON](FormObjects/properties_Reference.md) para permitir definir toda funcionalidad personalizada en el editor de formularios. @@ -238,9 +238,9 @@ Por ejemplo, si los objetos de la página actual y de los grupos han sido modifi Cuando se maneja el atributo `method` de los objetos de formulario, se puede definir el valor del atributo de dos maneras en las macros: - - Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). +- Utilizando una [cadena que contiene el nombre/ruta del archivo del método](FormObjects/properties_Action.md#method). - - Utilizando un objeto con la siguiente estructura: +- Utilizando un objeto con la siguiente estructura: | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------- | @@ -252,9 +252,9 @@ Cuando se maneja el atributo `method` de los objetos de formulario, se puede def La propiedad `$4dId` define un ID único para cada objeto de la página actual. Esta clave es utilizada por el procesador de macros para controlar los cambios en `$result.currentPage`: - - si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. - - si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. - - si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. +- si la llave `$4dId` falta tanto en el formulario y en un objeto en `$result`, el objeto se crea. +- si la llave `$4dId` existe en el formulario pero falta en `$result`, el objeto se elimina. +- si la llave `$4dId` existe tanto en el formulario y en un objeto en `$result`, el objeto se modifica. #### Ejemplo @@ -297,8 +297,8 @@ La función `onError` se ejecuta cuando el procesador de macros encuentra un err Cuando se ejecuta una macro, si 4D encuentra un error que impide la cancelación de la macro, no la ejecuta. Es el caso, por ejemplo, de que la ejecución de una macro resulte en: - - borrar o modificar un script cuyo archivo es de sólo lectura. - - crear dos objetos con el mismo ID interno. +- borrar o modificar un script cuyo archivo es de sólo lectura. +- crear dos objetos con el mismo ID interno. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index adf4e370f8ed57..a5f6af94871bb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Puede utilizar librerías de objetos en sus formularios. Una librería de objeto 4D propone dos tipos de librerías de objetos: - - una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. - - librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. +- una librería de objetos estándar y preconfigurada, disponible en todos sus proyectos. +- librerías de objetos personalizadas, que puede utilizar para almacenar sus objetos formularios favoritos o formularios proyecto completos. ## Utilización de la librería de objetos estándar @@ -56,13 +56,13 @@ Una determinada librería de objetos sólo puede ser abierta por un proyecto a l Para abrir una librería de objetos personalizada, seleccione el comando **Abrir>Librería de objetos...** en el menú **Archivo** o en la barra de herramientas de 4D. Aparece una caja de diálogo estándar para abrir archivos, que le permite seleccionar la librería de objetos que desea abrir. Puede seleccionar los siguientes tipos de archivos: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** De hecho, las librerías de objetos personalizadas son proyectos 4D clásicos. Sólo se exponen las siguientes partes de un proyecto cuando se abre como librería: - - formularios proyecto - - páginas formulario 1 +- formularios proyecto +- páginas formulario 1 ### Crear una librería de objetos @@ -74,10 +74,10 @@ Las principales operaciones están disponibles en el menú contextual o en el me ![](../assets/en/FormEditor/library5.png) - - **Cortar** o **Copiar** al portapapeles - - **Pegar** un objeto del tablero portapapeles - - **Borrar** - elimina el objeto de la librería - - **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. +- **Cortar** o **Copiar** al portapapeles +- **Pegar** un objeto del tablero portapapeles +- **Borrar** - elimina el objeto de la librería +- **Renombrar** - aparece una caja de diálogo que permite cambiar el nombre del elemento. Tenga en cuenta que los nombres de los objetos deben ser únicos en una librería. Puede colocar objetos individuales (incluidos los subformularios) o conjuntos de objetos en una librería de objetos. Cada objeto o conjunto se agrupa en un solo elemento: @@ -93,9 +93,9 @@ El uso de copiar y pegar o arrastrar y soltar con ciertos objetos de librería t A continuación se muestra una lista de objetos dependientes que se pegarán en la librería al mismo tiempo que el objeto principal que los utiliza (cuando corresponda): - - Listas - - Formatos/Filtros - - Imágenes - - Mensajes de ayuda (asociados a un campo) - - Métodos objeto +- Listas +- Formatos/Filtros +- Imágenes +- Mensajes de ayuda (asociados a un campo) +- Métodos objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index c83800791d8150..1e2051b156d9a3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Las opciones de tamaño dependen del valor de la opción **Tamaño basado en**. ## Tamaño basado en - - **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). +- **Tamaño automático**: el tamaño del formulario será el necesario para mostrar todos los objetos, al que se añadirán los valores de margen (en píxeles) introducidos en los campos [**Margen Hor**](#hor-margin) y [**Margen Vertical**](#vert-margin). Puede elegir esta opción cuando desee utilizar objetos activos situados en un área fuera de la pantalla (*es decir*, fuera del rectángulo delimitador de la ventana) con una ventana de tamaño automático. Gracias a esta opción, la presencia de estos objetos no modificará el tamaño de la ventana. - - **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). +- **Definir tamaño**: el tamaño del formulario se basará en lo que introduzca (en píxeles) en los campos [**Ancho**](#width) y [**Alto**](#height). - - ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. +- ``: el tamaño del formulario se basará en la posición del objeto formulario seleccionado. Por ejemplo, si elige un objeto situado en la parte inferior derecha del área a mostrar, el tamaño del formulario consistirá en un rectángulo cuya esquina superior izquierda será el origen del formulario y la esquina inferior derecha corresponderá a la del objeto seleccionado, más los valores de los márgenes. > Para los formularios de salida, sólo están disponibles los campos [**Margen horizontal**](#hor-margin) o [**Ancho**](#width). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index bbceacbfc30cfd..f10f0acc5801ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Usted crea y personaliza los formularios de su aplicación manipulando los objet Los formularios 4D soportan una gran cantidad de objetos **activos** y **estáticos** integrados: - - **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. - - **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. +- **Los objetos activos** realizan una tarea o una función de la interfaz. Los campos son objetos activos. Los otros objetos activos -objetos editable (variables), combo box, listas desplegables, botones imagen, etc.- almacenan los datos temporalmente en la memoria o realizan alguna acción, como abrir una caja de diálogo, imprimir un informe o iniciar un proceso en segundo plano. +- **Los objetos estáticos** se utilizan generalmente para definir la apariencia del formulario y sus etiquetas, así como para la interfaz gráfica. Los objetos estáticos no tienen variables asociadas como los objetos activos. Sin embargo, se pueden insertar objetos dinámicos en objetos estáticos. ## Gestión de objetos de formulario Puede añadir o modificar objetos formulario 4D de las siguientes maneras: - - **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. +- **[Editor de formularios](FormEditor/formEditor.md):** arrastre un objeto de la barra de herramientas del editor de formularios al formulario. A continuación, utilice la Lista de propiedades para especificar las propiedades del objeto. - - Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. +- Lenguaje **4D**: los comandos del tema `Objects (Forms)` como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) o [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) permiten crear y definir objetos de formulario. - **Código JSON en formularios dinámicos:** define las propiedades utilizando JSON. Utilice la propiedad [type](properties_Object.md#type) para definir el tipo de objeto y, a continuación, defina sus [propiedades disponibles](properties_Reference.md). Ejemplo para un objeto botón: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 6bd35744f75fcd..4deecc62b856a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Cuando corresponda, el icono desplegar/contraer se mostrará automáticamente a El contenido de un objeto formulario lista jerárquica se puede inicializar de una de las siguientes maneras: - - Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. - - Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. +- Asociar una [lista de opciones](properties_DataSource.md#choice-list) existente al objeto. La lista de elección debe haber sido definida en el editor de listas en modo Diseño. +- Asigne directamente una referencia de lista jerárquica a la [variable o expresión](properties_Object.md#variable-or-expression) asociada al objeto formulario. En ambos casos, se gestiona una lista jerárquica en tiempo de ejecución a través de su referencia *ListRef*, utilizando los comandos [lista jerárquica](../commands/theme/Hierarchical_Lists.md) del lenguaje 4D. @@ -34,9 +34,9 @@ mylist:=New list Cada representación de la lista tiene sus propias características específicas y comparte características comunes con todas las demás representaciones. Las siguientes características son específicas de cada representación de la lista: - - La selección, - - El estado desplegado/colapsado de sus elementos, - - La posición del cursor de desplazamiento. +- La selección, +- El estado desplegado/colapsado de sus elementos, +- La posición del cursor de desplazamiento. Las otras características (fuente, tamaño de fuente, estilo, control de entrada, color, contenido de la lista, iconos, etc.) son comunes a todas las representaciones y no se pueden modificar por separado. Por consiguiente, cuando se utilizan comandos basados en la configuración expandida/colapsada o en el elemento actual, por ejemplo `Count list items` (cuando no se pasa el parámetro final `*`), es importante poder especificar la representación que se utilizará sin ninguna ambigüedad. @@ -82,14 +82,14 @@ Al igual que con otros comandos de gestión de propiedades de objetos, es posibl Es posible modificar la apariencia de una lista jerárquica en un formulario utilizando varios comandos 4D genéricos. Puede pasar a estos comandos el nombre del objeto de la lista jerárquica (utilizando el parámetro \*), o su nombre de variable (que contiene el valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Recordatorio: excepto `OBJECT SET SCROLL POSITION`, estos comandos modifican todas las representaciones de una misma lista, aunque sólo se especifique una lista a través de su nombre de objeto. @@ -107,8 +107,8 @@ Este principio se aplica independientemente del orden de llamada de los comandos Normalmente se puede trabajar de dos maneras con el contenido de las listas jerárquicas: por posición o por referencia. - - Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. - - Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. +- Cuando se trabaja por posición, 4D se basa en la posición con respecto a los elementos de la lista que aparecen en pantalla para identificarlos. El resultado será diferente según se expandan o colapsen determinados elementos jerárquicos. Tenga en cuenta que en el caso de las representaciones múltiples, cada objeto formulario tiene su propia configuración de elementos expandidos/colapsados. +- Cuando se trabaja por referencia, 4D se basa en el número de identificación *itemRef* de los elementos de la lista. Así, cada elemento puede especificarse individualmente, independientemente de su posición o de su visualización en la lista jerárquica. ### Utilizar los números de referencia de los artículos (itemRef) @@ -141,9 +141,9 @@ Básicamente, es necesario tratar con los números de referencia de los elemento Puede controlar si los elementos de la lista jerárquica pueden ser modificados por el usuario utilizando el atajo de teclado **Alt+clic**(Windows) / **Opción+clic** (macOS), o realizando una pulsación larga sobre el texto del elemento. - - Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). +- Sea cual sea la fuente de datos de la lista jerárquica, puede controlar todo el objeto con la propiedad [Editable](properties_Entry.md#enterable). - - Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Además, si llena la lista jerárquica utilizando una lista creada en el editor de listas, puede controlar si un elemento de una lista jerárquica es modificable mediante la opción **Elemento modificable** del editor de listas. Para más información, consulte [Definir las propiedades de la lista](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 4d25873c20bb67..d210e1a4e5733b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). El formulario detallado puede utilizarse para introducir o ver los subregistros. Generalmente contiene más información que el subformulario lista. Naturalmente, el formulario detallado debe pertenecer a la misma tabla que el subformulario. Normalmente se utiliza un formulario de salida como formulario lista y un formulario de entrada como formulario detallado. Si no especifica el formulario a utilizar para la entrada de la página completa, 4D utiliza automáticamente el formato de entrada por defecto de la tabla. #### Gramática JSON @@ -52,8 +52,8 @@ Esta propiedad se utiliza para declarar el formulario detallado que se utilizar Acción a realizar en caso de doble clic en una línea vacía de un subformulario listado. Las siguientes opciones están disponibles: - - No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- No hacer nada (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- Añadir registro: crea un nuevo registro en el subformulario y cambia al modo edición. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -77,9 +77,9 @@ Acción a realizar en caso de doble clic en una línea vacía de un subformulari Define la acción a realizar cuando un usuario haga doble clic en una línea en un subformulario lista. Las opciones disponibles son: - - **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. - - **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. +- **No hacer nada** (por defecto): hacer doble clic en una línea no desencadena ninguna acción automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. El registro se abre en modo de lectura-escritura para que pueda ser modificado. +- **Mostrar registro**: idéntica a la acción anterior, salvo que el registro se abre en modo de sólo lectura para que no pueda ser modificado. Independientemente de la acción seleccionada/elegida, se genera el evento de formulario `On Double clicked`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index cc8d6b7e0fd9cc..c6822aab4fdc97 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Las formas son [objetos estáticos](formObjects_overview.md#active-and-static-ob Se ofrecen las siguientes formas básicas: - - rectángulos - - líneas - - óvalos +- rectángulos +- líneas +- óvalos ## Rectángulo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 8d9dc854e98bd2..44dd6b6649dcfd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ Los separadores se utilizan, por ejemplo, en los formularios de salida para pode Algunas de las características generales del separador: - - Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. - - Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. - - Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. +- Puede colocar tantos separadores como desee en todo tipo de formulario y utilizar una mezcla de separadores horizontales y verticales en el mismo formulario. +- Un separador puede cruzar (superponer) un objeto. Este objeto cambiará de tamaño cuando se mueva el separador. +- Los topes de los separadores se calculan para que los objetos desplazados permanezcan totalmente visibles en el formulario o no pasen por debajo/al lado de otro separador. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Si se redimensiona un formulario mediante un separador, las nuevas dimensiones del formulario se guardan sólo mientras se muestra el formulario. Una vez que se cierra un formulario, se restablecen las dimensiones iniciales. Una vez insertado, el separador aparece como una línea. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variable se puede utilizar en su objeto y/o métodos de formulario. Su valor indica la posición actual del separador, en píxeles, en relación con su posición inicial. - - Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, - - Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, - - Si el valor es 0: el separador se ha movido a su posición original. +- Si el valor es negativo: el separador se ha movido hacia arriba o hacia la izquierda, +- Si el valor es positivo: el separador se ha movido hacia el fondo o hacia la derecha, +- Si el valor es 0: el separador se ha movido a su posición original. También puede mover el separador por programación: sólo tiene que definir el valor de la variable asociada. Por ejemplo, si un separador vertical está asociado a una variable llamada `split1`, y si se ejecuta la siguiente sentencia:`split1:=-10`, el separador se moverá 10 píxeles a la izquierda - como si el usuario lo hiciera manualmente. El movimiento se realiza realmente al final de la ejecución del método del formulario u objeto que contiene la instrucción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 034059d2b33310..453a3b38a316cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para más información, consulte [Uso de indicadores](progressIndicator.md#using ## Ver también - - [indicadores de progreso](progressIndicator.md) - - [rulers](ruler.md) +- [indicadores de progreso](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index e57f6f3248c56a..c06a9428ab317f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un subformulario es un formulario incluido en otro formulario. Con el fin de definir claramente los conceptos implementados con los subformularios, aquí hay algunas definiciones para ciertos términos utilizados: - - **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. - - **Formulario padre**: un formulario que contiene uno o más subformularios. - - **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. - - **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. - - **Formulario listado**: instancia de subformulario mostrada como una lista. - - **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. +- **Subformulario**: un formulario destinado a ser incluido en otro formulario, llamado a su vez formulario padre. +- **Formulario padre**: un formulario que contiene uno o más subformularios. +- **Contenedor de subformulario**: un objeto incluido en el formulario padre, que muestra una instancia del subformulario. +- **Instancia de subformulario**: la representación de un subformulario en un formulario padre. Este concepto es importante porque es posible mostrar varias instancias del mismo subformulario en un formulario padre. +- **Formulario listado**: instancia de subformulario mostrada como una lista. +- **Formulario detallado**: formulario de entrada tipo página asociado a un subformulario tipo lista al que se accede haciendo doble clic en la lista. ## Sub-formularios en lista @@ -43,8 +43,8 @@ Puede vincular [una variable o una expresión](properties_Object.md#variable-or- Por defecto, 4D crea una variable o expresión de [tipo objeto](properties_Object.md#expression-type) para un contenedor de subformulario, lo cual le permite compartir valores en el contexto del subformulario utilizando el comando `Form`. Sin embargo, puede utilizar una variable o expresión de cualquier tipo escalar (tiempo, entero, etc.) especialmente si sólo necesita compartir un único valor: - - Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. +- Defina una variable ligada o una expresión de tipo escalar y llame a los comandos `OBJECT Get subform container value` y `OBJECT SET SUBFORM CONTAINER VALUE` para intercambiar valores cuando se produzcan los eventos de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) o [On Data Change](../Events/onDataChange.md). Esta solución se recomienda para sincronizar un solo valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solución se recomienda para sincronizar varios valores. ### Sincronizando formulario padre y subformulario (valor único) @@ -58,8 +58,8 @@ En el formulario padre, ambos objetos (área de entrada y contenedor subformular Para mostrar una hora estática, debe utilizar el [tipo de datos](properties_DataSource.md#data-type-expression-type) apropiado para la [variable o la expresión](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. El valor del texto debe tener el formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor - - si el subformulario pertenece a la página formulario actual o a la página 0. +- en cuanto se asigna un valor a la variable/expresión del formulario padre, incluso si se reasigna el mismo valor +- si el subformulario pertenece a la página formulario actual o a la página 0. Tenga en cuenta que, como en el ejemplo anterior, es preferible utilizar el comando `OBJECT Get subform container value` que devuelve el valor de la expresión en el contenedor del subformulario en lugar de la propia expresión, ya que es posible insertar varios subformularios en el mismo formulario padre (por ejemplo, una ventana que muestra diferentes zonas horarias contiene varios relojes). La modificación de la variable o expresión asociada desencadena eventos de formulario que permiten sincronizar los valores del formulario padre y del subformulario: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Actualizar el contenido de un formulario padre @@ -170,8 +170,8 @@ La comunicación entre el formulario padre y las instancias del subformulario pu 4D ha implementado los siguientes mecanismos para satisfacer estas necesidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 15cc1db6001b65..bc49bec408f392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ En macOS, además de la posición estándar (arriba), los controles de las pesta Para suministrar las etiquetas de un control de pestañas, puede utilizar: - - un objeto - - una lista de selección - - un array +- un objeto +- una lista de selección +- un array ### Utilizar un objeto diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 2a64dd60b222cf..ee918a3624a6ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Una vez que un texto está rotado, puede seguir cambiando su tamaño o posición ![](../assets/en/FormObjects/staticText2.png) - - Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); - - Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); - - Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). +- Si el objeto se redimensiona en la dirección A, se modifica su [ancho](properties_CoordinatesAndSizing.md#width); +- Si el objeto se redimensiona en la dirección C, se modifica su [alto](properties_CoordinatesAndSizing.md#height); +- Si el objeto se redimensiona en la dirección B, se modifican tanto su [ancho](properties_CoordinatesAndSizing.md#width) como su [alto](properties_CoordinatesAndSizing.md#height). ## Propiedades soportadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index b37afb17f3bf5e..7e5de28937bccd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operación registrada en el archivo de registro aparece como una línea. La Esta información permite identificar la fuente y el contexto de cada operación: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta columna puede contener una de las siguientes operaciones: - Apertura del archivo de datos: apertura de un archivo de datos. @@ -30,24 +30,24 @@ Esta información permite identificar la fuente y el contexto de cada operación - Cancelación de transacción: transacción cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde al contexto de la operación. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. En modo cliente-servidor, se muestra el nombre de la máquina del lado del cliente; en el modo monopuesto, se muestra el nombre del usuario de la sesión. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Si se define un alias para el usuario, el alias se muestra en lugar del nombre de usuario 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Los valores están separados por ";". Solo se muestran los valores representados en forma alfanumérica. ***Nota:** si la base de datos está encriptada y no se ha proporcionado una llave de datos válida correspondiente al archivo de historial abierto, los valores encriptados no se muestran en esta columna.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). El botón Navegar puede utilizarse para seleccionar y abrir otro archivo de historial para la aplicación. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md index fa95af5d7e9d02..d8c13124f8d1a4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ El área "Registros encontrados en el archivo de datos" incluye dos tablas que r - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Los nombres de las tablas asignadas automáticamente aparecen en verde. Los grupos no asignados, es decir, las tablas a las que no se ha podido asociar ningún registro, aparecen en rojo. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por defecto, esta opción está marcada para todos los grupos con registros que pueden asociarse a una tabla. - - La segunda tabla lista las tablas del archivo del proyecto. +- La segunda tabla lista las tablas del archivo del proyecto. ### Asignación manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Una vez finalizada la reparación, 4D genera un archivo de registro en la carpeta Logs del proyecto. Este archivo permite ver todas las operaciones realizadas. Se crea en formato XML y se llama: *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" donde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 415a5e1f4c8790..b730b0bbfb1492 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 @@ -134,8 +134,8 @@ Lea [**Novedades en 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d-20-R8/), #### Cambios de comportamiento - - Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). - - Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. +- Después de una modificación del archivo de registro usando [`SELECT LOG FILE`](../commands/select-log-file.md) o la [Configuración de copia de seguridad](../Backup/settings.md#log-management), el comando [`New log file`](../commands/new-log-file.md) ahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria). +- Debido a su [nueva arquitectura](../Desktop/building.md#build-component), los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D. ## 4D 20 R7 @@ -164,9 +164,9 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), #### Cambios de comportamiento - - La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. - - El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. - - La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. +- La documentación del [Lenguaje 4D](../commands/command-index.md) y del [Lenguaje 4D Write Pro](../WritePro/commands/command-index.md) ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión. +- El comando [`File`](../commands/file.md) (así como [`4D.File.new()`](../API/FileClass.md#4dfilenew)) es más estricto a la hora de comprobar la sintaxis de *path* suministrada como parámetro. +- La acción de [permission](../ORDA/privileges.md#permission-actions) ha sido eliminada de las acciones disponibles. El acceso a las urls [`/rest/$catalog`](../REST/$catalog.md) ya no está controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -174,20 +174,20 @@ Lea [**Novedades en 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d-20-R6/), #### Lo más destacado - - Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). - - Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). - - Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. - - Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. - - Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. - - Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. - - Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. - - Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). - - Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). - - Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. - - Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. +- Soporte de operadores de comparación en las [referencias de objeto](../Concepts/dt_object.md#object-operators) y las [referencias de colección](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) ahora soporta las [referencias de objeto y de colección como valores de consulta](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Cuando un componente tiene un [espacio de nombres declarado](../Extensions/develop-components.md#declarar-el-espacio-de-nombres-del-componente), sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host por [`cs.`](../Concepts/classes.md#cs). +- Gestión de componentes: soporte de [componentes almacenados en GitHub](../Project/components.md#components-stored-on-github). +- Nueva función [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) y API REST [`$clean`](../REST/$clean.md) para obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas. +- Nueva función [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) y API REST [`$info/privileges`](../REST/$info.md) para inspeccionar los privilegios de sesión más fácilmente durante la depuración. +- Nuevo archivo [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar las áreas web anidadas de 4D. +- Nueva clase [HTTPAgent](../API/HTTPAgentClass.md) y nueva propiedad [`agent`](../API/HTTPRequestClass.md#options-parameter) para la clase HTTPRequest. +- Nuevas funciones [`enableState()`](../API/WebFormClass.md) y [`disableState()`](../API/WebFormClass.md) para controlar los estados de las páginas Qodly desde el servidor. +- Nueva [\`API$singleton](../REST/$singleton.md) para llamar las funciones singleton expuestas desde REST y nuevos [privilegios asociados](../ORDA/privileges.md). +- Un [nuevo botón de parámetros](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base `On REST Authentication` es ahora obsoleto). +- Una [nueva pestaña de parámetros](../Project/compiler.md#warnings) permite definir la generación de advertencias de forma global. +- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nuevo [componente 4D-QPDF](https://github.com/4d/4D-QPDF) que ofrece el comando `PDF Get attachments` para extraer los archivos adjuntos de un documento PDF/A3. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos los bugs que se han corregido en 4D 20 R6. #### Cambios de comportamiento @@ -200,21 +200,21 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), #### Lo más destacado - - Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. - - Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Nuevo [Gestor de componentes](../Project/components.md) para gestionar componentes a través de un archivo `dependencies.json`. +- Soporte de estructuras de gestión de errores [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La capa de red QUIC ahora soporta [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), e [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Cambios de comportamiento - - Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). - - Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. +- Los plug-ins *4D Internet Commands* y *4D for OCI* ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al [**portal de descarga de productos 4D**](https://product-download.4d.com/). +- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado `catalog_editor.json` almacenado en la carpeta [`Sources`](../Project/architecture.md#sources) del proyecto. ## 4D 20 R4 @@ -222,24 +222,24 @@ Lea [**Novedades en 4D 20 R4**](https://blog.4d.com/en-whats-new-in-4d-v20-R4/), #### Lo más destacado - - Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. - - Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). - - Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. - - Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). - - Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) - - Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. - - Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. +- Soporte de [formato de cifrado ECDSA\`](../Admin/tls.md#encryption) para certificados TLS. +- Las conexiones TLS cliente/servidor y servidor SQL ahora se [configuran dinámicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (no se requieren archivos de certificado). +- Formato HTML directo para [exportaciones de definición de estructura](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nuevo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución. +- Los parámetros de métodos declarados en prototipos `#DECLARE` [ya no son necesarios en métodos "Compiler_"](../Concepts/parameters.md). +- Soporte de [formatos personalizados de fecha y hora](../Project/date-time-formats.md) +- Nueva [palabra clave `Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de error simples. +- Nuevo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nueva opción de compatibilidad [Impresión no bloqueante](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos los bugs que se han corregido en 4D 20 R4. #### Cambios de comportamiento - - El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. - - Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). +- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, `C_TEXT($1)` o `var $1 : Text`) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- En la actualización de [la librería OpenSSL](#library-table), el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar. +- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces **False**) y que `Open datastore` encripta su conexión pasando la opción "tls" a **True** en *connectionInfo*. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -247,21 +247,21 @@ Lea [**Novedades en 4D 20 R3**](https://blog.4d.com/en-whats-new-in-4d-20-vR3/), #### Lo más destacado - - Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). - - Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) - - Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. +- Nueva función [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Soporte del parámetro *context* en [`Formula from string`](../commands/formula-from-string.md). +- Soporte de la propiedad `headers` en el parámetro *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Sello de modificación global](../ORDA/global-stamp.md) para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) y [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- La asignación de referencias de archivo a atributos imagen/blob está [soportada en ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Soporte para [inicializar el valor de la variable y el tipo de datos en la línea de declaración](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- Los parámetros del archivo de registro se guardan ahora [con el archivo de datos actual](../Backup/settings.md#log-management) +- Nueva sintaxis para [declarar parámetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos los bugs que se han corregido en 4D 20 R3. #### Cambios de comportamiento - - Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). - - 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. +- Algunos errores eran detectables por su [método de gestión de errores](../Concepts/error-handling.md) solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: *Indice fuera de rango*, *Tipo incompatible* y *Derreferenciación de un puntero Null*. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando [`ABORT`](../commands-legacy/abort.md). +- 4D ya no incluye un intérprete PHP interno. Necesita [configurar y ejecutar su propio intérprete PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) para utilizar comandos PHP. ## 4D 20 R2 @@ -283,7 +283,7 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 #### Cambios de comportamiento - - **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. +- **Atención**: el valor inicial [`offset`](../API/FileHandleClass.md#offset) de los objetos [4D.FileHandle](../API/FileHandleClass.md) estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones **20.1 HF1** y **20 R2** y el valor ahora es 0. ## 4D 20.x LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index d4c00814f4df3c..bd014a9a40fc59 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci Además, para garantizar el correcto funcionamiento de la funcionalidad, se requieren las siguientes condiciones: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descripción | | ------------------------------------------------------- | -------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Para activar el seguimiento de cambios en los datos: 4D realiza entonces los siguientes cambios: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desactivar el seguimiento de cambios de datos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 8908d04f54c6f5..0d7adf2eed2567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La sesión web creada en el almacén de datos remoto se identifica utilizando un El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estos principios se ilustran en los gráficos siguientes: @@ -29,9 +29,9 @@ Estos principios se ilustran en los gráficos siguientes: Los procesos que gestionan las sesiones de acceso al datastore se muestran en la ventana de administración de 4D Server: - - nombre: "REST Handler: \" - - tipo: tipo Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- tipo: tipo Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md index d6479dadfaeb10..de76bc42b61a43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir de macOS Sierra, las aplicaciones Mac pueden beneficiarse de la funció Puede beneficiarse de esta funcionalidad en los siguientes entornos (sólo con las versiones 4D de 64 bits): - - Ventanas del editor de código - - Ventanas del editor de formularios +- Ventanas del editor de código +- Ventanas del editor de formularios Todas las ventanas de estos editores se pueden poner en forma de pestaña: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Hay tres opciones disponibles: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Apariencia (sólo para macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Hay tres opciones disponibles: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferencia sólo es compatible en macOS. En Windows, se utiliza siempre el esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de datos...** - - **Base de datos a partir de una definición de estructura...** +- **Base de datos...** +- **Base de datos a partir de una definición de estructura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Al crear un nuevo archivo de datos, 4D utiliza el idioma previamente configurado Esta área configura el acceso a la documentación HTML de 4D mostrada en su navegador actual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Lenguaje de la documentación @@ -151,8 +151,8 @@ Lenguaje de la documentación HTML a mostrar. Puede seleccionar una documentaci Define dónde buscará 4D las páginas de documentación. - - Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. - - Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. +- Cuando está marcada (por defecto), 4D busca primero la página en la carpeta local (ver abajo). Si se encuentra, 4D muestra la página en el navegador actual. If it is found, 4D displays the page in the current browser. Esto permite acceder a la documentación incluso cuando se está desconectado. +- Cuando no está marcada, 4D busca la página deseada directamente en el sitio web de documentación en línea y la muestra en el navegador actual. Si no se encuentra, 4D muestra un mensaje de error en el navegador. ### Carpeta local diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 2a2c8c212ebeed..5beaa5f717c17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite seleccionar, crear o configurar los temas del Editor de Có En esta lista, se selecciona el tema que se aplicará al editor de código. Se muestran todos los temas disponibles, incluidos los temas personalizados (si los hay). 4D ofrece dos temas por defecto: - - **Tema Light por defecto** - - **Tema oscuro por defecto** +- **Tema Light por defecto** +- **Tema oscuro por defecto** > Los temas por defecto no pueden ser modificados ni eliminados. @@ -38,8 +38,8 @@ Si los valores de las teclas no se definen en un tema personalizado, se ajustan Definir un tema significa: - - definir una fuente y un tamaño de fuente para todo el editor de código, - - asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. +- definir una fuente y un tamaño de fuente para todo el editor de código, +- asignar los estilos y los colores específicos a cada elemento del lenguaje 4D (campos, tablas, variables, parámetros, SQL, etc.), a cada elemento del lenguaje SQL (palabras clave, funciones, etc.) y a los fondos de color. La combinación de colores y de estilos diferentes es especialmente útil para el mantenimiento del código. @@ -83,8 +83,8 @@ Esta página configura las opciones de visualización del Editor de Código. Permite desactivar/activar los parámetros del código "internacional" para la aplicación 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Si modifica esta opción, deberá reiniciar la aplicación 4D para que se tenga en cuenta el cambio. @@ -138,9 +138,9 @@ Permite ocultar todos los iconos expandir/desplegar por defecto al mostrar el c Activa la inserción automática de () y de llaves de cierre mientras se escribe el código. Esta opción controla dos funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por ejemplo, si escribe "C_OB" y presionaa Tab, 4D escribe "C_OBJECT()" y fija el punto de inserción dentro del (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta función permite insertar pares de símbolos coincidentes en el punto de inserción o alrededor de un texto seleccionado. Por ejemplo, si resalta una cadena de caracteres y escribe un simple caracter ", toda la cadena seleccionada quedará encerrada en "": ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite resaltar todas las ocurrencias de la misma variable o campo en una venta ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md index c79333546aaf9b..ecac98bd608bb7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ La carpeta Project suele contener la siguiente jerarquía: El archivo de desarrollo de proyecto, utilizado para designar y lanzar el proyecto. Este archivo puede ser abierto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > En los proyectos 4D, el desarrollo se realiza con 4D y el desarrollo multiusuarios se gestiona a través de las herramientas de control de versión. 4D Server puede abrir archivos .4DProject para realizar pruebas. @@ -121,9 +121,9 @@ Este archivo de texto también puede contener llaves de configuración, en parti La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: - - `Métodos` - - `Formularios` - - `TableForms` +- `Métodos` +- `Formularios` +- `TableForms` Dentro de estas carpetas, los nombres de los elementos eliminados van entre paréntesis, por ejemplo "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview. La carpeta Logs contiene todos los archivos de registro utilizados por el proyecto. Los archivos de registro incluyen, en particular: - - conversión de base de datos, - - peticiones del servidor web, - - registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) - - depuración de comandos, - - Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). +- conversión de base de datos, +- peticiones del servidor web, +- registro de actividades de backup/restitución (*Backup Journal\[xxx].txt*, ver [Historial de backup](Backup/backup.md#backup-journal)) +- depuración de comandos, +- Peticiones 4D Server (generadas en en los equipos cliente y en el servidor). > Una carpeta Logs adicional está disponible en la carpeta de preferencias del usuario del sistema (carpeta 4D activa, ver el comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para los archivos de registro de mantenimiento y e diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 17a1dc3a55f6cb..3bb2eb19a0f57e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de form Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). - - Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. - - Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. +- Un proyecto 4D que se ejecuta en modo interpretado puede utilizar componentes interpretados o compilados. +- Un proyecto 4D que se ejecuta en modo compilado no puede utilizar componentes interpretados. En este caso, sólo se pueden utilizar componentes compilados. ### Carpeta Package @@ -39,8 +39,8 @@ La arquitectura de carpetas "Contents" se recomienda para los componentes si des Esta página describe cómo trabajar con componentes en los entornos **4D** y **4D Server**. En otros entornos, los componentes se gestionan de manera diferente: - - en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. - - en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). +- en [4D en modo remoto](../Desktop/clientServer.md), los componentes son cargados por el servidor y enviados a la aplicación remota. +- en las aplicaciones fusionadas, los componentes se [incluyen en el paso de compilación](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página describe cómo trabajar con componentes en los entornos **4D** y ** Para cargar un componente en su proyecto 4D, usted puede: - - copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), - - o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). +- copie los archivos de componentes en la carpeta [**Components** de su proyecto](architecture.md#components) (las carpetas de paquetes de componentes interpretados deben llevar el sufijo ".4dbase", ver arriba), +- o bien, declare el componente en el archivo **dependencies.json** de su proyecto; esto se hace automáticamente para los archivos locales cuando [**añade una dependencia utilizando la interfaz del gestor de dependencias**](#adding-a-github-dependency). Los componentes declarados en el archivo **dependencies.json** pueden almacenarse en diferentes ubicaciones: - - al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, - - en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** - - en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. +- al mismo nivel que la carpeta de paquetes de su proyecto 4D: esta es la ubicación predeterminada, +- en cualquier lugar de su máquina: la ruta del componente debe declararse en el archivo **environment4d.json** +- en un repositorio GitHub: la ruta del componente puede declararse en el archivo **dependencies.json** o en el archivo **environment4d.json**, o en ambos archivos. Si se instala el mismo componente en distintos lugares, se aplica un [orden de prioridad](#priority). @@ -71,8 +71,8 @@ El archivo **dependencies.json** hace referencia a todos los componentes requeri Puede contener: - - nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), - - nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). +- nombres de componentes [almacenados localmente](#local-components) (ruta por defecto o ruta definida en un archivo **environment4d.json**), +- nombres de componentes [almacenados en repositorios de GitHub](#components-stored-on-github) (su ruta puede definirse en este archivo o en un archivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ El archivo **environment4d.json** es opcional. Permite definir **rutas personali Los principales beneficios de esta arquitectura son los siguientes: - - puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. - - si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. +- puede almacenar el archivo **environment4d.json** en una carpeta padre de sus proyectos y decidir no confirmarlo, permitiéndote tener su organización local de componentes. +- si quiere utilizar el mismo repositorio GitHub para varios de sus proyectos, puede referenciarlo en el archivo **environment4d.json** y declararlo en el archivo **dependencies.json**. ### Prioridad @@ -189,9 +189,9 @@ En cuanto a los componentes almacenados en GitHub, tanto los archivos [**depende Los componentes 4D disponibles en GitHub pueden ser referenciados y cargados automáticamente en sus proyectos 4D. - - Comprima los archivos componentes en formato ZIP. - - Nombre este archivo con el mismo nombre que el repositorio GitHub. - - Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. +- Comprima los archivos componentes en formato ZIP. +- Nombre este archivo con el mismo nombre que el repositorio GitHub. +- Integre el archivo en una [versión GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) del repositorio. Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo. @@ -234,7 +234,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g ::: - - **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: +- **Etiquetas** son textos que hacen referencia única a una versión. En los archivos [**dependencies.json**](#dependenciesjson) y [**environment4d.json**](#environment4djson), puede indicar la etiqueta de versión que desea utilizar en su proyecto. Por ejemplo: ```json { @@ -247,7 +247,7 @@ Si seleccionas la regla de dependencia [**Seguir la versión 4D**](#defining-a-g } ``` - - Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: +- Una versión también se identifica por una **versión**. The versioning system used is based on the [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/) concept, which is the most commonly used. Cada número de versión se identifica de la siguiente manera: `majorNumber.minorNumber.pathNumber`. Del mismo modo que para las etiquetas, puede indicar la versión del componente que desea utilizar en su proyecto, como en este ejemplo: ```json { @@ -264,17 +264,17 @@ Un rango se define mediante dos versiones semánticas, un mínimo y un máximo, Estos son algunos ejemplos: - - "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. - - "\*": la última versión lanzada. - - "1.\*": todas las versiones de la versión principal 1. - - "1.2.\*": todos los parches de la versión menor 1.2. - - ">=1.2.3": la última versión, a partir de la versión 1.2.3. - - ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. - - "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. - - "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. - - "<=1.2.3": la última versión hasta la 1.2.3. - - "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. - - "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. +- "latest": la versión que tiene el distintivo "latest" en las versiones de GitHub. +- "\*": la última versión lanzada. +- "1.\*": todas las versiones de la versión principal 1. +- "1.2.\*": todos los parches de la versión menor 1.2. +- ">=1.2.3": la última versión, a partir de la versión 1.2.3. +- ">1.2.3": la última versión, empezando por la versión inmediatamente posterior a la 1.2.3. +- "^1.2.3": la última versión 1, a partir de la versión 1.2.3 y estrictamente inferior a la versión 2. +- "~1.2.3": la última versión 1.2, a partir de la versión 1.2.3 y estrictamente inferior a la versión 1.3. +- "<=1.2.3": la última versión hasta la 1.2.3. +- "1.0.0 – 1.2.3" o ">=1.0.0 <=1.2.3": versión entre 1.0.0 y 1.2.3. +- "`<1.2.3 || >=2`": versión que no está entre 1.2.3 y 2.0.0. Si no especifica una etiqueta o una versión, 4D recupera automáticamente la "última" versión. @@ -284,9 +284,9 @@ El gestor de dependencias comprueba periódicamente si hay actualizaciones de co Si quiere usar la regla de dependencia [**Seguir la versión 4D**](#defining-a-github-dependency-version-range), las etiquetas para las versiones de componentes en el repositorio de Github deben cumplir con convenciones específicas. - - **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". +- **Versiones LTS**: modelo `x.y.p`, donde `x.y` corresponde a la versión principal de 4D a seguir y `p` (opcional) puede utilizarse para versiones correctivas o actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión LTS *x.y*, el Gestor de dependencias lo resolverá como "la última versión x.\*" si está disponible o "versión inferior a x". Si no existe tal versión, se notificará al usuario. Por ejemplo, "20.4" será resuelto por el gestor de dependencias como "la última versión del componente 20.\* o la versión inferior a 20". - - **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". +- **Versiones R-Release**: modelo `xRy.p`, donde `x` y `y` corresponden a la versión principal de 4D R-release a seguir y `p` (opcional) puede usarse para versiones correctivas o las actualizaciones adicionales. Cuando un proyecto especifica que sigue la versión 4D para la versión *xRy*, el Gestor de dependencias lo resolverá a la "última versión por debajo de xR(y+1)" si está disponible. Si no existe tal versión, se notificará al usuario. Por ejemplo, "20R9" será resuelto por el gestor de dependencias como "la última versión del componente por debajo de 20R10". :::note @@ -312,8 +312,8 @@ A continuación, deberá [suministrar su token de conexión](#providing-your-git Los componentes GitHub a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación: - - en macOs: `$HOME/Library/Caches//Dependencies` - - en Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- en Windows: `C:\Users\\AppData\Local\\Dependencies` ...donde `` puede ser "4D", "4D Server" o "tool4D". @@ -386,16 +386,16 @@ Las dependencias que requieren la atención del desarrollador se indican mediant Las siguientes etiquetas de estado están disponibles: - - **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). - - **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). - - **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. - - **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). - - **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). - - **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. - - **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. - - **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). - - **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. - - **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. +- **Overloaded**: la dependencia no se carga porque está sobrecargada por otra dependencia con el mismo nombre en un [nivel de prioridad] superior(#prioridad). +- **Overloading**: la dependencia está cargada y está sobrecargando una o más dependencias con el mismo nombre en un [nivel de prioridad] inferior(#prioridad). +- **Not found**: la dependencia se declara en el archivo dependencies.json pero no se encuentra. +- **Inactive**: la dependencia no se carga porque no es compatible con el proyecto (por ejemplo, el componente no está compilado para la plataforma actual). +- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada). +- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie. +- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie. +- **Actualización disponible**: se ha detectado una nueva versión de la dependencia GitHub que coincide con su [configuración de la versión del componente](#defining-a-github-dependency-version-range). +- **Reiniciado tras reinicio**: la [configuración de la versión del componente](#defining-a-github-dependency-version-range) de la dependencia de GitHub se ha modificado, se ajustará el próximo inicio. +- **Actualización reciente**: se ha cargado una nueva versión de la dependencia de GitHub al inicio. Al pasar el ratón por encima de la línea de dependencia, se muestra un mensaje que ofrece información adicional sobre el estado: @@ -429,8 +429,8 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr El icono del componente y el logotipo de ubicación ofrecen información adicional: - - El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. - - Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. +- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo. +- Los componentes locales se pueden diferenciar de los componentes GitHub por un pequeño icono. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si el elemento seleccionado no es válido, se mostrará un mensaje de error. Haga clic en **Añadir** para añadir la dependencia al proyecto. - - Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). - - Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). +- Si selecciona un componente situado junto a la carpeta del paquete del proyecto (ubicación predeterminada), se declara en el archivo [**dependencies.json**](#dependenciesjson). +- Si selecciona un componente que no se encuentra junto a la carpeta del paquete del proyecto, se declara en el archivo [**dependencies.json**](#dependenciesjson) y su ruta se declara en el archivo [**environment4d.json**](#environment4djson) (ver nota). El panel Dependencias le pregunta si desea guardar una [ruta relativa o absoluta](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: - - Verificación automática y manual de las versiones disponibles - - Actualización automática y manual de los componentes +- Verificación automática y manual de las versiones disponibles +- Actualización automática y manual de los componentes Las operaciones manuales pueden realizarse **por dependencia** o **para todas las dependencias**. @@ -538,11 +538,11 @@ Si suministra un [token de acceso](#providing-your-github-access-token), las ver Además, puede buscar actualizaciones en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. +- Para verificar las actualizaciones de una única dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Verificar actualizaciones** en el menú contextual. ![componente de verificación](../assets/en/Project/check-component-one.png) - - Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. +- Para verificar si hay actualizaciones de todas las dependencias, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Verificar actualizaciones**. ![componentes de verificación](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si no desea utilizar una actualización de componentes (por ejemplo, desea perma Puede actualizar las dependencias en cualquier momento, para una sola dependencia o para todas las dependencias: - - Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: +- Para actualizar una sola dependencia, haga clic con el botón derecho del ratón en la dependencia y seleccione **Actualizar en el próximo inicio** en el menú contextual o en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias: ![componente de verificación](../assets/en/Project/update-component-one.png) - - Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: +- Para actualizar todas las dependencias a la vez, haga clic en el menú **opciones** de la parte inferior de la ventana del gestor de dependencias y seleccione **Actualizar todas las dependencias remotas en el próximo inicio**: ![componentes de verificación](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u Al seleccionar un comando de actualización: - - se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. - - si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. +- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas. +- si hace clic en Más tarde, el comando de actualización ya no estará disponible en el menú, lo que significa que la acción se ha planificado para el siguiente inicio. #### Actualización automática @@ -587,13 +587,13 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin Registrar su token de acceso personal en el gestor de dependencias es: - - obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), - - recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. +- obligatorio si el componente se almacena en un [repositorio privado de GitHub](#private-repositories), +- recomendado para una [verificación de actualizaciones de dependencias](#updating-github-dependencies) más frecuente. Para proporcionar su token de acceso a GitHub, también puede: - - haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. - - o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. +- haga clic en el botón \*\*Agregar un token de acceso personal... \* que se muestra en el cuadro de diálogo "Añadir una dependencia" después de introducir una ruta privada del repositorio de GitHub. +- o, seleccione **Agregar un token de acceso personal de GitHub...** en el menú Administrador de Dependencias en cualquier momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 298b233fd2a5ab..681c3352fb09db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ En los proyectos aplicación, puede documentar sus métodos así como sus clases Los siguientes elementos del proyecto aceptan la documentación: - - Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) - - Clases - - Formularios - - Tablas y campos +- Métodos (métodos base, métodos componente, métodos proyecto, métodos formulario, métodos 4D Mobile y triggers) +- Clases +- Formularios +- Tablas y campos Sus archivos de documentación se escriben en la sintaxis Markdown (archivos .md) utilizando cualquier editor que soporte el Markdown. Se almacenan como archivos independientes dentro de la carpeta Proyecto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario proyecto y su método de formulario proyecto comparten el mismo archivo de documentación para el formulario y el método. - - Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. +- Un formulario tabla y su método de formulario tabla comparten el mismo archivo de documentación para el formulario y el método. > Renombrar o eliminar un elemento documentado en su proyecto también renombrará o eliminará el archivo Markdown asociado al elemento. @@ -73,9 +73,9 @@ Para ver la documentación en la ventana del Explorador: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. +- De lo contrario, si existe un archivo de documentación para el elemento seleccionado, el contenido se muestra en el área. El contenido no se puede editar directamente en el panel. ### Modificar el archivo de documentación @@ -83,8 +83,8 @@ Puede crear y/o editar un archivo de documentación Markdown desde la ventana de Si no existe un archivo de documentación para el elemento seleccionado, puede: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ El editor de código 4D muestra una parte de la documentación de un método en Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - O, si no se usa ninguna etiqueta de comentario html, la primera frase después de una etiqueta `# Description` del archivo markdown. En este caso, la primera línea contiene el **prototipo** del método, generado automáticamente por el analizador de código de 4D. @@ -130,7 +130,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Markdown soportado - - La etiqueta del título es soportada: +- La etiqueta del título es soportada: ```md # Title 1 @@ -138,7 +138,7 @@ Los nuevos archivos de documentación se crean con el siguiente contenido por de ### Title 3 ``` - - Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: +- Las etiquetas de estilo (cursiva, negrita, tachado) son compatibles: ```md _italic_ @@ -147,7 +147,7 @@ _italic_ ~~strikethrough~~ ``` - - La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: +- La etiqueta de bloque de código (\`4d ... `) es compatible con el resaltado de código 4D: ````md ```4d @@ -156,7 +156,7 @@ _italic_ ``` ```` - - La etiqueta de la tabla es soportada: +- La etiqueta de la tabla es soportada: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La etiqueta del enlace es soportada: +- La etiqueta del enlace es soportada: ```md // Caso 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Las etiquetas de imagen son soportadas: +- Las etiquetas de imagen son soportadas: ```md ![image info](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - Vista del explorador: +- Vista del explorador: ![](../assets/en/Project/explorer_Doc.png) - - Vista del editor de código: +- Vista del editor de código: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index e6ac9d9bc68246..3e00709ef356f2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Si tiene atributos relacionales en una dataclass, utilice `$attributes` para def Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 7d332d71a27938..55410971e14d95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - otras sesiones REST - - los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. +- otras sesiones REST +- los procesos 4D (cliente/servidor, almacén de datos remoto, monopuesto) ejecutadas en el servidor REST. Una entidad bloqueada por la API REST sólo puede ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Respuesta diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 50dca9d1af3f1b..8fae210e340e57 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Puede llamar a [funciones clase modelo de datos](ORDA/ordaClasses.md) definidas Las funciones pueden llamarse de dos maneras: - - utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. - - usando **GET requests**, con parámetros directamente pasados en la URL. +- utilizando peticiones **POST**, con parámetros de datos pasados en el cuerpo de la solicitud. +- usando **GET requests**, con parámetros directamente pasados en la URL. Las peticiones POST ofrecen un mejor nivel de seguridad porque evitan la ejecución de código sensible a través de una acción tan simple como hacer clic en un enlace. Sin embargo, las peticiones GET pueden ser más compatibles con la experiencia del usuario, permitiendo llamar a las funciones introduciendo una URL en un navegador (nota: el desarrollador debe asegurarse de que no se hace ninguna acción sensible en dichas funciones). @@ -96,11 +96,11 @@ Puede enviar parámetros a funciones definidas en clases de usuario ORDA o singl Se aplican las siguientes reglas: - - En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. - - En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. - - Los parámetros deben estar incluidos en una colección (formato JSON). - - Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. - - La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- En funciones llamadas a través de peticiones POST, los parámetros deben pasarse **en el cuerpo de la petición POST**. +- En las funciones llamadas a través de peticiones GET, los parámetros deben pasarse **en la URL con la sintaxis "?$params="**. +- Los parámetros deben estar incluidos en una colección (formato JSON). +- Todos los tipos de datos escalares soportados en las colecciones JSON pueden ser pasados como parámetros. +- La selección de entidades y la entidad se pueden pasar como parámetros. La lista de parámetros debe contener atributos específicos usados por el servidor REST para asignar datos a los objetos ORDA correspondientes: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Ver [este ejemplo](#usando-una-entidad-que-se-creará-en-el-servidor) y [este ejemplo](#recibiendo-una-selección-de-entidades-como-parámetro). @@ -134,8 +134,8 @@ También puede pasar valores para todos los atributos de la entidad. Estos valor | __ENTITY | Boolean | Obligatorio - True para indicar al servidor que el parámetro es una entidad | | __KEY | mixto (mismo tipo que la llave primaria) | Opcional - llave primaria de la entidad | - - Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. - - Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados +- Si no se proporciona `__KEY`, se crea una nueva entidad en el servidor con los atributos dados. +- Si `__KEY` es suministrado, la entidad correspondiente a `__KEY` se carga en el servidor con los atributos dados Vea ejemplos a continuación para crear o actualizar entidades con peticiones POST. Vea un ejemplo de descarga de contenidos utilizando una entidad con una petición GET. 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 24b7bf5648a51f..ceccb568517c05 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 @@ -45,9 +45,9 @@ Todas las demás peticiones REST (manejando datos o ejecutando una función) só Las peticiones REST descriptivas pueden procesarse en sesiones de usuario web que no requieren licencias (sesiones "invitado"). Estas peticiones son: - - peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - la renderización de una página Qodly +- peticiones [`/rest/$catalog`]($catalog.md) (por ejemplo, `/rest/$catalog/$all`) - acceso a las dataclasse disponibles +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - la renderización de una página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -74,8 +74,8 @@ La función puede recibir cualquier información de autenticación o contextual Esta función debe contener dos partes: - - algún código para identificar y autenticar al remitente de la petición REST, - - si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. +- algún código para identificar y autenticar al remitente de la petición REST, +- si la autenticación tiene éxito, una llamada a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que asigna los privilegios apropiados a la sesión. Si la función no llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), no se asignan privilegios, no se consume ninguna licencia y las solicitudes REST no descriptivas posteriores son rechazadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 635ae239c235db..5f7baab9858c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta sección pretende ayudar a familiarizarse con la funcionalidad de REST mediante un ejemplo sencillo. Vamos a: - - crear y configurar un proyecto de aplicación 4D básico - - acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. +- crear y configurar un proyecto de aplicación 4D básico +- acceder a los datos del proyecto 4D a través de REST utilizando un navegador estándar. Para simplificar el ejemplo, vamos a utilizar 4D y un navegador que se ejecutan en la misma máquina. Por supuesto, también puede utilizar una arquitectura remota. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 80cd1ec4ec8a4f..0147048cc64381 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ También hay tres botones de acceso directo que se pueden utilizar para filtrar ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estos procesos van precedidos de un icono en forma de una persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estos procesos van precedidos de un icono en forma de rueda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo optimiza la reactividad de 4D Server. Estos procesos van precedidos de un icono en forma de figura atenuada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Cuando seleccione esta opción: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), - - se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- se crea un grupo "Gestores de tareas", que incluye los procesos internos dedicados al reparto de tareas (Shared balancer, Net session manager, Exclusive pool worker), +- se crea un grupo "Gestores de clientes", que incluye varios procesos internos clientes. La área inferior de la ventana se utiliza para mostrar la representación gráfica de la actividad del proceso(s) seleccionados. @@ -83,15 +83,15 @@ La página también tiene cinco botones de control que actúan sobre el proceso ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. > También puede abortar directamente el proceso o procesos seleccionados sin que aparezca la caja de diálogo de confirmación, manteniendo pulsada la tecla **Alt** mientras hace clic en este botón, o utilizando el comando [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md). - - **Pausar proceso**: permite pausar los procesos seleccionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). +- **Pausar proceso**: permite pausar los procesos seleccionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Los procesos deben haberse pausado previamente (utilizando el botón anterior o por programación); de lo contrario, este botón no tiene ningún efecto. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Al presionar este botón, aparece una caja de diálogo de alerta para que pueda confirmar o cancelar la operación. Tenga en cuenta que la ventana del depurador sólo se muestra cuando el código 4D se ejecuta efectivamente en la máquina servidor (por ejemplo, en un trigger o en la ejecución de un método que tenga el atributo "Ejecutar en servidor"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botón se activa cuando se selecciona al menos un proceso de usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index f5bec3d8b68cc9..7b89e9bf488624 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ La siguiente información se ofrece para cada línea: La página está activa y se actualiza permanentemente en cuanto se muestra. Cabe señalar que su funcionamiento puede ralentizar considerablemente la ejecución de la aplicación. Es posible suspender la actualización de esta página de una de las siguientes maneras: - - haciendo clic en el botón **Pausa**, - - haciendo clic en la lista, - - presionando la barra espaciadora. +- haciendo clic en el botón **Pausa**, +- haciendo clic en la lista, +- presionando la barra espaciadora. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Puede reanudar el seguimiento de las operaciones realizando la misma acción que para la pausa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 9784455c589457..cf460ad0c0d35b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ En *filePath*, pase la ruta de destino y el nombre del documento a exportar. Si Puede especificar el formato del archivo exportado incluyendo una extensión después del nombre del documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", o ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", o ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si no se incluye la extensión, pero se especifica el formato en *paramObj*, el archivo exportado tendrá la extensión que corresponda al formato, excepto para el formato CSV (en este caso no se añade ninguna extensión). @@ -88,25 +88,25 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para **Notas sobre el formato Excel**: - - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. - - Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: - - Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro en PDF, las fuentes utilizadas en el documento se integran automáticamente en el archivo PDF. Sólo se pueden integrar las fuentes OpenType (archivos .OTF o .TTF) que tengan un tabla Unicode. Si no se encuentra un archivo de fuentes válido para una fuente, se utiliza una fuente por defecto. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato CSV**: - - Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. - - Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Al exportar un documento 4D View Pro al formato CSV, es posible que se pierdan algunos parámetros, ya que sólo se guardan el texto y los valores. +- Todos los valores se guardan como cadenas entre comillas. Para más información sobre valores separados por delimitadores, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. **Notas sobre el formato de archivo SpreadJS**: - - Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. - - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. +- Los [archivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) son archivos comprimidos. +- La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. Una vez finalizada la operación de exportación, `VP EXPORT DOCUMENT` activa automáticamente la ejecución del método definido en la propiedad *formula* del *paramObj*, si se usa. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 4e1ca7ad5d3faf..3cffc70a02a70e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ En *vpAreaName*, pase el nombre de la propiedad del área 4D View Pro. Si pasa u Puede definir dónde obtener las hojas de estilo en el parámetro opcional *sheet* utilizando el índice de la hoja (la numeración comienza en 0) o con las siguientes constantes: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index a132f4e4e78712..ddf88d1521f080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ El objeto devuelto contendrá la propiedad `value` y, en caso de un valor fecha Si el objeto devuelto incluye una fecha u hora, se trata como una fecha-hora y se completa de la siguiente manera: - - valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) - - valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) +- valor hora - la parte de la fecha se completa como December 30, 1899 en formato dd/MM/yyyy (30/12/1899) +- valor fecha - la parte de la hora se completa como medianoche en formato HH:mm:ss (00:00:00) Si *rangeObj* contiene varias celdas o varios rangos, se devuelve el valor de la primera celda. El comando devuelve un objeto null si la celda está vacía. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 44537e451f49b5..5e65abf6ea6b63 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ En *vpAreaName*, pase el nombre del área 4D View Pro. Si pasa un nombre que no En *filePath*, pase la ruta y el nombre del documento a importar. Se soportan los siguientes formatos: - - Los documentos 4D View Pro (extensión ".4vp") - - Microsoft Excel (extensión ".xlsx") - - documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) - - [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Los documentos 4D View Pro (extensión ".4vp") +- Microsoft Excel (extensión ".xlsx") +- documentos texto (extension ".txt", ".csv", el documento debe estar en utf-8) +- [SpreadJS documents](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si la extensión del documento no es una extensión reconocida, como `.4vp` o `.xlsx`, el documento se considera un documento texto. Debe pasar una ruta completa, a menos que el documento se encuentre en el mismo nivel que la carpeta Project, en cuyo caso puede pasar sólo su nombre. @@ -73,11 +73,11 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento :::note Notas - - La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. - - Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- La importación de archivos en formatos .xslx, .csv y .sjs es **asíncrona**. Con estos formatos, debe utilizar el atributo `formula` si desea iniciar una acción al final del procesamiento del documento. +- Al importar un archivo con formato Microsoft Excel a un documento 4D View Pro, algunos parámetros pueden perderse. Puede verificar su configuración con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Para más información sobre el formato CSV y los valores separados por delimitadores en general, ver [este artículo en Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Se recomienda utilizar el objeto *excelOptions* al importar en formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- La función callback especificada en el atributo `formula` se activa después de que todas las [funciones personalizadas 4D](../formulas.md#4d-functions) dentro del contenido importado hayan completado sus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index b54e8fff9daf39..29b19390090283 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Las hojas de cálculo se componen de líneas y columnas. A cada línea se le aso ### Selección de celdas, columnas y líneas - - Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. +- Para seleccionar una celda, basta con hacer clic en ella o utilizar las flechas de dirección del teclado. Su contenido (o fórmula) se muestra dentro de la celda. - - Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. +- Para seleccionar varias celdas continuas, arrastre el ratón de un extremo a otro de la selección. También puede hacer clic en los dos extremos de la selección mientras mantiene presionada la tecla Mayús. - Para seleccionar todas las celdas de la hoja de cálculo, haga clic en la celda situada en la parte superior izquierda del área: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. +- Para seleccionar una columna, haga clic en la letra (o conjunto de letras) correspondiente. - - Para seleccionar una línea, haga clic en el número correspondiente. +- Para seleccionar una línea, haga clic en el número correspondiente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. +- Para deseleccionar las celdas, basta con hacer clic en cualquier lugar de la hoja de cálculo. ### Entrada de datos @@ -139,8 +139,8 @@ Luego, puede pasar `$myRange` a otro método 4D View Pro para modificar estas ce Los objetos rango 4D View Pro se componen de varias propiedades: - - area - El nombre del área 4D View Pro - - rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- area - El nombre del área 4D View Pro +- rangos - Una colección de objeto(s) rango. Las propiedades disponibles en cada objeto de rango dependen del tipo de objeto rango. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propiedad | | Tipo | Descripción | Disponible para | | --------- | ------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Los objetos rango 4D View Pro se componen de varias propiedades: 4D View Pro soporta la importación y exportación de varios formatos de documentos: - - .4vp - - .xlsx - - .txt y .csv - - .sjs - - .pdf (sólo para exportación) +- .4vp +- .xlsx +- .txt y .csv +- .sjs +- .pdf (sólo para exportación) Para más detalles, consulte la descripción de [VP IMPORT DOCUMENT](commands/vp-import-document.md) y [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 5872ab721ceeae..e63a91059426ad 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Algunos otros elementos tienen una capitalización diferente (por ejemplo: `this Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y sin espacios. Además, los nombres de las constantes de QodlyScript comienzan con la letra `k`. Puede que necesite adaptar estos elementos de QodlyScript al lenguaje 4D. - - Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. - - Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. +- Normalmente, sólo tendrá que convertir los nombres. Por ejemplo, `newCollection` en QodlyScript es `New collection` en lenguaje 4D. +- Sin embargo, algunos comandos han sido renombrados para un mejor cumplimiento, por ejemplo `atan` y `sqrt` son nombres de QodlyScript para los comandos `Arctan` y `Square root` en Lenguaje 4D. ### Ejemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Los nombres de comandos y constantes de QodlyScript se escriben en mayúsculas y end ``` - - Código 4D equivalente: +- Código 4D equivalente: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 7e2b17009870e7..bfa9671bc5f3c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ En las secciones anteriores, obtenemos acceso libre a la aplicación desde las p La forma más sencilla y segura de registrar un usuario en el servidor web de 4D se basa en el siguiente escenario: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Cree una tabla con algunos campos, por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 5b985b633281fd..facb115670bf95 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, s Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - gestionar una autenticación a través de oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -128,10 +128,10 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Clase y método @@ -219,11 +219,11 @@ He aquí un ejemplo detallado de un archivo HTTPHandlers.json: En este ejemplo, debe implementar las siguientes funciones: - - *funciónhandle* en la clase \*GeneralHandling - - *manageAccount* en la clase *UsersHandling* - - *handleInvoices* en la clase *FinancialHandling* - - *handleDocs* en la clase *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* +- *funciónhandle* en la clase \*GeneralHandling +- *manageAccount* en la clase *UsersHandling* +- *handleInvoices* en la clase *FinancialHandling* +- *handleDocs* en la clase *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index e164069fe5b689..6a5929785ac538 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo el código 4D ejecutado por el servidor web debe ser hilo seguro si quiere - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) and [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml +- Básicamente cualquier código procesado por el comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) en el contexto web, por ejemplo a través de páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para tablas con el atributo "Exponer como recurso REST" +- Triggers para tablas con el atributo "Exponer como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La mayoría de los comandos y funciones 4D relacionados con la web, los métodos Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index ba0e48106f3028..cb189885bf97f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio también puede utilizarse en la [**plataforma Qodly Cloud**](https: Qodly Studio propone una interfaz web completa, que le permite: - - create Qodly pages by placing components on a canvas - - mapear componentes a Qodly Sources - - activar código 4D configurando eventos - - y mucho más. +- create Qodly pages by placing components on a canvas +- mapear componentes a Qodly Sources +- activar código 4D configurando eventos +- y mucho más. ## Configuración @@ -24,19 +24,19 @@ Qodly Studio propone una interfaz web completa, que le permite: Qodly Studio soporta los siguientes navegadores web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La resolución recomendada es 1920x1080. #### Aplicación 4D - - Desarrollo: 4D v20 R2 o superior - - Despliegue: 4D Server v20 R2 o superior - - Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). - - Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). - - El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). +- Desarrollo: 4D v20 R2 o superior +- Despliegue: 4D Server v20 R2 o superior +- Qodly Studio solo funciona con proyectos 4D (no soporta bases de datos binarias). +- Las sesiones web (*igualmente llamadas sesiones escalables*) deben [estar activadas](sessions.md#enabling-web-sessions). +- El código 4D llamado por los formularios Qodly debe ser [hilo seguro](preemptiveWeb.md). ### Acceso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio es servido por el [servidor web WebAdmin](../Admin/webAdmin.md) y m Para permitir el acceso a Qodly Studio, debe permitirlo explícitamente en dos niveles: - - a nivel de la aplicación 4D - - a nivel del proyecto +- a nivel de la aplicación 4D +- a nivel del proyecto Si uno de los dos niveles (o ambos) no están habilitados, se niega el acceso a Qodly Studio (se devuelve una página 403). @@ -79,8 +79,8 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code Los siguientes comandos y clases están dedicados a la gestión del lado del servidor de las páginas Qodly: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. - - Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. - - Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. - - clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): devuelve la página Qodly como un objeto. +- Comando [`Web Event`](../API/WebFormClass.md#web-event): devuelve los eventos desencadenados dentro de los componentes de página ´gQodly. +- Clase [`WebForm`](../API/WebFormClass.md): funciones y propiedades para gestionar la página Qodly renderizada. +- clase [`WebFormItem`](../API/WebFormItemClass.md): funciones y propiedades para administrar componentes de página Qodly. ### Uso métodos proyecto Recomendamos utilizar funciones clase en lugar de métodos proyecto. Sólo las funciones de clase pueden ser llamadas desde los componentes. Sin embargo, puede seguir utilizando sus métodos de proyecto en Qodly Studio de dos maneras: - - Puede llamar a sus métodos desde funciones clase. - - Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. +- Puede llamar a sus métodos desde funciones clase. +- Puede [ejecutar sus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) directamente desde el Explorador Qodly. ### Uso sin conexión Puede desarrollar con Qodly Studio mientras su ordenador no esté conectado a Internet. En este caso, sin embargo, las siguientes funciones no están disponibles: - - [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía - - Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). +- [Plantillas](https://developer.qodly.com/docs/studio/pageLoaders/templates): la librería de plantillas está vacía +- Consejos de interfaz de usuario: no se muestran al hacer clic en los iconos ![alt-text](../assets/en/WebServer/tips.png). ## Despliegue @@ -178,8 +178,8 @@ Mira [esta página](https://developer.qodly.com/docs/studio/rendering) para obte Para habilitar el renderizado de las páginas Qodly, se deben configurar las siguientes opciones. - - La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. - - El [servidor web 4D](webServer.md) debe estar ejecutándose. +- La opción **Configuración** > **Web** > **Funcionalidades web** > [**Exponer como servidor REST**](../configuración/web.md#expose-as-rest-server) del proyecto 4D debe estar activada. +- El [servidor web 4D](webServer.md) debe estar ejecutándose. :::note @@ -309,9 +309,9 @@ Para cerrar la sesión del usuario, solo necesita ejecutar la acción estándar Al desencadenar la acción de cierre de sesión de una sesión de usuario web, se producen los siguientes efectos: - - la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), - - se libera la licencia asociada de 4D, - - el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. +- la sesión de usuario web actual pierde sus privilegios, sólo se permiten [peticiones REST descriptivas](../REST/authUsers.md#descriptive-rest-requests), +- se libera la licencia asociada de 4D, +- el tiempo de espera de 'Session.storage' se mantiene hasta que se alcanza el tiempo de inactividad de la sesión web (al menos una hora). Durante este periodo tras un cierre de sesión, si el usuario vuelve a iniciar sesión, se utiliza la misma sesión y el objeto compartido `Session.storage` está disponible con su contenido actual. ## Acerca del uso de licencias para renderización @@ -363,7 +363,7 @@ Para más información sobre el atributo `SameSite`, consulte [esta entrada de b Para evitar utilizar más licencias de las necesarias, recomendamos hacer una de las siguientes cosas: - - Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. - - Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. +- Ejecute el renderizador en otra pestaña del navegador (introduciendo la URL renderizada de su página Qodly: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Asegúrese de que Qodly Studio y su base de datos se alcanzan en el mismo esquema URL. +- Utilice el valor `Lax` para la [cookie de sesión](webServerConfig.md#session-cookie-samesite) del servidor web de la base de datos de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 9f07c189b3543c..fe6a075457925b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Las siguientes etiquetas 4D están disponibles: - - 4DTEXT, para insertar variables y expresiones 4D como texto, - - 4DHTML, para insertar el código HTML, - - 4DEVAL, para evaluar toda expresión 4D, - - 4DSCRIPT, para ejecutar un método 4D, - - 4DINCLUDE, para incluir una página dentro de otra, - - 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, - - 4DCODE, para insertar el código 4D, - - 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, - - 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, - - 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. +- 4DTEXT, para insertar variables y expresiones 4D como texto, +- 4DHTML, para insertar el código HTML, +- 4DEVAL, para evaluar toda expresión 4D, +- 4DSCRIPT, para ejecutar un método 4D, +- 4DINCLUDE, para incluir una página dentro de otra, +- 4DBASE, para modificar la carpeta por defecto utilizada por la etiqueta 4DINCLUDE, +- 4DCODE, para insertar el código 4D, +- 4DIF, 4DELSE, 4DELSEIF y 4DENDIF, para insertar condiciones en el código HTML, +- 4DLOOP y 4DENDLOOP, para hacer bucles en el código HTML, +- 4DEACH y 4DENDEACH, para hacer bucles en colecciones, selecciones de entidades o propiedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index a0858488933fff..1a299ab8b15ce8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ El servidor web principal de 4D puede iniciarse de diferentes maneras: - 4D: **Ejecutar\>Iniciar el servidor Web** menú
![](../assets/en/WebServer/start1.png) - 4D Server: botón **Iniciar servidor HTTP** de la página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) +- Se inicia automáticamente cada vez que se abre la aplicación 4D. Para ello, despliegue la página **Web\/Configuración** de la Configuración y active la casilla **Lanzar servidor web al iniciar**:
![](../assets/en/WebServer/config.png) - - Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. +- Programáticamente, llamando a la función [`webServer.start()`](API/WebServerClass.md#start) o al comando `WEB START SERVER`. El servidor web de todo componente puede ser lanzado llamando a la función [`webServer.start()`](API/WebServerClass.md#start) en el objeto servidor web del componente. @@ -29,9 +29,9 @@ El servidor web de todo componente puede ser lanzado llamando a la función [`we El servidor web principal de 4D puede detenerse de diferentes maneras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. +- Programáticamente, llamando a la función [`webServer.stop()`](API/WebServerClass.md#stop) o al comando `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ En cualquier momento, puede vacíar la caché de las páginas y de las imágenes Para ello, puede: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. La caché se borra inmediatamente. @@ -64,11 +64,11 @@ La caché se borra inmediatamente. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta información sólo está disponible si el servidor web está activo y si el tamaño de la caché es mayor que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta información sólo está disponible si el servidor web está activo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta información sólo está disponible si el servidor web está activo. ## URL para la administración @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Cuando se llam 4D le permite generar dos historiales de peticiones web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Introduzca 1 si desea realizar una copia de seguridad semanal. Enter 1 if you want to perform a weekly backup. When this option is checked, you must indicate the day(s) of the week and the time when each backup must be started. You can select several days of the week if desired. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Introduzca 1 si desea realizar una copia de seguridad mensual. Enter 1 if you want to perform a monthly backup. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Una copia de seguridad se activa automáticamente cuando el archivo alcanza el tamaño especificado. Puedes definir un límite de tamaño de 1, 10, 100 o 1000 MB. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 27910c04913772..22056b4f4e48a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts y métodos permitidos para el servicio CORS. Nombre de dominio o dirección IP desde donde las páginas externas pueden enviar solicitudes de datos al Servidor a través de CORS. Se pueden añadir múltiples atributos de dominio para crear una lista blanca. Se soportan varias sintaxis: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propiedad methods) Métodos HTTP aceptados para el host CORS correspondiente. Se soportan los siguientes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separe cada método con un ";" (por ejemplo: "post;get"). Si methods está vacío, null o indefinido, todos los métodos están activos. @@ -145,9 +145,9 @@ Por defecto, cuando el servidor web se lanza por primera vez, 4D crea una págin Puede designar otra página de inicio por defecto introduciendo su nombre de ruta. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - La ruta no debe comenzar ni terminar con una barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- La ruta no debe comenzar ni terminar con una barra. Por ejemplo, si quiere que la página de inicio por defecto sea "MyHome.htm", y se encuentra en la carpeta "Web" (situada a su vez en la carpeta raíz HTML por defecto), utilice "Web/MyHome.htm". @@ -318,13 +318,13 @@ Valores posibles: cadena de direcciones IP. Los formatos IPv6 (por ejemplo "2001 #### Acerca de la compatibilidad con IPv6 - - **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. +- **No warning when TCP port is occupied**
When the server is set to respond on "Any" IP addresses, if the TCP port is being used by another application, this is not indicated when the server is started. De hecho, el servidor 4D no detecta ningún error en este caso porque el puerto permanece libre en la dirección IPv6. Sin embargo, no es posible acceder a ella utilizando la dirección IPv4 de la máquina, ni mediante la dirección local 127.0.0.1. Si su servidor 4D no parece responder en el puerto definido, puede probar la dirección [::1] en la máquina del servidor (equivalente a 127.0.0.1 para IPv6, añada [:portNum] para probar otro número de puerto). Si 4D responde, es probable que otra aplicación esté utilizando el puerto en IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Estas direcciones se escriben con un prefijo de 96 bits en formato IPv6, seguido de 32 bits escritos en la notación decimal punto de IPv4. Por ejemplo, ::ffff:192.168.2.34 representa la dirección IPv4 192.168.2.34. - - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: +- **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: ```code4d 2001:0DB8::85a3:0:ac1f:8001 // Dirección IPv6 @@ -417,10 +417,10 @@ Versión mínima de TLS aceptada para las conexiones. Se rechazarán los intento Valores posibles: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (por defecto) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (por defecto) +- 4 = TLSv1_3 Valores posibles: @@ -486,10 +486,10 @@ Por ejemplo: Disallow: /GIFS/ ``` - - “User-Agent: \*” - todos los robots son afectados. - - “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. - - “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. - - “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. +- “User-Agent: \*” - todos los robots son afectados. +- “Disallow: /4D” - Los robots no están autorizados a acceder a los URLs comenzando por/4D. +- “Disallow: /%23%23” - Los robots no están autorizados a acceder a los URLs comenzando por/%23%23. +- “Disallow: /GIFS/’ - Los robots no pueden acceder a la carpeta /GIFS/ ni a sus subcarpetas. Otro ejemplo: @@ -514,15 +514,15 @@ Además, la carpeta raíz HTML define, en el disco duro del servidor web, el niv Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Si no existe, la carpeta raíz HTML se crea físicamente en el disco en el momento en que se lanza el servidor web por primera vez. Se crea la carpeta raíz: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - con 4D en modo remoto, en la carpeta de recursos locales. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- con 4D en modo remoto, en la carpeta de recursos locales. Puede designar otra página carpeta HTML raíz por defecto introduciendo su ruta de acceso. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) - - Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta - - La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- La ruta se expresa con la sintaxis POSIX (las carpetas se separan con una barra ("/")) +- Para "subir" un nivel en la jerarquía de las carpetas, introduzca "." (dos puntos) antes del nombre de la carpeta +- La ruta no debe comenzar con una barra (excepto si quiere que la carpeta raíz HTML sea la carpeta remota del proyecto o de 4D, pero que el acceso a las carpetas anteriores esté prohibido, en cuyo caso puede pasar "/" como carpeta raíz). Por ejemplo, si quiere que la carpeta raíz HTML sea la subcarpeta "Web" de la carpeta "MyWebApp", introduzca "MyWebApp/Web". @@ -577,9 +577,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Hay tres valores disponibles: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). - - "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Lax": las cookies no se envían en las subpeticiones de sitios cruzados (por ejemplo, para cargar imágenes o marcos en un sitio de terceros), sino que se envían cuando un usuario está navegando hacia el sitio de origen (es decir, sigue un enlace). +- "Ninguna": las cookies se envían en todos los contextos, es decir, en las respuestas a las solicitudes de primera parte y de origen cruzado. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 3d4b7a154447c3..95c4e1111fd0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por ejemplo, si ha instalado dos componentes en su aplicación principal, puede iniciar y supervisar hasta tres servidores web independientes desde su aplicación: - - un servidor web para la aplicación local, - - un servidor web para el componente #1, - - un servidor web para el componente #2. +- un servidor web para la aplicación local, +- un servidor web para el componente #1, +- un servidor web para el componente #2. Aparte de la memoria, no hay límite en el número de componentes y por lo tanto, de servidores web, que se pueden adjuntar a un solo proyecto de aplicación 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicación local o componente) puede ser utilizado en su propio contexto independiente, incluyendo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - el procesamiento de las etiquetas 4D y las llamadas de métodos, - - sesiones web y gestión del protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- el procesamiento de las etiquetas 4D y las llamadas de métodos, +- sesiones web y gestión del protocolo TLS. Esto le permite desarrollar componentes independientes y funcionalidades que vienen con sus propias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si la aplicación utiliza componentes y quiere llamar a: - - el servidor web de la aplicación local a partir de un componente o - - el servidor que ha recibido la solicitud (sin importar el servidor), +- el servidor web de la aplicación local a partir de un componente o +- el servidor que ha recibido la solicitud (sin importar el servidor), también se puede utilizar: @@ -94,8 +94,8 @@ Estas propiedades son definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. si no se utiliza, en los parámetros de la aplicación local o del componente. - - Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. - - Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). +- Si el servidor web no se inicia, las propiedades contienen los valores que se utilizarán en el próximo inicio del servidor web. +- Si se inicia el servidor web, las propiedades contienen los valores reales utilizados por el servidor web (la configuración predeterminada podría haber sido anulada por el parámetro `settings` de la función [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion*, y *perfectForwardSecrecy* son propiedades de sólo lectura que no pueden predefinirse en el parámetro del objeto `settings` para la función [`start()`](API/WebServerClass.md#start). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index fd4cc87b4f648f..d24b56d6743060 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -56,7 +56,7 @@ En el parámetro *mode*, pase una constante para indicar el modo de inserción q Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index b2c43941951413..4aefc2608bc0b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -54,7 +54,7 @@ En el parámetro *rangeUpdate* (Opcional); si *targetObj* es un rango, puede pas Si no se pasa el parámetro *rangeUpdate*, por defecto el contenido insertado se incluye en el rango resultante. - - Si *targetObj* no es un rango, *rangeUpdate* se ignora. +- Si *targetObj* no es un rango, *rangeUpdate* se ignora. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index e38b27ad1f12c1..febf1ee68cb3e9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ La documentación principal de [la interfaz de 4D Write Pro](https://doc.4d.com/ Encontrará a continuación: - - la documentación de configuración del Asistente para tablas, - - la I.A. integrada. documentation. +- la documentación de configuración del Asistente para tablas, +- la I.A. integrada. documentation. ## Asistente de tablas @@ -61,9 +61,9 @@ Una vez integrada la tabla en el documento, el usuario puede personalizar su est La configuración de las plantillas incluye: - - Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). - - Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). - - Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). +- Definición de tablas y campos, así como preparación de fórmulas adaptadas a la aplicación desde el [archivo de plantilla](#template-files). +- Traducción de nombres de tablas, campos y fórmulas del [archivo de traducción](#translation-files). +- Diseño de estilos gráficos y temas personalizados a partir del [ archivo de temas](#theme-files). Estos tres tipos de archivos contribuyen a la configuración del Asistente para tablas y, aunque cada uno de ellos tiene una finalidad distinta, ninguno de ellos se considera un componente esencial. @@ -71,10 +71,10 @@ Estos tres tipos de archivos contribuyen a la configuración del Asistente para El archivo de plantilla permite definir lo siguiente: - - la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, - - las fórmulas de ruptura (si se puede insertar una línea de ruptura) - - los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, - - las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. +- la fórmula que devuelve una selección de entidades utilizada como fuente de datos de la tabla, +- las fórmulas de ruptura (si se puede insertar una línea de ruptura) +- los atributos de la clase de datos que pueden utilizarse como columnas de la tabla, +- las fórmulas disponibles como menús contextuales dentro de las filas de interrupción, fila de arrastre, fila de marcador de posición o filas adicionales. El archivo de plantillas debe ser almacenado en una carpeta "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" dentro de su proyecto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 39bc7be2b0c004..de710cd9d2102d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ Por ejemplo, en el caso de un clic en un botón, el objeto contiene las siguient El objeto evento puede contener propiedades adicionales, dependiendo del objeto para el que se produzca el evento. Para objetos *eventObj* generados en: - - los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). - - áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). +- los objetos list box o columna de list box, ver [esta sección](../FormObjects/listbox_overview.md#additional-properties). +- áreas 4D View Pro, ver [On VP Ready form event](../Events/onVpReady.md). **Nota:** si no hay ningún evento actual, **FORM Event** devuelve un objeto null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index b4e81269ad020a..355633c3e4ffb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -34,9 +34,9 @@ displayed_sidebar: docs Si el formulario actual se está mostrando o cargando mediante una llamada a los comandos [DIALOG](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), **Form** devuelve cualquiera de los dos: - - el objeto *formData* pasado como parámetro a este comando, si existe, - - o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, - - o, un objeto vacío. +- el objeto *formData* pasado como parámetro a este comando, si existe, +- o, un objeto instanciado de la [clase de usuario asociada al formulario](../FormEditor/properties_FormProperties.md#form-class), si existe, +- o, un objeto vacío. ### Subformulario diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 6154cc3aea3326..5d6d8d4c2581f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si el nuevo índice del elemento está más allá del último elemento existente Puede pasar cualquier número de valores de los siguientes tipos soportados: - - number (real, longint...). Los valores numéricos se almacenan siempre como reales. - - text - - boolean - - date - - time (almacenado como número de milisegundos - real) - - null - - objeto compartido - - colección compartida +- number (real, longint...). Los valores numéricos se almacenan siempre como reales. +- text +- boolean +- date +- time (almacenado como número de milisegundos - real) +- null +- objeto compartido +- colección compartida :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index d4450f98092e22..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs En el parámetro *form*, puede pasar: - - el nombre de un formulario, o - - la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o - - un objeto que contiene la descripción del formulario. +- el nombre de un formulario, o +- la ruta (en sintaxis POSIX) de un archivo .json válido que contenga una descripción del formulario a utilizar (ver *Ruta de acceso al archivo de formulario*), o +- un objeto que contiene la descripción del formulario. Como **Print form** no genera un salto de página después de imprimir el formulario, es fácil combinar diferentes formularios en la misma página. Así, **Print form** es perfecto para tareas de impresión complejas que implican diferentes tablas y diferentes formularios. Para forzar un salto de página entre formularios, utilice el comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir la impresión a la página siguiente de un formulario cuya altura es superior al espacio disponible, invoque el comando [CANCEL](../commands-legacy/cancel.md) antes del comando [PAGE BREAK](../commands-legacy/page-break.md). Se pueden utilizar tres sintaxis diferentes: - - **Impresión de área de detalle** +- **Impresión de área de detalle** Sintaxis: @@ -43,7 +43,7 @@ Sintaxis: En este caso, **Print form** sólo imprime el área de detalle del formulario (el área entre la línea de encabezado y la línea de detalle). - - **Impresión de área de formulario** +- **Impresión de área de formulario** Sintaxis: @@ -79,7 +79,7 @@ En este caso, el comando imprimirá la sección designada por el *marker*. Pase | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impresión de sección** +- **Impresión de sección** Sintaxis: @@ -101,8 +101,8 @@ El valor devuelto por **Print form** indica la altura del área de impresión. E Las cajas de diálogo de la impresora no aparecen cuando se utiliza **Print form**. El informe no utiliza la configuración de impresión definida en el modo Diseño para el formulario. Hay dos formas de especificar los parámetros de impresión antes de realizar una serie de llamadas a **Print form**: - - Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. - - Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. +- Llamar a [PRINT SETTINGS](../commands-legacy/print-settings.md). En este caso, deja que el usuario elija la configuración. +- Llame a [SET PRINT OPTION](../commands-legacy/set-print-option.md) y [GET PRINT OPTION](../commands-legacy/get-print-option.md). En este caso, los parámetros de impresión se especifican por programación. **Print form** crea cada página impresa en la memoria. Cada página se imprime cuando la página en memoria está llena o cuando se llama a [PAGE BREAK](../commands-legacy/page-break.md). Para asegurar la impresión de la última página después de cualquier uso de **Print form**, debe concluir con el comando [PAGE BREAK](../commands-legacy/page-break.md) (excepto en el contexto de un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). En caso contrario, si la última página no está llena, permanece en memoria y no se imprime. @@ -116,8 +116,8 @@ Este comando imprime áreas y objetos externos (por ejemplo, áreas 4D Write o 4 **4D Server:** este comando puede ejecutarse en 4D Server en el marco de un procedimiento almacenado. En este contexto: - - Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). - - En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. +- Asegúrese de que no aparezca ningún cuadro de diálogo en el equipo servidor (salvo que se trate de un requisito específico). +- En el caso de un problema relacionado con la impresora (falta de papel, impresora desconectada, etc.), no se genera ningún mensaje de error. ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md index b4751f2dfdaa35..d4a6922bde6cc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ El objeto devuelto contiene las siguientes propiedades: | type | Integer | Tipo de proceso en ejecución. Valores posibles: ver abajo | | visible | Boolean | True si es visible, false en caso contrario | - - Valores posibles para "state": +- Valores posibles para "state": | Constante | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ El objeto devuelto contiene las siguientes propiedades: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores posibles para "type": +- Valores posibles para "type": | Constante | Valor | | ----------------------------- | ----- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 839c648096a676..b03e5465634991 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Las páginas Cliente-Servidor agrupan los parámetros relacionados con el uso de Esta opción le permite indicar si la base de datos 4D Server aparecerá o no en la lista de bases de datos publicadas. - - Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). - - Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. +- Cuando esta opción está marcada (por defecto), la base de datos se hace pública y aparece en la lista de bases de datos publicadas (pestaña**Disponible**). +- Cuando la opción no está marcada, la base de datos no se hace pública y no aparece en la lista de bases de datos publicadas. Para conectarse, los usuarios deben introducir manualmente la dirección de la base de datos en la pestaña **Personalizada** de la caja de diálogo de conexión. :::note @@ -67,9 +67,9 @@ Cuando la autenticación única (SSO) está activa (ver arriba), debe llenar est Esta caja desplegable contiene 3 opciones de capa de red a elegir entre: **legacy**, **ServerNet** y **QUIC** (sólo en modo proyecto), que se utilizan para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). - - **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legal**: esta antigua capa de red "Legal" sigue siendo soportada para garantizar la compatibilidad de las bases de datos creadas antes de la v15. Esta capa de red también puede habilitarse por programación utilizando el comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por defecto): activa la capa de red de ServerNet en el servidor (disponible desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index de79b558326cb9..6bb87b46f5aa7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien - **Utilizar la capa de red heredada**: a partir de 4D v15, las aplicaciones 4D proponen una nueva capa red, llamada *ServerNet*, para manejar las comunicaciones entre 4D Server y las máquinas 4D remotas (clientes). La antigua capa de red ha quedado obsoleta, pero se mantiene para garantizar la compatibilidad con las bases existentes. Utilizando esta opción, puede activar la antigua capa de red en cualquier momento en sus aplicaciones 4D Server dependiendo de sus necesidades. *ServerNet* se utiliza automáticamente para las nuevas bases y las bases convertidas a partir de una versión v15 o posterior. Tenga en cuenta que, en caso de modificación, deberá reiniciar la aplicación para que se tenga en cuenta el cambio. Toda aplicación cliente que estuviera conectada también debe reiniciarse para poder conectarse con la nueva capa de red. **Nota**: esta opción también puede gestionarse por programación utilizando el comando `SET DATABASE PARAMETER`. - - **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: +- **Utilizar XPath estándar**: por defecto, esta opción está desmarcada para las bases convertidas desde una versión 4D anterior a la v18 R3, y marcada para las bases creadas con 4D v18 R3 y superiores. A partir de la v18 R3, la implementación de XPath en 4D ha sido modificada para ser más compatible y soportar más predicados. Como consecuencia, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen: - el caracter inicial "/" no es sólo el nodo raíz - la utilización del caracter / como primer caracter en una expresión XPath no declara una ruta absoluta desde el nodo raíz - no hay nodo actual implícito - el nodo actual debe incluirse en la expresión XPath @@ -19,12 +19,12 @@ La página Compatibilidad agrupa los parámetros relacionados con el mantenimien Aunque no es estándar, es posible que desee seguir utilizando estas funcionalidades para que su código siga funcionando como antes -- en este caso, basta con establecer la opción *desmarcarcada*. Por otra parte, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades extendidas de XPath en sus bases de datos (como se describe en el comando [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md)), asegúrese de que la opción \**Utilizar XPath estándar* esté *marcada*. - - **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utilizar LF como caracter de fin de línea en macOS**: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos texto con salto de línea (LF) como caracter de fin de línea (EOL) por defecto en lugar de CR (CRLF para xml SAX) en macOS en nuevos proyectos. Si desea beneficiarse de este nuevo comportamiento en proyectos convertidos a partir de versiones anteriores de 4D, marque esta opción. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- \*\*No añadir un BOM al escribir un archivo de texto unicode por defecto:\*\*a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin BOM ("Byte order mark") por defecto. En las versiones anteriores, los archivos texto se escribían con un BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), y [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). +- **Mapear valores NULL a valores en blanco sin marcar por defecto una creación de campo**: para un mejor cumplimiento con las especificaciones ORDA, en bases de datos creadas con 4D v19 R4 y superiores, la propiedad de campo **Mapear valores NULL a valores en blanco** no está marcada por defecto cuando creas campos. Puede aplicar este comportamiento por defecto a sus bases de datos convertidas marcando esta opción (se recomienda trabajar con valores Null, ya que están totalmente soportados por [ORDA](../ORDA/overview.md). - - **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). +- **Impresión sin bloqueo**: a partir de 4D v20 R4, cada proceso tiene sus propias configuraciones de impresión (opciones de impresión, impresora actual, etc.), lo que le permite ejecutar múltiples trabajos de impresión simultáneamente. Marque esta opción si desea beneficiarse de esta nueva implementación en sus proyectos 4D convertidos o bases de datos convertidas de modo binario a modo proyecto. **Si se deja sin marcar**, se aplica la implementación anterior: la configuración actual de impresión 4D se aplica globalmente, la impresora se pone en modo "ocupado" cuando hay un trabajo de impresión en marcha, se debe llamar a `CLOSE PRINTING JOB` para que la impresora esté disponible para el siguiente trabajo de impresión (consulte la documentación anterior de 4D para más información). - - **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Guardar el color y las coordenadas de la estructura en un archivo catalog_editor.json separado**: a partir de 4D v20 R5, cambios realizados en el editor de estructura en relación a la apariencia gráfica de tablas y campos (color, posición, orden...) se guardan en un archivo independiente llamado `catalog_editor.json`, almacenado en la carpeta [Sources] del proyecto(../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. Por razones de compatibilidad, esta funcionalidad no está habilitada por defecto en proyectos convertidos de versiones anteriores de 4D, necesita marcar esta opción. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md index 937c8080907814..ee3a539cd2cf6c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La fuente y el tamaño de la fuente por defecto dependen de la plataforma de eje Otras opciones permiten configurar la visualización de varias ventanas del modo Aplicación. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Dado que esta operación bloquea momentáneamente las acciones del usuario, la visualización de esta ventana le permite saber que la descarga está en curso. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Los siguientes esquemas están disponibles: El esquema de aplicación principal se aplicará a los formularios por defecto. Sin embargo, se puede remplazar: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atajos @@ -72,9 +72,9 @@ El área de Atajos directos sirve para ver y modificar los atajos por defecto pa Los accesos directos por defecto son los siguientes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece la siguiente caja de diálogo: 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 b380e47d56b673..052d2beaf51c2c 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 @@ -78,9 +78,9 @@ Cuando se selecciona esta opción, el servidor web no ofrece ningún soporte esp En este modo, puede configurar los parámetros del servidor web adicionales: - - [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) - - [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) - - [Usar procesos apropiativos](#use-preemptive-processes) +- [Máximo de procesos web simultáneos](#maximum-concurrent-web-processes) +- [Reutilización de contextos temporales (4D en modo remoto)](#reuse-temporary-contexts) +- [Usar procesos apropiativos](#use-preemptive-processes) #### Sesiones antiguas (sesiones procesos únicos) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D El menú de formato de registro ofrece las siguientes opciones: - - **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. +- **Sin archivo de registro**: cuando se selecciona esta opción, 4D no generará un archivo de historial de peticiones. - **CLF (Common Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato CLF. Con el formato CLF, cada línea del archivo representa una solicitud, como:\ host rfc931 user [DD/MMM/AAAA:HH:MM:SS] "request" state length\ @@ -179,9 +179,9 @@ El menú de formato de registro ofrece las siguientes opciones: > La fecha y hora son locales al servidor. - - petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) - - estado: respuesta dada por el servidor. - - longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. +- petición: solicitud enviada por el cliente (por ejemplo, GET /index.htm HTTP/1.0) +- estado: respuesta dada por el servidor. +- longitud: tamaño de los datos devueltos (excepto el encabezado HTTP) o 0. > **Nota:** por razones de rendimiento, las operaciones se guardan en una memoria búfer por paquetes de 1Kb antes de ser escritas en el disco. Las operaciones también se escriben en disco si no se ha enviado ninguna petición cada 5 segundos. > Los posibles valores de estado son los siguientes @@ -195,16 +195,16 @@ El menú de formato de registro ofrece las siguientes opciones: > 500: Internal error > El formato CLF no puede personalizarse. - - **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. +- **DLF (Combined Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato DLF. El formato DLF es similar al formato CLF y utiliza exactamente la misma estructura. Simplemente añade dos campos HTTP adicionales al final de cada petición: Referer y User-agent. - Referer: contiene la URL de la página que apunta al documento solicitado. - User-agent: contiene el nombre y la versión del navegador o del software cliente en el origen de la petición. > El formato DLF no se puede personalizar. - - **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. +- **ELF (Extended Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato ELF. El formato ELF está muy extendido en el mundo de los navegadores HTTP. Puede utilizarse para construir historiales sofisticados que respondan a necesidades específicas. Por esta razón, el formato ELF se puede personalizar: es posible elegir los campos que se van a registrar, así como su orden de inserción en el archivo. - - **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. +- **WLF (WebStar Log Format)**: cuando se selecciona esta opción, el historial de peticiones se genera en formato WLF. El formato WLF se desarrolló específicamente para el servidor 4D WebSTAR. Es similar al formato ELF, con sólo unos pocos campos adicionales. Al igual que el formato ELF, se puede personalizar. **Configuring the fields** When you choose the ELF (Extended Log Format) or WLF (WebStar Log Format) format, the "Weg Log Token Selection" area displays the fields available for the chosen format. Deberá seleccionar cada campo para incluirlo en el registro. You will need to select each field to be included in the log. @@ -243,8 +243,8 @@ La siguiente tabla enumera los campos disponibles para cada formato (en orden al Configure los parámetros de copia de seguridad automática para el registro de las peticiones. Primero debe elegir la frecuencia (días, semanas, etc.) o el criterio de límite de tamaño de archivo haciendo clic en el botón de opción correspondiente. A continuación, debe especificar el momento preciso de la copia de seguridad si es necesario. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Puede introducir un valor entre 1 y 24 . - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduzca 1 si desea realizar una copia de seguridad diaria. Cuando esta opción está marcada, debe indicar la hora a la que debe comenzar la copia de seguridad. @@ -264,9 +264,9 @@ Para más información sobre el soporte de los servicios web en 4D, consulte el Esta área contiene varias opciones relativas con el uso de 4D como un "servidor" de Servicios Web, es decir la publicación de los métodos proyecto en forma de Servicios Web. - - **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. - - **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. - - **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: esta opción le permite inicializar la publicación de servicios web. Si esta opción no ha sido seleccionada, 4D rechaza las peticiones SOAP y no genera una WSDL - incluso si los métodos tienen el atributo *Publicado en WSDL*. Cuando esta opción está marcada, 4D crea el archivo WSDL. +- **Nombre del Servicio Web**: esta área le permite cambiar el "nombre genérico" del Servicio Web. Este nombre se utiliza para diferenciar los servicios tanto a nivel de servidor SOAP (cuando el servidor publica varios Servicios Web diferentes), así como en los directorios de Servicios Web. Por defecto, 4D utiliza el nombre A_WebService. +- **Espacio de nombres de Servicios Web**: esta área se utiliza para cambiar el espacio de nombres (namespace) de los Servicios Web publicados por 4D. Cada Servicio Web publicado en Internet debe ser único. La unicidad de los nombres de los Servicios Web se asegura mediante el uso de espacios de nombres XML. Un namespace es una cadena de caracteres arbitraria usada para identificar de manera única un conjunto de etiquetas XML. Por lo general, el espacio de nombres comienza por la URL de la empresa (http://mycompany.com/mynamespace). En este caso, no es indispensable tener nada en particular en la URL indicada; lo que importa es que la cadena de caracteres utilizada sea única. Por defecto, 4D utiliza el siguiente espacio de nombres: http://www.4d.com/namespace/default. > Conforme al estándar XML para los nombres de etiquetas, las cadenas de caracteres utilizadas no deben contener espacios ni comenzar con un número. Además, para evitar cualquier riesgo de incompatibilidad, recomendamos que no utilice ningún caracter extendido (como los caracteres acentuados). @@ -274,7 +274,7 @@ Esta área contiene varias opciones relativas con el uso de 4D como un "servidor Esta área contiene varias opciones relacionadas con el uso de 4D como un "cliente" de Servicios Web, es decir, suscribirse a los servicios publicados en la red. - - **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". +- **Prefijo de los métodos creados por el asistente**: esta área le permite cambiar el prefijo que se añade automáticamente por 4D al nombre de los métodos proxy generados por el asistente de servicios web. Los métodos proyecto proxy forman un enlace entre la aplicación 4D y el servidor de Servicios Web. Por defecto, 4D utiliza el prefijo "proxy_". ## Funcionalidades Web @@ -308,9 +308,9 @@ Este botón solo está disponible en los proyectos abiertos con la aplicación 4 El botón activa la siguiente secuencia de actualización: - - Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. - - Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). - - Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. +- Se elimina el grupo de usuarios de la API REST definido en el menú **Leer/Escribir**. +- Se elimina el método base `On REST Authentication` (se traslada a la papelera del sistema). +- Se crea un archivo ["roles.json"](../ORDA/privileges.md#rolesjson-file) por defecto en la carpeta [Sources](../Project/architecture.md#sources) del proyecto si no existe, con su atributo `forceLogin` a `True`. Recuerde reiniciar su proyecto después de realizar esta actualización. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient 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 100123845d03e8..c64b4f8a9728c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,11 +89,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index e8b5a0245406bc..97ee1a22f9519e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md index 624bba23391b05..f3cd2662e9f6de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : - - la périodicité des sauvegardes automatiques - - les fichiers à inclure dans chaque sauvegarde - - les fonctionnalités avancées permettant d'exécuter des tâches automatiques +- la périodicité des sauvegardes automatiques +- les fichiers à inclure dans chaque sauvegarde +- les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. +- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. +- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 2dbedc9655644c..3f1b6436ef1e91 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 df9bcc10992a2e..aa94b2fc1eac72 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 91166fb527d796..db63beabb77e04 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : - - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). - - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). - - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). +- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). +- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). +- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 5e370324f87391..ecbadaf53b312b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 1590910e8abf48..c66c7f4e3f5b79 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -249,8 +249,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. - - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. +- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. +- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -279,9 +279,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. - - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. - - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. +- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. +- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. +- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -289,25 +289,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). - - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). - - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). - - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. - - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. - - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. - - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. - - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. - - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). - - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). - - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. - - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. +- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). +- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). +- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). +- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. +- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. +- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. +- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. +- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. +- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). +- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). +- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. +- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement - - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). - - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). +- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). +- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -315,21 +315,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. - - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). - - 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 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. +- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. +- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). +- 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 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. #### Changements de comportement - - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). - - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). +- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). +- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -337,24 +337,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. - - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). - - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. - - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). - - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) - - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. - - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). - - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). - - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. +- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. +- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). +- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. +- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). +- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) +- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. +- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). +- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). +- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement - - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. - - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). +- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. +- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. +- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -362,21 +362,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). - - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). - - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) - - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. +- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). +- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). +- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) +- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement - - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). - - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. +- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). +- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -390,15 +390,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts - - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. - - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. - - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. - - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. +- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. +- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. +- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. +- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement - - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. +- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 99054de4a22e01..1f4e78f6cc9c23 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 b6b261c6a82eac..d0e9f6ced759c4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 9b1833f30a7a94..0dd5ed8c4fdfbf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. - - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 3e505993076a99..98f9bd11147e88 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index f311bd3e223da4..5740fc0d6c2ff1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md index c7e5b0c19ca430..e250d67261da91 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 7107fc2990f8a6..9a7e1a0cf81fdb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 84e91529e50622..a5817d0aa7344d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index ab10ddb15ec38c..a9e16ab1adf8ea 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -128,10 +128,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 5d709bf93ae09c..a61af9ff781cc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : - - *4daction/* (la méthode projet appelée doit également être à thread-safe) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) - - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) +- *4daction/* (la méthode projet appelée doit également être à thread-safe) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) +- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 81698313b1d91d..daf11db9f41587 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 5471c3bfed703e..6cddcc5504bfd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index df6d8a6a39ff8b..a312698abd737f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md index c4c80a9153de6c..8e4b4910b6ac60 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md index e4d6424de97c3a..2151b672b79934 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md index ec0153d728629d..f884369402cd33 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md index 30dcbc4cc83b39..b079d06c464f44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. - - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. +- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. - - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. +- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. - - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. +- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base - - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. +- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) - - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). +- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md index b5036401cc05a5..4668a251012507 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. - - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. +- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. - - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. - - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. +- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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 860ea31a77884c..fc721bb398efad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index cd8d9873e855bc..75b05496143148 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 4448b28230ca79..9da5511bdf5b7a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 624bba23391b05..f3cd2662e9f6de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : - - la périodicité des sauvegardes automatiques - - les fichiers à inclure dans chaque sauvegarde - - les fonctionnalités avancées permettant d'exécuter des tâches automatiques +- la périodicité des sauvegardes automatiques +- les fichiers à inclure dans chaque sauvegarde +- les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. +- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. +- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index bbb5877378151f..1b7faf45be6041 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 07c7cc5a3e58e0..bc7cb2ef2796ea 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 91166fb527d796..db63beabb77e04 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Vous pouvez également représenter des expressions de champ et de variable dans vos formulaires à l'aide d'objets alternatifs, plus particulièrement : - - Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). - - Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). - - Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). +- Vous pouvez afficher et saisir des données à partir des champs de la base de données directement dans des colonnes [de type List box](listbox_overview.md). +- Vous pouvez représenter un champ ou une variable liste directement dans un formulaire à l'aide des objets [Pop-up Menus/Listes déroulantes](dropdownList_Overview.md) et [Combo Boxes](comboBox_overview.md). +- Vous pouvez représenter une expression booléenne sous forme de [case à cocher](checkbox_overview.md) ou de [bouton radio](radio_overview.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index e830d7305c57de..6c237313576428 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -51,8 +51,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -76,9 +76,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 c5f56eb300b840..8e2c83e3ad3b5c 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 @@ -81,8 +81,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. - - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. +- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. +- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -111,9 +111,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. - - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. - - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. +- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. +- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. +- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). - - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). - - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). - - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. - - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. - - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. - - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. - - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. - - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). - - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). - - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. - - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. +- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). +- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). +- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). +- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. +- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. +- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. +- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. +- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. +- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). +- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). +- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. +- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement - - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). - - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). +- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). +- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -147,21 +147,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. - - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). - - 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 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. +- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. +- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). +- 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 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. #### Changements de comportement - - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). - - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). +- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). +- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -169,24 +169,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. - - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). - - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. - - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). - - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) - - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. - - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). - - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). - - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. +- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. +- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). +- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. +- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). +- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) +- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. +- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). +- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). +- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement - - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. - - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). +- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. +- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. +- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). - - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). - - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) - - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. +- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). +- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). +- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) +- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement - - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). - - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. +- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). +- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -222,15 +222,15 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Points forts - - Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. - - Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. - - 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. - - 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. +- Nouvelle [classe WebSocket](../API/WebSocketClass.md) pour créer et gérer les connexions WebSocket clientes depuis 4D. +- Nouvelle [option d'interface](../settings/client-server.md#network-layer) pour la couche réseau QUIC. +- 4D View Pro : Prise en charge du format de fichier **.sjs** pour [l'importation](../ViewPro/commands/vp-import-document) et [l'exportation](../ViewPro/commands/vp-export-document) de documents. +- 4D Write Pro Interface : Nouveau [Table Wizard](../WritePro/writeprointerface.md). +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R2) : liste de tous les bugs qui ont été corrigés dans 4D 20 R2. #### Changements de comportement - - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. +- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index e330e4922d449a..ba1fd2735d3605 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 29c800d4d3c734..8cda46ce589c99 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -120,9 +120,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -175,11 +175,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index a41348684a5651..a200cf127c27d5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -52,8 +52,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -84,8 +84,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -202,9 +202,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -260,7 +260,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -277,17 +277,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -297,9 +297,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -325,8 +325,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. - - **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. ### Secondary dependencies @@ -399,16 +399,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -442,8 +442,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). - - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. - - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. - - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. - - **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. +- **La dernière** : Sélectionné par défaut et permet de télécharger la version qui est étiquetée comme la dernière version (stable). +- **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. +- **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. +- **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. +- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -524,8 +524,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -541,11 +541,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -590,13 +590,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 ce74f984e8662b..1dca2c5fb3f211 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 3fcd42322177a2..76d5a6bbd7b1f0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 c7e5b0c19ca430..e250d67261da91 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 75fd4a0bc88afd..9e4d78895e35dc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 802d308d7277c3..d24a5ac2255b1c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -128,8 +128,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -146,10 +146,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1ae4af16b38bbd..61877412ae2d4c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -117,10 +117,10 @@ Par conséquent, vous devez appliquer une stratégie précise lorsque vous écri Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités : - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Class et method diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 05a96e326d5f89..1b2b27e26c6d0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST Pour chacune de ces méthodes ou parties de code, le compilateur vérifiera si les règles thread-safe sont respectées, et retournera une erreur en cas de problème. Pour plus d'informations à propos des règles thread-safe, veuillez vous référer au paragraphe *Ecrire une méthode thread-safe* dans le chapitre *Process* du manuel de [Langage 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe. Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif : - - *4daction/* (la méthode projet appelée doit également être à thread-safe) - - *4dcgi/* (les méthodes base appelées doivent également être thread-safe) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) - - *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) +- *4daction/* (la méthode projet appelée doit également être à thread-safe) +- *4dcgi/* (les méthodes base appelées doivent également être thread-safe) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (généré par `PROCESS 4D TAGS` pour les requêtes web relatives aux champs images) +- *4dimg/* (généré par `PROCESS 4D TAGS` pour les requêtes web sur les variables image) ### Icône de process web préemptif diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 99fdbc5d1f6199..a2d1f2e0c7862c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -145,24 +145,24 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -309,9 +309,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -363,7 +363,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index fb2a05807a87d8..332cbfb4f2ca8d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index df6d8a6a39ff8b..a312698abd737f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 4b98187d7cf741..9e5f7ad5a9d05f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 1884e7d3fc1f52..beaa5cb365a0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index be3dfaa8f78096..55d2c6e41c55f2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index 30dcbc4cc83b39..b079d06c464f44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -66,19 +66,19 @@ Trois options d’emplacement sont proposées : - Cette option peut également avoir une influence sur le comportement des commandes du thème [Objets (Formulaires)](../commands/theme/Objects_Forms.md) qui acceptent le caractère générique ("@") dans le paramètre objet. - Pour des raisons de sécurité, seuls l’Administrateur et le Super_Utilisateur de la base peuvent modifier ce paramètre. - - **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. +- **Langue du fichier de données courant :** cette option permet de paramétrer la langue utilisée pour le traitement et la comparaison des chaînes de caractères pour la base de données ouverte. Le choix d’une langue de comparaison influe sur le tri et la recherche des textes ainsi que le passage en minuscules/majuscules mais n’a pas d’incidence sur la traduction des libellés ou sur les formats de dates, d’heure ou monétaires qui restent, eux, dans la langue du système. Par défaut, 4D utilise la langue du système. Un projet 4D peut ainsi fonctionner dans une langue différente de celle du système. A l’ouverture d’un projet, le moteur de 4D détecte la langue utilisée par le fichier de données et la fournit au langage (interpréteur ou mode compilé). Les comparaisons de texte, qu’elles soient effectuées par le moteur de base de données ou par le langage, sont donc toujours effectuées dans la même langue. > Il est possible de modifier ce paramètre dans les Préférences de l'application (voir [Page General](../Preferences/general.md)). Dans ce cas, il s'applique à toutes les nouvelles bases créées par 4D. - - \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. +- \*\*N'utiliser que les caractères non alphanumériques pour les mots-clés \*\* : cette option modifie l'algorithme utilisé par 4D pour identifier les séparateurs de mots-clés et donc construire les index de mots-clés. Par défaut, lorsque cette option n'est pas cochée, 4D utilise un algorithme sophistiqué tenant compte des spécificités linguistiques. Cet algorithme est semblable à celui utilisé de façon standard par les logiciels de traitement de texte pour déterminer les limites d'une sélection en cas de double-clic dans un mot. Pour plus d’informations sur cet algorithme, reportez-vous à l'adresse `http://userguide.icu-project.org/boundaryanalysis`. Lorsque cette option est cochée, 4D utilise un algorithme simplifié. Dans cette configuration, tout caractère non alphanumérique (c'est-à-dire qui n'est ni une lettre ni un chiffre) est considéré comme séparateur de mot-clé. Ce paramétrage répond à des besoins spécifiques associés à certaines langues telles que le japonais. - - **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. +- **Ordre de tri approprié pour la recherche** : Cette option s'affiche uniquement lorsque la langue japonaise est sélectionnée. Elle modifie l'interprétation de caractères tels que "Marques Katakana-Hiragana de son prolongé" ou "長音記号" ou les "Marques d'itération japonaises" telles que "ゝ" ou "ゞ". Un locuteur japonais préférera les résultats issus d'une recherche effectuée lorsque le paramètre est activé. #### Prise en charge de Mecab (version japonaise) @@ -96,7 +96,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ### Paramètres du cache pour la base - - **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. +- **Calcul du cache adaptatif** : Lorsque cette option est cochée, la gestion de la mémoire cache est assurée dynamiquement par le système — dans des limites que vous définissez. Ce principe permet de configurer une mémoire cache performante, adaptée à la plupart des configurations. La taille du cache est alors calculée dynamiquement en fonction des paramétrages définis. Les valeurs proposées par défaut correspondent à une utilisation standard de 4D. - **Mémoire à réserver pour le système et les autres applications** : partie de la mémoire RAM à réserver au Système et aux autres applications. Cette valeur peut être augmentée à des fins d’optimisation lorsque d’autres applications consommatrices de mémoire tournent sur le même poste que 4D. - **Mémoire disponible utilisée pour le cache** : Pourcentage de la mémoire restante allouée par défaut au cache.\ @@ -112,7 +112,7 @@ Utilisez les paramètres de cet onglet pour configurer la mémoire cache de la b ![](../assets/en/settings/memory-maximum-size.png) - - **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). +- **Calcul du cache adaptatif non cochée** : dans ce mode, vous définissez vous-même la taille de la mémoire cache pour la base. 4D affiche alors une zone de saisie permettant de définir la mémoire cache à utiliser ainsi que les informations relatives à la mémoire physique (mémoire RAM disponible sur la machine), le cache actuel et le cache après redémarrage (tenant compte de vos modifications). La taille de mémoire cache que vous saisissez sera réservée pour la base 4D, quel que soit l’état des ressources de la machine. Ce paramétrage peut être utilisé dans certaines configurations spécifiques, ou lorsque la base est destinée à fonctionner sur des systèmes disparates en termes de mémoire. Dans la plupart des cas, le cache adaptatif est plus performant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index b5036401cc05a5..4668a251012507 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Cette page regroupe les options relatives à la protection des accès et des don > Ces paramètres ne s'appliquent pas aux bases projets ouvertes en monoposte. - - **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. +- **Accès Développement et Explorateur d'exécution** : permet au groupe d’utilisateurs spécifié d’accéder au mode Développement de la base et d'afficher l'Explorateur d'exécution. A noter que : @@ -25,11 +25,11 @@ Cette page regroupe les options relatives à la protection des accès et des don - Si vous avez associé un mot de passe à l’utilisateur par défaut, une boîte de dialogue apparaît à l’ouverture de la base, les utilisateurs doivent uniquement saisir un mot de passe. - Si vous n'avez pas associé de mot de passe à l'Utilisateur par défaut, la boîte de dialogue d'identification de l'utilisateur ne s'affichera pas.**Note:** Vous pouvez “forcer” l'affichage de la boîte de dialogue d'identification de l'utilisateur lorsque le mode “Utilisateur par défaut” est actif, par exemple pour vous connecter en tant qu'Administrateur ou Super_Utilisateur. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. - - **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **Afficher les utilisateurs dans la fenêtre Mots de passe** : si cette option est cochée, les utilisateurs doivent choisir leur nom dans une liste d’utilisateurs et saisir leur mot de passe dans la boîte de dialogue de saisie des mots de passe. Si cette option n’est pas cochée, les utilisateurs doivent saisir leur nom et leur mot de passe. Pour plus d’informations sur les deux versions de la boîte de dialogue de mots de passe, consultez la section "Accès au système" dans [Présentation du contrôle des accès](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **Trier la liste des utilisateurs par ordre alphabétique** (option utilisable uniquement si la précédente est cochée) : Lorsque cette option est cochée, la liste des utilisateurs dans la boîte de dialogue de saisie des mots de passe est triée par ordre alphabétique. - - **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. +- **Les utilisateurs peuvent changer leur mot de passe** : lorsque cette option est cochée, un bouton **Changer** est affiché dans la boîte de dialogue d’ouverture ou de connexion à la base. Si vous le souhaitez, vous pouvez masquer le bouton **Changer** afin de ne pas permettre aux utilisateurs de modifier leur mot du passe. Ce bouton permet à l’utilisateur d’accéder à la boîte de dialogue qui peut être utilisée pour changer son mot de passe (pour plus d'informations sur cette boîte de dialogue, consultez la rubrique "Modification du mot de passe par l'utilisateur" dans [Assurer la maintenance du système](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Il suffit pour cela de désélectionner cette option. ## Options @@ -43,7 +43,7 @@ Cette page regroupe les options relatives à la protection des accès et des don - **Autoriser les propriétés utilisateur** : Vous devez cocher cette option si vous souhaitez utiliser la fonctionnalité d’externalisation des propriétés utilisateur. Lorsque cette option est cochée, jusqu'à trois boîtes de dialogue sont disponibles pour définir les propriétés : **Propriétés structure**, **Propriétés utilisateur**, et **Propriétés utilisateur pour fichier de données**. Pour plus d'informations, reportez-vous à la section [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Pour des raisons de sécurité, vous devez autoriser explicitement l’exécution de cette méthode dans chaque base hôte. Pour cela, vous devez cocher l'option. Cette option n'est pas cochée par défaut. Lorsque cette option est cochée : 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 deebc7df65d7bf..deeb0217c8108f 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 @@ -82,9 +82,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index b1b0365605edcc..9d1cb639f79189 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Vous pouvez passer un ou plusieurs paramètres optionnels *param*, qui seront pa :::note Notes - - Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. - - Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. +- Si `.new()` est appelé sur une [classe singleton](../Concepts/classes.md#singleton-classes) qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance. +- Si `.new()` est appelé sur une classe inexistante, une erreur est retournée. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md index e5c0997f07ca47..f026e9fde75c7c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Cette propriété est en **lecture seule**. La propriété `.original` renvoie l'élément cible d'un fichier alias, d'un raccourci ou d'un lien symbolique. L'élément cible peut être : - - un objet File - - un objet Folder +- un objet File +- un objet Folder Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier. @@ -585,8 +585,8 @@ La fonction `.getText()` retourne le con Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit : - - dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), - - ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. +- dans *charSetName*, une chaîne contenant le nom de jeu standard (par exemple "ISO-8859-1" ou "UTF-8"), +- ou dans *charSetNum*, l'ID MIBEnum (numéro) du nom du jeu standard. > Pour consulter la liste des jeux de caractères pris en charge par 4D, veuillez vous reporter à la description de la commande `CONVERT FROM TEXT`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 4fc721eae0f3a4..307a32aaf19dc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Un objet 4D.OutgoingMessage est [non partageable](../Concepts/shared.md). La propriété `.body` contient le body du message sortant. Les types de données suivants sont pris en charge dans la propriété `.body` : - - text - - blob - - object - - image +- text +- blob +- object +- image La propriété `.body` est en lecture-écriture. @@ -108,17 +108,17 @@ La fonction `.setBody()` dé Les types de données suivants sont pris en charge dans la propriété *body* : - - Text - - Blob - - Object - - Image +- Text +- Blob +- Object +- Image Lorsque cette fonction est utilisée, le header content-type est automatiquement défini en fonction du type de *body* : - - Content-Type:text/plain si le body est un texte - - Content-Type:application/octet-stream si le body est un Blob - - Content-Type:application/json si le body est un objet - - Content-Type:image/jpeg, image/gif... si le body est une image +- Content-Type:text/plain si le body est un texte +- Content-Type:application/octet-stream si le body est un Blob +- Content-Type:application/json si le body est un objet +- Content-Type:image/jpeg, image/gif... si le body est une image Si *body* n'est pas un type de valeur pris en charge, une erreur est renvoyée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 325787d945631f..098475b2abbeec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ La propriété `.keepAlive` contient 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 d851dcea4de206..abb8a4f1e3bd87 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 @@ -95,11 +95,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 3d92f3b48c546e..d16c4e85d76af2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ La fonction `.disableState()` d Cette fonction ne fait rien si : - - l'*état* n'est actuellement pas activé dans le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* n'est actuellement pas activé dans le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous [activez](#enablestate) ou désactivez plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. @@ -80,8 +80,8 @@ La fonction `.enableState()` act Cette fonction ne fait rien si : - - l'*état* a déjà été activé sur le formulaire web, - - l'*état* n'existe pas pour le formulaire web. +- l'*état* a déjà été activé sur le formulaire web, +- l'*état* n'existe pas pour le formulaire web. Si vous activez ou [désactivez](#disablestate) plusieurs états dans la même fonction utilisateur, toutes les modifications sont envoyées en même temps au client une fois que la fonction se termine. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 4448b28230ca79..9da5511bdf5b7a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ La fonction `4D.WebSocket.new()` crée e Dans *url*, indiquez l'URL à laquelle le serveur WebSocket répondra. Les modèles d'URL suivants peuvent être utilisés : - - `ws://host[:port]path[?query]` pour les connexions standard - - `wss://host[:port]path[?query]` pour les connexions TLS sécurisées +- `ws://host[:port]path[?query]` pour les connexions standard +- `wss://host[:port]path[?query]` pour les connexions TLS sécurisées Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur est générée (que vous pouvez intercepter à l'aide d'une méthode installée avec `ON ERR CALL`). @@ -95,8 +95,8 @@ Si la connexion n'est pas possible, un objet `null` est renvoyé et une erreur e Dans *connectionHandler*, vous pouvez transmettre un objet contenant des fonctions de callback à appeler selon les événements de connexion, ainsi que le type de données et les en-têtes à gérer. - - Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. - - La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. +- Les callbacks sont automatiquement appelées dans le contexte du formulaire ou du worker qui initie la connexion. +- La WebSocket reste valide tant que le formulaire ou le worker n'est pas fermé. | Propriété | Type | Description | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ La fonction `.terminate()` refer Dans *code*, vous pouvez passer un code d'état expliquant pourquoi la connexion est fermée (voir aussi [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)) : - - S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. - - Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. +- S'il n'est pas spécifié, le code de fermeture de la connexion est automatiquement fixé à 1000 pour une fermeture normale, ou à une autre valeur standard dans la plage 1001-1015 qui indique la raison réelle de la fermeture de la connexion. +- Si elle est spécifiée, la valeur de ce paramètre de code remplace le réglage automatique. La valeur doit être un nombre entier. Soit 1000, soit un code personnalisé compris entre 3000 et 4999. Si vous spécifiez la valeur du \*code \* , vous devez également spécifier une *reason*. Dans *reason*, vous pouvez passer une chaîne de caractères décrivant la raison pour laquelle la connexion est fermée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index aca94359426e7e..f9e929fbc81107 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Voir également [cet article de blog](https://blog.4d.com/new-built-in-websocket Pour créer et gérer votre serveur WebSocket dans 4D, vous devrez utiliser deux classes intégrées à 4D : - - cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, - - la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. +- cette classe (`4D.WebSocketServer`) pour gérer le serveur lui-même, +- la classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) pour gérer les connexions et les messages. De plus, vous devrez créer deux classes utilisateurs qui contiendront les fonctions de callback : - - une classe utilisateur pour gérer les connexions serveur, - - une classe utilisateur pour gérer les messages. +- une classe utilisateur pour gérer les connexions serveur, +- une classe utilisateur pour gérer les messages. Vous devez [créer le serveur WebSocket](#4dwebsocketservernew) dans un [worker](../Develop/processes.md#worker-processes) pour maintenir la connexion en vie. @@ -387,8 +387,8 @@ Par défaut, si aucune valeur *timeout* n'est définie, la fonction initialise l Si une valeur *timeout* est définie : - - lorsque le temps d'attente est atteint, détruit de force la socket. - - si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. +- lorsque le temps d'attente est atteint, détruit de force la socket. +- si *timeout* = 0, détruit de force la socket sans trame de fermeture ni d'échange de paquets FIN, et le fait instantanément sans délai d'attente. 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 3c407cc2d8f7ab..87bace3ccb1808 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 @@ -17,7 +17,7 @@ Par défaut, le serveur web `WebAdmin` ne démarre pas automatiquement. Il faut Vous pouvez configurer le server web `WebAdmin` pour qu'il se lance au démarrage de 4D ou 4D Server (avant l'ouverture d'un projet). - - Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. +- Si vous utilisez une application 4D avec une interface, sélectionnez **Fichier > Administration Web > Propriétés...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Cochez l'option **Lancer le serveur WebAdmin au démarrage** dans la boîte de d ![alt-text](../assets/en/Admin/waSettings.png) - - Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : +- Que vous utilisiez une application 4D avec ou sans interface, vous pouvez activer le lancement automatique au démarrage en utilisant l'argument suivant dans *L'interface de ligne de commande* : ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Quand cette option est cochée, il est possible de se connecter au serveur `WebA **Notes :** - - Les connections HTTP autres que sur localhost ne sont jamais acceptées. - - Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. +- Les connections HTTP autres que sur localhost ne sont jamais acceptées. +- Même si cette option est activée, quand [HTTPS Accepté](#accept-https) est activé et que la configuration TLS est valide, les connections sur localhost se font via HTTPS. #### Port HTTP @@ -94,11 +94,11 @@ Chemin du dossier qui contient les fichiers de certificat TLS. Par défaut, le c Statut ou format du fichier de logs des requêtes HTTP (HTTPDebugLog_*nn*.txt, stocké dans le dossier "Logs" de l'application. --*nn* représente le numéro du fichier). Les options suivantes sont disponibles : - - **Désactivé** (valeur par défaut) - - **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses - - **Sans les body** - activé sans les parts des body (la taille du body est indiquée) - - **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes - - **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses +- **Désactivé** (valeur par défaut) +- **Avec tous les body** - activé avec toutes les parts des body des requêtes et réponses +- **Sans les body** - activé sans les parts des body (la taille du body est indiquée) +- **Avec les body des requêtes** - activé avec les parts des body uniquement dans les requêtes +- **Avec la réponse corps** - activé avec les parts des body uniquement dans les réponses #### Clé d'accès @@ -108,9 +108,9 @@ La configuration d'une clé d'accès est obligatoire pour débloquer l'accès au Une clé d'accès est similaire à un mot de passe, mais sans login associé. - - Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. - - Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. - - Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. +- Pour définir une nouvelle clé d'accès, cliquez sur le bouton **Définir**, entrez une chaîne de caractères et cliquez sur **OK**. Une fois fait, le label du bouton devient **Modifier**. +- Pour modifier la clé d'accès, cliquez sur **Modifier**, entrez la nouvelle clé d'accès et cliquez sur **OK**. +- Pour supprimer la clé d'accès, cliquez sur **Modifier**, laissez le champ d'entrée vide et cliquez sur **OK**. #### Activer l'accès à Qodly Studio @@ -145,9 +145,9 @@ Voici un exemple : ## Authentification et Session - - Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. +- Lorsqu'on accède à une page de gestion web en entrant une URL et sans identification préalable, une authentification est nécessaire. L'utilisateur doit entrer la [clé d'accès](#access-key) dans une fenêtre d'authentification. Si aucune clé d'accès n'a été définie dans les propriétés `WebAdmin`, aucun accès via URL n'est possible. - - Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. +- Qand une page d'administration web est ouverte directement depuis un menu 4D ou 4D Server, tel que **Enregistrements> Data Explorer**ou**Fenêtre> Explorateur de données**(4D Server), l'accès est autorisé sans authentification. Une fois l'accès autorisé, une [session web](WebServer/sessions.md) est créée avec les privilèges "WebAdmin" sur l'application 4D. Tant que la session courante a le privilège "WebAdmin", le composant `WebAdmin` sert les pages demandées dans les requêtes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 4805c34089bb99..cb7258d7154a8b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restitution - Si le cache contenait des opérations, le fichier de données est intact mais il est nécessaire d’intégrer le fichier d’historique courant. - Si le cache était en cours d’écriture, le fichier de données est probablement endommagé. Il est nécessaire de restituer la dernière sauvegarde et d’intégrer le fichier d’historique courant. - - La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. +- La perte de fichier(s) de l'application. Cet incident peut être causé par des secteurs défectueux sur le disque contenant l'application, un virus, une erreur de manipulation, etc. Il est nécessaire de restituer la dernière sauvegarde puis d’intégrer éventuellement l’historique courant. Pour savoir si une application a été endommagée à la suite d’un incident, il suffit de la relancer avec 4D. Le programme effectue un auto-diagnostic et précise les opérations de réparation à effectuer. En mode automatique, ces opérations sont effectuées directement, sans intervention de l’utilisateur. Si une stratégie de sauvegarde régulière a été mise en place, les outils de récupération de 4D vous permettront (dans la plupart des cas) de retrouver l'application dans l’état exact où elle se trouvait avant l’incident. > 4D peut lancer automatiquement des procédures de récupération des applications après incident. Ces mécanismes sont gérés à l’aide de deux options accessibles dans la Page **Sauvegarde/Sauvegarde & et Restitution** de la fenêtre des Propriétés. Pour plus d'informations, reportez-vous au paragraphe [Restitution automatique](settings.md#automatic-restore-and-log-integration).\ > Si l'incident résulte d'une opération inappropriée effectuée sur les données (suppression d'un enregistrement par exemple), vous pouvez tenter de réparer le fichier de données à l'aide de la fonction "rollback" du fichier d'historique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md index 624bba23391b05..f3cd2662e9f6de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Paramètres de sauvegarde Les paramètres de sauvegarde sont définis sur trois pages dans la [boîte de dialogue des Paramètres](../settings/overview.md). Vous pouvez définir : - - la périodicité des sauvegardes automatiques - - les fichiers à inclure dans chaque sauvegarde - - les fonctionnalités avancées permettant d'exécuter des tâches automatiques +- la périodicité des sauvegardes automatiques +- les fichiers à inclure dans chaque sauvegarde +- les fonctionnalités avancées permettant d'exécuter des tâches automatiques > Les propriétés définies dans cette boîte de dialogue sont écrits dans le fichier *Backup.4DSettings*, stocké dans le [dossier Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ La modification des options de sauvegarde et de restauration est facultative. Le > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. +- **Sauvegarder uniquement si le fichier de données a été modifié** : lorsque cette option est cochée, 4D déclenche les sauvegardes périodiques uniquement si des données ont été ajoutées, modifiées ou supprimées depuis la dernière sauvegarde. Dans le cas contraire, la sauvegarde prévue est annulée et reportée à l’échéance suivante. Aucune erreur n’est générée ; le report est toutefois indiqué dans le Journal des sauvegardes. Cette option permet notamment d’économiser du temps machine sur la sauvegarde d'applications principalement utilisées en consultation. A noter qu'elle ne prend pas en compte les éventuelles modifications apportées au fichier de structure ou aux fichiers joints. > Ce paramètre concerne à la fois les sauvegardes de l'application et les sauvegardes de l’historique. - - **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. +- **Effacer la sauvegarde la plus ancienne avant sauvegarde / après sauvegarde** : cette option n’est utilisée que si l’option “Conserver uniquement les N derniers fichiers de sauvegarde” est cochée. Elle vous permet de spécifier si 4D doit commencer par effacer l’archive la plus ancienne avant d’effectuer une sauvegarde (option **avant**) ou si l’effacement doit être effectué après la sauvegarde (option **après**). Pour que ce mécanisme fonctionne, l’archive la plus ancienne ne doit pas avoir été renommée ou déplacée. - **Si la sauvegarde échoue** : cette option permet de définir le mécanisme de prise en charge des échecs des sauvegardes (sauvegarde impossible). Lorsqu’une sauvegarde est impossible, 4D permet d’effectuer une nouvelle tentative. - Périodicité Elle revient à annuler la sauvegarde ayant échoué. Une erreur est générée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index d04fabfff81622..a43bc8ad2f2b11 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ Le langage 4D prend en charge les opérateurs que vous connaissez peut-être dé Le langage 4D prend en charge les opérateurs **binaires** et **ternaires** : - - les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. - - les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). +- les opérateurs binaires opèrent sur deux cibles (comme `2 + 3`) et apparaissent entre leurs deux cibles. +- les opérateurs ternaires opèrent sur trois cibles. Comme le C, 4D ne possède qu'un seul opérateur ternaire, [l'opérateur conditionnel ternaire](#ternary-operator) (`a ? b : c`). Les valeurs que les opérateurs affectent sont des opérandes. Dans l'expression `1 + 2`, le symbole + est un opérateur binaire et ses deux opérandes sont les valeurs 1 et 2. @@ -33,18 +33,18 @@ $col:=New collection //$col est initialisé avec une collection vide Les résultats des opérateurs dépendent des **types de données** auxquels ils sont appliqués. Ils sont décrits avec les types de données, dans les sections suivantes : - - [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) - - [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) - - [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) - - [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) - - [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) - - [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) - - [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) - - [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) - - [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) - - [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) - - [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) - - [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) +- [**Opérateurs logiques**](dt_boolean.md#operateurs-logiques) (sur les expressions de type **booléen**) +- [**Opérateurs sur les dates**](dt_date.md#operateurs-sur-les-dates) +- [**Opérateurs sur les heures**](dt_time.md#operateurs-sur-les-heures) +- [**Opérateurs sur les nombres**](dt_number.md#operateurs-sur-les-nombres) +- [**Opérateurs sur les bits**](dt_number.md#operateurs-sur-les-bits) (sur les expressions de type **entier long**) +- [**Opérateurs sur les images**](dt_picture.md#operateurs-sur-les-images) +- [**Opérateurs sur les pointeurs**](dt_pointer.md#operateurs-sur-les-pointeurs) +- [**Opérateurs sur les chaînes**](dt_string.md#operateurs-sur-les-chaines) +- [**Opérateurs sur les références d'objets**](dt_object.md#operateurs-sur-les-objets) +- [**Opérateurs sur les références de collections**](dt_collection.md#operateurs-sur-les-collections) +- [**Opérateurs sur les Null**](dt_null_undefined.md#operateurs-sur-les-null) +- [**Opérateurs sur les Undefined**](dt_null_undefined.md#operateurs-sur-les-undefined) ## Opérateurs d'affectation composés @@ -275,9 +275,9 @@ L'opérateur conditionnel ternaire vous permet d'écrire des expressions conditi Il prend trois opérandes dans l'ordre suivant : - - une condition suivie d'un point d'interrogation (?) - - une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) - - une expression à exécuter si la condition est [falsy](#truthy-and-falsy) +- une condition suivie d'un point d'interrogation (?) +- une expression à exécuter si la condition est [truthy](#truthy-and-falsy), suivie de deux points (:) +- une expression à exécuter si la condition est [falsy](#truthy-and-falsy) ### Syntaxe @@ -328,21 +328,21 @@ En plus d'un type, chaque valeur possède également une valeur booléenne inhé Les valeurs suivantes sont **falsy**: - - false - - Null - - undefined - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Chaînes vides - - [] - Collections vides - - {} - Objets vides +- false +- Null +- undefined +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Chaînes vides +- [] - Collections vides +- {} - Objets vides Toutes les autres valeurs sont considérées comme **truthy**, notamment : - - 0 - zéro numérique (Entier ou autre) +- 0 - zéro numérique (Entier ou autre) Dans 4D, l'évaluation à **truthy** et **falsy** reflète la **possibilité d'utilisation** d'une valeur, ce qui signifie qu'une valeur truthy existe et peut être traitée par le code sans générer d'erreurs ou de résultats inattendus. L'objectif est de fournir un moyen pratique de gérer les valeurs *undefined* et *null* dans les objets et les collections, de sorte qu'un nombre réduit d'instructions [If…Else](flow-control.md#ifelseend-if) soit nécessaire pour éviter les erreurs d'exécut diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index e88a916f5bb4f2..a1b7c382575f99 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Cette syntaxe ne prend en charge que les déclarations de [variables locales et `varType` peut être : - - un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, - - une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. +- un [type basique](Concepts/data-types.md), auquel cas la variable contient une valeur du type déclaré, +- une [référence de classe](Concepts/classes.md) (classe 4D ou classe utilisateur), auquel cas la variable contient une référence à un objet de la classe définie. Si `varType` est omis, une variable de type **variant** est créée. @@ -86,7 +86,7 @@ L'ancienne syntaxe utilisant les commandes `C_XXX` est obsolète à partir de la ### Exemples - - Pour déclarer les variables locales et les variables process basiques : +- Pour déclarer les variables locales et les variables process basiques : ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D.Object //également équivalent à C_OBJECT($o) ``` - - Pour déclarer les variables objet de classe 4D : +- Pour déclarer les variables objet de classe 4D : ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - Pour déclarer les variables objet de classe utilisateur : +- Pour déclarer les variables objet de classe utilisateur : ```4d var $myClass : cs.MyClass @@ -193,9 +193,9 @@ Une variable locale, comme son nom l’indique, est locale à une méthode — c Vous pouvez choisir d'utiliser une variable locale pour : - - Eviter des conflits de noms avec les autres variables - - Utiliser temporairement des valeurs, - - Réduire le nombre de variables process +- Eviter des conflits de noms avec les autres variables +- Utiliser temporairement des valeurs, +- Réduire le nombre de variables process Le nom d’une variable locale commence toujours par le signe dollar ($) et peut contenir jusqu’à 31 autres caractères. Si vous saisissez un nom plus long, 4D le tronque pour le ramener à 31 caractères. @@ -224,9 +224,9 @@ En mode interprété, les variables sont gérées dynamiquement; elles sont cré Un process peut lire et écrire des variables process dans un autre process à l'aide des commandes `GET PROCESS VARIABLE` et `SET PROCESS VARIABLE`. Nous vous recommandons de n'utiliser ces commandes que dans le cadre des besoins décrits ci-dessous (qui sont les raisons pour lesquelles ces commandes ont été créées dans 4D) : - - Communication interprocess à des endroits particuliers de votre code - - Gestion du glisser-déposer interprocess - - En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur +- Communication interprocess à des endroits particuliers de votre code +- Gestion du glisser-déposer interprocess +- En client/serveur, communication entre les process sur les postes clients et les procédures stockées exécutées sur le serveur Pour plus d'informations, consultez le chapitre **Process** et la description de ces commandes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index dbcecf17e36854..275ca0da61c968 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Il peut arriver que la mémoire soit insuffisante pour créer une BLOB. Ou, lors Ce sont généralement les types d'erreurs les plus difficiles à trouver. À l'exception des erreurs de frappe, tous les types d'erreurs énumérés ci-dessus sont, dans une certaine mesure, couverts par l'expression "erreur de conception ou de logique". Utilisez le [débogueur](debugger.md) pour les détecter. Par exemple : - - Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. - - Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. +- Une *erreur de syntaxe* peut se produire lorsque vous essayez d'utiliser une variable qui n'est pas encore initialisée. +- Une *erreur au niveau de l'Environnement* peut se produire lorsque vous essayez d'ouvrir un document, parce que le nom de ce document est reçu par une sous-routine qui n'a pas obtenu la bonne valeur comme paramètre. Les erreurs de conception ou de logique comprennent également des situations telles que : - - Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. - - Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. +- Un enregistrement n'est pas correctement mis à jour parce que, en appelant `SAVE RECORD`, vous avez oublié de tester d'abord si l'enregistrement était verrouillé ou non. +- Une méthode ne fait pas exactement ce que vous attendez, car la présence d'un paramètre facultatif n'est pas testée. Parfois, le morceau de code qui affiche l'erreur peut être différent du code qui est en fait à l'origine du problème. @@ -55,8 +55,8 @@ Pour trouver rapidement l'origine du problème, rouvrez la version interprétée La fenêtre d'erreur de syntaxe apparaît automatiquement lorsque l'exécution d'une méthode est interrompue. Cela peut se produire lorsque : - - une erreur empêche la poursuite de l'exécution du code - - la méthode produit une fausse assertion (voir la commande `ASSERT`) +- une erreur empêche la poursuite de l'exécution du code +- la méthode produit une fausse assertion (voir la commande `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ La zone de texte supérieure affiche un message décrivant l'erreur. La zone de La fenêtre d'erreur de syntaxe propose plusieurs options : - - **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. +- **Modifier** : arrête l'exécution de toutes les méthodes. 4D bascule en mode Développement et la méthode comportant l'erreur s'ouvre dans l'éditeur de code, ce qui vous permet de la corriger. Utilisez cette option lorsque vous reconnaissez immédiatement l'erreur et que vous pouvez la corriger sans autre forme de procès. - - **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. +- **Trace** : Accède au mode Trace/Debugger. La fenêtre du [débogueur](debugger.md) s'affiche. Si la ligne en cours n'a été exécutée que partiellement, vous devrez peut-être cliquer plusieurs fois sur le bouton **Trace**. - - **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. +- **Continuer** : L'exécution se poursuit. La ligne contenant l'erreur peut être partiellement exécutée, selon l'endroit où se trouve l'erreur. Continuez avec prudence : l'erreur peut empêcher le reste de votre méthode de s'exécuter correctement. Nous vous recommandons de cliquer sur **Continuer** uniquement si l'erreur se trouve dans un appel trivial (tel que `SET WINDOW TITLE`) qui n'empêche pas d'exécuter et de tester le reste de votre code. :::tip diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index bbb5877378151f..1b7faf45be6041 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Cet événement peut être utilisé pour filtrer la saisie de données dans les Lorsqu'il est utilisé, cet événement est généré après chaque modification apportée au contenu d'un objet saisissable, quelle que soit l'action qui a provoqué la modification, c'est-à-dire : - - Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; - - Déposer une valeur (action similaire à coller); - - Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. - - Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). +- Actions d'édition standard qui modifient le contenu comme les actions coller, couper, supprimer ou annuler; +- Déposer une valeur (action similaire à coller); +- Toute saisie au clavier effectuée par l'utilisateur ; dans ce cas, l'événement `On After Edit` est généré après les événements [`On Before Keystroke`](onBeforeKeystroke.md) et [`On After Keystroke`](onAfterKeystroke.md), s'ils sont utilisés. +- Toute modification apportée à l'aide d'une commande de langage qui simule une action de l'utilisateur (c'est-à-dire `POST KEY`). Dans l'événement `On After Edit`, les données texte saisies sont retournées par la commande [`Get edited text`](../commands-legacy/get-edited-text.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 78486e986347fb..c4858cd18410e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ L'événement `On Clicked` est généré lorsque l'utilisateur clique sur un obj L'événement `On Clicked` se produit généralement une fois que le bouton de la souris est relâché. Cependant, il existe plusieurs exceptions : - - [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. - - [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. - - [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. - - [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée - - Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem +- [Boutons invisibles](FormObjects/properties_Display.md#not-rendered): l'événement `On Clicked` se produit dès que le clic est effectué et n'attend pas que le bouton de la souris soit relâché. +- [Règles](FormObjects/ruler.md) : si l'option de [méthode d'exécution d'objet](FormObjects/properties_Action.md#execute-object-method) est définie sur **true**, l'événement `On Clicked` se produit dès que le clic est effectué. +- [Combo box](FormObjects/comboBox_overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu associé. Une [combo box](FormObjects/comboBox_overview.md) doit être traitée comme une zone de texte saisissable dont la liste déroulante associée fournit des valeurs par défaut. Par conséquent, vous gérez la saisie de données dans une combo box via les événements `On Before Keystroke`, `On After Keystroke` et `On Data Change`. +- [Listes déroulantes](FormObjects/dropdownList_Overview.md) : l'événement `On Clicked` se produit uniquement si l'utilisateur sélectionne une autre valeur dans le menu. L'événement `On Data Change` vous permet de détecter l'activation de l'objet lorsqu'une valeur différente de la valeur courante est sélectionnée +- Lorsqu'une cellule d'entrée de list box est [en cours d'édition](FormObjects/listbox_overview.md#managing-entry), l'événement `On Clicked` est généré lorsque le bouton de la souris est enfoncé, permettant d'utiliser la commande `Contextual click` par exem Dans le cas d'un événement `On Clicked`, vous pouvez tester le nombre de clics effectués par l'utilisateur à l'aide de la commande `Clickcount`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index a6852001e87193..830756654af344 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over L'événement `On Drag Over` est envoyé à plusieurs reprises à l'objet de destination lorsque le pointeur de la souris est déplacé sur l'objet. Généralement, en réponse à cet événement : - - Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). - - En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. +- Vous récupérez les données et les signatures présentes dans le conteneur (via la commande `GET PASTEBOARD DATA`). +- En fonction de la nature et du type de données dans le conteneur, vous acceptez ou refusez le glisser-déposer. Pour **rejeter** le glisser, la méthode de l'objet de destination doit retourner -1. Lors d'un événement `On Drag Over`, 4D traite la méthode objet comme une fonction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index bad94509cacfcd..2c99b4f29b928c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Cet événement est généré lorsqu'un clic se produit sur l'en-tête d'une col Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) a été sélectionnée pour la list box, vous pouvez décider d'autoriser ou non un tri standard de la colonne en passant la valeur 0 ou -1 dans la variable `$0` : - - Si `$0` est égal à 0, un tri standard est effectué. - - Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. +- Si `$0` est égal à 0, un tri standard est effectué. +- Si `$0` est égal à -1, un tri standard n'est pas effectué et l'en-tête n'affiche pas la flèche de tri. Le développeur peut toujours générer un tri de colonne basé sur des critères de tri personnalisés à l'aide du langage 4D. Si la propriété [Sortable](FormObjects/properties_Action.md#sortable) n'est pas sélectionnée pour la list box, la variable `$0` n'est pas utilisée. 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 df9bcc10992a2e..aa94b2fc1eac72 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 @@ -9,16 +9,16 @@ Les formulaires fournissent l'interface par laquelle les informations sont saisi Les formulaires peuvent également contenir d'autres formulaires grâce aux fonctionnalités suivantes : - - [objets de sous-formulaire](FormObjects/subform_overview.md) - - [formulaires hérités](./properties_FormProperties.md#inherited-form-name) +- [objets de sous-formulaire](FormObjects/subform_overview.md) +- [formulaires hérités](./properties_FormProperties.md#inherited-form-name) ## Création de formulaires 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'é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 : +- **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 : ``` { @@ -70,9 +70,9 @@ Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suiv Il existe deux catégories de formulaires : - - **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. +- **Les formulaires projet** - Formulaires indépendants qui ne sont rattachés à aucune table. Ils sont destinés plus particulièrement à la création de boîtes de dialogue d'interface et de composants. Les formulaires projet peuvent être utilisés pour créer des interfaces facilement conformes aux normes du système d'exploitation. - - **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. +- **Les formulaires table** - Rattachés à des tables spécifiques et bénéficient ainsi de fonctions automatiques utiles pour développer des applications basées sur des bases de données. En règle générale, une table possède des formulaires d'entrée et de sortie séparés. En règle générale, vous sélectionnez la catégorie de formulaire lorsque vous créez le formulaire, mais vous pouvez la modifier par la suite. @@ -80,15 +80,15 @@ En règle générale, vous sélectionnez la catégorie de formulaire lorsque vou Chaque formulaire est composé d'au moins deux pages : - - une page 1 : une page principale, affichée par défaut - - une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. +- une page 1 : une page principale, affichée par défaut +- une page 0 : une page de fond, dont le contenu est affiché sur une page sur deux. 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. +- 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. 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. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index a8e027a858e3db..69f494bd4c96d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ L'éditeur de formulaires 4D prend en charge les macros. Une macro est un ensemb Par exemple, si vous avez un rapport récurrent avec une mise en forme spécifique (par exemple, certains textes doivent apparaître en rouge et certains textes en vert), vous pouvez créer une macro pour définir automatiquement la couleur. Vous pouvez créer des macros pour l'éditeur de formulaires de 4D qui pourront : - - Créer et exécuter du code 4D - - Afficher les boîtes de dialogue - - Sélectionnez des objets de formulaire - - Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés - - Modifier les fichiers de projet (mettre à jour, supprimer) +- Créer et exécuter du code 4D +- Afficher les boîtes de dialogue +- Sélectionnez des objets de formulaire +- Ajouter / supprimer / modifier des formulaires, des objets de formulaire ainsi que leurs propriétés +- Modifier les fichiers de projet (mettre à jour, supprimer) Le code des macros prend en charge les [class functions (fonctions de classe)](Concepts/classes.md) et les [propriétés d'objet de formulaire en JSON](FormObjects/properties_Reference.md) pour vous permettre de définir n'importe quelle fonctionnalité perso @@ -238,9 +238,9 @@ Par exemple, si des objets de la page courante et des groupes ont été modifié Lors de la manipulation de l'attribut `method` des objets de formulaire, vous pouvez définir la valeur de l'attribut de deux manières différentes dans les macros : - - En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). +- En utilisant une [chaîne de caractères contenant le nom/chemin du fichier](FormObjects/properties_Action.md#method). - - En utilisant un objet avec la structure suivante : +- En utilisant un objet avec la structure suivante : | Propriété | Type | Description | | --------- | ---- | ------------------ | @@ -252,9 +252,9 @@ Lors de la manipulation de l'attribut `method` des objets de formulaire, vous po La propriété `$4dId` définit un ID unique pour chaque objet de la page courante. Cette clé est utilisée par le processeur de macros pour gérer les modifications dans `$result.currentPage` : - - si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. - - si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. - - si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. +- si la clé `$4dId` est manquante à la fois dans le formulaire et dans un objet dans `$result`, l'objet est créé. +- si la clé `$4dId` existe dans le formulaire mais est manquante dans `$result`, l'objet est supprimé. +- si la clé `$4dId` existe à la fois dans le formulaire et dans un objet dans `$result` l'objet est modifié. #### Exemple @@ -297,8 +297,8 @@ La fonction `onError` est exécutée lorsque le processeur de macros rencontre u Lors de l'exécution d'une macro, si 4D rencontre une erreur qui empêche l'annulation de la macro, il n'exécute pas la macro. C'est le cas par exemple si l'exécution d'une macro se traduirait par : - - supprimer ou modifier un script dont le fichier est en lecture seule. - - créer deux objets avec le même ID interne. +- supprimer ou modifier un script dont le fichier est en lecture seule. +- créer deux objets avec le même ID interne. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 74597e4f33ad74..3e37b327071589 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Vous pouvez utiliser des bibliothèques d'objets dans vos formulaires. Une bibli 4D propose deux types de bibliothèques d'objets : - - une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. - - des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. +- une bibliothèque d'objets standard préconfigurée, standard, disponible dans tous vos projets. +- des bibliothèques d’objets personnalisées, que vous pouvez utiliser pour stocker vos objets formulaires favoris ou des formulaires projets complets. ## Utilisation de la bibliothèque d'objets standard @@ -57,13 +57,13 @@ Une même bibliothèque d’objets ne peut être ouverte que par un seul projet Pour ouvrir une bibliothèque d’objets personnalisée, sélectionnez la commande **Ouvrir>Bibliothèque d’objets...** dans le menu **Fichier** ou la barre d’outils de 4D. Une boîte de dialogue standard d’ouverture de fichiers apparaît, vous permettant de désigner la bibliothèque d’objets à ouvrir. Vous pouvez sélectionner les types de fichier suivants : - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Les bibliothèques d’objets personnalisées sont des projets 4D classiques. Seules les parties suivantes d'un projet sont exposées lorsqu'il est ouvert en tant que bibliothèque : - - formulaires projet - - pages 1 des formulaires +- formulaires projet +- pages 1 des formulaires ### Construire une bibliothèque d’objets @@ -75,10 +75,10 @@ Les principales opérations sont accessibles via le menu contextuel ou le menu d ![](../assets/en/FormEditor/library5.png) - - **Couper** ou **Copier** vers le conteneur de données - - **Coller** un objet à partir du conteneur de données - - **Effacer** - supprime l'objet de la bibliothèque - - **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. +- **Couper** ou **Copier** vers le conteneur de données +- **Coller** un objet à partir du conteneur de données +- **Effacer** - supprime l'objet de la bibliothèque +- **Renommer** - une boite de dialogue apparait pour vous permettre de renommer l'élément. A noter que les noms d'objets doivent être uniques dans une bibliothèque. Vous pouvez placer dans la bibliothèque des objets individuels (y compris des sous-formulaires) ou des ensembles d’objets. Chaque objet ou ensemble d’objets est regroupé en un seul élément : @@ -94,9 +94,9 @@ Le copier-coller ou le glisser-déposer de certains objets dans la bibliothèque Voici la liste des objets dépendants qui seront collés dans la bibliothèque en même temps que l’objet principal qui les utilise (le cas échéant) : - - Enumérations - - Formats/Filtres - - Images - - Messages d’aide (liés à un champ) - - Méthodes objet +- Enumérations +- Formats/Filtres +- Images +- Messages d’aide (liés à un champ) +- Méthodes objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 1ab1f2468d20e9..6ab25ecd64f45e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur - - **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. - - **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. - - `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. > For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index 3975192bd288ab..71ca53ca29663e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ Vous créez et personnalisez les formulaires de votre application en manipulant Les formulaires 4D prennent en charge un grand nombre d'objets **actifs** et **statiques** intégrés : - - **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. - - **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. +- **Les objets actifs** réalisent une tâche ou une fonction de l’interface. Les champs sont des objets actifs. Les autres objets actifs — objets saisissables (variables), combo box, listes déroulantes, boutons image, etc. — stockent des données temporairement en mémoire ou effectuent une tâche telle que l'ouverture d'une boite de dialogue, l'impression d'un état ou le lancement d'un processus d'arrière-plan. +- **Les objets statiques** sont généralement utilisés pour le décor, les libellés ou encore l'interface graphique du formulaire. A la différence des objets actifs, les objets statiques ne sont pas associés à des variables. A noter qu'il est possible d'insérer des éléments dynamiques dans les objets statiques. ## Gérer les objets de formulaire Vous pouvez ajouter des objets dans un formulaire de nombreuses manières : - - **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. +- **[Éditeur de formulaire](FormEditor/formEditor.md) :** en glissant un objet de la barre d'outils de l'éditeur de formulaire vers le formulaire. Utilisez ensuite la liste de propriétés pour indiquer les propriétés de l'objet. - - **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. +- **4D language**: Commands from the `Objects (Forms)` theme such as [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) allow to create and define form objects. - **Code JSON dans les formulaires dynamiques :** Définissez les propriétés à l'aide du JSON. Utilisez la propriété [type](properties_Object.md#type) pour définir le type d'objet puis indiquez ses [propriétés disponibles](properties_Reference.md). Exemple d'un objet bouton : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4ecac54599da22..aa32863caa2e9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Le cas échéant, l'icône déployer/contractée est automatiquement affichée Le contenu d'un objet formulaire liste hiérarchique peut être initialisé de l'une des manières suivantes : - - Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. - - Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. +- Associer une [énumération](properties_DataSource.md#choice-list) à l'objet. L'énumération doit avoir été définie dans l'éditeur de listes en mode Développement. +- Assignez directement une référence de liste hiérarchique à la [variable ou à l'expression](properties_Object.md#variable-or-expression) associée à l'objet formulaire. Dans les deux cas, vous gérez une liste hiérarchique lors de l'exécution via sa référence *ListRef*, à l'aide des commandes de [liste hiérarchique](../commands/theme/Hierarchical_Lists.md) du langage 4D. @@ -34,9 +34,9 @@ mylist:=New list Chaque représentation de liste dispose de caractéristiques propres et partage des caractéristiques communes avec l’ensemble des représentations. Les caractéristiques propres à chaque représentation de liste sont les suivantes : - - La sélection, - - L’état déployé/contracté des éléments, - - La position du curseur de défilement. +- La sélection, +- L’état déployé/contracté des éléments, +- La position du curseur de défilement. The other characteristics (font, font size, style, entry control, color, list contents, icons, etc.) are common to all the representations and cannot be modified separately. Consequently, when you use commands based on the expanded/collapsed configuration or the current item, for example `Count list items` (when the final `*` parameter is not passed), it is important to be able to specify the representation to be used without any ambiguity. @@ -82,14 +82,14 @@ Comme pour les autres commandes de gestion des propriété d’objets, il est po Il est possible de modifier l’apparence d’une liste hiérarchique dans un formulaire à l’aide de plusieurs commandes 4D génériques. Vous devez passer à ces commandes soit le nom d’objet de la liste hiérarchique (en utilisant le paramètre \*), soit son nom de variable (contenant la valeur RefListe) : - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Rappel : A l'exception de la commande `OBJECT SET SCROLL POSITION`, ces commandes modifient toutes les représentations d'une même liste, même si vous désignez une liste via son nom d'objet. @@ -107,8 +107,8 @@ Ce principe est appliqué quel que soit l’ordre d’appel des commandes. Si un Vous pouvez généralement travailler de deux manières avec le contenu des listes hiérarchiques : par position ou par référence. - - Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. - - Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. +- Lorsque vous travaillez par position, 4D se base sur la position relative des éléments dans la liste affichée à l'écran pour les identifier. Le résultat sera différent selon que certains éléments hiérarchiques sont déployés ou non. A noter qu'en cas de multi-représentation, chaque objet de formulaire comporte sa propre configuration d'éléments contractés/déployés. +- Lorsque vous travaillez par référence, 4D se base sur le numéro unique *réfElément* des éléments de la liste. Chaque élément peut être ainsi désigné, quelle que soit sa position ou son affichage dans la liste hiérarchique. ### Exploiter les numéros de référence des éléments (réfElément) @@ -149,9 +149,9 @@ En pratique, vous devez vous préoccuper des numéros de référence d'élément Vous pouvez choisir si les éléments de la liste hiérarchique peuvent être modifiés par l'utilisateur à l'aide du raccourci **Alt + clic** (Windows)/ **Option + clic** (macOS), ou en effectuant un clic long sur le texte de l'élément. - - Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). +- Quelle que soit la source de données de la liste hiérarchique, vous pouvez contrôler l'ensemble de l'objet avec la propriété [Saisissable](properties_Entry.md#enterable). - - En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- En outre, si vous remplissez la liste hiérarchique à l'aide d'une liste créée dans l'éditeur de listes, vous contrôlez si un élément d'une liste hiérarchique est modifiable à l'aide de l'option **Élément modifiable** dans l'éditeur de listes. For more information, see [Setting list properties](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 5e370324f87391..ecbadaf53b312b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -33,7 +33,7 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so > Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). - - le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. +- le formulaire détaillé à associer au [sous-formulaire de liste](#list-form). Le formulaire détaillé peut être utilisé pour saisir ou afficher des sous-enregistrements. Il contient généralement plus d'informations que le sous-formulaire liste. Naturellement, le formulaire détaillé doit appartenir à la même table que le sous-formulaire. Vous utilisez normalement un formulaire de sortie comme formulaire liste et un formulaire d'entrée comme formulaire détaillé. Si vous n'indiquez pas le formulaire à utiliser pour la saisie pleine page, 4D utilise automatiquement le format d'entrée par défaut de la table. #### Grammaire JSON @@ -55,8 +55,8 @@ Cette option permet de désigner un formulaire détaillé à utiliser dans un so Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulaire de liste. Les options suivantes sont disponibles : - - Ne rien faire : ignore le double-clic. - - Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. +- Ne rien faire : ignore le double-clic. +- Ajouter un enregistrement : crée un nouvel enregistrement dans le sous-formulaire et passe en mode édition. Pour cela, il vous suffit de cliquer deux fois sur le champ à modifier afin de le passer en mode édition (veillez à laisser suffisamment de temps entre les deux clics pour ne pas générer de double-clic). Sinon, il sera créé en mode page, dans le [formulaire détaillé](#detail-form) associé au sous-formulaire. #### Grammaire JSON @@ -80,9 +80,9 @@ Action à effectuer en cas de double-clic sur une ligne vide d'un sous-formulair Définit l'action à réaliser lorsqu'un utilisateur double-clique sur une ligne dans un sous-formulaire liste. Les options disponibles sont : - - **Do nothing** (default): Double-clicking a row does not trigger any automatic action. - - **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. - - **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. +- **Do nothing** (default): Double-clicking a row does not trigger any automatic action. +- **Modifier enregistrement** : Un double-clic sur une ligne permet d'afficher l'enregistrement correspondant dans le [ formulaire détaillé défini pour le sous-formulaire liste](#detail-form). L'enregistrement est ouvert en lecture-écriture afin qu'il puisse être modifié. +- **Display Record**: Identical to the previous action, except that the record is opened in read-only mode so it cannot be modified. Regardless of the action selected/chosen, the `On Double clicked` form event is generated. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 522f4bb609875e..3a8c52a17e060c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ Les formes sont des [objets statiques](formObjects_overview.md#active-and-static Les formes 4D prennent en charge les formes basiques suivantes : - - rectangles - - lignes - - ovales +- rectangles +- lignes +- ovales ## Rectangle diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 455819ccb29fb5..63b61e272c7a0a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ L’utilisation type du séparateur est le formulaire de sortie dans lequel les Les caractéristiques générales des séparateurs sont les suivantes : - - Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. - - Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. - - Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. - - Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. +- Vous pouvez placer autant de séparateurs que vous voulez dans tout type de formulaire. De même, il est possible de mêler des séparateurs horizontaux et verticaux dans un même formulaire. +- Un séparateur peut traverser un objet. Celui-ci sera redimensionné lors du déplacement du séparateur. +- Les butées des séparateurs sont calculées de manière à ce que les objets déplacés restent entièrement visibles dans le formulaire ou ne passent pas sous/à côté d’un autre séparateur. Lorsque la propriété [Pousseur](properties_ResizingOptions.md#pusher) est associée à un séparateur, son déplacement vers la droite ou vers le bas ne rencontre pas de butée. +- Les redimensionnements effectués dans les formulaires à l’aide des séparateurs ne sont conservés que durant l’affichage du formulaire. Une fois le formulaire refermé, les dimensions initiales sont restaurées. Une fois inséré, un séparateur se présente sous la forme d’un trait. Vous pouvez modifier son [style de bordure](properties_BackgroundAndBorder.md#border-line-style) afin d’obtenir un trait plus ou moins épais, ou [modifier sa couleur](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Vous pouvez associer une méthode objet à un séparateur. Cette méthode sera a Une [variable](properties_Object.md#variable-or-expression) de type *Entier long* est associée à chaque objet séparateur. Cette variable peut être utilisée dans vos méthodes objet et/ou formulaire. Elle prend pour valeur le déplacement courant, en pixels, du séparateur. - - Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, - - Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, - - Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. +- Si elle est négative : le déplacement a été effectué vers le haut ou vers la gauche, +- Si elle est positive : le déplacement a été effectué vers le bas ou vers la droite, +- Si elle est égale à 0 : le séparateur a été relâché à son emplacement d’origine. Vous pouvez également déplacer le séparateur par programmation : il suffit de modifier la valeur de la variable associée. Imaginons par exemple qu’un séparateur vertical soit associé à la variable `sépara1`. Si vous écrivez `sépara1:=-10`, le séparateur sera déplacé de 10 pixels vers la gauche — comme si l’utilisateur l’avait fait manuellement. Le déplacement s’effectue au terme de l’exécution de la méthode objet ou formulaire contenant l’instruction. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index aaf8a2ef9d1791..e48f045aad20bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Pour plus d'informations, veuillez vous reporter à la section [Utiliser des ind ## Voir également - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 211a36f4fe1939..abd9d336f929c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Un sous-formulaire est un formulaire inclus dans un autre formulaire. Afin de bien définir les notions mises en oeuvre avec les sous-formulaires, voici quelques définitions relatives aux termes employés : - - **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. - - **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). - - **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. - - **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. - - **Formulaire liste écran** : instance de sous-formulaire en liste. - - **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. +- **Sous-formulaire** : formulaire destiné à être inclus dans un autre formulaire, lui-même nommé formulaire parent. +- **Formulaire parent** : formulaire contenant un ou plusieurs sous-formulaire(s). +- **Conteneur de sous-formulaire** : objet inclus dans le formulaire parent, contenant une instance du sous-formulaire. +- **Instance de sous-formulaire** : la représentation d’un sous-formulaire dans un formulaire parent. Cette notion est importante car il est possible d’afficher plusieurs instances d’un même sous-formulaire dans un formulaire parent. +- **Formulaire liste écran** : instance de sous-formulaire en liste. +- **Formulaire détaillé** : formulaire de saisie en page associé au sous-formulaire en liste et accessible via un double-clic dans la liste. ## Sous-formulaires en liste @@ -43,8 +43,8 @@ You can bind [a variable or an expression](properties_Object.md#variable-or-expr By default, 4D creates a variable or expression of [object type](properties_Object.md#expression-type) for a subform container, which allows you to share values in the context of the subform using the `Form` command. However, you can use a variable or expression of any scalar type (time, integer, etc.) especially if you only need to share a single value: - - Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. - - Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. +- Define a bound variable or expression of a scalar type and call the `OBJECT Get subform container value` and `OBJECT SET SUBFORM CONTAINER VALUE` commands to exchange values when [On Bound Variable Change](../Events/onBoundVariableChange.md) or [On Data Change](../Events/onDataChange.md) form events occur. Cette solution est recommandée pour synchroniser une seule valeur. +- Define a bound variable or expression of the **object** type and use the `Form` command to access its properties from the subform. Cette solution est recommandée pour synchroniser plusieurs valeurs. ### Synchronisation du formulaire parent et du sous-formulaire (valeur unique) @@ -58,8 +58,8 @@ Dans le formulaire parent, les deux objets (zone de saisie et conteneur de sous- To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. - - If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. +- If you use a variable (e.g. `parisTime`), it must be of the `text` or `time` type. +- If you use an expression (e.g. `Form.myValue`), it must contain a `text` value. La valeur texte doit être formatée "hh:mm:ss". @@ -88,15 +88,15 @@ It updates the value of `Form.clockValue` in the subform: L’événement formulaire [Sur modif variable liée](../Events/onBoundVariableChange.md) est généré : - - dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée - - si le sous-formulaire appartient à la page formulaire courante ou à la page 0. +- dès qu'une valeur est assignée à la variable/expression du formulaire parent, même si la même valeur est réassignée +- si le sous-formulaire appartient à la page formulaire courante ou à la page 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). La modification de la variable ou de l'expression liée déclenche des événements formulaire qui vous permettent de synchroniser les valeurs du formulaire parent et du sous-formulaire : - - Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. - - Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. +- Use the [On Bound Variable Change](../Events/onBoundVariableChange.md) form event to indicate to the subform (form method of subform) that the variable or expression was modified in the parent form. +- Use the [On Data Change](../Events/onDataChange.md) form event to indicate to the subform container that the variable or expression value was modified in the subform. #### Mise à jour du contenu d'un formulaire parent @@ -170,8 +170,8 @@ La communication entre le formulaire parent et les instances du sous-formulaire Pour répondre à ces besoins, 4D propose les mécanismes suivants : - - Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` - - Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` +- Appel de l’objet conteneur depuis le sous-formulaire via la commande `CALL SUBFORM CONTAINER` +- Exécution d’une méthode dans le contexte du sous-formulaire via la commande `EXECUTE METHOD IN SUBFORM` > La commande `GOTO OBJECT` peut rechercher l’objet de destination dans le formulaire parent même si elle exécutée depuis un sous-formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index 0ec07cb47cd10e..ffdb38e99ad775 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ Sous macOS, les onglets peuvent être orientés, en plus de la position standard Pour fournir les étiquettes d'un onglet, vous pouvez utiliser : - - un objet - - une liste déroulante - - un tableau +- un objet +- une liste déroulante +- un tableau ### Utiliser un objet diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 2f4e9c9a419512..fe63997661a170 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Une fois qu’un texte a été orienté, il reste possible de modifier sa taille ![](../assets/en/FormObjects/staticText2.png) - - Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; - - Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; - - Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. +- Si l’objet est redimensionné dans la direction A, sa [largeur](properties_CoordinatesAndSizing.md#width) sera modifiée ; +- Si l’objet est redimensionné dans la direction C, sa [hauteur](properties_CoordinatesAndSizing.md#height) sera modifiée ; +- Si l’objet est redimensionné dans la direction B, sa [largeur](properties_CoordinatesAndSizing.md#width) et sa [hauteur](properties_CoordinatesAndSizing.md#height) seront modifiées. ## Propriétés prises en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index b9e4d91af4330c..d3d641c6e7d143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Chaque opération élémentaire enregistrée dans le fichier d’historique appa Les informations affichées permettent d’identifier la source et le contexte de chaque opération : - - **Opération** : numéro de séquence de l’opération dans le fichier d’historique. +- **Opération** : numéro de séquence de l’opération dans le fichier d’historique. - **Action** : type d’opération effectuée. Cette colonne peut contenir les opérations suivantes : - Ouverture du fichier de données : ouverture d’un fichier de données. @@ -30,26 +30,26 @@ Les informations affichées permettent d’identifier la source et le contexte d - Annulation de transaction : transaction annulée. - Contexte de mise à jour : modification des données supplémentaires (ex : un appel à `CHANGE CURRENT USER` ou `SET USER ALIAS`). - - **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. +- **Table** : table à laquelle appartient l’enregistrement ou le BLOB ajouté/supprimé/modifié. - - **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. +- **Clé primaire/BLOB** : contenu de la clé primaire de l'enregistrement (lorsque la clé primaire est composée de plusieurs champs, les valeurs sont séparées par des points-virgules), ou numéro de séquence du BLOB impliqué dans l’opération. - - **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. +- **Process** : numéro interne du process dans lequel l’opération a été effectuée. Ce numéro interne correspond au contexte de l’opération. - - **Taille** : taille (en octets) des données traitées par l’opération. +- **Taille** : taille (en octets) des données traitées par l’opération. - - **Date et Heure** : date et heure à laquelle l’opération a été effectuée. +- **Date et Heure** : date et heure à laquelle l’opération a été effectuée. - - **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. +- **Utilisateur système** : nom de l’utilisateur système ayant effectué l’opération. En mode client-serveur, le nom de la machine côté client est affiché; en mode mono-utilisateur, le nom de session de l'utilisateur s'affiche. - - **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. +- **Utilisateur 4D** : nom de l’utilisateur 4D ayant effectué l’opération. Si un alias est défini pour l'utilisateur, l'alias s'affiche à la place du nom d'utilisateur 4D. - **Valeurs** : valeurs des champs de l’enregistrement en cas d’ajout ou de modification. Les valeurs sont séparées par des “;”. Seules les valeurs représentées sous forme alphanumérique sont affichées. Seules les valeurs représentées sous forme alphanumérique sont affichées.\ Seules les valeurs représentées sous forme alphanumérique sont affichées.\ ***Note :** Si la base de données est chiffrée et si aucune clé de données valide correspondant au fichier d'historique ouvert n'a été fournie, les valeurs chiffrées ne sont pas affichées dans cette colonne.* - - **Enregistrements** : numéro de l’enregistrement. +- **Enregistrements** : numéro de l’enregistrement. Cliquez sur **Analyser** pour mettre à jour le contenu du fichier d'historique courant de l'application sélectionnée (nommé par défaut dataname.journal). Le bouton Parcourir peut être utilisé pour sélectionner et ouvrir un autre fichier journal pour l'application. Le bouton **Exporter...** peut être utilisé pour exporter le contenu du fichier en tant que texte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md index fa58970ba5d2c8..e829a363d9b569 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ La zone "Enregistrements trouvés dans le fichier de données" comporte deux tab - Si tous les enregistrements et toutes les tables ont été attribués, seule la zone principale est affichée. Les noms des tables attribuées automatiquement sont affichés en caractères verts. Les groupes qui n'ont pas encore été attribués, c'est-à-dire, les tables qui n'ont pas pu être associées à des enregistrements sont affichées en caractères rouges. - Voir le compte rendu Par défaut, l’option est cochée pour tous les groupes avec les enregistrements qui peuvent être associés à une table. - - Le deuxième tableau liste les tables du fichier de structure. +- Le deuxième tableau liste les tables du fichier de structure. ### Attribution manuelle @@ -74,7 +74,7 @@ Le bouton **Ignorer enregistrements** permet de supprimer l’association effect Une fois la réparation terminée, 4D génère un fichier de compte-rendu dans le dossier Logs du projet. Ce fichier liste l’ensemble des opérations qui ont été menées. Il est créé au format xml et est nommé : *ApplicationName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" où : - - *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", - - *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". +- *ApplicationName* est le nom du fichier de structure sans extension, par exemple "Factures", +- *aaaa-mm-jj hh-mm-ss* est l'horodatage du fichier, basé sur la date et l'heure système locales au moment du lancement de l'opération de vérification, par exemple "2019-02-11 15-20-45". Lorsque vous cliquez sur le bouton **Voir le compte rendu**, 4D affiche le fichier de compte-rendu le plus récent dans le navigateur par défaut de l’ordinateur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md index c7504859766eb5..174df7f636257f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ La propriété **Titre** contient le libellé d'un menu ou d'une ligne de menu, Dans l'éditeur de menus, vous pouvez saisir directement le libellé "en dur". Vous pouvez également saisir une référence pour une variable ou un élément XLIFF, ce qui facilitera la mise à jour et la traduction des applications. Vous pouvez utiliser types de références suivants : - - Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. - - Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. +- Une référence à une ressource XLIFF, du type :xliff:MonLibellé. Pour plus d’informations sur les références XLIFF, reportez-vous à la section *Annexe B : Architecture XLIFF* du *Mode Développement 4D*. +- Un nom de variable interprocess suivi d’un chiffre, par exemple :`:<>vlang,3`. Il suffit de changer le contenu de cette variable pour modifier le libellé du menu lors de son affichage. Dans ce cas, le libellé fera appel à une ressource XLIFF. La valeur contenue dans la variable `<>vlang` correspond à l’attribut *id* de l’élément *group*. La seconde valeur (3 dans cet exemple) désigne l’attribut *id* de l’élément *trans-unit*. En utilisant le langage 4D, vous définissez la propriété Title à l'aide du paramètre *itemText* des commandes `APPEND MENU ITEM`, `INSERT MENU ITEM`, et `SET MENU ITEM`. 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 42a0156f88c10c..efc6f3254a2bd7 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 @@ -134,8 +134,8 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. - - En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. +- Après une modification du fichier journal en utilisant [`SELECT LOG FILE`](../commands/select-log-file.md) ou les [paramètres de sauvegarde](../Backup/settings.md#log-management), la commande [`New log file`](../commands/new-log-file.md) valide maintenant le changement, sans attendre une sauvegarde. L'erreur -4447 (sauvegarde requise) n'est plus générée. +- En raison de leur [nouvelle architecture](../Desktop/building.md#build-component), les composants construits avec 4D 20 R8 et suivantes ne peuvent pas être installés dans les versions 4D précédentes. ## 4D 20 R7 @@ -164,9 +164,9 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Changements de comportement - - Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. - - La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. - - L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. +- Les documentations du [Langage 4D](../commands/command-index.md) et du [Langage 4D Write Pro](../WritePro/commands/command-index.md) sont maintenant entièrement disponibles sur developer.4d.com. Découvrez toutes les nouvelles fonctionnalités et les modifications concernant ces documentations dans cette release note. +- La commande [`File`](../commands/file.md) (ainsi que [`4D.File.new()`](../API/FileClass.md#4dfilenew)) est plus stricte lorsqu'il s'agit de vérifier la syntaxe du *path* fourni en paramètre. +- L'action de [permission](../ORDA/privileges.md#permission-actions) **describe** a été supprimée des actions disponibles. L'accès aux urls [`/rest/$catalog`](../REST/$catalog.md) n'est plus contrôlé. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -174,25 +174,25 @@ Lisez [**Les nouveautés de 4D 20 R6**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). - - Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). - - Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). - - Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. - - Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. - - Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. - - Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. - - Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. - - Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). - - Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). - - Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. - - Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). - - Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. +- Prise en charge des opérateurs de comparaison sur les [références d'objet](../Concepts/dt_object.md#operateurs-sur-les-objets) et les [références de collection](../Concepts/dt_collection.md#operateurs-sur-les-collections). [`collection.query()`](../API/CollectionClass.md#query) prend maintenant en charge les [références d'objet et de collection en tant que valeurs de requête](../API/CollectionClass.md#reference-dobject-ou-de-collection-comme-value). +- Lorsqu'un composant a un [espace de noms déclaré](../Extensions/develop-components.md#declaring-the-component-namespace), ses classes sont maintenant automatiquement partagées entre tous les composants chargés dans le projet hôte via [`cs.`](../Concepts/classes.md#cs). +- Gestionnaire de composants : Prise en charge des [composants stockés sur GitHub](../Project/components.md#components-stored-on-github). +- Nouvelle fonction [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) et API REST [`$clean`](../REST/$clean.md) pour obtenir une nouvelle entity selection basée sur l'entity selection originale mais sans ses entités supprimées. +- Nouvelle fonction [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) et API REST [`$info/privileges`](../REST/$info.md) pour inspecter les privilèges de session plus facilement lors du débogage. +- Nouveau fichier [4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) pour personnaliser les zones Web embarquées dans 4D. +- Nouvelle classe [HTTPAgent](../API/HTTPAgentClass.md) et nouvelle propriété [`agent`](../API/HTTPRequestClass.md#options-parameter) pour la classe HTTPRequest. +- Nouvelles fonctions [`enableState()`](../API/WebFormClass.md) et [`disableState()`](../API/WebFormClass.md) pour contrôler les *states* des pages Qodly depuis le serveur. +- Nouvelle [API `$singleton`](../REST/$singleton.md) pour appeler les fonctions singleton exposées depuis REST et nouveaux [privilèges associés](../ORDA/privileges.md). +- Un [nouveau bouton de paramètre](../settings/web.md#activer-la-validation-dauthentification-rest-avec-la-fonction-dsauthentify) vous aide à mettre à niveau votre projet pour utiliser le mode REST "connexion forcée" (la méthode base `On REST Authentication` est maintenant obsolète). +- Un [nouvel onglet de paramètres](../Project/compiler.md#warnings) vous permet de définir la génération de warnings de manière globale. +- Plusieurs commandes, principalement du thème "Environnement 4D", sont maintenant thread-safe, ainsi que quelques sélecteurs des commandes [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md). +- Nouveau [composant 4D-QPDF](https://github.com/4d/4D-QPDF) qui fournit la commande `PDF Get attachments` pour extraire les pièces jointes d'un document PDF/A3. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R6) : liste de tous les bugs qui ont été corrigés dans 4D 20 R6. #### Changements de comportement - - Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). - - L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). +- Prise en charge de l'enchaînement de défilement dans les formulaires : les parents des sous-formulaires défilent désormais automatiquement lorsque les objets intégrés défilables ([verticalement](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalement](../FormObjects/properties_Appearance.md#horizontal-scroll-bar)) ont atteint leurs limites et que l'utilisateur continue de faire défiler à l'aide de la souris ou du trackpad (*overscrolling*). +- L'API REST [`$catalog`](../REST/$catalog.md) retourne maintenant les singletons (le cas échéant). ## 4D 20 R5 @@ -200,21 +200,21 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 #### Points forts - - Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. - - Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). - - 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 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. +- Nouveau [Gestionnaire de composants](../Project/components.md) permettant de contrôler les composants à travers un fichier `dependencies.json`. +- Prise en charge des structures de gestion d'erreur [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- La couche réseau QUIC prend désormais en charge le [*broadcasting*](../Desktop/clientServer.md#ouverture-d-un-projet-à-distance), [SSO](https://doc.4d.com/4Dv20R/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.fe.html) et [IPv6](https://doc.4d.com/4Dv20R/4D/20-R5/Paramètres-IP.300-6932707.fe.html). +- 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 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. #### Changements de comportement - - Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). - - Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). +- Les plug-ins *4D Internet Commands* et *4D for OCI* ne sont plus inclus dans les installateurs 4D. Pour obtenir ces plug-ins, vous devez vous connecter au [**portail de téléchargement des produits 4D**](https://product-download.4d.com/). +- Les modifications apportées à l'éditeur de structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont maintenant sauvegardés dans un fichier séparé nommé `catalog_editor.json` stocké dans le dossier [`Sources`](../Project/architecture.md#sources). ## 4D 20 R4 @@ -222,24 +222,24 @@ Lisez [**Les nouveautés de 4D 20 R4**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. - - Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). - - Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. - - Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). - - Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) - - Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. - - Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). - - Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). - - Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. +- Prise en charge du [format de cryptage `ECDSA`](../Admin/tls.md#encryption) pour les certificats TLS. +- Les connexions TLS client/serveur et serveur SQL sont désormais [configurées dynamiquement](../Admin/tls.md#enabling-tls-with-the-other-servers) (aucun fichier de certificat n'est requis). +- Format HTML direct pour les [exports de définition de structure](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Nouveau [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution. +- Les paramètres de méthode déclarés dans les prototypes `#DECLARE` ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md). +- Prise en charge des [formats de date et d'heure personnalisés](../Project/date-time-formats.md) +- Nouveau mot-clé [`Try(expression)`](../Concepts/error-handling.md#tryexpression) pour gérer les cas d'erreur simples. +- Nouvelle commande [`HTTP Parse message`](../commands/http-parse-message.md). +- Nouvelle option de compatibilité [Impression non bloquante](../settings/compatibility.md). +- Nouveau [mode édition](../Admin/dataExplorer.md#editing-data) dans le Data Explorer. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R4) : liste de tous les bugs qui ont été corrigés dans 4D 20 R4. #### Changements de comportement - - L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - - La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. - - Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). +- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple `C_TEXT($1)` ou `var $1 : Text`) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. +- La cohérence des sélections est désormais préservée lorsque certains enregistrements sont supprimés puis d'autres créés (voir [ce billet de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Dans la mise à jour de la [bibliothèque OpenSSL](#library-table), le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé. +- Assurez-vous que votre méthode base "On REST authentication" peut gérer les mots de passe en clair (le troisième paramètre est alors **False**) et que `Open datastore` chiffre votre connexion en passant l'option "tls" à **True** dans *connectionInfo*. Afin de permettre la vérification du mot de passe lorsque [l'annuaire des utilisateurs 4D utilise l'algorithme bcrypt](https://blog.4d.com/bcrypt-support-for-passwords/), la valeur "password" dans le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md) est maintenant envoyée en clair par défaut. Dans certains cas spécifiques, l'option "passwordAlgorithm" peut également être utilisée pour la compatibilité (voir la commande [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -247,21 +247,21 @@ Lisez [**Les nouveautés de 4D 20 R3**](https://blog.4d.com/fe-whats-new-in-4d-v #### Points forts - - Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). - - Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). - - Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) - - Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. - - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. +- Nouvelle fonction [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Prise en charge du paramètre *context* dans [`Formula from string`](../commands/formula-from-string.md). +- Prise en charge de la propriété `headers` dans le paramètre *connectionHandler* de [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marqueur de modification global](../ORDA/global-stamp.md) pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions : [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) et [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- L'assignation de références de fichiers à des attributs picture/blob est [prise en charge dans ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration). +- Les paramètres du fichier journal sont désormais [sauvegardés avec le fichier de données courant](../Backup/settings.md#log-management) +- Nouvelle syntaxe pour [déclarer des paramètres variadiques](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro : Prise en charge de [l'importation](../ViewPro/commands/vp-import-from-blob) et de [l'exportation](../ViewPro/commands/vp-export-to-blob) des documents 4D View Pro au format Blob. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R3) : liste de tous les bugs qui ont été corrigés dans 4D 20 R3. #### Changements de comportement - - Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). - - 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. +- Certaines erreurs ne pouvaient être interceptées par votre [méthode de gestion des erreurs](../Concepts/error-handling.md) qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : *Indice hors de l'intervalle*, *Type incompatible*, et *Déréférencement d'un pointeur Null*. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande [`ABORT`](../commands-legacy/abort.md). +- 4D n'inclut plus d'interpréteur PHP interne. Vous devez [configurer et exécuter votre propre interpréteur PHP](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) pour utiliser les commandes PHP. ## 4D 20 R2 @@ -283,7 +283,7 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr #### Changements de comportement - - **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. +- **Attention** : La valeur de départ [`offset`](../API/FileHandleClass.md#offset) des objets [4D.FileHandle](../API/FileHandleClass.md) était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions **20.1 HF1** et **20 R2** et la valeur est maintenant 0. ## 4D 20.x LTS diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index 48c74a65b4b864..9b0733a2694544 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Pour activer le suivi des changements de données, la structure de l'application De plus, pour assurer la bonne marche de la fonctionnalité, les conditions suivantes sont requises : - - Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. - - Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : +- Le champ `__GlobalStamp` doit être de type *Integer 64 bits*, avec *index automatique*, *Exposer comme ressource REST*, et *Invisible* sélectionné. +- Une table `__DeletedRecords` doit être ajoutée, avec les champs suivants : | Champ | Type | Description | | ------------------------------------------------------- | --------------- | ------------------------------------------ | @@ -64,8 +64,8 @@ Pour activer le suivi des changements de données : 4D effectue alors les modifications suivantes : - - Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). - - Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. +- Un champ `__GlobalStamp` préconfiguré est ajouté à la ou aux table(s). +- Si elle n'existe pas déjà, une table `__DeletedRecords` est ajoutée à la structure. Pour désactiver le suivi des changements de données : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index 893dd7b0d65fc2..cff4979c77ce9d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ La session web créée sur le datastore distant est identifiée à l'aide d'un I Le `localID` est local à la machine qui se connecte au datastore distant, ce qui signifie que : - - Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. - - Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. - - Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. +- Si d'autres process de la même application doivent accéder au même datastore distant, ils peuvent utiliser le même `localID` et partager alors la même session. +- Si un autre process de la même application ouvre le même datastore distant, mais avec un autre `localID`, il créera une nouvelle session sur le datastore distant. +- Si un autre poste se connecte au même datastore distant avec le même `localID`, il créera une autre session avec un autre cookie. Ces principes sont illustrés dans les graphiques suivants : @@ -29,9 +29,9 @@ Ces principes sont illustrés dans les graphiques suivants : Les process qui gèrent les sessions d'accès aux datastore apparaissent dans la fenêtre d'administration de 4D Server : - - nom : "REST Handler : \" - - type : type Worker Server HTTP - - session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. +- nom : "REST Handler : \" +- type : type Worker Server HTTP +- session : le nom de session est le nom d'utilisateur passé à la commande `Open datastore`. Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 8a6a0f445c4066..7360fc6a8f99fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ Depuis macOS Sierra, les applications Mac bénéficient d'onglets automatiques f Vous pouvez bénéficier de cette fonctionnalité dans les environnements de 4D suivants (versions 64 bits uniquement) : - - Fenêtres de l'éditeur de code - - Fenêtres de l'éditeur de formulaires +- Fenêtres de l'éditeur de code +- Fenêtres de l'éditeur de formulaires Toutes les fenêtres de ces éditeurs peuvent être ouvertes sous forme d'onglets : @@ -47,9 +47,9 @@ Dans la boîte de dialogue des Préférences de 4D, l'option **Fenêtre à ongle Trois options sont disponibles : - - **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). - - **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). - - **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. +- **Selon les préférences système** (défaut) : les fenêtres de 4D se comporteront comme elles ont été définies dans les Préférences Système de macOS (En plein écran uniquement, Toujours ou Manuellement). +- **Never**: Opening a new document in 4D form editor or Code Editor will always result in creating a new window (tabs are never created). +- **Toujours** : L'ouverture d'un nouveau document dans l'éditeur de formulaires ou l'éditeur de méthodes de 4D provoquera l'ajout d'un onglet. ### Apparence (macOS uniquement) @@ -59,9 +59,9 @@ Ce menu vous permet de sélectionner la palette de couleurs à utiliser pour l'e Trois options sont disponibles : - - **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. - - **Clair** : Utiliser le thème clair - - **Sombre** : utiliser le thème sombre +- **Selon les préférences de la palette de couleurs du système** (par défaut) : Utilisez la palette de couleurs définie dans les préférences système de macOS. +- **Clair** : Utiliser le thème clair +- **Sombre** : utiliser le thème sombre > Cette préférence n'est prise en charge que sur macOS. Sous Windows, la palette "Light" est toujours utilisée. @@ -73,8 +73,8 @@ Si cette option est cochée, lorsque l’utilisateur passe en mode Application v Si vous sélectionnez cette option, deux éléments s'ajoutent au menu **Fichier > Nouveau** et au bouton **Nouveau** de la barre d'outils : - - **Database...** - - **Base de données à partir d'une définition de structure...** +- **Database...** +- **Base de données à partir d'une définition de structure...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Lors de la création d’un nouveau fichier de données, 4D utilise la langue d Cette zone permet de configurer l'accès à la documentation HTML de 4D qui s'affiche dans votre navigateur courant : - - When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; - - Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . +- When you hit the **F1** key while the cursor is inserted in a 4D class function or command name in the Code Editor; +- Lorsque l'utilisateur double-clique sur une commande dans la **page des commandes** de l'Explorateur . ### Langue de documentation @@ -151,8 +151,8 @@ Langue de la documentation HTML à afficher. Vous pouvez sélectionner une docum Définit l'emplacement des pages de documentation recherchées par 4D. - - Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. - - If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. +- Lorsque cette option est cochée (par défaut), 4D recherche d'abord la page dans le dossier local (voir ci-dessous). Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Si la page est trouvée à l'emplacement défini, elle est affichée dans le navigateur courant. Ce principe permet par exemple de travailler en mode déconnecté, en accédant à une version locale de la documentation. +- If it is not found, 4D displays an error message in the browser. Si elle n'est pas trouvée, 4D affiche un message d'erreur dans le navigateur. ### Dossier local diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 8630544dd8e932..aed53f1d39992c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Cette page permet de sélectionner, de créer ou de configurer les thèmes de l' Sélectionnez, dans cette liste, le thème à appliquer à l'éditeur de code. Tous les thèmes disponibles sont affichés, y compris les thèmes personnalisés (le cas échéant). 4D propose deux thèmes par défaut : - - **Default Light Theme** - - **Default Dark Theme** +- **Default Light Theme** +- **Default Dark Theme** > Les thèmes par défaut ne peuvent être ni modifiés ni supprimés. @@ -38,8 +38,8 @@ Si des valeurs clés ne sont pas définies dans un thème personnalisé, elles p Définir un thème signifie : - - définir une police et une taille de police pour l'ensemble de l'éditeur de code, - - attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. +- définir une police et une taille de police pour l'ensemble de l'éditeur de code, +- attribuer des styles et des couleurs spécifiques à chaque élément de langage 4D (champs, tables, variables, paramètres, SQL, etc.), à chaque élément de langage SQL (mots-clés, fonctions, etc.) et aux fonds de couleur. La combinaison de couleurs et de styles différents est particulièrement utile à des fins de maintenance du code. @@ -83,8 +83,8 @@ Cette page configure les options d'affichage de l'éditeur de code. Permet de désactiver/activer les paramètres du code "international" pour l'application 4D locale. - - **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. - - **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. +- **non coché (par défaut)** : Les paramètres Anglais-US et la langue de programmation anglaise sont utilisés dans les méthodes 4D. +- **coché** : Les paramètres régionaux sont utilisés dans les méthodes 4D. > Si vous modifiez cette option, vous devez redémarrer l'application 4D pour que le changement soit pris en compte. @@ -138,9 +138,9 @@ Permet de masquer, par défaut, toutes les icônes plier/déplier lorsque vous a Active l'insertion automatique de () et de caractères fermants lors de la saisie du code. Cette option contrôle deux fonctionnalités automatiques : - - **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). +- **paire de parenthèses ()** : Ajoutée après une commande 4D, un mot-clé ou une méthode projet insérée à partir d'une liste de suggestions ou de complétion, si l'élément inséré nécessite un ou plusieurs arguments obligatoires. Par exemple, si vous tapez "C_OB" et vous appuyez sur la touche Tab, 4D écrit "C_OBJECT()" et place le point d'insertion à l'intérieur du (). - - **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : +- **fermeture }, ), ] ou "** : caractère ajouté lorsque vous tapez respectivement une ouverture {, (, ] ou ". Cette fonction permet d'insérer des paires de symboles correspondants au point d'insertion ou autour d'un texte sélectionné. Par exemple, si vous mettez en surbrillance une chaîne de caractères et que vous tapez un simple caractère ", toute la chaîne sélectionnée sera entourée de "" : ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permet de mettre en surbrillance toutes les occurrences d'un(e) même variable o ![](../assets/en/Preferences/optionsVariables.png) - - **Non** (par défaut) : Pas de surbrillance - - **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué - - **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné +- **Non** (par défaut) : Pas de surbrillance +- **Sur curseur** : Toutes les occurrences sont mises en évidence lorsque le texte est cliqué +- **Sur sélection** : Toutes les occurrences sont mises en évidence lorsque le texte est sélectionné La couleur de surlignage peut être modifiée dans la page [Définition d'un thème](#définition-dun-thème). 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 b6b261c6a82eac..d0e9f6ced759c4 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 @@ -42,8 +42,8 @@ La hiérarchie du dossier Project se présente généralement comme suit : Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : - - 4D - - 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (lecture seule, voir [Ouvrir un projet distant](Desktop/clientServer.md#opening-a-remote-project)) > 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. @@ -121,9 +121,9 @@ 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` - - `TableForms` +- `Methods` +- `Formulaires` +- `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). @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les fichiers journaux comprennent notamment : - - conversion de base de données, - - requêtes de serveur Web, - - journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) - - débogage de commandes, - - Requêtes 4D Server (générées sur les postes clients et sur le serveur). +- conversion de base de données, +- requêtes de serveur Web, +- journal des activités de sauvegarde/restitution (*Journal de sauvegarde\[xxx].txt*, voir [Journal de sauvegarde](Backup/backup.md#backup-journal)) +- débogage de commandes, +- Requêtes 4D Server (générées sur les postes clients et sur le serveur). > Un dossier Logs supplémentaire est disponible dans le dossier des préférences système de l'utilisateur (dossier 4D actif, voir commande [Get 4D folder](../commands-legacy/get-4d-folder.md)) pour les fichiers journaux de maintenance et d diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index 3b206b26848f7e..f2548492d1ada3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Lorsque vous développez dans 4D, les fichiers de composants peuvent être stock Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). - - Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. - - Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. +- Un projet 4D fonctionnant en mode interprété peut utiliser des composants interprétés ou compilés. +- Un projet 4D exécuté en mode compilé ne peut pas utiliser de composants interprétés. Dans ce cas, seuls les composants compilés peuvent être utilisés. ### Dossier racine (package) @@ -39,8 +39,8 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou Cette page décrit comment travailler avec les composants dans les environnements **4D** et **4D Server**. Dans les autres environnements, les composants sont gérés différemment : - - dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. - - dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). +- dans [4D en mode distant](../Desktop/clientServer.md), les composants sont chargés par le serveur et envoyés à l'application distante. +- dans les applications fusionnées, les composants sont [inclus à l'étape de construction](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Cette page décrit comment travailler avec les composants dans les environnement Pour charger un composant dans votre projet 4D, vous pouvez soit : - - copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), - - ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). +- copier les fichiers des composants dans le [dossier **Components** de votre projet](architecture.md#components) (les dossiers des composants interprétés doivent être suffixés avec ".4dbase", voir ci-dessus), +- ou déclarer le composant dans le fichier **dependencies.json** de votre projet ; ceci est fait automatiquement pour les fichiers locaux lorsque vous [**ajoutez une dépendance en utilisant l'interface du Gestionnaire de dépendances**](#adding-a-github-dependency). Les composants déclarés dans le fichier **dependencies.json** peuvent être stockés à différents endroits : - - au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, - - n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** - - sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. +- au même niveau que le dossier racine de votre projet 4D : c'est l'emplacement par défaut, +- n'importe où sur votre machine : le chemin du composant doit être déclaré dans le fichier **environment4d.json** +- sur un dépôt GitHub : le chemin du composant peut être déclaré dans le fichier **dependencies.json** ou dans le fichier **environment4d.json**, ou dans les deux. Si le même composant est installé à différents endroits, un [ordre de priorité](#priority) est appliqué. @@ -71,8 +71,8 @@ Le fichier **dependencies.json** référence tous les composants nécessaires à Il peut contenir : - - les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), - - les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). +- les noms des composants [stockés localement](#local-components) (chemin par défaut ou chemin défini dans un fichier **environment4d.json**), +- les noms des composants [stockés sur des dépôts GitHub](#components-stored-on-github) (leur chemin peut être défini dans ce fichier ou dans un fichier **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ Le fichier **environment4d.json** est facultatif. Il vous permet de définir des Les principaux avantages de cette architecture sont les suivants : - - vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. - - si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. +- vous pouvez stocker le fichier **environment4d.json** dans un dossier parent de vos projets et décider de ne pas le livrer (*commit*), ce qui vous permet d'avoir une organisation locale pour vos composants. +- si vous souhaitez utiliser le même dépôt GitHub pour plusieurs de vos projets, vous pouvez le référencer dans le fichier **environment4d.json** et le déclarer dans le fichier **dependencies.json**. ### Priorité @@ -189,9 +189,9 @@ En ce qui concerne les composants stockés sur GitHub, les fichiers [**dependenc Pour pouvoir référencer et utiliser directement un composant 4D stocké sur GitHub, vous devez configurer le dépôt du composant GitHub : - - Compressez les fichiers des composants au format ZIP. - - Nommez cette archive avec le même nom que le dépôt GitHub. - - Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. +- Compressez les fichiers des composants au format ZIP. +- Nommez cette archive avec le même nom que le dépôt GitHub. +- Intégrez l'archive dans une [release GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) du dépôt. Ces étapes peuvent être facilement automatisées, avec du code 4D ou en utilisant des actions GitHub, par exemple. @@ -234,7 +234,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin ::: - - Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : +- Les **Tags** sont des textes qui référencent de manière unique une release. Dans les fichiers [**dependencies.json**](#dependenciesjson) et [**environment4d.json**](#environment4djson), vous pouvez indiquer le release tag que vous souhaitez utiliser dans votre projet. Par exemple : ```json { @@ -247,7 +247,7 @@ Si vous sélectionnez la règle de dépendance [**Suivre la version 4D**](#defin } ``` - - Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : +- Une release est également identifiée par une **version**. Le système de versionnement utilisé est basé sur le concept de [*Semantic Versioning*](https://regex101.com/r/Ly7O1x/3/), qui est le plus couramment utilisé. Chaque numéro de version est identifié comme suit : `majorNumber.minorNumber.pathNumber`. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple : ```json { @@ -264,17 +264,17 @@ Un intervalle est défini par deux versions sémantiques, un minimum et un maxim Voici quelques exemples : - - "latest" : la version ayant le badge "latest" dans les releases GitHub. - - "\*" : la dernière version publiée. - - "1.\*" : toutes les versions de la version majeure 1. - - "1.2.\*" : tous les correctifs de la version mineure 1.2. - - ">=1.2.3" : la dernière version, à partir de la version 1.2.3. - - ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. - - "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. - - "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. - - "<=1.2.3" : la dernière version jusqu'à la 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. - - "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. +- "latest" : la version ayant le badge "latest" dans les releases GitHub. +- "\*" : la dernière version publiée. +- "1.\*" : toutes les versions de la version majeure 1. +- "1.2.\*" : tous les correctifs de la version mineure 1.2. +- ">=1.2.3" : la dernière version, à partir de la version 1.2.3. +- ">1.2.3" : la dernière version, en commençant par la version juste après la 1.2.3. +- "^1.2.3" : la dernière version 1, à partir de la version 1.2.3 et strictement inférieure à la version 2. +- "~1.2.3" : la dernière version 1.2, à partir de la version 1.2.3 et strictement inférieure à la version 1.3. +- "<=1.2.3" : la dernière version jusqu'à la 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3" : version comprise entre 1.0.0 et 1.2.3. +- "`<1.2.3 || >=2`" : version qui n'est pas comprise entre 1.2.3 et 2.0.0. Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version "latest". @@ -284,9 +284,9 @@ Le Gestionnaire de dépendances vérifie périodiquement si des mises à jour de Si vous souhaitez utiliser la règle de dépendance [**Suivre la version 4D**](#defining-a-github-dependency-version-range), les tags des releases des composants sur le dépôt Github doivent respecter des conventions spécifiques. - - **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". +- **Versions LTS** : Modèle `x.y.p`, où `x.y` correspond à la version principale de 4D à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version LTS *x.y*, le Gestionnaire de dépendances le résoudra comme "la dernière version x.\*" si elle est disponible ou "une version inférieure à x". Si une telle version n'existe pas, l'utilisateur en sera informé. Par exemple, "20.4" sera résolu par le Gestionnaire de dépendances comme "la dernière version du composant 20.\* ou une version inférieure à 20". - - **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. +- **Versions R-Release** : Modèle `xRy.p`, où `x` et `y` correspondent à la version principale de 4D R à suivre et `p` (facultatif) peut être utilisé pour les versions correctives ou les mises à jour supplémentaires. Lorsqu'un projet spécifie qu'il suit la version 4D pour la version *xRy*, le Gestionnaire de dépendances le résoudra à la "dernière version inférieure à xR(y+1)" si elle est disponible. Si une telle version n'existe pas, l'utilisateur en sera informé. Si une telle version n'existe pas, l'utilisateur en sera informé. :::note @@ -312,8 +312,8 @@ Vous devez ensuite [fournir votre token de connexion](#providing-your-github-acc Les composants GitHub référencés sont téléchargés dans un dossier de cache local puis chargés dans votre environnement. Le dossier de cache local est stocké à l'emplacement suivant : - - sous macOs : `$HOME/Library/Caches//Dependencies` - - sous Windows : `C:\Users\\AppData\Local\\Dependencies` +- sous macOs : `$HOME/Library/Caches//Dependencies` +- sous Windows : `C:\Users\\AppData\Local\\Dependencies` ...où `` peut être "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ Les dépendances nécessitant l'attention du développeur sont signalées par un Les étiquettes de statut suivantes sont disponibles : - - **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. - - **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. - - **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. - - **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). - - **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). - - **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. - - **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. - - **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. - - **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. - - **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. +- **Overloaded** : La dépendance n'est pas chargée car elle est surchargée par une autre dépendance portant le même nom et ayant un [niveau de priorité](#priority) plus élevé. +- **Overloading** : La dépendance est chargée et surcharge une ou plusieurs autres dépendances avec le même nom à un [niveau de priorité](#priority) inférieur. +- **Non trouvé** : La dépendance est déclarée dans le fichier dependencies.json mais n'est pas trouvée. +- **Inactif** : La dépendance n'est pas chargée car elle n'est pas compatible avec le projet (par exemple, le composant n'est pas compilé pour la plate-forme actuelle). +- **Dupliqué** : La dépendance n'est pas chargée car une autre dépendance portant le même nom existe au même endroit (et est chargée). +- **Disponible après redémarrage** : La référence de la dépendance vient d'être ajoutée ou mise à jour [à l'aide de l'interface](#monitoring-project-dependencies), elle sera chargée une fois que l'application aura redémarré. +- **Déchargé après redémarrage** : La référence à la dépendance vient d'être supprimée [en utilisant l'interface](#removing-a-dependency), elle sera déchargée une fois que l'application aura redémarré. +- **Mise à jour disponible \** : Une nouvelle version de la dépendance GitHub correspondant à votre [configuration de version du composant](#defining-a-github-dependency-version-range) a été détectée. +- **Actualisé après redémarrage** : La [configuration de version](#defining-a-github-dependency-version-range) de la dépendance GitHub a été modifiée, elle sera ajustée au prochain démarrage. +- **Mise à jour récente** : Une nouvelle version de la dépendance GitHub a été chargée au démarrage. Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissant des informations supplémentaires sur le statut : @@ -429,8 +429,8 @@ Cet élément n'est pas affiché si la dépendance est inactive parce que ses fi L'icône du composant et le logo de l'emplacement fournissent des informations supplémentaires : - - Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. - - Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. +- Le logo du composant indique s'il est fourni par 4D ou par un développeur tiers. +- Les composants locaux peuvent être différenciés des composants GitHub par une petite icône. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Si l'élément sélectionné n'est pas valide, un message d'erreur s'affiche. Cliquez sur **Ajouter** pour ajouter la dépendance au projet. - - Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). - - Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). +- Si vous sélectionnez un composant situé à côté du dossier racine du projet (emplacement par défaut), il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson). +- Si vous sélectionnez un composant qui n'est pas situé à côté du dossier racinedu projet, il est déclaré dans le fichier [**dependencies.json**](#dependenciesjson) et son chemin est déclaré dans le fichier [**environment4d.json**](#environment4djson) (voir note). Le panneau Dépendances vous demande si vous souhaitez enregistrer un [chemin relatif ou absolu](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ La modification de la plage de versions est utile par exemple si vous utilisez l Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : - - Vérification automatique et manuelle des versions disponibles - - Mise à jour automatique et manuelle des composants +- Vérification automatique et manuelle des versions disponibles +- Mise à jour automatique et manuelle des composants Les opérations manuelles peuvent être effectuées **par dépendance** ou **pour toutes les dépendances**. @@ -538,11 +538,11 @@ Si vous fournissez un [token d'accès](#providing-your-github-access-token), les En outre, vous pouvez vérifier les mises à jour à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. +- Pour vérifier les mises à jour d'une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Vérifier les mises à jour** dans le menu contextuel. ![check component](../assets/en/Project/check-component-one.png) - - Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. +- Pour vérifier les mises à jour de toutes les dépendances, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Vérifier les mises à jour**. ![check components](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Si vous ne souhaitez pas utiliser la mise à jour des composants (par exemple, v Vous pouvez mettre à jour les dépendances à tout moment, pour une seule dépendance ou pour toutes les dépendances : - - Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : +- Pour mettre à jour une seule dépendance, cliquez avec le bouton droit de la souris sur la dépendance et sélectionnez **Mettre à jour au prochain démarrage** dans le menu contextuel ou dans le menu **options** en bas de la fenêtre du gestionnaire de dépendances : ![check component](../assets/en/Project/update-component-one.png) - - Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : +- Pour mettre à jour toutes les dépendances en une seule fois, cliquez sur le menu **options** en bas de la fenêtre du gestionnaire de dépendances et sélectionnez **Mettre à jour toutes les dépendances distantes au prochain démarrage** : ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Dans tous les cas, quel que soit le statut courant de la dépendance, une vérif Lorsque vous sélectionnez une commande de mise à jour : - - une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. - - si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. +- une boîte de dialogue s'affiche et propose de **redémarrer le projet**, afin que les dépendances mises à jour soient immédiatement disponibles. Il est généralement recommandé de redémarrer le projet pour évaluer les dépendances mises à jour. +- si vous cliquez sur Plus tard, la commande de mise à jour n'est plus disponible dans le menu, ce qui signifie que l'action a été planifiée pour le prochain démarrage. #### Mise à jour automatique @@ -587,13 +587,13 @@ Lorsque cette option n'est pas cochée, une nouvelle version de composant corres L'enregistrement de votre *token* (jeton) d'accès personnel dans le gestionnaire de dépendances est : - - obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), - - recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. +- obligatoire si le composant est stocké sur un [dépôt GitHub privé](#private-repositories), +- recommandé pour une [vérification des mises à jour des dépendances](#updating-github-dependencies) plus fréquente. Pour fournir votre jeton d'accès à GitHub, vous pouvez soit : - - cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. - - ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. +- cliquez sur le bouton **Ajouter un jeton d'accès personnel...** qui est affiché dans la boîte de dialogue "Ajouter une dépendance" après avoir entré un chemin de dépôt privé GitHub. +- ou sélectionner **Ajouter un jeton d'accès personnel GitHub...** dans le menu du Gestionnaire de dépendances à tout moment. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) 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 3e505993076a99..98f9bd11147e88 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 @@ -7,10 +7,10 @@ Dans les projets d'application, vous pouvez documenter vos méthodes ainsi que v Les éléments de projet suivants peuvent être documentés : - - Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) - - Classes - - Formulaires - - Tables et champs +- Méthodes (méthodes base, méthodes composants, méthodes projet, méthodes formulaire, méthodes 4D Mobile et triggers) +- Classes +- Formulaires +- Tables et champs Vos fichiers de documentation sont écrits dans la syntaxe Markdown (fichiers .md) à l'aide de n'importe quel éditeur prenant en charge le Markdown. Ils sont stockés en tant que fichiers indépendants dans votre dossier Project. @@ -55,9 +55,9 @@ L'architecture du dossier `Documentation` est la suivante : - table1.md - ... - - Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire projet et sa méthode de formulaire projet partagent le même fichier de documentation pour le formulaire et la méthode. - - Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. +- Un formulaire table et sa méthode de formulaire table partagent le même fichier de documentation pour le formulaire et la méthode. > Renommer ou supprimer un élément documenté dans votre projet renomme ou supprime également le fichier Markdown associé à l'élément. @@ -73,9 +73,9 @@ Pour afficher la documentation dans la fenêtre de l'Explorateur : ![](../assets/en/Project/comments-explo2.png) - - Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). +- Si aucun fichier de documentation n'a été trouvé pour l'élément sélectionné, un bouton **Créer** s'affiche (voir ci-dessous). - - Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. +- Sinon, s'il existe un fichier de documentation pour l'élément sélectionné, le contenu est affiché dans la zone. Le contenu n'est pas directement modifiable dans le volet. ### Modifier le fichier documentation @@ -83,8 +83,8 @@ Vous pouvez créer et/ou modifier un fichier de documentation Markdown à partir S'il n'y a pas de fichier de documentation pour l'élément sélectionné, vous pouvez : - - cliquez sur le bouton **Créer** dans le volet `Documentation` ou, - - choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. +- cliquez sur le bouton **Créer** dans le volet `Documentation` ou, +- choisissez l'option **Modifier la documentation...** dans le menu contextuel ou le menu d'options de l'Explorateur. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ L'éditeur de code 4D affiche une partie de la documentation d'une méthode dans Si un fichier nommé`\.md` existe dans le dossier `\/documentation` , l'éditeur de code affiche (par priorité) : - - Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. +- Tout texte saisi dans une balise de commentaire HTML (``) en haut du fichier markdown. - Ou, si aucune balise de commentaire html n'est utilisée, la première phrase après une balise `# Description` du fichier markdown.\ Dans ce cas, la première ligne contient le **prototype** de la méthode, généré automatiquement par l'analyseur de code de 4D. @@ -131,7 +131,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Prise en charge du markdown - - La balise de titre est prise en charge : +- La balise de titre est prise en charge : ```md # Title 1 @@ -139,7 +139,7 @@ De nouveaux fichiers de documentation sont créés avec les contenus par défaut ### Title 3 ``` - - Les balises de style (italique, gras, barré) sont prises en charge : +- Les balises de style (italique, gras, barré) sont prises en charge : ```md _italic_ @@ -148,7 +148,7 @@ _italic_ ~~strikethrough~~ ``` - - La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : +- La balise de bloc de code (\`4d ... `) est prise en charge avec la surbrillance du code 4D : ````md ```4d @@ -157,7 +157,7 @@ _italic_ ``` ```` - - La balise de tableau est prise en charge : +- La balise de tableau est prise en charge : ```md | Parameter | Type | Description | @@ -166,7 +166,7 @@ _italic_ | toolbar | Text |Toolbar name | ``` - - La balise de lien est prise en charge : +- La balise de lien est prise en charge : ```md // Case 1 @@ -178,7 +178,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - Les balises d'image sont prises en charge : +- Les balises d'image sont prises en charge : ```md ![image info](pictures/image.png) @@ -225,10 +225,10 @@ $logo:=GetLogo(5) ``` ```` - - Vue de l'explorateur : +- Vue de l'explorateur : ![](../assets/en/Project/explorer_Doc.png) - - Vue de l'éditeur de code : +- Vue de l'éditeur de code : ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 7585103f4f02b0..06cb0b2e7f5f55 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ Lorsque vous avez des attributs relationnels dans une dataclass, utilisez `$attr Vous pouvez appliquer des `$attributes` à une entité (par exemple, People (1)) ou à une entity selection (par exemple, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. +- Si `$attributes` n'est pas spécifié dans une requête, ou si la valeur "\*" est passée, tous les attributs disponibles sont extraits. Les attributs de type **related entity** sont extraits avec la forme simple : un objet avec la propriété `__KEY` (clé primaire) et `URI`. Les attributs de type **related entities** ne sont pas extraits. - Si `$attributes` est spécifié pour les attributs **related entity** : - `$attributes=relatedEntity` : l'entité liée est retournée sous une forme simple (propriété __KEY différée (clé primaire)) et `URI`. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md index f291bc472820ca..9bb7a1a9f8c763 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Les verrouillages déclenchés par l'API REST sont placés au niveau de la [sess Une entité verrouillée est considérée comme *verrouillée* (c'est-à-dire que les actions de verrouillage / déverrouillage / mise à jour / suppression ne sont pas possibles) par : - - d'autres sessions REST - - les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. +- d'autres sessions REST +- les process 4D (client/serveur, datastore distant, monoposte) exécutés sur le serveur REST. Une entité verrouillée par l'API REST peut être déverrouillée uniquement : - - via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` - - ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). +- via son verrou, c'est-à-dire un `/?$lock=false` dans la session REST qui définit `/?$lock=true` +- ou si le [timeout d'inactivité]($directory.md) de la session est atteint (la session est fermée). ### Réponse diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index f311bd3e223da4..5740fc0d6c2ff1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ Vous pouvez appeler les [fonctions de classe du modèle de données](ORDA/ordaCl Les fonctions peuvent être appelées de deux manières : - - en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. - - en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. +- en utilisant des requêtes **POST**, avec des paramètres de données transmis dans le body de la requête. +- en utilisant des requêtes **GET**, avec des paramètres passés directement dans l'URL. Les requêtes POST offrent un meilleur niveau de sécurité car elles évitent l'exécution de code sensible par une action aussi simple que de cliquer sur un lien. Cependant, les requêtes GET peuvent être plus conformes à l'expérience utilisateur, en permettant d'appeler des fonctions en saisissant un URL dans un navigateur (note : le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions). @@ -96,11 +96,11 @@ Vous pouvez envoyer des paramètres à des fonctions de classes utilisateur ou d Les règles suivantes s'appliquent : - - Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. - - Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. - - Les paramètres doivent être inclus dans une collection (format JSON). - - Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. - - L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Dans les fonctions appelées par des requêtes POST, les paramètres doivent être passés **dans le body de la requête POST**. +- Dans les fonctions appelées par des requêtes GET, les paramètres doivent être passés **dans l'URL avec la syntaxe " ?$params="**. +- Les paramètres doivent être inclus dans une collection (format JSON). +- Tous les types de données scalaires pris en charge dans les collections JSON peuvent être passés en tant que paramètres. +- L'entity selection et l'entité peuvent être passées en tant que paramètres. La liste des paramètres doit contenir les attributs spécifiques utilisés par le serveur REST pour assigner les données aux objets ORDA correspondants : `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Voir [cet exemple](#using-an-entity-to-be-created-on-the-server) et [cet exemple](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Vous pouvez également transmettre des valeurs pour tous les attributs de l'enti | __ENTITY | Boolean | Obligatoire - Vrai pour indiquer au serveur que le paramètre est une entité | | __KEY | mixte (type identique à celui de la clé primaire) | Optionnel - clé primaire de l'entité | - - Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. - - Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés +- Si `__KEY` n'est pas fourni, une nouvelle entité est créée sur le serveur avec les attributs donnés. +- Si `__KEY` est fourni, l'entité correspondant à `__KEY` est chargée sur le serveur avec les attributs donnés Voir les exemples ci-dessous pour la création ou la mise à jour d'entités avec des requêtes POST. Voir un exemple de téléchargement de contenu à l'aide d'une entité avec une requête GET. 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 c7e5b0c19ca430..e250d67261da91 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 @@ -44,9 +44,9 @@ Toutes les autres requêtes REST (manipulant des données ou exécutant une fonc Les requêtes REST descriptives peuvent être traitées dans des sessions d'utilisateurs web qui ne nécessitent pas de licences (sessions "guest"). Ces requêtes sont : - - requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles - - `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur - - `/rest/$getWebForm` - le rendu d'une page Qodly +- requêtes [`/rest/$catalog`]($catalog.md) (par exemple `/rest/$catalog/$all`) - accès aux dataclass disponibles +- `/rest/$catalog/authentify` - la fonction datastore utilisée pour connecter l'utilisateur +- `/rest/$getWebForm` - le rendu d'une page Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ La fonction peut recevoir toute information d'authentification ou contextuelle e Cette fonction doit contenir deux parties : - - un code pour identifier et authentifier l'expéditeur de la demande REST, - - si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. +- un code pour identifier et authentifier l'expéditeur de la demande REST, +- si l'authentification réussit, un appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) qui attribue les privilèges appropriés à la session. Si la fonction ne fait pas appel à [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), aucun privilège n'est attribué, aucune licence n'est consommée et les requêtes REST non descriptives ultérieures sont rejetées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 428c68438e2e72..6c2cf627e3265d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ Le serveur REST est inclus dans 4D et 4D Server et automatiquement disponible da Cette section est destinée à vous familiariser avec la fonctionnalité REST à l'aide d'un exemple simple. Nous allons : - - créer et configurer un projet d'application 4D basique - - accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. +- créer et configurer un projet d'application 4D basique +- accéder aux données du projet 4D via REST à l'aide d'un navigateur standard. Pour simplifier l'exemple, nous allons utiliser 4D et un navigateur qui s'exécutent sur la même machine. Bien entendu, vous pouvez également utiliser une architecture distante. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index e82af6421603b5..799e30c2db5283 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Vous disposez également de trois boutons-raccourcis permettant de filtrer par f ![](../assets/en/Admin/server-process-buttons.png) - - **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. - - **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. - - **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. +- **Process utilisateurs** : Process générés par et pour les sessions utilisateurs. Ces process sont précédés d’une icône en forme de personnage. +- **Process 4D** : Process générés par le moteur de 4D Server. Ces process sont précédés d’une icône en forme de roue crantée. +- **Process en attente** : Process inactifs mais conservés temporairement et pouvant être réutilisés à tout moment. Ce mécanisme permet d’optimiser la réactivité de 4D Server. Ces process sont précédés d’une icône grisée en forme de personnage. L’option **Afficher les process par groupes** vous permet de regrouper les process internes de 4D Server ainsi que les process clients, pour plus de lisibilité. Lorsque vous cochez cette option : - - les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, - - le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), - - le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. +- les process clients 4D "jumeaux" (Process client 4D principal et Process base 4D client, cf. paragraphe [Type du process](#process-type)) sont groupés en un seul, +- le groupe "Gestionnaires de tâches" est créé ; il inclut les process internes dédiés à la répartition des tâches (Shared balancer, Net session manager, Exclusive pool worker), +- le groupe "Gestionnaires clients" est créé ; il inclut les différents process internes clients. La zone inférieure de la fenêtre permet d’afficher la représentation graphique de l’activité du ou des process sélectionné(s). @@ -83,15 +83,15 @@ La page comporte cinq boutons de commande permettant d’agir sur le ou les proc ![](../assets/en/Admin/server-process-actions.png) - - **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. +- **Tuer process** : permet de tuer le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Endormir process** : permet d’endormir le ou les process sélectionné(s). - - **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. - - **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). +- **Endormir process** : permet d’endormir le ou les process sélectionné(s). +- **Réactiver process** : permet de réactiver le ou les process sélectionné(s). Les process doivent avoir été auparavant endormis (via le bouton précédent ou par programmation) sinon le bouton est sans effet. +- **Tracer process** : permet d’ouvrir sur le poste serveur une ou plusieurs fenêtre(s) du débogueur pour le ou les process sélectionné(s). Lorsque vous cliquez sur ce bouton, une boîte de dialogue d’alerte apparaît, vous permettant de confirmer ou d’annuler l’opération. A noter que la fenêtre du débogueur ne s’affiche que lorsque du code 4D est effectivement exécuté sur le poste serveur (par exemple dans le cadre d’un trigger ou de l’exécution d’une méthode ayant l’attribut "Exécuter sur serveur"). > Vous pouvez déboguer un process directement, sans afficher la boîte de dialogue de confirmation : pour cela, appuyez sur la touche **Alt** avant de cliquer sur le bouton. - - **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. +- **Voir utilisateurs** : permet d’afficher dans la [page Utilisateurs](users.md) tous les process du ou des utilisateur(s) sélectionné(s). Le bouton est actif lorsqu’un process utilisateur au moins est sélectionné. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 8d964c8b8ee7fd..9d3dd86b8f6bda 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ Les informations suivantes sont fournies pour chaque ligne : La page est active et mise à jour en permanence dès qu’elle est affichée. Il est à noter que son fonctionnement peut ralentir sensiblement l’exécution de l’application. Il est possible de suspendre la mise à jour de la page d’une des manières suivantes : - - en cliquant sur le bouton **Pause**, - - en cliquant dans la liste, - - en appuyant sur la barre d’espace. +- en cliquant sur le bouton **Pause**, +- en cliquant dans la liste, +- en appuyant sur la barre d’espace. Lorsque la page est en pause, le message "SUSPENDU" est affiché et le libellé du bouton devient **Reprendre**. Il est possible de reprendre l’observation des opérations en effectuant la même action que pour la mise en pause. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 01c8c873fe4fef..e25e474a6ccd30 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Dans *filePath*, passez le chemin de destination et le nom du document à export Vous pouvez préciser le format du document en incluant une extension après son nom : - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", or ".csv") - - [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", or ".csv") +- [SpreadJS document](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Si l'extension n'est pas incluse, mais que le format est spécifié dans *paramObj*, le fichier exporté aura l'extension correspondant au format, sauf pour le format CSV (aucune extension n'est ajoutée dans ce cas). @@ -88,25 +88,25 @@ Le paramètre optionnel *paramObj* vous permet de définir plusieurs propriété **Notes sur le format Excel** : - - Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. +- Lors de l'export d'un document 4D View Pro en un fichier au format Microsoft Excel, certains paramètres peuvent être perdus. Par exemple, les méthodes et formules 4D ne sont pas prises en charge par Excel. Vous pouvez vérifier d'autres paramètres avec [cette liste de SpreadJS] (https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Using *excelOptions* object is recommended when exporting in ".xlsx" format. Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) to avoid potiental issues. **Notes sur le format PDF** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, les polices utilisées dans le document sont automatiquement intégrées dans le fichier PDF. Seules les polices OpenType (fichiers .OTF ou .TTF) ayant une table Unicode peuvent être intégrées. Si aucun fichier de polices valide n'est trouvé pour une police, une police par défaut est utilisée à sa place. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format CSV** : - - Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. - - Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Lors de l'export d'un document 4D View Pro en un fichier au format PDF, certains paramètres peuvent être perdus, car seuls le texte et les valeurs sont sauvegardés. +- Toutes les valeurs sont enregistrées sous la forme de chaînes entre guillemets. Pour plus d'informations sur les valeurs séparées par des délimiteurs, voir [cet article sur Wikipédia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notes sur le format de fichier SpreadJS** : - - [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- [Fichiers SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) sont des fichiers zippés. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Une fois l'opération d'exportation terminée, `VP EXPORT DOCUMENT` déclenche automatiquement l'exécution de la méthode définie dans la propriété *formula* de *paramObj*, si elle est utilisée. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index ba7deb2c1a617b..7be68c67b0c15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Vous pouvez définir où lire les feuilles de style via le paramètre *sheet* en passant le numéro d'indice de la feuille (la numérotation commence à partir de 0) ou à l'aide des constantes suivantes : - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 6ef3aed705324f..c28b402a6b1381 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ L'objet retourné contiendra la propriété `value` et, dans le cas d'une valeur Si l'objet retourné inclut une date ou une heure, il est traité en tant que datetime et est complété comme suit : - - valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) - - valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) +- valeur heure - la date est complétée comme suit : December 30, 1899 au format dd/MM/yyyy (30/12/1899) +- valeur date - l'heure est complétée comme suit : minuit au format HH:mm:ss (00:00:00) Si *rangeObj* contient plusieurs cellules ou plusieurs plages, la valeur de la première cellule est retournée. La commande retourne un objet null si la cellule est vide. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 7107fc2990f8a6..9a7e1a0cf81fdb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Dans *vpAreaName*, passez le nom de la zone 4D View Pro. Si vous passez un nom i Dans *filePath*, passez le chemin et le nom du document à importer. Les formats suivants sont pris en charge : - - Les documents 4D View Pro (extension ".4vp") - - Microsoft Excel (extension ".xlsx") - - documents texte (extension ".txt", ".csv", le document doit être en utf-8) - - [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") +- Les documents 4D View Pro (extension ".4vp") +- Microsoft Excel (extension ".xlsx") +- documents texte (extension ".txt", ".csv", le document doit être en utf-8) +- [Documents SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extension ".sjs") Si l'extension du document n'est pas une extension reconnue, telle que `.4vp` ou `.xlsx`, le document est considéré comme un document texte. Vous devez passer un chemin d'accès complet, sauf si le document est situé au même niveau que le dossier Project, auquel cas vous pouvez simplement passer son nom. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 84e91529e50622..a5817d0aa7344d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ Les feuilles de calcul sont composées de lignes et de colonnes. Un numéro est ### Sélection des cellules, des colonnes et des lignes - - Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. +- Pour sélectionner une cellule, il suffit de cliquer dessus ou d'utiliser les flèches de direction du clavier. Son contenu (ou sa formule) s'affiche dans la cellule. - - Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. +- Pour sélectionner plusieurs cellules continues, faites glisser la souris d'une extrémité à l'autre de la sélection. Vous pouvez également cliquer sur les deux extrémités de la sélection tout en maintenant la touche Maj enfoncée. - Pour sélectionner toutes les cellules dans la feuille de calcul, cliquez sur la cellule en haut à gauche de la zone : ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). +- Pour sélectionner une colonne, cliquez sur la lettre (ou le groupe de lettres) correspondant(e). - - Pour sélectionner une ligne, cliquez sur le chiffre correspondant. +- Pour sélectionner une ligne, cliquez sur le chiffre correspondant. - - Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. +- Pour sélectionner un groupe de cellules non continues, maintenez la touche **Ctrl** (Windows) ou **Command** (macOS) enfoncée et cliquez sur chaque cellule à sélectionner. - - Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. +- Pour désélectionner des cellules, il suffit de cliquer n'importe où dans la feuille de calcul. ### Saisie de données @@ -139,8 +139,8 @@ Ensuite, vous pouvez passer `$myRange` à une autre méthode 4D View Pro pour mo Les objets plage 4D View Pro sont composés de plusieurs propriétés : - - area - Le nom de la zone 4D View Pro - - ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. +- area - Le nom de la zone 4D View Pro +- ranges - Une collection d'objet(s) plage. Les propriétés disponibles dans chaque objet de gamme dépendent du type d'objet plage. Par exemple, un objet plage de type colonne comprendra uniquement les propriétés *.column* et *.sheet*. | Propriété | | Type | Description | Disponible pour | | --------- | ------------------------------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | @@ -157,10 +157,10 @@ Les objets plage 4D View Pro sont composés de plusieurs propriétés : 4D View Pro prend en charge l'import et l'export de plusieurs formats de documents : - - .4vp - - .xlsx - - .txt et .csv - - .sjs - - .pdf (à des fins d'export uniquement) +- .4vp +- .xlsx +- .txt et .csv +- .sjs +- .pdf (à des fins d'export uniquement) Pour plus de détails, consultez la description de [VP IMPORT DOCUMENT](commands/vp-import-document.md) et [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index be935548f38b11..d09a66e2938ac9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Certains autres éléments ont une casse différente (par exemple : `this` vs `T Les noms des commandes et des constantes QodlyScript sont écrits en camel case sans espaces. De plus, les noms de constantes de QodlyScript commencent par la lettre `k`. Vous devrez peut-être adapter ces éléments QodlyScript au langage 4D. - - Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. - - Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. +- Généralement, vous devrez simplement convertir les noms. Par exemple, `newCollection` dans QodlyScript est `New collection` dans le langage 4D. +- Cependant, certaines commandes ont été renommées pour une meilleure conformité, par exemple `atan` et `sqrt` sont les noms en QodlyScript des commandes `Arctan` et `Square root` en langage 4D. ### Exemple - - Code QodlyScript : +- Code QodlyScript : ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ Les noms des commandes et des constantes QodlyScript sont écrits en camel case end ``` - - Code équivalent en langage 4D : +- Code équivalent en langage 4D : ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index cd23ee1daf5a41..17ba86d4b8ef83 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Dans les sections ci-dessus, nous obtenons un accès libre à l'application à p La façon la plus simple et sécurisée de connecter un utilisateur sur le serveur web 4D est basée sur le scénario suivant : - - Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) - - La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. +- Les utilisateurs sont stockés dans une table dédiée et non exposée (nommée *WebUsers* par exemple) +- La table *WebUsers* pourrait être [chiffrée](MSC/encrypt.md) et stocke le nom d'utilisateur et un hachage de leur mot de passe. 1. Créez une table avec certains champs, par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 201a3d3dc58230..a61af9ff781cc8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) et [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; +- La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; - - Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages - - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" +- Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" - - Triggers pour les tables comportant l'attribut "Expose as REST resource" +- Triggers pour les tables comportant l'attribut "Expose as REST resource" - - [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST +- [Fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) appelées via REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ La plupart des commandes, fonctions, méthodes base et URLs 4D sont thread-safe Toutes les commandes 4D relatives au Web sont thread-safe, à savoir : - - toutes les commandes du thème *Web Server* - - toutes les commandes du thème *Client HTTP*. +- toutes les commandes du thème *Web Server* +- toutes les commandes du thème *Client HTTP*. Les méthodes base ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif (voir ci-dessus) : `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 81698313b1d91d..daf11db9f41587 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio peut également être utilisé sur la [**plateforme Qodly Cloud**]( Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - déclencher du code 4D en configurant des événements - - et bien plus encore ! +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- déclencher du code 4D en configurant des événements +- et bien plus encore ! ## Configuration @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio prend en charge les navigateurs Web suivants : - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox La résolution recommandée est de 1920x1080. #### Application 4D - - Développement : 4D 20 R2 ou version ultérieure - - Déploiement : 4D Server 20 R2 ou version ultérieure - - Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). - - Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). - - Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). +- Développement : 4D 20 R2 ou version ultérieure +- Déploiement : 4D Server 20 R2 ou version ultérieure +- Qodly Studio ne fonctionne qu'avec des projets 4D (les bases de données binaires ne sont pas prises en charge). +- Les sessions web (*également appelées sessions évolutives*) doivent [être activées](sessions.md#enabling-web-sessions). +- Le code 4D appelé par les pages Qodly doit être [thread-safe](preemptiveWeb.md). ### Activer l'accès à Qodly Studio @@ -79,8 +79,8 @@ L'authentification sur le serveur WebAdmin utilise une access key (clé d'accès Conformément à la gestion des projets 4D, seules les utilisations suivantes sont prises en charge : - - le développement avec Qodly Studio s'effectue avec **4D** (monoposte). - - deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- le développement avec Qodly Studio s'effectue avec **4D** (monoposte). +- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. :::warning @@ -144,24 +144,24 @@ Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code d The following commands and classes are dedicated to the server-side management of Qodly pages: - - [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. - - [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. - - [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. - - [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. +- [`Web Form`](../API/WebFormClass.md#web-form) command: returns the Qodly page as an object. +- [`Web Event`](../API/WebFormClass.md#web-event) command: returns events triggered within Qodly page components. +- [`WebForm`](../API/WebFormClass.md) class: functions and properties to manage the rendered Qodly page. +- [`WebFormItem`](../API/WebFormItemClass.md) class: functions and properties to manage Qodly page components. ### Utilisation des méthodes projet Nous recommandons d'utiliser les fonctions de classe plutôt que les méthodes projet. Seules les fonctions de classe peuvent être appelées à partir des composants. Cependant, vous pouvez toujours utiliser les méthodes projet dans Qodly Studio de deux manières : - - Vous pouvez appeler vos méthodes à partir des fonctions de classe. - - Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. +- Vous pouvez appeler vos méthodes à partir des fonctions de classe. +- Vous pouvez directement [exécuter vos méthodes](https://developer.qodly.com/docs/studio/coding#methods-and-classes) depuis l'Explorateur Qodly. ### Utilisation hors ligne Vous pouvez développer avec Qodly Studio lorsque votre ordinateur n'est pas connecté à internet. Dans ce cas cependant, les fonctions suivantes ne sont pas accessibles : - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide - - UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): la bibliothèque de templates (modèles) est vide +- UI tips (infobulles interface utilisateur) : ils ne sont pas affichés lorsque vous cliquez sur les icônes ![alt-text](../assets/en/WebServer/tips.png). ## Déploiement @@ -177,8 +177,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed To enable the rendering of Qodly pages, the following options must be set. - - The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. - - Le [serveur Web 4D](webServer.md) doit être démarré. +- The 4D project's **Settings** > **Web** > **Web Features** > [**Expose as REST server**](../settings/web.md#expose-as-rest-server) option must be activated. +- Le [serveur Web 4D](webServer.md) doit être démarré. :::note @@ -308,9 +308,9 @@ To logout the user, you just need to execute the **Logout** standard action from Déclencher l'action de déconnexion d'une session utilisateur Web a les effets suivants : - - la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, - - la licence 4D associée est libérée, - - le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. +- la session utilisateur web courante perd ses privilèges, seules les [requêtes REST descriptives](../REST/authUsers.md#descriptive-rest-requests) sont autorisées, +- la licence 4D associée est libérée, +- le `Session.storage` est conservé jusqu'à ce que le délai d'inactivité de la session Web soit atteint (au moins une heure). Pendant cette période après une déconnexion, si l'utilisateur se connecte à nouveau, la même session est réutilisée et l'objet partagé `Session.storage` est disponible avec son contenu actuel. ## Utilisation de licences pour le rendu @@ -362,7 +362,7 @@ Pour plus d'informations sur l'attribut `SameSite`, consultez [cet article de bl Pour éviter d'utiliser plus de licences que nécessaire, nous vous recommandons d'effectuer l'une des actions suivantes : - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. - - Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assurez-vous que Qodly Studio et votre base de données sont accessibles sur le même schéma d'URL. +- Utilisez la valeur `Lax` pour le [cookie de session](webServerConfig.md#session-cookie-samesite) du serveur web de la base de données de votre projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 003879e7952808..c71cb2bb77fe56 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ La valeur de la variable 4D *vtSiteName* sera insérée dans la page HTML. Les balises 4D suivantes sont disponibles : - - 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, - - 4DHTML, pour insérer du code HTML, - - 4DEVAL, pour évaluer toute expression 4D, - - 4DSCRIPT, pour exécuter une méthode 4D, - - 4DINCLUDE, pour inclure une page dans une autre, - - 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, - - 4DCODE, pour insérer du code 4D, - - 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, - - 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, - - 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. +- 4DTEXT, pour insérer des variables et des expressions 4D en tant que texte, +- 4DHTML, pour insérer du code HTML, +- 4DEVAL, pour évaluer toute expression 4D, +- 4DSCRIPT, pour exécuter une méthode 4D, +- 4DINCLUDE, pour inclure une page dans une autre, +- 4DBASE, pour modifier le dossier par défaut utilisé par la balise 4DINCLUDE, +- 4DCODE, pour insérer du code 4D, +- 4DIF, 4DELSE, 4DELSEIF et 4DENDIF, pour insérer des conditions dans le code HTML, +- 4DLOOP et 4DENDLOOP, pour faire des boucles dans le code HTML, +- 4DEACH et 4DENDEACH, pour boucler des collections, des entity selections ou des propriétés d'objets. Ces balises sont décrites dans la page [Balises de transformation](../Tags/transformation-tags.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 8425d866f7cdae..cd5e261e41ece9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ Il y a plusieurs manières de démarrer le serveur Web principal : - 4D: **Exécution\>Démarrer le serveur Web**
![](../assets/en/WebServer/start1.png) - 4D Server : Bouton **Démarrer le serveur HTTP** dans la page Serveur HTTP
![](../assets/en/WebServer/start2.png) - - automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) +- automatiquement à l'ouverture de l'application 4D. Pour ce faire, affichez la page **Web\/Configuration** des Propriétés et cochez la case **Lancer le serveur Web au démarrage** :
![](../assets/en/WebServer/config.png) - - Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. +- Par programmation, en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) ou la commande `WEB START SERVER`. Le serveur Web de n'importe quel composant peut être lancé en appelant la fonction [`webServer.start()`](API/WebServerClass.md#start) sur l'objet serveur Web du composant. @@ -29,9 +29,9 @@ Le serveur Web de n'importe quel composant peut être lancé en appelant la fonc Il y a plusieurs manières d'arrêter le serveur Web principal : - - Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). +- Via le menu 4D, **Exécution > Arrêter le serveur Web**, ou via le bouton **Arrêter le serveur HTTP** de 4D Server (les deux items affichent **Démarrer...** quand le serveur n'est pas encore démarré). - - Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. +- Par programmation, en appelant la fonction [`webServer.stop()`](API/WebServerClass.md#stop) ou la commande `WEB STOP SERVER`. Le serveur Web de n'importe quel composant peut être arrêté en appelant la fonction `webServer.stop()` sur l'objet serveur Web du composant. @@ -53,8 +53,8 @@ Cette commande vous permet de vérifier que le serveur web, l'affichage de la pa Pour ce faire, vous pouvez : - - 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. - - 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. +- 4D: cliquer sur le bouton **Vider le cache** dans la [page Web/Options (I)](../settings/web.md) de la boîte de dialogue des Propriétés. +- 4D Server : cliquer sur le bouton **Vider le cache** dans la page HTTP de la fenêtre d'administration de 4D Server. Le cache est alors immédiatement effacé. @@ -64,11 +64,11 @@ Le cache est alors immédiatement effacé. La page **Watch** (rubrique **Web**) de l'Explorateur d'exécution affiche les informations du serveur Web, notamment : - - **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. +- **Occupation du cache Web** : indique le nombre de pages présentes dans le cache web ainsi que le pourcentage d'utilisation. Cette information n'est disponible que si le serveur web est actif et que la taille du cache est supérieure à 0. - - **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. +- **Temps d’activité du serveur Web** : indique la durée d'utilisation (au format heures:minutes:secondes) du serveur Web. Ces informations ne sont disponibles que si le serveur web est actif. - - **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. +- **Nombre de requêtes http** : indique le nombre total de requêtes HTTP reçues depuis le démarrage du serveur web, ainsi qu'un nombre instantané de requêtes par seconde (mesure prise entre deux mises à jour de l'Explorateur d'exécution). Ces informations ne sont disponibles que si le serveur web est actif. ## URLs d'administration @@ -123,8 +123,8 @@ L'URL */4DWEBTEST* permet de vérifier l'état du serveur web. Lorsque cette URL 4D vous permet de générer deux historiques de requêtes Web : - - un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), - - un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). +- un historique de débogage, utile dans la phase de développement du serveur web (*HTTPDebugLog.txt*), +- un journal standardisé des requêtes web, plutôt utilisé à des fins statistiques (*logweb.txt*). Les deux fichiers journaux sont automatiquement créés dans le dossier **Logs** du projet d'application. @@ -225,15 +225,15 @@ Les paramètres de sauvegarde automatique du logweb.txt sont définis sur la pag D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. - - **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. +- **Tous les N jour(s) à N** : permet de programmer des backups sur une base hebdomadaire. Saisissez 1 si vous souhaitez une sauvegarde hebdomadaire. Lorsque vous cochez cette option, vous devez indiquer le ou les jours de la semaine et l’heure à laquelle chaque sauvegarde doit être déclenchée. Vous pouvez cocher un ou plusieurs jour(s) de la semaine. Par exemple, vous pouvez utiliser cette option pour définir deux sauvegardes hebdomadaires : une le mercredi et une le vendredi. - - **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. +- **Tous les N mois, Ne jour à N** : permet de programmer des sauvegardes sur une base mensuelle. Saisissez 1 si vous souhaitez une sauvegarde mensuelle. Lorsque vous cochez cette option, vous devez indiquer le jour de chaque mois auquel la sauvegarde doit être déclenchée, ainsi que l’heure de déclenchement. - - **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. +- **Tous les N Mo** : Cette option est utilisée pour programmer les sauvegardes en fonction de la taille du fichier journal courant. Une sauvegarde se déclenche automatiquement quand le fichier atteint la taille spécifiée. La taille limite du fichier peut être fixée à 1, 10, 100 ou 1000 Mo. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 5471c3bfed703e..6cddcc5504bfd3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Liste des hôtes et méthodes autorisé(e)s pour le service CORS. Nom de domaine ou adresse IP à partir desquels les pages externes sont autorisées à envoyer des demandes de données au serveur via CORS. Plusieurs attributs de domaine peuvent être ajoutés pour créer une liste blanche. Plusieurs syntaxes sont supportées : - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Méthodes HTTP autorisées (propriété méthodes) Méthodes HTTP acceptées pour l'hôte CORS correspondant. Les méthodes HTTP suivantes sont prises en charge : - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Séparez chaque méthode par un ";" (ex : "post;get"). Si Méthodes est vide, null ou non défini, toutes les méthodes sont activées. @@ -145,9 +145,9 @@ Par défaut, quand le serveur web est lancé pour la première fois, 4D crée un Vous pouvez désigner une autre page comme page d'accueil par défaut en entrant son chemin d'accès : - - Le chemin est relatif au [dossier HTML racine ](#root-folder), - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Le chemin ne doit pas commencer ou finir par un slash. +- Le chemin est relatif au [dossier HTML racine ](#root-folder), +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Le chemin ne doit pas commencer ou finir par un slash. Par exemple, pour que la page d'accueil par défaut soit "MyHome.htm", si elle se trouve dans le dossier "Web" (lui-même situé dans le dossier racine HTML par défaut), utilisez "Web/MyHome.htm". @@ -420,10 +420,10 @@ Version TLS minimale acceptée pour les connexions. Les tentatives de connexion Valeurs possibles : - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (par défaut) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (par défaut) +- 4 = TLSv1_3 En cas de modification, le serveur doit être redémarré pour utiliser la nouvelle valeur. @@ -489,10 +489,10 @@ Par exemple : Disallow: /GIFS/ ``` - - “User-Agent: \*” - tous les robots sont concernés. - - “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. - - "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. - - "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. +- “User-Agent: \*” - tous les robots sont concernés. +- “Disallow: /4D” - Les robots ne sont pas autorisés à accéder aux URLs commençant par /4D. +- "Disallow : /%23%23" - les robots ne sont pas autorisés à accéder aux URL commençant par /%23%23. +- "Disallow : /GIFS/' - les robots ne sont pas autorisés à accéder au dossier /GIFS/ ou à ses sous-dossiers. Autre exemple : @@ -517,15 +517,15 @@ De plus, le dossier racine HTML définit, sur le disque dur du serveur web, le n Par défaut, 4D définit un dossier racine HTML nommé **WebFolder**. S'il n'existe pas encore, le dossier racine HTML est physiquement créé sur le disque au moment où le serveur Web est lancé pour la première fois. Le dossier racine est créé : - - avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). - - avec 4D en mode remote, dans le fichier des ressources locales. +- avec 4D en mode local ou 4D Server, à côté du [dossier du projet](Project/architecture.md#project-folder). +- avec 4D en mode remote, dans le fichier des ressources locales. Vous pouvez désigner un autre dossier HTML racine comme page d'accueil par défaut en entrant son chemin d'accès. - - Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). - - Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), - - Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier - - Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). +- Le chemin est relatif au [dossier du projet](Project/architecture.md#project-folder) (4D local et 4D Server) ou au dossier contenant l'application 4D ou le package logiciel (4D en mode distant). +- Le chemin ext exprimé avec la syntaxe POSIX (les dossiers sont séparés par un slash (/)), +- Pour "remonter" d'un niveau dans la hiérarchie des dossiers, saisissez ".." (deux points) avant le nom de dossier +- Le chemin ne doit pas commencer par une barre oblique (sauf si vous souhaitez que le dossier racine HTML soit le dossier distant du projet ou de 4D, pour interdire l'accès aux dossiers au-dessus, auquel cas vous pouvez passer "/" comme dossier racine). Par exemple, si vous voulez que le dossier racine HTML soit le sous-dossier "Web" du dossier "MyWebApp", entrez "MyWebApp/Web". @@ -580,9 +580,9 @@ Valeur de l'attribut `SameSite` du cookie de session. Cet attribut vous permet d Trois valeurs sont disponibles : - - "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. - - "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). - - "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). +- "Strict" (valeur par défaut de l'attribut`SameSite` pour les cookies de session 4D) : les cookies ne seront envoyés que dans le contexte de première partie, c'est-à-dire le contexte correspondant au domaine du site, et jamais à des sites Web tiers. +- "Lax" : Les cookies ne sont pas envoyés lors de sous-requêtes intersites (par exemple pour charger des images ou des cadres dans un site tiers), mais sont envoyés lorsqu'un utilisateur navigue vers le site d'origine (c'est-à-dire lorsqu'il suit un lien). +- "None" : Les cookies sont envoyés dans tous les contextes, c'est-à-dire dans les réponses aux demandes primaires et cross-origin. Lorsque la valeur "None" est utilisée, l'attribut du cookie `Secure` doit également être défini (sinon le cookie sera bloqué). La valeur de l'attribut `Secure` du cookie de session est automatiquement définie sur "True" si la connexion est HTTPS (quelle que soit la valeur de l'attribut `SameSite`). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index f63adab7ff5b45..80ee10ccfba2e9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Par exemple, si vous avez installé deux composants dans votre application principale, vous pouvez démarrer et contrôler jusqu'à trois serveurs Web indépendants à partir de votre application : - - un serveur web pour l'application hôte, - - un serveur web pour le composant n°1, - - un serveur web pour le composant n°2. +- un serveur web pour l'application hôte, +- un serveur web pour le composant n°1, +- un serveur web pour le composant n°2. En dehors de la mémoire, il n'y a pas de limite au nombre de composants et donc, de serveurs Web, pouvant être rattachés à un seul projet d'application 4D. @@ -19,9 +19,9 @@ Chaque serveur web 4D, y compris le serveur web de l'application principale, est Chaque serveur web (application hôte ou composant) peut être utilisé dans son propre contexte, notamment : - - les appels vers la méthode base `On Web Authentication` et `On Web Connection` - - le traitement des balises 4D et les appels de méthodes, - - sessions web et gestion du protocole TLS. +- les appels vers la méthode base `On Web Authentication` et `On Web Connection` +- le traitement des balises 4D et les appels de méthodes, +- sessions web et gestion du protocole TLS. Cela vous permet de développer des composants indépendants et des fonctionnalités qui accompagnent leurs propres interfaces Web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Si l'application utilise des composants et que vous souhaitez appeler : - - le serveur Web de l'application hôte à partir d'un composant ou - - le serveur qui a reçu la requête (quel que soit le serveur) +- le serveur Web de l'application hôte à partir d'un composant ou +- le serveur qui a reçu la requête (quel que soit le serveur) vous pouvez également utiliser : @@ -94,8 +94,8 @@ Ces propriétés sont définies : 2. si elles ne sont pas utilisées, à l'aide de la commande `WEB SET OPTION` (applications hôtes uniquement), 3. si elles ne sont pas utilisées, dans les propriétés de l'application hôte ou du composant. - - Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. - - Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). +- Si le serveur Web n'est pas démarré, les propriétés contiennent les valeurs qui seront utilisées au prochain démarrage du serveur Web. +- Si le serveur Web est démarré, les propriétés contiennent les valeurs réelles utilisées par le serveur Web (les paramètres par défaut peuvent avoir été remplacés par le paramètre `settings` de la fonction [`.start()`](API/WebServerClass.md#start). > *isRunning*, *name*, *openSSLVersion* et *perfectForwardSecrecy* sont des propriétés en lecture seule qui ne peuvent pas être prédéfinies dans le paramètre objet `settings` pour la fonction [`start()`](API/WebServerClass.md#start). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index df6d8a6a39ff8b..a312698abd737f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ La commande **WP Insert break** ins Dans *targetObj*, passez : - - une plage, ou - - un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou - - un document 4D Write Pro +- une plage, ou +- un élément (tableau / ligne / paragraphe / corps / en-tête / pied de page / image en ligne / section / sous-section), ou +- un document 4D Write Pro Dans *breakType*, passez l'une des constantes suivantes du thème *4D Write Pro Constants* pour définir le type de break à insérer : @@ -62,7 +62,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio | wk prepend | Integer | 1 | Insérer le contenu au début de la cible | | wk replace | Integer | 0 | Remplacer le contenu de la cible | - - Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : +- Si *targetObj* est une plage, vous pouvez utiliser le paramètre facultatif *rangeUpdate* pour transmettre l'une des constantes suivantes afin de spécifier si le contenu inséré est inclus ou non dans la plage résultante : | Constante | Type | Valeur | Commentaire | | --------------------- | ------- | ------ | ------------------------------------------------------------------------------- | @@ -71,7 +71,7 @@ Dans le paramètre *mode*, passez une constante pour indiquer le mode d'insertio Si vous ne passez pas un paramètre *rangeUpdate*, par défaut, le contenu inséré est inclus dans la plage résultante. - - Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. +- Si *targetObj* n'est pas une plage, *rangeUpdate* est ignoré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index f83b3a2c602bdd..46ec6f90585fa9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandLa commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - - le formulaire courant est un sous-formulaire, - - un formulaire table est actuellement affiché à l'écran. +- le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), +- le formulaire courant est un sous-formulaire, +- un formulaire table est actuellement affiché à l'écran. ### Commandes (DIALOG...) Si le formulaire courant est affiché ou chargé par un appel aux commandes [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** renvoie soit : - - l'objet *formData* passé en paramètre à cette commande, le cas échéant, - - ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, - - ou un objet vide. +- l'objet *formData* passé en paramètre à cette commande, le cas échéant, +- ou un objet instancié de la [classe utilisateur associée au formulaire](../FormEditor/properties_FormProperties.md#form-class), le cas échéant, +- ou un objet vide. ### Sous-formulaire @@ -49,7 +49,7 @@ Si le formulaire courant est un sous-formulaire, l'objet renvoyé dépend de la (OBJECT Get pointer(Object subform container))-> ``` - - Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. +- Si la variable associée au conteneur parent n'a pas été typée en tant qu'objet, **Form** renvoie un objet vide, géré par 4D dans le contexte du sous-formulaire. Pour plus d'informations, veuillez vous référer à la section *Sous-formulaires en page*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 457e0da1d396c5..5b553fcd1c85d3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Si l'indice du nouvel élément est au-delà du dernier élément existant de la Vous pouvez passer tout nombre de valeurs de n'importe quel type pris en charge : - - nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. - - text - - boolean - - date - - heure (stockée en nombre de milliseconds - réel) - - Null - - Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. - - *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. +- nombre (réel, entier...). Les valeurs numériques sont toujours stockées sous forme de réels. +- text +- boolean +- date +- heure (stockée en nombre de milliseconds - réel) +- Null +- Si vous souhaitez que l'évaluation soit sensible à la casse ou pour différencier des caractères accentués, passez la constante `ck diacritical` dans le paramètre option. +- *$1.stop* (booléen, optionnel) : **true** pour stopper le rétroappel de la méthode. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 4b98187d7cf741..9e5f7ad5a9d05f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs Dans le paramètre *form*, vous pouvez passer soit : - - le nom d'un formulaire, - - le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou - - un objet contenant la description du formulaire à utiliser. +- le nom d'un formulaire, +- le chemin d'accès (en syntaxe POSIX) d'un fichier .json valide contenant une description du formulaire à utiliser (voir *Chemin d'accès au fichier de formulaire*), ou +- un objet contenant la description du formulaire à utiliser. Comme **Print form** ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, **Print form** est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour forcer un saut de page entre les formulaires, utilisez la commande [PAGE BREAK](../commands-legacy/page-break.md). Pour reporter l'impression à la page suivante d'un formulaire dont la hauteur est supérieure à l'espace disponible, appelez la commande [CANCEL](../commands-legacy/cancel.md) avant la commande [PAGE BREAK](../commands-legacy/page-break.md). Trois syntaxes différentes peuvent être utilisées : - - **Impression du corps d'un formulaire** +- **Impression du corps d'un formulaire** Syntaxe : @@ -43,7 +43,7 @@ Syntaxe : Dans ce cas, **Print form** n'imprime que la zone de corps du formulaire (la zone comprise entre les marqueur d'en-tête et de corps). - - **Impression de zone de formulaire** +- **Impression de zone de formulaire** Syntaxe : @@ -79,7 +79,7 @@ Dans ce cas, la commande imprime la section désignée par *marker*. Passez dans | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impression de section** +- **Impression de section** Syntaxe : @@ -101,8 +101,8 @@ La valeur retournée par **Print form** indique la hauteur de la zone d’impres Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande **Print form**. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à **Print form** : - - Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. - - Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. +- Appeler [PRINT SETTINGS](../commands-legacy/print-settings.md). Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression. +- Appeler [SET PRINT OPTION](../commands-legacy/set-print-option.md) et [GET PRINT OPTION](../commands-legacy/get-print-option.md). Dans ce cas, les paramètres sont définis par programmation. **Print form** construit chaque page à imprimer en mémoire. Chaque page est imprimée lorsque la page en mémoire est remplie ou lorsque vous appelez [PAGE BREAK](../commands-legacy/page-break.md). Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire de **Print form** est effectivement imprimée, il faut terminer par la commande [PAGE BREAK](../commands-legacy/page-break.md) (sauf dans le cadre d'un [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md), voir note). Sinon, la dernière page, si elle n'est pas remplie, reste en mémoire et n'est pas imprimée. @@ -116,8 +116,8 @@ Cette commande permet d'imprimer des zones et des objets externes (par exemple, **4D Server:** Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte : - - Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). - - Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. +- Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur la machine serveur (sauf exigence particulière). +- Dans le cas d'un problème concernant l'imprimante (manque de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré. ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 1884e7d3fc1f52..beaa5cb365a0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ L'objet retourné contient les propriétés suivantes : | type | Integer | Type de process en cours d'exécution. Valeurs possibles : voir ci-dessous | | visible | Boolean | Vrai si visible, faux sinon | - - Valeurs possibles pour "state" : +- Valeurs possibles pour "state" : | Constante | Valeur | | ------------------------- | ------ | @@ -57,7 +57,7 @@ L'objet retourné contient les propriétés suivantes : | Waiting for internal flag | 4 | | Paused | 5 | - - Valeurs possibles pour "type" : +- Valeurs possibles pour "type" : | Constante | Valeur | | ----------------------------- | ------ | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md index ec0153d728629d..f884369402cd33 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ Les pages Client-serveur regroupent les propriétés liées à l'utilisation de Cette option vous permet d'indiquer si la base de données 4D Server apparaîtra ou non dans la liste des bases de données publiées. - - Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). - - Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. +- Lorsque cette option est cochée (par défaut), la base de données est rendue publique et apparaît dans la liste des bases de données publiées (onglet **Disponible**). +- Lorsque l'option n'est pas cochée, la base de données n'est pas rendue publique et n'apparaît pas dans la liste des bases de données publiées. Pour se connecter, les utilisateurs doivent saisir manuellement l'adresse de la base de données dans l'onglet **Personnalisé** de la boîte de dialogue de connexion. :::note @@ -67,9 +67,9 @@ Lorsque l'authentification unique (SSO) est activée (voir ci-dessus), vous deve Cette liste déroulante contient 3 options de couche réseau : **Historique**, **ServerNet** et **QUIC** (uniquement en mode projet), qui sont utilisées pour gérer les communications entre le serveur 4D et les machines 4D distantes (clients). - - **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). - - **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. +- **Historique** : Cette ancienne couche réseau "historique" est toujours prise en charge afin d'assurer la compatibilité avec les bases de données créées avant la version 15. Cette couche réseau peut également être activée par programmation à l'aide de la commande [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (par défaut) : Active la couche réseau ServerNet sur le serveur (disponible depuis 4D v15). +- **QUIC** (disponible uniquement en mode projet) : Active la couche réseau QUIC sur le serveur. **Notes** : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index 5db5b3ca0ddae4..d2ac339200efa2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -13,7 +13,7 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa - **Utiliser l'ancienne couche réseau** : À partir de 4D v15, les applications 4D proposent une nouvelle couche réseau, nommée *ServerNet*, pour gérer les communications entre 4D Server et les postes 4D distants (clients). L'ancienne couche réseau devient obsolète, mais est conservée pour assurer la compatibilité des bases existantes. A l'aide de cette option, vous pouvez activer ou désactiver à tout moment l'ancienne couche réseau dans vos applications 4D Server en fonction de vos besoins. *ServerNet* est automatiquement utilisé pour les nouvelles bases de données et les bases de données converties depuis une version 15 ou ultérieure. A noter qu'en cas de modification de l'option, vous devez redémarrer l'application pour que le changement soit pris en compte. Toute application cliente qui était connectée doit également être redémarrée afin de se connecter avec la nouvelle couche réseau. **Note :** Cette option peut également être gérée par programmation en utilisant la commande `SET DATABASE PARAMETER`. - - **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : +- **Utiliser XPath standard :** Par défaut, cette option est désélectionnée pour les bases converties depuis une version de 4D antérieure à la 18 R3, et est cochée pour les bases créées sous une version 4D 18 R3 ou une version plus récente. A partir de la version 18 R3, l'implémentation de XPath dans 4D a été modifiée pour une meilleure conformité et pour la prise en charge d'un plus grand nombre de prédicats. Par conséquent, les fonctionnalités non standard de l'implémentation antérieure ne fonctionnent plus. Elles incluent : - le caractère "/" initial n'est pas seulement le noeud racine - l'utilisation du caractère / comme premier caractère d'une expression XPath ne déclare pas un chemin absolu à partir du noeud racine - pas de noeud courant implicite - le noeud courant doit être intégré dans l'expression XPath @@ -21,12 +21,12 @@ La page Compatibilité regroupe les paramètres relatifs au maintien de la compa Même si ces fonctionnalités ne sont pas standard, vous pourriez vouloir continuer à les utiliser afin que votre code continue de fonctionner comme avant -- dans ce cas, il vous suffit de *désélectionner* l'option. On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Utiliser LF comme caractère de fin de ligne sur macOS :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit les fichiers texte avec un saut de ligne (LF) comme caractère de fin de ligne (EOL) par défaut au lieu de Retour Chariot (CR) (CRLF pour xml SAX) sur macOS dans les nouveaux projets. Si vous souhaitez bénéficier de ce nouveau comportement dans les projets convertis à partir de versions antérieures de 4D, cochez cette option. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Ne pas ajouter de BOM lors de l'écriture d'un fichier texte unicode par défaut :** À partir de 4D 19 R2 (et 4D 19 R3 pour les fichiers XML), 4D écrit des fichiers texte sans BOM ("Byte order mark") par défaut. Dans les versions antérieures, les fichiers texte étaient écrits avec un BOM par défaut. Sélectionnez cette option si vous souhaitez activer le nouveau comportement dans les projets convertis. Voir [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), et [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). +- **Traduire les NULL en valeurs vides non cochée par défaut à la création d'un champ** : Pour une meilleure conformité avec les spécifications ORDA, dans les bases de données créées avec 4D 19 R4 et versions ultérieures, la propriété de champ **Traduire les NULL en valeurs vides** est non cochée par défaut lors de la création des champs. Vous pouvez appliquer ce comportement par défaut à vos bases de données converties en cochant cette option (il est recommandé de travailler avec des valeurs Null car elles sont entièrement prises en charge par [ORDA](../ORDA/overview.md)). - - **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). +- **Impression non-bloquante** : À partir de 4D 20 R4, chaque process a ses propres paramètres d'impression (options d'impression, imprimante courante, etc.), ce qui vous permet d'exécuter plusieurs tâches d'impression simultanément. Cochez cette option si vous souhaitez bénéficier de cette nouvelle implémentation dans vos projets 4D convertis ou dans les bases de données converties du mode binaire au mode projet. **Lorsque l'option n'est pas cochée**, l'implémentation précédente est appliquée : les paramètres d'impression 4D courants sont appliqués globalement, l'imprimante passe en mode "occupé" lorsqu'un job d'impression est en cours, vous devez appeler `CLOSE PRINTING JOB` pour que l'imprimante soit disponible pour le prochain job d'impression (consultez la documentation 4D précédente pour plus d'informations). - - **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file +- **Sauvegarder les couleurs et les coordonnées de la structure dans un fichier catalog_editor.json séparé** : À partir de 4D 20 R5, les modifications apportées dans l'éditeur de Structure concernant l'apparence graphique des tables et des champs (couleur, position, ordre...) sont sauvegardées dans un fichier séparé nommé `catalog_editor.json`, stocké dans le dossier [Sources](../Project/architecture.md#sources) du projet. Cette nouvelle architecture de fichiers facilite la gestion des conflits de fusion dans les applications de gestion de versions (VCS) car le fichier `catalog.4DCatalog` ne contient désormais que les modifications cruciales de la structure de la base de données. Pour des raisons de compatibilité, cette fonctionnalité n'est pas activée par défaut dans les projets convertis à partir des versions précédentes de 4D, vous devez cocher cette option. Lorsque la fonctionnalité est activée, le fichier `catalog_editor.json` est créé lors de la première modification dans l'éditeur de structure. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md index dccaae09a40f18..88a67bd5979b36 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ La police et la taille de police par défaut dépendent de la plate-forme d'exé D'autres options permettent de configurer l'affichage de diverses fenêtres du mode Application. - - **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. +- **Accueil** : lorsque cette option est désélectionnée, la [fenêtre d’accueil (ou “splash screen”) de la barre de menus courante](Menus/bars.md#splash-screen) en mode Application n’apparaît pas. Lorsque vous masquez cette fenêtre, c'est à vous de gérer l'affichage de toutes vos fenêtres par programmation, par exemple dans la méthode base `On Startup`. - - **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. +- **Ecriture du cache** : Lorsque cette option est cochée, 4D affiche une fenêtre en bas à gauche de l'écran pendant que les données du cache sont vidées. Etant donné que cette opération bloque momentanément les actions de l'utilisateur, l'affichage de cette fenêtre lui permet de savoir que l'écriture du cache est en cours. :::note @@ -33,9 +33,9 @@ Vous pouvez définir la [fréquence d'écriture du cache](database.md#memory-pag ::: - - **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. +- **Progression de l'impression** : permet, lors de l'impression, d'activer ou de désactiver l'affichage de la boîte de dialogue de progression de l'impression. - - **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : +- **Utiliser le mode SDI sous Windows** : Lorsque cette option est cochée, 4D active automatiquement le [mode SDI (Interface à document unique)](../Menus/sdi.md) dans votre application lorsqu'elle est exécutée dans un [contexte pris en charge](../Menus/sdi.md#disponibilité-du-mode-sdi). Lorsque vous sélectionnez cette option, sur Windows le menu **Exécuter** de la barre de menus 4D vous permet de sélectionner le mode dans lequel vous souhaitez tester l'application : ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Les palettes suivants sont disponibles : La palette d'application principale sera appliquée aux formulaires par défaut. Toutefois, elle peut être remplacée : - - par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; - - en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". +- par la commande [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) au niveau de la session de travail ; +- en utilisant la propriété de formulaire [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) à chaque niveau de formulaire (niveau de priorité le plus élevé). **Note** : à l'impression, les formulaires utilisent toujours la palette "Light". ## Raccourcis @@ -72,9 +72,9 @@ La zone Raccourcis clavier permet d'afficher et de modifier les raccourcis clavi Les raccourcis clavier par défaut sont les suivants : - - Acceptation de saisie : **Entrée** - - Annulation de saisie : **Echap** - - Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) +- Acceptation de saisie : **Entrée** +- Annulation de saisie : **Echap** +- Ajout d'un sous-formulaire : **Ctrl+Shift+/** (Windows) ou **Command+Shift+/** (macOS) Pour modifier le raccourci d'une opération, cliquez sur le bouton **Modifier** correspondant. La boîte de dialogue suivante apparaît : 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 860ea31a77884c..fc721bb398efad 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 @@ -78,9 +78,9 @@ Lorsque cette option est sélectionnée, le serveur Web ne fournit aucune prise Dans ce mode, vous pouvez configurer des paramètres de serveur Web supplémentaires : - - [Process Web simultanés maxi](#maximum-concurrent-web-processes) - - [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) - - [Utiliser des process préemptifs](#use-preemptive-processes) +- [Process Web simultanés maxi](#maximum-concurrent-web-processes) +- [Réutilisation des contextes temporaires (en mode distant)](#reuse-temporary-context) +- [Utiliser des process préemptifs](#use-preemptive-processes) #### Anciennes sessions (sessions process uniques) @@ -166,7 +166,7 @@ Démarre ou arrête l'enregistrement des requêtes reçues par le serveur Web 4D Le menu de format du journal propose les options suivantes : - - **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. +- **Pas de journal** : Lorsque cette option est sélectionnée, 4D ne génère pas d’historique des requêtes. - **CLF (Common Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format CLF. Avec le format CLF, chaque ligne du fichier représente une requête, telle que :\ host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ Chaque champ est séparé par un espace et chaque ligne se termine par la séquence CR/LF (caractère 13, caractère 10). @@ -178,9 +178,9 @@ Le menu de format du journal propose les options suivantes : > La date et heure sont locales au serveur. - - requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) - - statut : réponse donnée par le serveur. - - longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. +- requête : requête envoyée par le client (ex. GET /index.htm HTTP/1.0) +- statut : réponse donnée par le serveur. +- longueur : taille des données renvoyées (hors en-tête HTTP) ou 0. > **Note :** Pour des raisons de performances, les opération sont stockées dans une mémoire tampon par paquets de 1 Ko avant d'être écrites sur disque. Les opérations sont également écrites sur disque si aucune requête n'a été envoyée au bout de 5 secondes. > Les valeurs possibles de l'état sont les suivantes : @@ -194,16 +194,16 @@ Le menu de format du journal propose les options suivantes : > 500 : Erreur interne > Le format CLF ne peut pas être personnalisé. - - **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. +- **DLF (Combined Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format DLF. Le format DLF est semblable au format CLF dont il reprend exactement la structure. Il ajoute simplement deux champs HTTP supplémentaires à la fin de chaque requête : Referer et User-agent. - Referer : contient l’URL de la page pointant vers le document demandé. - User-agent : contient le nom et la version du navigateur ou du logiciel client à l’origine de la requête. > Le format DLF ne peut pas être personnalisé. - - **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. +- **ELF (Extended Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format ELF. Le format ELF est largement répandu dans le monde des serveurs HTTP. Il peut être utilisé pour construire des historiques sophistiqués qui répondent à des besoins spécifiques. Pour cette raison, le format ELF peut être personnalisé : il est possible de choisir les champs à enregistrer ainsi que leur ordre d'insertion dans le fichier. - - **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. +- **WLF (WebStar Log Format)** : Lorsque cette option est sélectionnée, l’historique des requêtes est généré au format WLF. Le format WLF a été développé spécifiquement pour le serveur 4D WebSTAR. Il est semblable au format ELF, il dispose simplement de champs supplémentaires. Comme le format ELF, il est personnalisable. **Configurer les champs** Lorsque vous choisissez le format ELF (Extended Log Format) ou WLF (WebStar Log Format), la zone “Formatage du journal” affiche les champs disponibles pour le format. Vous devrez sélectionner chaque champ à inclure dans le journal. Pour cela, utilisez les flèches de commande ou procédez par glisser-déposer. @@ -242,8 +242,8 @@ Le tableau suivant répertorie les champs disponibles pour chaque format (par or Paramètres d’archivage automatique du journal des requêtes. D'abord, vous devez choisir la fréquence (jours, semaines, etc.) ou le critère de limite de taille du fichier en cliquant sur le bouton radio correspondant. Vous devez ensuite spécifier le moment précis de la sauvegarde si nécessaire. - - **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. - - **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. +- **Pas de sauvegarde du journal** : La fonction de sauvegarde programmée est désactivée. +- **Toutes les X heure(s)** : Cette option est utilisée pour programmer des sauvegardes sur une base horaire. Vous pouvez entrer une valeur entre 1 et 24. - **à partir de**: Permet de définir l'heure du déclenchement du premier backup. - **Tous les N jour(s) à N** : permet de programmer des backups sur une base journalière. Saisissez 1 si vous souhaitez effectuer une sauvegarde quotidienne. Lorsque vous cochez cette option, vous devez indiquer l’heure à laquelle la sauvegarde doit être déclenchée. @@ -263,9 +263,9 @@ Pour plus d'informations sur la prise en charge des services Web dans 4D, veuill Cette zone affiche les options relatives à l’utilisation de 4D en tant que “serveur” de Web Services, c’est-à-dire publiant des méthodes projet sous forme de Web Services. - - **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. - - **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. - - **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. +- **Autoriser requêtes Web Services** : Cette option permet d’initialiser la publication de Web Services. Si cette option n’est pas cochée, 4D refuse les requêtes SOAP et ne génère pas de WSDL — même si des méthodes disposent de l’attribut *Disponible via Web Service*. Lorsque cette option est cochée, 4D crée le fichier WSDL. +- **Nom Web Service**: cette zone permet de modifier le “nom générique” du Web Service. Ce nom permet de différencier les services au niveau du serveur SOAP (lorsque le serveur publie plusieurs Web Services), ainsi que dans les annuaires de Web Services. Par défaut, 4D utilise le nom A_WebService. +- **Espace de nommage Web Services** : cette zone permet de modifier l’espace de nommage (le namespace) des Web Services publiés par 4D. Chaque Web Service publié sur Internet doit être unique. L’unicité des noms de Web Services est assuré à l’aide des espaces de nommage XML (XML namespace). Un espace de nommage est une chaîne de caractères arbitraire permettant d’identifier de manière unique un ensemble de balises XML. Typiquement, l’espace de nommage début par l’URL de la société (http://masociete.com/monespacedenommage). Dans ce cas, il n’est pas indispensable qu’il y ait quelque chose à l’URL défini, il importe simplement que la chaîne de caractères utilisée soit unique. Par défaut, 4D utilise l’espace de nommage http://www.4d.com/namespace/default. > Conformément à la norme XML concernant les noms de balises, la chaîne de caractères utilisée ne doit pas contenir d’espaces ni débuter par un chiffre. En outre, pour éviter tout risque d’incompatibilité, il est recommandé de ne pas utiliser de caractères étendus (tels que des caractères accentués). @@ -273,7 +273,7 @@ Cette zone affiche les options relatives à l’utilisation de 4D en tant que Cette zone contient une option relative à l’utilisation de 4D en tant que “client” de Web Services, c’est-à-dire souscrivant à des services publiés sur le réseau. - - **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. +- **Préfixe des méthodes créées par l’assistant** : cette zone vous permet de modifier le préfixe automatiquement ajouté par 4D devant le nom des méthodes proxy générées par l’assistant Web Services. Les méthodes projet proxy font le lien entre l’application 4D et le serveur de Web Services. Par défaut, 4D utilise le préfixe “proxy_”. ## Fonctionnalités Web @@ -307,9 +307,9 @@ Ce bouton est uniquement disponible dans les projets ouverts avec l'application Le bouton déclenche la séquence de mise à niveau suivante : - - Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. - - La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). - - Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. +- Le groupe d'utilisateurs de l'API REST défini dans le menu **Lecture/Écriture** est supprimé. +- La méthode base `On REST Authentication` est supprimée (déplacée dans la corbeille du système). +- Un fichier ["roles.json"](../ORDA/privileges.md#fichier-rolesjson) par défaut est créé dans le dossier [Sources](../Project/architecture.md#sources) du projet s'il n'existe pas déjà, avec son attribut `forceLogin` défini sur `True`. N'oubliez pas de redémarrer votre projet après avoir effectué cette mise à niveau. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 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 160f28b397b146..dbdb9acd8d6eef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index fde54ce68e3b01..eacb93bd59f35f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md index 0e37e810c9dc72..6cb8c4dba500f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: - - 自動バックアップ用のスケジューラー設定 - - 各バックアップに含めるファイル - - 自動タスクの実行を可能にする高度な設定 +- 自動バックアップ用のスケジューラー設定 +- 各バックアップに含めるファイル +- 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 804217b5d17516..e37db10b0ae5a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index bccd183b3423bf..a421e9046f83c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 4d09df782992d4..275394a1dab283 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: - - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 - - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 - - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 +- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 +- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 +- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 2e756d989d8014..67b11a22727950 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 46d05beb459033..5354ab71427490 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -250,8 +250,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 - - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 +- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -281,9 +281,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 - - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 - - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 +- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -291,25 +291,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 - - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 - - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 - - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 - - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 - - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 - - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 - - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 - - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 - - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 - - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 - - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 - - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 +- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 +- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 +- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 +- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 +- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 +- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 +- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 +- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 +- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 +- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 +- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 +- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 +- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 - - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 - - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 +- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 +- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -317,21 +317,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 - - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 - - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 - - [制限付エンティティセレクション](../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#強制ログイン)。 - - 新しい [$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/))。 +- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 +- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 +- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 +- [制限付エンティティセレクション](../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#強制ログイン)。 +- 新しい [$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/))。 #### 動作の変更 - - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -339,24 +339,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 - - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 - - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 - - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 - - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 - - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート - - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 - - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 - - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 - - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 +- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 +- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 +- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 +- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 +- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 +- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート +- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 +- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 +- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 +- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 - - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 - - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 - - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 +- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 +- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -364,21 +364,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 - - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 - - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 - - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 - - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 - - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 +- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 +- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 +- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 +- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 +- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 +- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 - - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 - - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 +- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 +- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -392,15 +392,15 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 - - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 - - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 +- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 +- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 +- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 - - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 +- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 552cb58d4ecdda..33bc7539dc0b38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md index 9e562869f6c322..e0d5eb69a426f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 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 a8a1f2e3fde1b7..c922921306853f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index 059e4eeddabb19..5979f2a6997c4c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md index a696826968337d..6748776051563e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md index d1128f908f0860..722858ec7053d5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md @@ -194,9 +194,9 @@ RESTリクエストで定義されたリレートエンティティのコレク :::note - - **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 - - **ブール** は true または false です。 - - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 +- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 +- **ブール** は true または false です。 +- `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md index 2f959e853d7591..3261d080e8448f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index d00f1cabd92020..5d069870ab5a4e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 9a91c5604ce4dd..b68bcfc3a991bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index fe5f718531ff93..883be9680d24b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index c3f857a7e0b955..9ded11857f4f7f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -73,15 +73,15 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: - - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) - - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 1fcccdee63d7f9..17c2d431301349 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index b9d772a6d7bb50..020a8dc923f782 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 @@ -629,7 +629,7 @@ This option allows you to designate a user, previously defined in the [4D passwo Keep-Alive接続を設定する 2つのオプションがあります: - - **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

+- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

- **タイムアウト**: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。

diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md index 9991b3a1b720af..097eda5af0b378 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md index 3c58d365a85c90..aba37f55ba8ba5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 9986b0a7644cfc..99d4d0ca7a8ace 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - ブール - - 日付 - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- ブール +- 日付 +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md index bfdc231296e94e..62887e306c2f26 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md index 6e7406bdf9f07b..ba21d38bca8883 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md index 28d2770330b4d8..9a0a68e1cb6570 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 - - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 +- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 - - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 - - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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 dee6d27d5cbc73..5f4c17e5e218a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index 199b5df3cca138..6aee01ba447654 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 0e37e810c9dc72..6cb8c4dba500f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: - - 自動バックアップ用のスケジューラー設定 - - 各バックアップに含めるファイル - - 自動タスクの実行を可能にする高度な設定 +- 自動バックアップ用のスケジューラー設定 +- 各バックアップに含めるファイル +- 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 56031713faf0fc..2d464e24017b76 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index d5d31f0b890637..5ced8fbcb3e9a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index 4d09df782992d4..275394a1dab283 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ title: 入力 フィールドや変数などの式は、フォーム内において入力オブジェクト以外を用いて表示することができます。具体的には以下の方法があります: - - データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 - - [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 - - ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 +- データベースのフィールドから [セレクション型のリストボックス](listbox_overview.md) へと、データを直接表示・入力することができます。 +- [ポップアップメニュー/ドロップダウンリスト](dropdownList_Overview.md) と [コンボボックス](comboBox_overview.md) オブジェクトを使用することによって、リストフィールドまたは変数をフォーム内にて直接表示することができます。 +- ブール型の式は [チェックボックス](checkbox_overview.md) や [ラジオボタン](radio_overview.md) オブジェクトを用いて提示することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index c98e0e88207fa6..053fb26ffbd4a6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -48,8 +48,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -73,9 +73,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 b5a54a0832b98f..359fe1da8101c5 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 @@ -81,8 +81,8 @@ title: リリースノート #### 動作の変更 - - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 - - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 +- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -112,9 +112,9 @@ title: リリースノート #### 動作の変更 - - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 - - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 - - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 +- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -139,8 +139,8 @@ title: リリースノート #### 動作の変更 - - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 - - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 +- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 +- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -148,21 +148,21 @@ title: リリースノート #### ハイライト - - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 - - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 - - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 - - [制限付エンティティセレクション](../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#強制ログイン)。 - - 新しい [$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/))。 +- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 +- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 +- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 +- [制限付エンティティセレクション](../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#強制ログイン)。 +- 新しい [$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/))。 #### 動作の変更 - - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -170,24 +170,24 @@ title: リリースノート #### ハイライト - - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 - - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 - - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 - - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 - - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 - - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート - - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 - - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 - - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 - - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 +- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 +- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 +- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 +- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 +- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 +- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート +- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 +- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 +- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 +- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 - - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 - - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 - - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 +- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 +- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -195,21 +195,21 @@ title: リリースノート #### ハイライト - - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 - - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 - - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 - - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 - - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 - - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 +- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 +- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 +- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 +- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 +- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 +- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 - - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 - - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 +- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 +- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -223,15 +223,15 @@ title: リリースノート #### ハイライト - - 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 - - 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 - - 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 +- 4D から WebSocketクライアント接続を作成および管理するための、新しい [WebSocket](../API/WebSocketClass.md) クラス。 +- 新しい QUICネットワークレイヤー [インタフェース設定](../settings/client-server.md#ネットワークレイヤー)。 +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-document) および [エクスポート](../ViewPro/commands/vp-export-document) で **.sjs** ファイル形式をサポート。 +- 4D Write Pro インターフェース: 新しい [表ウィザード](../WritePro/writeprointerface.md)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/178/release-note-version-20r2/))。 #### 動作の変更 - - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 +- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a67a2c73bd0249..9b6f26afd6daa1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index c1201dea525f67..e1e76859c3dc67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 504e63ace4d540..1dc15ee343d9c6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -121,9 +121,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -176,11 +176,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 4321afc51a3669..63488266de291f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -52,8 +52,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -61,14 +61,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -84,8 +84,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -93,8 +93,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -202,9 +202,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -260,7 +260,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -277,17 +277,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -297,9 +297,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -325,8 +325,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -442,8 +442,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -504,11 +504,11 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 - - **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 - - **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 - - **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 - - **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 +- **自動更新する(latest)**: デフォルトで選択され、最新の(安定)バージョンとしてタグ付けされたリリースをダウンロードできるようにします。 +- **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 +- **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 +- **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 +- **4Dのバージョンに追随する**: 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 現在のGitHub 依存関係バージョンは、依存関係の項目の右側に表示されます: @@ -595,8 +595,8 @@ You can modify the [version setting](#defining-a-github-dependency-version-range GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 95335f5e527e6c..f2fb2e5f5ad9b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ title: Documentation ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: Documentation - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: Documentation ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: Documentation 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: Documentation `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 2f959e853d7591..3261d080e8448f 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index caee460543efc5..c394508d9bed5b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 5309c3668387b6..d2178137e0151b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index fa84a99ffa29ba..d7df59f12047f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -38,20 +38,20 @@ title: はじめに ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -129,8 +129,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -147,10 +147,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 1dfe242eeda202..e5e45790d725f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 カスタムのHTTP リクエストハンドラーは以下の条件の元にサポートされます: - - [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること - - メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 +- [スケーラブルセッション](./sessions.md#enabling-web-sessions) が有効化されていること +- メインのWeb サーバーでのみ利用可能です([コンポーネントのWeb サーバー](../WebServer/webServerObject.md) で定義されていたHTTP リクエストハンドラーがあったとしてもそれは無視されます)。 :::warning @@ -62,9 +62,9 @@ title: HTTP Request handler ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -84,8 +84,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -117,17 +117,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -208,11 +208,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 8759bf2fda3be9..2bb9bec7a8c8b0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) これらそれぞれのメソッドとコードの部分について、スレッドセーフのルールが遵守されているかをコンパイラーがチェックし、問題があった場合にはエラーを返します。 スレッドセーフルールについての詳細は、[4Dランゲージリファレンス](https://doc.4d.com) マニュアルの *プロセス* の章の *スレッドセーフなメソッドの書き方* の段落を参照ください。 @@ -61,8 +61,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 @@ -72,16 +72,16 @@ Web関連のデータベースメソッドもスレッドセーフであり、 以下の 4D WebサーバーURLはスレッドセーフであり、プリエンプティモードで使用可能です: - - *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) - - *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) - - *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4daction/* (呼び出されるプロジェクトメソッドもまたスレッドセーフでなければいけません) +- *4dcgi/* (呼び出されるデータベースメソッドもまたスレッドセーフでなければいけません) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (ピクチャーフィールドの Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) +- *4dimg/* (ピクチャー変数の Webリクエストに対し `PROCESS 4D TAGS` によって生成されます) ### プリエンプティブWebプロセスアイコン diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 356587fc5d6544..858d01afba03f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index 5cbbf2006c4386..d05f6e50c0a5e2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md index 28eda06a2a0a2f..6305cfc00401be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index 1ceb2de53786d0..ec284ecd7a9bc4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 352fff791b636b..7b6bd571dad62d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - boolean - - date - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- boolean +- date +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index cdb231ed9fe273..f80d1bd1b2f9c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index c3bf63ac21735a..e96fd983130c6e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -108,9 +108,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 28d2770330b4d8..9a0a68e1cb6570 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 - - **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 +- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: @@ -25,11 +25,11 @@ title: セキュリティページ - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
**注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 - - **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). +- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 For more information about the two versions of the password dialog box, see the section "Access system overview" in [Access system overview](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html). - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 - - **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション @@ -43,7 +43,7 @@ title: セキュリティページ - **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 For more information, refer to [User settings](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 このオプションがチェックされていると: 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 aa7a5fc2b9e400..fdf86e820851e7 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 @@ -82,9 +82,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index 696256d301e551..fbe12394c69695 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ title: Class :::note 注記 - - すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 - - 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 +- すでにインスタンス化されている [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) に対して `.new()` を呼び出すと、新しいインスタンスではなくシングルトンインスタンスが返されます。 +- 存在しないクラスを対象に `.new()` を呼び出した場合、エラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md index cb7edf57941cd8..1b71686ebb69e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ title: Document クラス `.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: ターゲット要素は以下のいずれかです: - - File オブジェクト - - Folder オブジェクト +- File オブジェクト +- Folder オブジェクト エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。 @@ -585,8 +585,8 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) 任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: - - *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 - - *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 +- *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 +- *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 208c9341397e29..450abf1176c9cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.body` プロパティには送信されるメッセージ本文が格納されています。 `.body` プロパティでは以下のデータ型がサポートされます: - - text - - blob - - object - - image +- text +- blob +- object +- image `.body` プロパティは読み書き可能です。 @@ -108,17 +108,17 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage *body* 引数では以下のデータ型がサポートされています: - - Text - - BLOB - - Object - - ピクチャー +- Text +- BLOB +- Object +- ピクチャー この関数が使用された場合、content-type ヘッダーは*body* 引数の型に応じて自動的に設定されます: - - Content-Type: 本文がテキストの場合にはtext/plain - - Content-Type: 本文がBlob の場合にはapplication/octet-stream - - Content-Type: 本文がオブジェクトの場合にはapplication/json - - Content-Type: image/jpeg、image/gif... (本文が画像の場合) +- Content-Type: 本文がテキストの場合にはtext/plain +- Content-Type: 本文がBlob の場合にはapplication/octet-stream +- Content-Type: 本文がオブジェクトの場合にはapplication/json +- Content-Type: image/jpeg、image/gif... (本文が画像の場合) *body* がサポートされていない値の型だった場合、エラーが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 6609af77779e06..7d998df44714c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ SMTPステータスコードについての詳細は [こちらのページ](htt SMTP接続は、以下の場合に自動的に閉じられます: - - `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 - - `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 +- `.keepAlive` プロパティが true (デフォルト) の場合には、`transporter` オブジェクトが消去された時。 +- `.keepAlive` プロパティが false の場合には、各 `.send( )` 関数が実行された後。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 4263a51c3caa38..5cab3d46d6789e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -56,8 +56,8 @@ Webフォームのコンポーネント (構成要素) とは、これらの Web この関数は、以下の場合には何もしません: - - Webフォーム上で *state* が現在有効ではない。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* が現在有効ではない。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を [有効化](#enablestate) または無効化した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 @@ -82,8 +82,8 @@ Webフォームの state に関する詳細については、[developer.qodly.co この関数は、以下の場合には何もしません: - - Webフォーム上で *state* がすでに有効である。 - - Webフォーム上で *state* が存在しない。 +- Webフォーム上で *state* がすでに有効である。 +- Webフォーム上で *state* が存在しない。 同じユーザー関数内で複数の state を有効化または [無効化](#disablestate)した場合、すべての変更は関数の終了時に一括してクライアントに送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index 199b5df3cca138..6aee01ba447654 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *url*には、WebSocketサーバーが応答する URL を渡します。 以下の URLパターンが使用できます: - - 標準接続用: `ws://host[:port]path[?query]` - - TLSセキュア接続用: `wss://host[:port]path[?query]` +- 標準接続用: `ws://host[:port]path[?query]` +- TLSセキュア接続用: `wss://host[:port]path[?query]` 接続できない場合、`null` オブジェクトが返され、エラーが生成されます (このエラーは `ON ERR CALL` で実装したメソッドによってインターセプトできます)。 @@ -95,8 +95,8 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し *connectionHandler* には、接続イベントに応じて呼び出されるコールバック関数のほか、処理するデータ型やヘッダーを含むオブジェクトを渡すことができます。 - - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 +- コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 +- フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 | プロパティ | 型 | 説明 | | ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 - - 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 84edc11d112719..14752f7a1265e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ WebSocketプロトコルは、WebSocketサーバーとクライアント (Webブ 4D で WebSocketサーバーを作成し、扱うには、4Dビルトインクラスを 2つ使用する必要があります。 - - このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 - - [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 +- このクラス (`4D.WebSocketServer`) は、サーバー自体を管理するためのものです。 +- [`4D.WebSocketConnection`](WebSocketConnectionClass.md) クラスを使用して、接続とメッセージを管理します。 さらに、2つのユーザークラスを作成し、コールバック関数を定義する必要があります: - - サーバー接続を処理するためのユーザークラス - - メッセージを処理するためのユーザークラス +- サーバー接続を処理するためのユーザークラス +- メッセージを処理するためのユーザークラス 接続を維持するため、[WebSocketサーバーの作成](#4dwebsocketservernew) は [ワーカー](../Develop/processes.md#worker-プロセス) 内にて行う必要があります。 @@ -387,8 +387,8 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) *timeout* 値が設定されている場合: - - 待機時間に達したら強制的にソケットを破棄します。 - - *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 +- 待機時間に達したら強制的にソケットを破棄します。 +- *timeout* = 0 の場合、クローズフレームや、FINパケットの交換なしで、強制的かつ即座にソケットを破棄します。 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 657829ce598c98..81090d6fc2c115 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 @@ -17,7 +17,7 @@ WebAdmin 内部コンポーネントは、"WebAdmin" 権限を持つユーザー `WebAdmin` Webサーバーは、4D または 4D Server アプリケーションの起動時 (プロジェクトの読み込み前) に開始するように設定できます。 - - インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 +- インターフェースを持つ 4Dアプリケーションを使用している場合は、**ファイル > Web管理 > 設定...** メニュー項目を選択します。 ![alt-text](../assets/en/Admin/waMenu1.png) @@ -25,7 +25,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ ![alt-text](../assets/en/Admin/waSettings.png) - - ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: +- ヘッドレスの 4Dアプリケーションを使用しているかにかかわらず、以下の *コマンドライン・インターフェース* の引数を使用して、自動スタートアップを有効にすることができます: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -71,8 +71,8 @@ Web管理の設定ダイアログボックスを開くには、**ファイル **注:** - - ローカルホスト以外による HTTP接続は受け付けません。 - - このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 +- ローカルホスト以外による HTTP接続は受け付けません。 +- このオプションがチェックされていても、[HTTPSを受け入れる](#httpsを受け入れる) がチェックされていて、TLS の設定が有効な場合、ローカルホストの接続は HTTPS を使用します。 #### HTTP ポート @@ -94,11 +94,11 @@ TLS証明書ファイルが置かれているフォルダーのパスです。 HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: - - **無効化** (デフォルト) - - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 - - **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) - - **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 - - **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 +- **無効化** (デフォルト) +- **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 +- **bodyパーツを含めない** - ボディパーツを含めない形で有効化 (ボディザイズは提供されます) +- **リクエストのbody** - リクエストのボディパーツのみを含める形で有効化。 +- **レスポンスのbody** - レスポンスのボディパーツのみを含める形で有効化。 #### アクセスキー @@ -108,9 +108,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 - - 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 - - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - - 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 +- 新しいアクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 #### Qodly Studio へのアクセスを有効化する @@ -145,9 +145,9 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ## 認証とセッション - - 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 +- 事前に本人確認せずに URL経由で Web管理ページにアクセスした場合、認証が必要になります。 ユーザーは、認証ダイアログボックスに [アクセスキー](#アクセスキー) を入力する必要があります。 `WebAdmin` 設定でアクセスキーが定義されていない場合には、URL経由のアクセスはできません。 - - 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 +- 4D または 4D Server のメニュー項目 (**レコード > データエクスプローラー** または **ウィンドウ > データエクスプローラー** (4D Server) など) から Web管理ページに直接アクセスした場合、アクセスは認証なしで許可され、ユーザーは自動的に認証されます。 アクセスが許可されると、4Dアプリケーション上に "WebAdmin" 権限を持つ Web[セッション](WebServer/sessions.md) が作成されます。 カレントセッションが "WebAdmin" 権限を持っている限り、`WebAdmin` コンポーネントは要求されたページを提供します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 9448beb1c0f138..a5aa9d4766ffb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: 復元 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 - - アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 > 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 > 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md index 0e37e810c9dc72..6cb8c4dba500f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: バックアップ設定 バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: - - 自動バックアップ用のスケジューラー設定 - - 各バックアップに含めるファイル - - 自動タスクの実行を可能にする高度な設定 +- 自動バックアップ用のスケジューラー設定 +- 各バックアップに含めるファイル +- 自動タスクの実行を可能にする高度な設定 > このダイアログボックスで定義された設定は *Backup.4DSettings* ファイルに書き込まれ、[Settings フォルダー](Project/architecture.md#settings-ユーザー) に保存されます。 @@ -88,11 +88,11 @@ title: バックアップ設定 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 - - **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 - **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 81e4364715346d..837687ba132170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ title: 演算子 4Dランゲージでは、**二項演算子** および **三項演算子** をサポートしています: - - 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 - - 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). +- 二項演算子とは、2つの対象に対して演算をおこない、その 2つの対象の間に表示されます (例: `2+3`)。 +- 三項演算子は 3つの対象に対して演算をおこないます。 C と同様、4D の三項演算子は 1つしかありません: 三項条件演算子 (a ? b : c\`). 演算子が影響を与える対象はオペランド (被演算子) と呼ばれます。 `1 + 2` という式では、+ 記号は二項演算子であり、その 2つのオペランドは値 1 と 2 です。 @@ -33,18 +33,18 @@ $col:=New collection // $col を空のコレクションで初期化します 演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: - - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - - [**日付演算子**](dt_date.md#日付演算子) - - [**時間演算子**](dt_time.md#時間演算子) - - [**数値演算子**](dt_number.md#数値演算子) - - [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) - - [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) - - [**ポインター演算子**](dt_pointer.md#ポインター演算子) - - [**文字列演算子**](dt_string.md#文字列演算子) - - [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) - - [**コレクション参照演算子**](dt_collection.md#コレクション演算子) - - [**Null 演算子**](dt_null_undefined.md#null-演算子) - - [**未定義演算子**](dt_null_undefined.md#未定義演算子) +- [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) +- [**日付演算子**](dt_date.md#日付演算子) +- [**時間演算子**](dt_time.md#時間演算子) +- [**数値演算子**](dt_number.md#数値演算子) +- [**ビットワイズ演算子**](dt_number.md#ビットワイズ演算子) (**倍長整数** 式に使用) +- [**ピクチャー演算子**](dt_picture.md#ピクチャー演算子) +- [**ポインター演算子**](dt_pointer.md#ポインター演算子) +- [**文字列演算子**](dt_string.md#文字列演算子) +- [**オブジェクト参照演算子**](dt_object.md#オブジェクト演算子) +- [**コレクション参照演算子**](dt_collection.md#コレクション演算子) +- [**Null 演算子**](dt_null_undefined.md#null-演算子) +- [**未定義演算子**](dt_null_undefined.md#未定義演算子) ## 複合代入演算子 @@ -275,9 +275,9 @@ $name:=$person.maidenName || $person.name 三項演算子は 3つのオペランドを次の順序で受け取ります: - - 条件とクエスチョンマーク (?) - - 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) - - 条件が [falsy](#truthy-と-falsy) の場合に実行される式 +- 条件とクエスチョンマーク (?) +- 条件が [truthy](#truthy-と-falsy) である場合に実行される式、その後にコロン (:) +- 条件が [falsy](#truthy-と-falsy) の場合に実行される式 ### シンタックス @@ -328,21 +328,21 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per 以下の値は **falsy** です: - - false - - Null - - undefined - - Null オブジェクト - - Null コレクション - - Null ポインター - - Null ピクチャー - - Null 日付 !00-00-00! - - "" - 空の文字列 - - [] - 空のコレクション - - {} - 空のオブジェクト +- false +- Null +- undefined +- Null オブジェクト +- Null コレクション +- Null ポインター +- Null ピクチャー +- Null 日付 !00-00-00! +- "" - 空の文字列 +- [] - 空のコレクション +- {} - 空のオブジェクト 上記以外の値はすべて **truthy** と評価されます。次の値も truthy です: - - 0 - 数値のゼロ (整数かどうかを問わず) +- 0 - 数値のゼロ (整数かどうかを問わず) 4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index c5099654e05cd7..bf38f56c24bd72 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -54,8 +54,8 @@ var $myVar // バリアント型変数 `varType` には次が指定できます: - - [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます - - [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます +- [基本のデータ型](Concepts/data-types.md): 変数には、宣言された型の値が格納されます +- [クラス参照](Concepts/classes.md) (4Dクラスまたはユーザークラス): 変数には、定義されたクラスのオブジェクトへの参照が格納されます `varType` を省略すると、**variant** 型の変数が作成されます。 @@ -87,7 +87,7 @@ var $myVar // バリアント型変数 ### 例題 - - 基本のデータ型の、ローカル変数およびプロセス変数の宣言: +- 基本のデータ型の、ローカル変数およびプロセス変数の宣言: ```4d var $myText; myText; $vt : Text @@ -99,14 +99,14 @@ var $o : 4D.Object // C_OBJECT($o) とも同義です ``` - - 4Dクラス型のオブジェクト変数の宣言: +- 4Dクラス型のオブジェクト変数の宣言: ```4d var $myFolder : 4D.Folder var $myFile : 4D.File ``` - - ユーザークラス型のオブジェクト変数の宣言: +- ユーザークラス型のオブジェクト変数の宣言: ```4d var $myClass : cs.MyClass @@ -194,9 +194,9 @@ MyNumber:=3 ローカル変数は、以下のような目的のために使用されます: - - 他の変数名との重複を避ける。 - - データを一時的に使用する。 - - プロセス変数の数を減らす。 +- 他の変数名との重複を避ける。 +- データを一時的に使用する。 +- プロセス変数の数を減らす。 ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 @@ -225,9 +225,9 @@ MyNumber:=3 `GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - - コード内の特定の箇所におけるプロセス間通信 - - プロセス間のドラッグ&ドロップ処理 - - クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 +- コード内の特定の箇所におけるプロセス間通信 +- プロセス間のドラッグ&ドロップ処理 +- クライアント/サーバーにおいて、クライアントマシン上のプロセスとサーバーマシン上のストアドプロシージャー間の通信 詳細については **プロセス** の章と、各コマンドの説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index a71c67b7a25903..fbd57088fa81dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ title: デバッガー 一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: - - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 +- まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 +- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 設計またはロジックのエラーには、次のような場合もあります: - - `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 - - オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 +- `SAVE RECORD` コマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。 +- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。 場合によって問題の原因は、実際に中断が発生しているコード部分ではなく、外部にあることもあります。 @@ -55,8 +55,8 @@ title: デバッガー メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: - - 以降のメソッド実行を妨げるエラーが発生した。 - - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 +- 以降のメソッド実行を妨げるエラーが発生した。 +- メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ title: デバッガー シンタックスエラーウィンドウにはいくつかのオプションが用意されています: - - **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 - - **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 - - **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip @@ -76,14 +76,14 @@ title: デバッガー ::: - - **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: +- **閉じる**: メソッドが中断され、メソッドの実行を開始する前の状態に戻ります: - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 - - **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 - - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 +- **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 56031713faf0fc..2d464e24017b76 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ title: On After Edit このイベントは、変更がおこなわれた方法に関係なく、入力可能オブジェクトの内容が変更されるたびに生成されます。*つまり*: - - ペーストやカット、削除、キャンセルなどの標準の編集アクション - - 値のドロップ (ペーストと同様のアクション) - - ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 - - ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 +- ペーストやカット、削除、キャンセルなどの標準の編集アクション +- 値のドロップ (ペーストと同様のアクション) +- ユーザーがおこなったキーボードからの入力。この場合、`On After Edit` イベントは [`On Before Keystroke`](onBeforeKeystroke.md) と [`On After Keystroke`](onAfterKeystroke.md) イベントの後に生成されます。 +- ユーザーアクションをシミュレートするランゲージコマンドによる変更 (例: `POST KEY`)。 `On After Edit` イベント内において、入力テキストは [`Get edited text`](../commands-legacy/get-edited-text.md) コマンドによって返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index fb9943c47bf011..a0ee2f849bb5d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ title: On Clicked `On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: しかし、いくつか例外があります: - - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 - - [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 +- [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 +- [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 +- リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 `On Clicked` イベントのコンテキストにおいては `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index 5816317910d07c..4cd0137a1c567d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over `On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: - - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 +- ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 +- ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 7120814e5d39cf..5317c52b286d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ title: On Header Click リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 - - `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = 0` の場合、標準の並べ替えがおこなわれます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index bccd183b3423bf..a421e9046f83c1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ title: Forms また、以下の機能により、フォームは他のフォームを含むことができます: - - [サブフォームオブジェクト](FormObjects/subform_overview.md) - - [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) +- [サブフォームオブジェクト](FormObjects/subform_overview.md) +- [継承されたフォーム](./properties_FormProperties.md#継承するフォーム名) ## フォームを作成する 4Dフォームの追加や変更は、以下の要素を使っておこないます: - - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 - - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 - - **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラ** ウィンドウから新規フォームを作成できます。 +- **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: ``` { @@ -70,9 +70,9 @@ title: Forms 2つのカテゴリーのフォームが存在します: - - **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 - - **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 @@ -80,15 +80,15 @@ title: Forms 各フォームは、少なくとも 2つのページで構成されています: - - ページ1: デフォルトで表示されるメインページ - - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます +- ページ1: デフォルトで表示されるメインページ +- ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます 1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: - - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - - トピックごとに、専用ページにまとめる。 - - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 +- もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 +- トピックごとに、専用ページにまとめる。 +- [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 +- フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 3b5a305a52788f..2957ab4f5948ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ title: フォームエディターマクロ たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: - - 4Dコードを作成・実行する - - ダイアログを表示する - - オブジェクトを選択する - - フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する - - プロジェクトファイルを編集する (更新・削除) +- 4Dコードを作成・実行する +- ダイアログを表示する +- オブジェクトを選択する +- フォームやフォームオブジェクトおよびそれらのプロパティを追加・編集・削除する +- プロジェクトファイルを編集する (更新・削除) フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 @@ -237,9 +237,9 @@ Class constructor($macro : Object) フォームオブジェクトの `method` 属性を操作する場合、属性値は2通りの方法で定義できます: - - [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 +- [メソッドファイル名あるいはパスを指定する文字列](FormObjects/properties_Action.md#メソッド) の使用 - - 次の構造を持つオブジェクトの使用: +- 次の構造を持つオブジェクトの使用: | プロパティ | 型 | 説明 | | ------ | ---- | ------- | @@ -251,9 +251,9 @@ Class constructor($macro : Object) `$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 - - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 +- フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 +- フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在する場合、そのオブジェクトは変更されます。 #### 例題 @@ -296,8 +296,8 @@ Function onInvoke($editor : Object)->$result : Object マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: - - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき +- 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき +- 同じ内部ID を持つオブジェクトを複数作成しようとしたとき #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 29247432425683..a86503db3951f7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ title: オブジェクトライブラリ 4D では 2種類のオブジェクトライブラリを利用できます: - - 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます - - カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです +- 標準の設定済みオブジェクトライブラリはすべてのプロジェクトに利用できます +- カスタムオブジェクトライブラリは、開発者自身がお気に入りのフォームオブジェクトや、あるいはプロジェクトフォームそのものをとっておくためのものです ## 標準のオブジェクトライブラリの使用 @@ -57,13 +57,13 @@ title: オブジェクトライブラリ カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: - - プロジェクトフォーム - - フォームのページ1 +- プロジェクトフォーム +- フォームのページ1 ### オブジェクトライブラリの構築 @@ -75,10 +75,10 @@ title: オブジェクトライブラリ ![](../assets/en/FormEditor/library5.png) - - ペーストボードへの **カット** または **コピー** - - ペーストボードからオブジェクトを **ペースト** - - **クリア** でライブラリからオブジェクトを削除 - - **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- ペーストボードへの **カット** または **コピー** +- ペーストボードからオブジェクトを **ペースト** +- **クリア** でライブラリからオブジェクトを削除 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: @@ -94,9 +94,9 @@ title: オブジェクトライブラリ メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: - - リスト - - フォーマット/フィルター - - ピクチャー - - ヘルプTips (フィールドにリンク) - - オブジェクトメソッド +- リスト +- フォーマット/フィルター +- ピクチャー +- ヘルプTips (フィールドにリンク) +- オブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index e5c43ac356e2a3..b1c963d014258a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ title: フォームサイズ ## サイズを決めるもの - - **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 +- **自動サイズ**: フォームサイズは、すべてのオブジェクトを表示するために必要なサイズと、[**水平マージン**](#水平-マージン) および [**垂直マージン**](#垂直-マージン) フィールドへ入力されたマージン値 (ピクセル単位) を合計したものになります。 自動サイズのウィンドウを用いて、オフスクリーンエリア (ウィンドウの矩形境界線の外側のエリア) に配置したアクティブオブジェクトを使用したい場合にこのオプションを選択することができます。 このオプションを選択すると、これらのオブジェクトによりウィンドウサイズが変更されなくなります。 - - **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 +- **サイズを設定**: フォームサイズは [**幅**](#幅) および [**高さ**](#高さ) フィールドに入力された値 (ピクセル単位) により決まります 。 - - `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 +- `<オブジェクト名>`: フォームサイズは、選択したフォームオブジェクトの位置により決まります。 たとえば、表示されるエリアの右下部分に置かれているオブジェクトを選択した場合は、左上端が起点であり、右下端が選択したオブジェクトの右下端となる矩形にマージン値を加算したものがフォームサイズになります。 > 出力フォームの場合は [**水平マージン**](#水平-マージン) または [**幅**](#幅) フィールドだけが利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index c846d512cef507..796d56be1053a4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ title: フォームオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: - - **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 - - **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: - - **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 - - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 +- **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) or [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 - **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 次はボタンオブジェクトの例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 4bbe509cb9a258..453b8482218253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ title: 階層リスト 階層リストの中身は次の方法で初期化することができます: - - 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists.md) のコマンドを使用して管理します。 @@ -34,9 +34,9 @@ mylist:=New list 特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: - - 選択された項目 - - 項目の展開/折りたたみ状況 - - スクロールカーソルの位置 +- 選択された項目 +- 項目の展開/折りたたみ状況 +- スクロールカーソルの位置 それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば `Count list items` を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 @@ -82,14 +82,14 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > 注記: `OBJECT SET SCROLL POSITION` コマンドを除き、これらのコマンドでオブジェクト名を指定したとしても、変更は同じリストを使うすべてのオブジェクトに反映されます。 @@ -107,8 +107,8 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 - - 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 - - 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 参照を使用する場合には、リスト項目の *itemRef* IDを参照します。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) @@ -141,9 +141,9 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ユーザーが階層リストの項目を変更できるかどうかを管理することができます。階層リストの項目が修正可能である場合、**Alt+クリック** (Windows) または **Optionキー+クリック** (macOS) ショートカットを使用するか、または項目のテキスト上でロングクリックすると、編集できるようになります。 - - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 +- データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 - - また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 2e756d989d8014..67b11a22727950 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -30,7 +30,7 @@ title: サブフォーム > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 - - [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -52,8 +52,8 @@ title: サブフォーム リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: - - 何もしない: ダブルクリックを無視します。 - - レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- 何もしない: ダブルクリックを無視します。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -77,9 +77,9 @@ title: サブフォーム ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: - - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 - - **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 - - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 +- **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index b5e6f8d3e97ef4..db4b8ddfb3586c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ title: 図形 次の基本の図形が提供されています: - - 四角 - - 線 - - 楕円 +- 四角 +- 線 +- 楕円 ## 四角 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 01b27f6fe5dd2a..89558aadffe1d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 - - スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 - - フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 - - スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 @@ -55,8 +55,8 @@ title: スプリッター 各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - - この値が 0 の場合: スプリッターは元の位置に移動されました。 +- この値が負数の場合: スプリッターは上または左方向へ移動されました。 +- この値が正数の場合: スプリッターは下または右方向へ移動されました。 +- この値が 0 の場合: スプリッターは元の位置に移動されました。 プログラムによってスプリッターを移動させることも可能です。これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index ca316f93ed13eb..3441134390cdd7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ title: ステッパー ## 参照 - - [進捗インジケーター](progressIndicator.md) - - [ルーラー](ruler.md) +- [進捗インジケーター](progressIndicator.md) +- [ルーラー](ruler.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index 42924315d34a8a..140dd6f5bccbe0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ title: サブフォーム サブフォームに実装されたコンセプトを明確に説明するために、いくつかの用語についてここで定義します: - - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 - - **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 +- **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 +- **親フォーム**: 1つ以上のサブフォームを含むフォーム。 +- **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 +- **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム @@ -43,8 +43,8 @@ title: サブフォーム デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 - - バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 - - または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) @@ -58,8 +58,8 @@ title: サブフォーム 時間を静的に表示するには、適切な [データ型](properties_DataSource.md#データタイプ-式の型) を [変数または式](properties_Object.md#変数あるいは式) に使用する必要があります。 - - 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 - - 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 +- 変数 (例: `parisTime`) を使用する場合は、`text` または `time` 型である必要があります。 +- 式 (例: `Form.myValue`) を使用する場合は、`text` 値である必要があります。 テキスト値のフォーマットは "hh:mm:ss" でなくてはなりません。 @@ -91,15 +91,15 @@ End if [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントは以下のときに生成されます: - - 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 - - サブフォームが 0ページまたはカレントフォームページに置かれているとき。 +- 親フォームの変数/式に値が割り当てられたとき (同じ値が再代入された場合でも) で、 +- サブフォームが 0ページまたはカレントフォームページに置かれているとき。 先の例のとおり、式を直接使用するのではなく、親フォームのサブフォームコンテナーの式の値を取得する `OBJECT Get subform container value` コマンドの利用が推奨されます。親フォームに同じサブフォームを複数配置することが可能だからです (たとえば、複数のタイムゾーンを表示するために時計を複数表示するウィンドウ)。 バインドされた変数あるいは式を変更すると、フォームイベントが発生し、親フォームとサブフォームの値を同期させることができます: - - 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 - - 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 +- 親フォームのサブフォームコンテナーの変数あるいは式が変更されたことをサブフォーム (のフォームメソッド) に通知するには、サブフォームの [On Bound Variable Change](../Events/onBoundVariableChange.md) フォームイベントを使用します。 +- 同様に、サブフォーム内で変数あるいは式の値が変更されたことを親フォームのサブフォームコンテナーに通知するには、サブフォームの [On Data Change](../Events/onDataChange.md) フォームイベントを使用します。 #### 親フォームの内容を更新する @@ -177,8 +177,8 @@ End if このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: - - `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 - - `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 +- `CALL SUBFORM CONTAINER` コマンドを使用してサブフォームからコンテナーオブジェクトを呼び出す、 +- `EXECUTE METHOD IN SUBFORM` コマンドを使用してサブフォームのコンテキストでメソッドを実行する。 > `GOTO OBJECT` はサブフォームから実行されても、親フォーム内にて目的のオブジェクトを検索します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index e8e126265e682c..31fd406343928b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく タブコントロールにラベルを設定するには、次のものを利用できます: - - オブジェクト - - 選択リスト - - 配列 +- オブジェクト +- 選択リスト +- 配列 ### オブジェクトの使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index cf3f24dced5d66..acd1812e9e7576 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ title: Text ![](../assets/en/FormObjects/staticText2.png) - - オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 - - オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 - - オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 +- オブジェクトが A 方向にリサイズされるとき、変更されるのは [幅](properties_CoordinatesAndSizing.md#幅) です。 +- オブジェクトが C 方向にリサイズされるとき、変更されるのは [高さ](properties_CoordinatesAndSizing.md#高さ) です。 +- オブジェクトが B 方向にリサイズされるとき、[幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) の両方が同時に変更されます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 5c9912a9c739df..af7ed70ab1110a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ sidebar_label: ログ解析ページ この情報を使用して各操作のソースとコンテキストを識別できます: - - **操作**: ログファイル中での一連の操作番号 +- **操作**: ログファイル中での一連の操作番号 - **アクション**: データに対しておこなわれた操作のタイプ。 この列には以下の操作のいずれかが記録されます: - データファイルを開く: データファイルを開いた @@ -30,24 +30,24 @@ sidebar_label: ログ解析ページ - トランザクションのキャンセル: トランザクションをキャンセルした - コンテキストの更新: 追加データを変更した (例: `CHANGE CURRENT USER` あるいは `SET USER ALIAS` の呼び出し) - - **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル +- **テーブル**: 追加/削除/更新されたレコードまたは BLOB の所属テーブル - - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 +- **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 - - **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 - - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) +- **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - - **日付と時刻**: 処理が実行された日付と時刻 +- **日付と時刻**: 処理が実行された日付と時刻 - - **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 - - **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 - **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - - **レコード**: レコード番号 +- **レコード**: レコード番号 選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md index e5be8ff2634acd..b75a3f3cf278d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ sidebar_label: 修復ページ - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 +- 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て @@ -74,7 +74,7 @@ sidebar_label: 修復ページ 修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 +- *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) +- *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 **ログファイルを開く** ボタンをクリックすると、4Dはマシンのデフォルトブラウザーを使用して直近のログファイルを開きます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md index c913e67801a6d0..4ca87d5be46b6d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Menus/properties.md @@ -11,8 +11,8 @@ title: メニュープロパティ メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: - - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 - - `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 +- `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4Dランゲージを使う場合は、`APPEND MENU ITEM`、`INSERT MENU ITEM`、および `SET MENU ITEM` コマンドの *itemText* パラメーターでタイトルプロパティを設定します。 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 9d33d6122f2e2a..eb435eba5b6f23 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 @@ -134,8 +134,8 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 - - [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 +- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [新アーキテクチャ](../Desktop/building.md#build-component) 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。 ## 4D 20 R7 @@ -165,9 +165,9 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 - - [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 - - [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 +- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [`File`](../commands/file.md) コマンド (および [`4D.File.new()`](../API/FileClass.md#4dfilenew) コマンド) は、引数として与えられた *path* のシンタックスをより厳しくチェックする様になりました。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ## 4D 20 R6 @@ -175,25 +175,25 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 - - [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 - - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 - - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 - - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 - - [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 - - 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 - - サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 - - 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 - - プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 - - [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 - - 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 - - PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 +- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 +- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 +- コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 +- 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 +- セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 +- [4DCEFParameters.jsonファイル](../FormObjects/webArea_overview.md#4dcefparametersjson) が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。 +- 新しい [HTTPAgent](../API/HTTPAgentClass.md) クラスと、HTTPRequest クラスの新しい [`agent`](../API/HTTPRequestClass.md#options-引数) プロパティ。 +- サーバーから Qodlyのページの状態を監視するための新しい [`enableState()`](../API/WebFormClass.md) と [`disableState()`](../API/WebFormClass.md) 関数。 +- 公開されたシングルトン関数を REST で呼び出すための新しい [`$singleton` API](../REST/$singleton.md) と、それに伴う新しい [権限](../ORDA/privileges.md) が追加されました。 +- プロジェクトを "強制ログイン" RESTモードにアップグレードするための [新しい設定ボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) が追加されました (`On REST Authentication`データベースメソッドは非推奨となりました)。 +- [新しい設定タブ](../Project/compiler.md#警告) を使用して、警告の生成をグローバルに定義できます。 +- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、[`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) コマンドのいくつかもセレクターもスレッドセーフとなりました。 +- PDF/A3 ドキュメントから添付ファイルを抽出する `PDF Get attachments` コマンドを提供する新しい [4D-QPDF コンポーネント](https://github.com/4d/4D-QPDF)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R6): 4D 20 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 #### 動作の変更 - - フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 - - [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 +- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト ([縦スクロールバー](../FormObjects/properties_Appearance.md#縦スクロールバー)・[横スクロールバー](../FormObjects/properties_Appearance.md#横スクロールバー)) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。 +- [`$catalog` REST API](../REST/$catalog.md) は、シングルトンを返すようになりました (あれば)。 ## 4D 20 R5 @@ -201,21 +201,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 - - [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 - - QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 - - [制限付エンティティセレクション](../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#強制ログイン)。 - - 新しい [$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/))。 +- 新しい [コンポーネントマネージャー](../Project/components.md) は、`dependencies.json` ファイルを介してコンポーネントを管理します。 +- [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try) エラー処理構文のサポート。 +- QUICネットワークレイヤーは [ブロードキャスト](../Desktop/clientServer.md#リモートプロジェクトを開く)、[SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.ja.html)、および [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.ja.html) に対応しました。 +- [制限付エンティティセレクション](../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#強制ログイン)。 +- 新しい [$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/))。 #### 動作の変更 - - *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ## 4D 20 R4 @@ -223,24 +223,24 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 - - クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 - - HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 - - 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 - - `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 - - [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート - - 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 - - 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 - - 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 - - データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 +- TLS証明書の [`ECDSA` 暗号化形式](../Admin/tls.md#暗号化) をサポート。 +- クライアント/サーバーおよび SQLサーバーの TLS接続は、[動的に設定](../Admin/tls.md#他のサーバーで-tls-を有効にする) されるようになりました (証明書ファイルは必要ありません)。 +- HTML への直接の [ストラクチャー定義の書き出し](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.ja.html) をサポート。 +- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい [コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー)。 +- `#DECLARE` プロトタイプ内で宣言されたメソッド引数は["Compiler_" メソッドでは不要になりました](../Concepts/parameters.md)。 +- [日付・時間のカスタムフォーマット](../Project/date-time-formats.md) をサポート +- 新しい [`Try(expression)` キーワード](../Concepts/error-handling.md#tryexpression) で単純なエラーケースを処理できます。 +- 新しい[`HTTP Parse message`](../commands/http-parse-message.md) コマンド。 +- 新しい [ノンブロッキング印刷](../settings/compatibility.md) 互換性オプション。 +- データエクスプローラーの新しい [編集モード](../Admin/dataExplorer.md#データの編集)。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R4): 4D 20 R4 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/4/release-note-version-20r4/))。 #### 動作の変更 - - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 - - 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 - - [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 +- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 +- [4D ユーザーがbcrypt アルゴリズムを使用できる](https://blog.4d.com/bcrypt-support-for-passwords/) ようにするため、[`Open datastore`](../commands/open-datastore.md) コマンドの*connectionInfo* 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 ## 4D 20 R3 @@ -248,21 +248,21 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - - 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 - - データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 - - ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 - - [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 - - ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 - - [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) - - 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 - - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 +- 新しい [`collection.multiSort()`](../API/CollectionClass.md#multisort) 関数を追加しました。 +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew) の *connectionHandler* パラメーターで `headers` プロパティをサポート。 +- データ同期モジュールの実装に役立つ [グローバル変更スタンプ](../ORDA/global-stamp.md)。 新しい [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) と [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp) 関数が追加されました。 +- ピクチャー/BLOB 属性にファイル参照を代入することが、[ORDA でサポートされるようになりました](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes)。 +- [宣言と同時に変数のデータ型と値を初期化](../Concepts/variables/#宣言と同時に変数を初期化する) できるようになりました。 +- ログファイルの設定は、[カレントデータファイル](../Backup/settings.md#ログ管理) とともに保存されるようになりました。 +- [可変長引数を宣言するための新しいシンタックス](../Concepts/parameters.md#可変長引数の宣言) +- 4D View Pro:ドキュメントの [インポート](../ViewPro/commands/vp-import-from-blob) および [エクスポート](../ViewPro/commands/vp-export-to-blob) で Blob形式をサポート。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R3): 4D 20 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/269/release-note-version-20r3/))。 #### 動作の変更 - - いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 - - 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 +- いくつかのエラーは、[エラー処理メソッド](../Concepts/error-handling.md) によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: *範囲外のインデックス*、*互換性のない型*、*Null ポインターの逆参照*。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、[`ABORT`](../commands-legacy/abort.md) コマンドを呼び出さない限り、処理は中断されません。 +- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、[別途PHPインタプリターをセットアップして実行する](https://blog.4d.com/ja/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter) 必要があります。 ## 4D 20 R2 @@ -284,7 +284,7 @@ In binary databases, you need to select the required components in the 4D instal #### 動作の変更 - - **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 +- **警告**: [4D.FileHandle](../API/FileHandleClass.md) オブジェクトの [`offset`](../API/FileHandleClass.md#offset) の開始値が誤って 0 ではなく 1 に設定されていました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 **20.1 HF1** および **20 R2** のバージョンで 4D が修正され、この値が 0 になりました。 ## 4D 20.x LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index d95ad27ca22a23..440d7232052353 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ title: グローバルスタンプの使い方 また、本機能を適切に動作させるためには、以下の条件が必要です: - - `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 - - 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: +- `__GlobalStamp` フィールドは、*自動インデックス*、*RESTリソースとして公開*、および *非表示* プロパティが選択された、*64ビット整数* である必要があります。 +- 次のフィールドを含む `__DeletedRecords` テーブルを追加する必要があります: | フィールド | 型 | 説明 | | ------------------------------------------------------- | --------------- | -------------------- | @@ -64,8 +64,8 @@ title: グローバルスタンプの使い方 すると、4D は次の変更をおこないます: - - 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 - - まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 +- 設定済みの `__GlobalStamp __01` フィールドがテーブルに追加されます。 +- まだ存在していなければ、`__DeletedRecords` テーブルがストラクチャーに追加されます。 データ変更追跡を無効化するには: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index d0ab7d5d8e597b..64faceac356656 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ title: リモートデータストア `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: - - 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 - - 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 - - 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 +- 同じアプリケーションの別プロセスが同じリモートデータストアに接続する場合、`localID` とセッションは共有することができます。 +- 同じアプリケーションの別プロセスが別の `localID` を使って同じデータストアに接続した場合、リモートデータストアでは新しいセッションが開始されます。 +- 他のマシンが同じ `localID` を使って同じデータストアに接続した場合、新しいセッションが新しい cookie で開始されます。 これらの原則を下図に示します: @@ -29,9 +29,9 @@ title: リモートデータストア データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - - プロセス名: "REST Handler: \" - - タイプ: HTTP Server Worker - - セッション: `Open datastore` コマンドに渡されたユーザー名 +- プロセス名: "REST Handler: \" +- タイプ: HTTP Server Worker +- セッション: `Open datastore` コマンドに渡されたユーザー名 次の例では、1つのセッション上で 2つのプロセスが実行中です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 43e98ce12d2cce..cf71cee6b3d2aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド この機能は、以下の環境において利用することができます (4D 64-bit版のみ): - - コードエディターウィンドウ - - フォームエディターウィンドウ +- コードエディターウィンドウ +- フォームエディターウィンドウ これらのエディターのウィンドウはすべて、タブ形式にすることができます: @@ -47,9 +47,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 - - **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 - - **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 +- **システム設定に従う** (デフォルト): 4D のウィンドウは、macOSシステム環境設定で定義されているように振る舞います (フルスクリーン時のみ、常に、あるいは手動)。 +- **しない**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいウィンドウを作成します (タブは作成されません)。 +- **常にする**: 4Dフォームエディターあるいはコードエディターで開かれた新しいドキュメントは常に新しいタブを作成します。 ### アピアランス (macOSのみ) @@ -59,9 +59,9 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 次の値が提供されています: - - **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 - - **Light**: ライトテーマを使用します。 - - **Dark**: ダークテーマを使用します。 +- **システムのカラースキーム設定に合わせる** (デフォルト): macOSシステム環境設定で定義されているカラースキームを使用します。 +- **Light**: ライトテーマを使用します。 +- **Dark**: ダークテーマを使用します。 > この設定は macOS でのみサポートされています。 Windows上では、"Light" テーマが常に使用されます。 @@ -73,8 +73,8 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このオプションをチェックすると、**ファイル > 新規** メニューと、ツールバーの **新規** ボタンに、2つの項目が追加されます: - - **データベース...** - - **ストラクチャー定義を使用したデータベース...** +- **データベース...** +- **ストラクチャー定義を使用したデータベース...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ These items allow you to create binary databases (see [Creating a new database]( このエリアでは、カレントブラウザーに表示される 4D HTMLドキュメントへのアクセスを設定します: - - コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき - - エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき +- コードエディターで、4Dクラス関数またはコマンド名にカーソルがあるときに、**F1**キーを押したとき +- エクスプローラーの **コマンドページ** 上の 4Dコマンドをダブルクリックしたとき ### ドキュメント言語 @@ -151,8 +151,8 @@ These items allow you to create binary databases (see [Creating a new database]( 4Dがドキュメントのページを探す場所を設定します。 - - チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 - - チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 9e562869f6c322..e0d5eb69a426f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ title: メソッドページ このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - - **デフォルトのLightテーマ** - - **デフォルトのDarkテーマ** +- **デフォルトのLightテーマ** +- **デフォルトのDarkテーマ** > デフォルトのテーマは変更や削除ができません。 @@ -38,8 +38,8 @@ title: メソッドページ テーマを定義するとは、以下のことを意味します: - - コードエディター全体のグローバルフォントとフォントサイズを設定する。 - - 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 +- コードエディター全体のグローバルフォントとフォントサイズを設定する。 +- 4D のランゲージ要素 (フィールド、テーブル、変数、引数、SQL など)、SQL のランゲージ要素 (キーワード、関数など)、そして背景色のそれぞれにスタイルと色を割り当てる。 異なる色やスタイルを組み合わせることは、コードのメンテナンス目的に特に便利です。 @@ -83,8 +83,8 @@ title: メソッドページ ローカル4Dアプリケーション用の "国際的な" コード設定を有効化/無効化することができます。 - - **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 - - **チェック有り**: リージョン設定が使用されます。 +- **チェック無し** (デフォルト): 4Dメソッドにおいて English-US設定と英語でのプログラミングランゲージが使用されます。 +- **チェック有り**: リージョン設定が使用されます。 > このオプションを変更した場合、変更を反映するには 4Dアプリケーションを再起動する必要があります。 @@ -138,9 +138,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: - - **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 - - **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) @@ -150,10 +150,10 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 次のオプションから選択することができます: - - **なし**: 強調なし - - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) - - **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 - - **太字**: 括弧が太字で表示されます。 +- **なし**: 強調なし +- **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) +- **背景色**: 括弧がハイライトされます (色は [テーマ](#テーマの定義) ページで設定します)。 +- **太字**: 括弧が太字で表示されます。 #### 変数とフィールドを強調 @@ -161,9 +161,9 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip ![](../assets/en/Preferences/optionsVariables.png) - - **しない**(デフォルト): ハイライトなし - - **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 - - **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 +- **しない**(デフォルト): ハイライトなし +- **カーソル上のみ**: テキストがクリックされた際にのみハイライトされます。 +- **選択範囲上のみ**: テキストが選択された際にのみハイライトされます。 ハイライトカラーは [テーマ](#テーマの定義) ページにて設定が可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md index a8a1f2e3fde1b7..c922921306853f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ title: アーキテクチャー プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: - - 4D - - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) +- 4D +- 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) > 4D プロジェクトの開発は 4D によっておこない、マルチユーザー開発はソース管理ツールによって管理します。 4D Server は .4DProject ファイルを開くことができますが、クライアントからの開発はおこなえません。 @@ -122,9 +122,9 @@ title: アーキテクチャー プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: - - `Methods` - - `Forms` - - `TableForms` +- `Methods` +- `Forms` +- `TableForms` 削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 @@ -177,11 +177,11 @@ This folder contains [**user settings for data**](../settings/overview.md#user-s Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: - - データベース変換 - - Webサーバーリクエスト - - バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) - - コマンドデバッグ - - 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) +- データベース変換 +- Webサーバーリクエスト +- バックアップ/復元アクションのジャーナル (*Backup Journal\[xxx].txt*、[バックアップジャーナル](Backup/backup.md#backup-journal) 参照) +- コマンドデバッグ +- 4D Serverリクエスト (クライアントマシンおよびサーバー上で生成) > An additional Logs folder is available in the system user preferences folder (active 4D folder, see [Get 4D folder](../commands-legacy/get-4d-folder.md) command) for maintenance log files and in cases where data folder is read-only. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 059e4eeddabb19..5979f2a6997c4c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ title: 依存関係 コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 - - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダ @@ -39,8 +39,8 @@ title: 依存関係 このページでは、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 +- [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 +- 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 ::: @@ -48,14 +48,14 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: - - コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 - - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダ](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダはフォルダ名の末尾が".4dbase" になっている必要があります、上記参照)。 +- または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#github依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: - - 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) - - マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) - - GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) +- 4Dプロジェクトのパッケージフォルダーと同じ階層 (デフォルトの場所です) +- マシン上の任意の場所 (コンポーネントパスは **environment4d.json** ファイル内で宣言する必要があります) +- GitHubリポジトリ (コンポーネントパスは、**dependencies.json** ファイルまたは **environment4d.json** ファイル、あるいはその両方で宣言できます) 同じコンポーネントが異なる場所にインストールされている場合、[優先順位](#優先順位) が適用されます。 @@ -71,8 +71,8 @@ title: 依存関係 このファイルには次の内容を含めることができます: - - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 - - [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 +- [GitHubリポジトリ](#github-に保存されたコンポーネント) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -80,8 +80,8 @@ title: 依存関係 このアーキテクチャーの主な利点は次のとおりです: - - **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 - - 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 +- **environment4d.json** ファイルをプロジェクトの親フォルダーに保存することで、コミットしないように選択できることです。これにより、ローカルでのコンポーネントの管理が可能になります。 +- 複数のプロジェクトで同じ GitHubリポジトリを使用したい場合は、**dependencies.json** ファイルでそれを宣言し、**environment4d.json** ファイルで参照することができます。 ### 優先順位 @@ -189,9 +189,9 @@ GitHub に保存されているコンポーネントに関しては、[**depende GitHub に保存された 4Dコンポーネントを直接参照して使用するには、GitHubコンポーネントのリポジトリを設定する必要があります。 - - ZIP形式でコンポーネントファイルを圧縮します。 - - GitHubリポジトリと同じ名前をこのアーカイブに付けます。 - - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 +- ZIP形式でコンポーネントファイルを圧縮します。 +- GitHubリポジトリと同じ名前をこのアーカイブに付けます。 +- このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 これらのステップは、4Dコードや GitHubアクションを使用することで簡単に自動化できます。 @@ -234,7 +234,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ ::: - - **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: ```json { @@ -247,7 +247,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ } ``` - - リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json { @@ -264,17 +264,17 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 以下にいくつかの例を示します: - - "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 - - "`*`": リリースされている最新バージョン。 - - "`1.*`": メジャーバージョン 1 の全バージョン。 - - "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 - - "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 - - "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 - - "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 - - "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 - - "`<=1.2.3`": 1.2.3 までの最新バージョン。 - - "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 - - "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 +- "`latest`": GitHubリリースで "latest" バッジを持つバージョン。 +- "`*`": リリースされている最新バージョン。 +- "`1.*`": メジャーバージョン 1 の全バージョン。 +- "`1.2.*`": マイナーバージョン 1.2 のすべてのパッチ。 +- "`>=1.2.3`": 1.2.3 を含む、以降の最新バージョン。 +- "`>1.2.3`": 1.2.3 を含まない、以降の最新バージョン。 +- "`^1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン1 (バージョン2未満であること)。 +- "`~1.2.3`": バージョン 1.2.3 を含む、以降の最新のバージョン 1.2 (バージョン1.3未満であること)。 +- "`<=1.2.3`": 1.2.3 までの最新バージョン。 +- "`1.0.0 – 1.2.3`" または ">=1.0.0 <=1.2.3": 1.0.0 から 1.2.3 までのバージョン。 +- "`<1.2.3 ||>=2`": 1.2.3 から 2.0.0 未満までを除いたバージョン。 タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 @@ -284,9 +284,9 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ [**4Dのバージョンに追随する**](#github依存関係バージョン範囲) 依存関係ルールを使用したい場合、GitHub レポジトリ上でのコンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 - - **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 +- **LTS バージョン**: `x.y.p` パターン。ここでの`x.y` は追随したいメインの4D バージョンを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの *x.y* のLTS バージョンを追随すると指定した場合、依存関係マネージャーはそれを"x.\* の最新バージョン"(利用可能であれば)、あるいは"x 未満のバージョン"と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、 "20.4" という指定は依存関係マネージャーによって"バージョン 20.\* の最新コンポーネント、または20 未満のバージョン"として解決されます。 - - **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 +- **R-リリースバージョン**: `xRy.p` パターン。ここでの`x` と `y` は追随したいメインの4D Rリリースを表し、`p` (オプション) はパッチバージョンや他の追加のアップデートなどのために使用することができます。 プロジェクトが4D バージョンの*xRy* バージョンを追随すると指定した場合、依存関係マネージャーはそれを"xR(y+1) 未満の最新バージョン"(利用可能であれば) と解釈します。 もしそのようなバージョンが存在しない場合、その旨がユーザーに通知されます。 たとえば、"20R9" という指定は依存関係マネージャーによって"20R10 未満の最新コンポーネントバージョン"として解決されます。 :::note @@ -312,8 +312,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 参照された GitHubコンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: - - macOs: `$HOME/Library/Caches//Dependencies` - - Windows: `C:\Users\\AppData\Local\\Dependencies` +- macOs: `$HOME/Library/Caches//Dependencies` +- Windows: `C:\Users\\AppData\Local\\Dependencies` ... 上記で `` は "4D"、"4D Server"、または "tool4D" となります。 @@ -429,8 +429,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: - - コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 - - ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 +- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- ローカルコンポーネントと GitHubコンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 - - プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -592,8 +592,8 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 GitHub アクセストークンを提供するには、次のいずれかを実行します: - - "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 - - または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 +- "依存関係を追加..." ダイアログボックスで、GitHub のプライベートリポジトリパスを入力した後に表示される \*\*パーソナルアクセストークンを追加... \*\* ボタンをクリックします。 +- または、依存関係マネージャーのメニューで、**GitHubパーソナルアクセストークンを追加...** をいつでも選択できます。 ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md index a696826968337d..6748776051563e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ title: ドキュメンテーション ドキュメントすることができるプロジェクト要素は次のとおりです: - - メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) - - クラス - - Forms - - テーブルとフィールド +- メソッド (データベースメソッド、コンポーネントメソッド、プロジェクトメソッド、フォームメソッド、4D Mobile メソッド、トリガー) +- クラス +- Forms +- テーブルとフィールド ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 @@ -55,9 +55,9 @@ title: ドキュメンテーション - table1.md - ... - - プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- プロジェクトフォームとそのプロジェクトフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 - - テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 +- テーブルフォームとそのテーブルフォームメソッドは、同じドキュメンテーションファイルをフォームとメソッドの両方について共有します。 > ドキュメントされているプロジェクト要素を名称変更したり、削除したりすると、その要素に紐づいている Markdown ファイルも自動で名称変更、または削除されます。 @@ -73,9 +73,9 @@ title: ドキュメンテーション ![](../assets/en/Project/comments-explo2.png) - - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 +- 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 - - 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -83,8 +83,8 @@ title: ドキュメンテーション 選択要素のドキュメンテーションファイルが存在しなければ: - - `Documentation` ペインにある **作成する** ボタンをクリックするか、 - - エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 +- `Documentation` ペインにある **作成する** ボタンをクリックするか、 +- エクスプローラーのオプションメニューまたはコンテキストメニューより **ドキュメンテーションを編集...** を選択します。 ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ title: ドキュメンテーション `\.md` ファイルが `\/documentation` フォルダーに存在する場合、コードエディターは次の優先順位でヘルプTips を表示します: - - Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) +- Markdown ファイルの先頭に設置した、HTML コメントタグで囲まれたテキスト (``) - HTML のコメントタグが使用されていなければ、Markdown ファイルの `## Description` タグ後の最初の文章。 この場合、最初の文章には 4D コードパーサーによって自動生成されたメソッドの **プロトタイプ** が入ります。 @@ -130,7 +130,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### サポートされている Markdown - - 見出しタグ: +- 見出しタグ: ```md # 見出し 1 @@ -138,7 +138,7 @@ Otherwise, the code editor displays [the block comment at the top of the method ### 見出し 3 ``` - - スタイルタグ (イタリック、太字、取り消し線) : +- スタイルタグ (イタリック、太字、取り消し線) : ```md _イタリック_ @@ -147,7 +147,7 @@ _イタリック_ ~~取り消し線~~ ``` - - 4D コードハイライトが付くコードブロックタグ (\`4d ... `): +- 4D コードハイライトが付くコードブロックタグ (\`4d ... `): ````md ```4d @@ -156,7 +156,7 @@ _イタリック_ ``` ```` - - テーブルタグ: +- テーブルタグ: ```md | Parameter | Type | Description | @@ -165,7 +165,7 @@ _イタリック_ | toolbar | Text |Toolbar name | ``` - - リンクタグ: +- リンクタグ: ```md // 例 1 @@ -177,7 +177,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - 画像タグ: +- 画像タグ: ```md ![画像の説明](pictures/image.png) @@ -224,10 +224,10 @@ $logo:=GetLogo(5) ``` ```` - - エクスプローラーの表示: +- エクスプローラーの表示: ![](../assets/en/Project/explorer_Doc.png) - - コードエディターの表示: +- コードエディターの表示: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index 4abb8fa2e5d970..013ed6ad228fc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 - - クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md index 1ded5dd7335092..d6a83ce65447f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ The locks triggered by the REST API are put at the [session](authUsers.md#sessio *ロック* されたエンティティは次のものから操作 (ロック / アンロック / 更新 / 削除) できません: - - 他の REST セッション - - RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 +- 他の REST セッション +- RESTサーバー上で実行されている 4D プロセス (クライアント/サーバー, リモートデータストア, スタンドアロン)。 REST API によってロックされたエンティティは、次の場合にのみアンロックされます: - - ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 - - ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 +- ロック元の (`/?$lock=true` をおこなった) RESTセッションが `/?$lock=false` をリクエストしたとき。 +- ロック元セッションの [非アクティブタイムアウト]($directory.md) に達したとき (セッションは閉じられます)。 ### レスポンス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index e50b78e469b7f1..bf98fb587668af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ REST リクエストを使って、ORDA データモデルに定義されてい 関数は以下の2つの方法で呼び出すことができます: - - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 +- **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 +- **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 @@ -97,11 +97,11 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 次のルールが適用されます: - - POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 - - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - - 引数はコレクション (JSON形式) の中に格納する必要があります。 - - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 - - エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- POST リクエストを通して呼び出された関数内では、引数は **POST リクエストの本文内** に渡さなければなりません。 +- GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 +- 引数はコレクション (JSON形式) の中に格納する必要があります。 +- JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 +- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 @@ -135,8 +135,8 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 | __ENTITY | Boolean | 必須 - true は引数がエンティティであることをサーバーに通知します | | __KEY | 混合 (プライマリーキーと同じ型) | 任意 - エンティティのプライマリーキー | - - `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 - - `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 +- `__KEY` が省略された場合、指定した属性を持つ新規エンティティがサーバー上で作成されます。 +- `__KEY` が提供された場合、`__KEY` が合致するエンティティが指定した属性とともにサーバー上に読み込まれます。 POST リクエストでエンティティを作成または更新する方法については以下の例題を参照して下さい。 GET リクエストとエンティティを使用してコンテンツをダウンロードする方法については以下の例題を参照して下さい。 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 2f959e853d7591..3261d080e8448f 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 @@ -43,9 +43,9 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: - - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 - - `/rest/$getWebForm` - Qodlyページのレンダリング +- [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス +- `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 +- `/rest/$getWebForm` - Qodlyページのレンダリング ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -73,8 +73,8 @@ exposed Function authentify({params : type}) {-> result : type} この関数は 2部構成で書かれる必要があります: - - RESTリクエストの送信元を識別し、認証するためのコード - - 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し +- RESTリクエストの送信元を識別し、認証するためのコード +- 認証が成功した場合、セッションに適切な権限を割り当てる [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) の呼び出し 関数が [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出さない場合、権限が割り当てられないため、ライセンスも消費されず、後続の記述的でない RESTリクエストは拒否されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index 9aadde0ae7aff3..e68534d0d31a73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: - - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 +- 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 +- 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 206a12ab269c49..a2c66fa4609967 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-buttons.png) - - **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 - - **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 - - **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 **グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: - - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 - - "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 +- 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 +- "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 +- "クライアントマネージャー" グループが作成され、これにはクライアントのさまざまな内部プロセスが含まれます。 ウィンドウの下段には選択したプロセスの稼働状況がグラフィカルに表示されます。 @@ -83,15 +83,15 @@ title: プロセスページ ![](../assets/en/Admin/server-process-actions.png) - - **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **プロセスを一時停止**: 選択したプロセスを一時停止します。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 - - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスを一時停止**: 選択したプロセスを一時停止します。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 - - **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 5828467910a979..8820a4e8efd6ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ title: リアルタイムモニターページ このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: - - **停止** ボタンをクリックする - - リストの中をクリックする - - スペースバーを押す +- **停止** ボタンをクリックする +- リストの中をクリックする +- スペースバーを押す ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 70870aa1aea9a7..d7901194653d79 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ title: VP EXPORT DOCUMENT ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt" または ".csv") - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt" または ".csv") +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") ファイル名に拡張子が含まれていなくても、*paramObj* 引数によって形式が指定されている場合、書き出されたファイルには形式に対応する拡張子がつけられます。 ただし CSV形式の場合には拡張子がつきません。 @@ -88,25 +88,25 @@ title: VP EXPORT DOCUMENT **Excel 形式についての注意**: - - 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 - - ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 混在させた場合には問題が起きる可能性があります。 **PDF 形式についての注意**: - - 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 - - すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 +- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: - - [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 - - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 +- [SpreadJS ファイル](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) は zipファイルです。 +- このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 書き出し操作が完了すると、`VP EXPORT DOCUMENT` は自動的に、*paramObj* オブジェクトの *formula* プロパティに設定されたメソッドをトリガーします (設定されていれば)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index f36b0aad301c2f..70ceccbf7b40d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 4b85db02c19f3e..163d884fe9f6ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ title: VP Get stylesheets 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 7ac63c9deef533..a2c15488013851 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ title: VP Get value 返されるオブジェクトに日付または時間が含まれている場合、これは "日付時間"として扱われ、以下のように補完されます: - - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 +- 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 +- 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 *rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index d00f1cabd92020..5d069870ab5a4e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ title: VP IMPORT DOCUMENT *filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : - - 4D View Pro ドキュメント (拡張子 ".4vp") - - Microsoft Excel 形式 (拡張子 ".xlsx") - - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") +- 4D View Pro ドキュメント (拡張子 ".4vp") +- Microsoft Excel 形式 (拡張子 ".xlsx") +- テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) +- [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 @@ -73,11 +73,11 @@ title: VP IMPORT DOCUMENT :::note 注記 - - .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - - Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 +- CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- Using *excelOptions* object is recommended when importing ".xlsx" format. Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- The callback function specified in the `formula` attribute is triggered after all [4D custom functions](../formulas.md#4d-functions) within the imported content have completed their calculations. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index dbce5f598859fd..9aff390b955ca6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 9a91c5604ce4dd..b68bcfc3a991bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -49,20 +49,20 @@ Once you restart the project, the 4D View Pro component is installed as a [Githu ### セル、列、および行の選択 - - セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 - - 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - 列を選択するには、対応する文字 (アルファベット) をクリックします。 +- 列を選択するには、対応する文字 (アルファベット) をクリックします。 - - 行を選択するには、対応する番号をクリックします。 +- 行を選択するには、対応する番号をクリックします。 - - 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 +- 連続していないセルを複数選択するには、**Ctrl**キー (Windows) あるいは **Command**キー (macOS) を押しながら、選択したいセルをそれぞれクリックします。 - - セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 +- セルの選択を解除するには、スプレッドシート内のどこかをクリックすれば選択解除されます。 ### データの入力 @@ -140,8 +140,8 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - - area - 4D View Pro エリアの名称 - - ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- area - 4D View Pro エリアの名称 +- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | @@ -158,10 +158,10 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro は、複数のドキュメント形式のインポートおよびエクスポートに対応しています: - - .4vp - - .xlsx - - .txt と .csv - - .sjs - - .pdf (エクスポートのみ) +- .4vp +- .xlsx +- .txt と .csv +- .sjs +- .pdf (エクスポートのみ) 詳細については [VP IMPORT DOCUMENT](commands/vp-import-document.md) と [VP EXPORT DOCUMENT](commands/vp-export-document.md) の説明を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index a66a66a3b6d4b3..89dfb36cb849a2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ QodlyScript はローカル変数のみをサポートするため、QodlyScript QodlyScript のコマンドおよび定数名は、スペースを入れずにキャメルケースで記述されます。 また、QodlyScript の定数名は `k` 文字で始まります。 これらの QodlyScript の要素を 4Dランゲージに変換する必要があるかもしれません。 - - 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 - - しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 +- 通常は、単に名前を変換するだけで十分です。 たとえば、QodlyScript の `newCollection` は 4Dランゲージの `New collection` です。 +- しかし、いくつかのコマンドは改名されています。たとえば、4Dランゲージの `Arctan` と `Square root` コマンドは、QodlyScript では `atan` および `sqrt` です。 ### 例題 - - QodlyScript コード: +- QodlyScript コード: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript のコマンドおよび定数名は、スペースを入れずに end ``` - - 上に相当する 4Dランゲージのコード: +- 上に相当する 4Dランゲージのコード: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 8d19ba1776734b..1e516d2de163ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ http://localhost/rest/Friends 4D Webサーバーにユーザーをログインさせる、もっともシンプルで安全な方法は、以下のシナリオに基づきます: - - ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 - - [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 +- ユーザーは、専用の非公開テーブル (例: *WebUsers*) に保存されます。 +- [暗号化](MSC/encrypt.md) することも可能な *WebUsers* テーブルには、ユーザーのログイン名とパスワードのハッシュが保存されています。 1. いくつかのフィールドを持つテーブルを作成します。たとえば: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index fe5f718531ff93..883be9680d24b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ title: HTTP Request handler カスタムのHTTP リクエストハンドラーを使用することで、以下のような用途に応えることができます: - - 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 - - コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする - - oAuth 2.0 経由での認証を管理する +- 与えられたURL をリソースプロバイダやファイルアップロードボックスとして使用する(これにより様々なファイルのダウンロード/アップロードが可能になります)。 +- コンテキスト(認証されたユーザー、与えられた権限など)に応じて、特定のページへとリダイレクトする +- oAuth 2.0 経由での認証を管理する ## 要件 @@ -73,9 +73,9 @@ Handlers are provided as a collection. ハンドラーは以下の3つの要素から定義されます: - - 聞くべきURL パターン - - 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 - - そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) +- 聞くべきURL パターン +- 受信したURL パターンを処理するためのコードが実装されているクラスとその関数 +- そのURL とともに使用することでハンドラーをトリガーする動詞(メソッド) ハンドラーの識別子は、[パターン + 動詞のリストの中にある動詞]の組み合わせとなります。 @@ -95,8 +95,8 @@ URL パターンは**接頭辞** として、あるいは**正規表現** を使 URL パターンは以下の指定された順番に基づいてトリガーされます: - - 最初に合致したパターンが実行されます。 - - それ以降のパターンは、URL に合致していたとしても実行されません。 +- 最初に合致したパターンが実行されます。 +- それ以降のパターンは、URL に合致していたとしても実行されません。 結果として、ハンドラーを作成する際には正確な戦略を適用する必要があります。つまり、もっとも詳細なパターンを先に、そして最も一般的なパターンを後に書く必要があります。 @@ -128,17 +128,17 @@ URL パターンは以下の指定された順番に基づいてトリガーさ カスタムの HTTP ハンドラーでは、4D ビルトインのHTTP 処理機能に合致するURL パターンは許可されていません。 例えば、以下のようなパターンは管理することができません: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### クラスとメソッド 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 - - "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - - "method": クラスに属性ているクラス関数 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 @@ -219,11 +219,11 @@ HTTP 動詞はまた、[リクエストハンドラーコード内で`.verb` プ この例においては、以下の関数を実装する必要があります: - - *GeneralHandling* クラス内の*handle 関数* - - *UsersHandling* クラス内の *manageAccount* - - *FinancialHandling* クラス内の *handleInvoices* - - *DocsHandling* クラス内の *handleDocs* - - *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* +- *GeneralHandling* クラス内の*handle 関数* +- *UsersHandling* クラス内の *manageAccount* +- *FinancialHandling* クラス内の *handleInvoices* +- *DocsHandling* クラス内の *handleDocs* +- *InvoicesHandling* クラス内の *handleTheInvoice* / *handleDetails* / *handleInvoices* 以下はハンドラーをトリガーするURL の一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index c227634e28caa5..9ded11857f4f7f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Webプロセスをプリエンプティモードで実行するには、Webサ - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) と [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) +- `compiler_web` プロジェクトメソッド (実際の "実行モード" プロパティに関わらず評価されます) - - Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) +- Webコンテキストにおいて [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) コマンドによって処理される基本的にすべてのコード (.shtmlページを通して実行されるものなど) - - "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 +- "公開オプション: 4DタグとURL (`4DACTION`)..." 属性が有効なプロジェクトメソッド。 - - "RESTリソースとして公開" 属性が有効なテーブルのトリガー +- "RESTリソースとして公開" 属性が有効なテーブルのトリガー - - REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) +- REST で呼び出された [ORDA データモデルクラス関数](../REST/ClassFunctions.md) For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ Web関連のほとんどの 4Dコマンドや関数、データベースメソ すべての Web関連コマンドはスレッドセーフです: - - *Webサーバー* テーマの全コマンド - - *HTTPクライアント* テーマの全コマンド +- *Webサーバー* テーマの全コマンド +- *HTTPクライアント* テーマの全コマンド Web関連のデータベースメソッドもスレッドセーフであり、プリエンプティモードで使用することが可能です (前述参照): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 1fcccdee63d7f9..17c2d431301349 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studioは、Webビジネスアプリケーションの開発に特化し Qodly Studio はフル機能の Web UI を提供し、以下のことを可能にします: - - キャンバス上にコンポーネントを配置して Qodlyページを作成する - - コンポーネントを Qodly Sources にマッピングする - - イベントを設定して 4Dコードをトリガーする - - さらに沢山のことが可能です +- キャンバス上にコンポーネントを配置して Qodlyページを作成する +- コンポーネントを Qodly Sources にマッピングする +- イベントを設定して 4Dコードをトリガーする +- さらに沢山のことが可能です ## 設定 @@ -24,19 +24,19 @@ Qodly Studio はフル機能の Web UI を提供し、以下のことを可能 Qodly Studio は、以下の Webブラウザーをサポートしています: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox 推奨解像度は 1920x1080 です。 #### 4Dアプリケーション - - 開発: 4D v20 R2 以上 - - 運用: 4D Server v20 R2 以上 - - Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 - - Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 - - Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 +- 開発: 4D v20 R2 以上 +- 運用: 4D Server v20 R2 以上 +- Qodly Studio は 4Dプロジェクトでのみ動作します (バイナリデータベースはサポートされていません)。 +- Web セッション (スケーラブルセッション) が [有効](sessions.md#webセッションの有効化) である必要があります。 +- Qodlyフォームによって呼び出される 4Dコードは [スレッドセーフ](preemptiveWeb.md) でなければなりません。 ### Qodly Studio へのアクセスを有効化する @@ -46,8 +46,8 @@ Qodly Studioは、[WebAdmin Webサーバー](../Admin/webAdmin.md) によって Qodly Studio へのアクセスを有効化するには、2つのレベルで明示的に許可する必要があります: - - 4Dアプリケーションレベルで - - プロジェクトレベルで +- 4Dアプリケーションレベルで +- プロジェクトレベルで 2つのレベルのいずれか (または両方) が有効でない場合、Qodly Studio へのアクセスは拒否されます (403ページが返されます)。 @@ -79,8 +79,8 @@ WebAdmin Webサーバーでの認証には、アクセスキーを使用しま 4Dプロジェクトの管理上、以下の使用法のみがサポートされます: - - Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 - - Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 +- Qodly Studio での開発は **4D** (シングルユーザー) でおこなう必要があります。 +- Qodlyページを利用した 4Dアプリケーションの運用は、**4D Server** でおこなう必要があります。 :::warning @@ -145,24 +145,24 @@ Qodlyページを利用した Webアプリケーションを開発するには 以下のコマンドとクラスは、Qodlyページのサーバーサイド管理に特化しています: - - [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 - - [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 - - [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 - - [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 +- [`Web Form`](../API/WebFormClass.md#web-form) コマンド: Qodlyページをオブジェクトとして返します。 +- [`Web Event`](../API/WebFormClass.md#web-event) コマンド: Qodlyページのコンポーネント内でトリガーされたイベントを返します。 +- [`WebForm`](../API/WebFormClass.md) クラス: レンダリングされた Qodlyページを管理する関数とプロパティを持ちます。 +- [`WebFormItem`](../API/WebFormItemClass.md) クラス: Qodlyページのコンポーネントを管理する関数とプロパティを持ちます。 ### プロジェクトメソッドを使用する 推奨される方法は、プロジェクトメソッドではなく、クラス関数を使用することです。 コンポーネントから呼び出すことが可能なのは、クラス関数のみです。 それでも、次の 2つの方法で、Qodly Studio でもプロジェクトメソッドを使用できます: - - クラス関数からメソッドを呼び出すことができます。 - - Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 +- クラス関数からメソッドを呼び出すことができます。 +- Qodly Explorer から直接 [メソッドを実行](https://developer.qodly.com/docs/studio/coding#methods-and-classes) できます。 ### オフラインでの使用 コンピュータがインターネットに接続されていない状態でも、Qodly Studio を使って開発することができます。 ただしこの場合、以下の機能は使用できません: - - [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 - - UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 +- [テンプレート](https://developer.qodly.com/docs/studio/pageLoaders/templates): テンプレートライブラリは空です。 +- UI Tips: ![alt-text](../assets/en/WebServer/tips.png)アイコンをクリックしても表示されません。 ## 運用 @@ -178,8 +178,8 @@ Qodly で Qodlyページをレンダリングする方法の詳細について Qodlyページのレンダリングを有効にするには、以下のオプションを設定する必要があります。 - - 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 - - [4D Webサーバー](webServer.md) を起動しておく必要があります。 +- 4Dプロジェクトの **設定** > **Web** > **Web機能** > [**RESTサーバーとして公開**](../settings/web.md#restサーバーとして公開) オプションを有効にする必要があります。 +- [4D Webサーバー](webServer.md) を起動しておく必要があります。 :::note @@ -309,9 +309,9 @@ End if Webユーザーセッションからログアウトアクションをトリガーすると、次のような効果があります: - - カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 - - 関連する 4Dライセンスが解放されます。 - - `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 +- カレントWebユーザーセッションは権限を失い、[記述的RESTリクエスト](../REST/authUsers.md#記述的restリクエスト) のみが許可されます。 +- 関連する 4Dライセンスが解放されます。 +- `Session.storage` は、Webセッションの非アクティブタイムアウトまで (少なくとも 1時間) 保持されます。 ログアウト後のこの期間にユーザーが再ログインすると、同じセッションが使用され、`Session.storage` 共有オブジェクトが現在の内容とともに利用可能になります。 ## レンダリングのためのライセンス消費について @@ -363,7 +363,7 @@ Qodly Studio のユーザー設定で、レンダラーのポップオーバー 必要以上のライセンスを使用しないため、次のいずれかをお勧めします: - - 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 - - Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 - - プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 +- 別のブラウザータブでレンダラーを実行します (Qodlyページがレンダリングされた URL `IP:port/$lib/renderer/?w=QodlyPageName` を入力します)。 +- Qodly Studio とデータベースが同じ URLスキームでアクセスされていることを確認します。 +- プロジェクトデータベースの Webサーバーの [セッションcookie](webServerConfig.md#セッションcookie-samesite) には、`Lax` の値を使用してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index d2afc2319f0170..2b30a136bc6766 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ title: テンプレートページ 以下の 4Dタグを使用することができます: - - 4DTEXT: 4D変数および式をテキストとして挿入します。 - - 4DHTML: HTMLコードを挿入します。 - - 4DEVAL: 4D式を評価します。 - - 4DSCRIPT: 4Dメソッドを実行します。 - - 4DINCLUDE: ページを他のページに含めます。 - - 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 - - 4DCODE: 4Dコードを挿入します。 - - 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 - - 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 - - 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 +- 4DTEXT: 4D変数および式をテキストとして挿入します。 +- 4DHTML: HTMLコードを挿入します。 +- 4DEVAL: 4D式を評価します。 +- 4DSCRIPT: 4Dメソッドを実行します。 +- 4DINCLUDE: ページを他のページに含めます。 +- 4DBASE: 4DINCLUDE タグが使用するデフォルトフォルダーを変更します。 +- 4DCODE: 4Dコードを挿入します。 +- 4DIF, 4DELSE, 4DELSEIF, 4DENDIF: HTMLコードに条件式を挿入します。 +- 4DLOOP, 4DENDLOOP: HTMLコードにループを挿入します。 +- 4DEACH, 4DENDEACH: コレクション内、エンティティセレクション内、またはオブジェクトのプロパティをループします。 これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index aca61d9038357d..e42bb64f817d64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
![](../assets/en/WebServer/start2.png) - - 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
![](../assets/en/WebServer/config.png) - - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 +- [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して [`webServer.start()`](API/WebServerClass.md#start) 関数を呼び出すことで開始できます。 @@ -29,9 +29,9 @@ title: 管理 4D Webサーバーは複数の方法で停止できます: - - 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 +- 4D の **実行 > Webサーバー停止** メニューを使用するか、 4D Server にて HTTPサーバーページの **HTTPサーバー停止** ボタンを使用する (いずれも、サーバー開始前は **…開始** と表示されています)。 - - [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 +- [`webServer.stop()`](API/WebServerClass.md#stop) 関数または `WEB STOP SERVER` コマンドを呼び出してプログラムで停止。 コンポーネントの Webサーバーは、コンポーネントの WebServer オブジェクトに対して `webServer.stop()` 関数を呼び出すことで停止できます。 @@ -53,8 +53,8 @@ title: 管理 これをおこなうには: - - 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 - - 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 +- 4D: ストラクチャー設定の [Web / オプション (I) ページ](../settings/web.md) の **キャッシュクリア** ボタンをクリックします。 +- 4D Server: 4D Server 管理ウィンドウ の HTTPサーバーページにて、**キャッシュクリア** ボタンをクリックします。 キャッシュは即座にクリアされます。 @@ -64,11 +64,11 @@ title: 管理 Webサーバーに関連する情報は、ランタイムエクスプローラーにある **ウォッチ** ページ (**Web** 項目内) に表示されます。 - - **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 +- **Webキャッシュ使用**: Webキャッシュに存在するページ数とその使用率を示します。 Webサーバーがアクティブでキャッシュサイズが 0 より大きい場合のみ、この情報が利用できます。 - - **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webサーバー経過時間**: Webサーバーの使用時間を (時間 : 分: 秒 フォーマットで) 示します。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 - - **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 +- **Webヒット数**: Webサーバーが起動してから受け取った HTTPリクエストの総数と、毎秒のリクエスト数を示します (ランタイムエクスプローラーの更新の間で測定) 。 Webサーバーがアクティブである場合のみ、この情報が利用できます。 ## 管理用 URL @@ -123,8 +123,8 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい 4Dでは、Webリクエストのログを2種類作成することができます: - - Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 - - おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 +- Webサーバーの開発段階で有用なデバッグログ (*HTTPDebugLog.txt*)。 +- おもに統計目的で使用される、標準化された Webリクエストログ (*logweb.txt*)。 両方のログファイルは、アプリケーションプロジェクトの **Logs** フォルダーに自動的に作成されます。 @@ -223,15 +223,15 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 - - **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 - - **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 - - **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index fe41c5175f7a14..020a8dc923f782 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ CORSサービスで許可されたホストとメソッドの一覧。 CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### 許可された HTTPメソッド (methodsプロパティ) 対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -145,9 +145,9 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。 - - パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 +- パスは、[デフォルトHTMLルート](#ルートフォルダー) からの相対パスで設定しなければなりません。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。 たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 @@ -422,10 +422,10 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ とりうる値: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (デフォルト) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (デフォルト) +- 4 = TLSv1_3 変更した場合、設定を反映するには Webサーバーを再起動する必要があります。 @@ -492,10 +492,10 @@ User-Agent: Disallow: /GIFS/ ``` - - "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 - - "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 - - "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 +- "User-Agent: \*" は、すべてのクローラーが対象であることを示します。 +- "Disallow: /4D" は、/4D から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /%23%23" は、/%23%23 から始まる URL へのアクセスを許可しないことをクローラーに通知します。 +- "Disallow: /GIFS/" は、/GIFS/ フォルダーおよびそのサブフォルダーへのアクセスを許可しないことをクローラーに通知します。 他の例題: @@ -520,15 +520,15 @@ User-Agent: デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: - - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - - 4Dリモートモードでは、ローカルのリソースフォルダー内 +- 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 +- 4Dリモートモードでは、ローカルのリソースフォルダー内 デフォルトHTMLルートフォルダーを変更するには、パスを "デフォルトHTMLルート" に入力します。 - - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 - - フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 - - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 +- このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 +- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -583,9 +583,9 @@ User-Agent: 次の値が提供されています: - - "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 - - "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 - - "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 +- "Strict" (4Dセッションcookie の `SameSite` 属性のデフォルト値): ファーストパーティーのコンテキスト、すなわち現在のサイトのドメインに一致するコンテキストでのみ cookie は送信され、サードパーティーの Webサイトには決して送信されません。 +- "Lax": クロスサイトのサブリクエストでは cookie は送信されませんが (たとえば、画像やフレームをサードパーティーのサイトにロードする場合など)、ユーザーがオリジンのサイトに移動するとき (つまり、リンクを辿っているとき) には送信されます。 +- "None": ファーストパーティーやオリジン間リクエストにかかわらず、すべてのコンテキストにおいて cookie が送信されます。 "None" を使用する場合は、cookie の `Secure` 属性も設定する必要があります (設定しないと、cookie がブロックされます)。 セッションcookie の `Secure` 属性値は、HTTPS接続の場合には (`SameSite` 属性値が何であれ)、自動的に "True" に設定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index d6128159127ebe..23b39e7e675585 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application たとえば、メインアプリケーションに 2つのコンポーネントをインストールしている場合、アプリケーションから最大 3つの独立した Webサーバーを起動して監視することができます: - - ホストアプリケーションの Webサーバーを1つ - - コンポーネント#1 の Webサーバーを1つ - - コンポーネント#2 の Webサーバーを1つ +- ホストアプリケーションの Webサーバーを1つ +- コンポーネント#1 の Webサーバーを1つ +- コンポーネント#2 の Webサーバーを1つ 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 @@ -19,9 +19,9 @@ A 4D project can start and monitor a web server for the main (host) application 各 Webサーバー (ホストアプリケーションまたはコンポーネント) は、個別のコンテキストで使用できます。これには、以下が含まれます: - - `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し - - 4Dタグの処理とメソッドの呼び出し - - Webセッションや TLSプロトコルの管理 +- `On Web Authentication` および `On Web Connection` データベースメソッドの呼び出し +- 4Dタグの処理とメソッドの呼び出し +- Webセッションや TLSプロトコルの管理 これにより、独自の Webインターフェースを備えた独立したコンポーネントや機能を開発することができます。 @@ -49,8 +49,8 @@ webServer:=WEB Server(Web server database) アプリケーションがコンポーネントを使用している場合に: - - コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や - - リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 +- コンポーネントからホストアプリケーションの Webサーバーを呼び出す場合や +- リクエストを受け取ったサーバー (どのサーバーでも) を呼び出す場合 次を使うこともできます: @@ -97,8 +97,8 @@ A web server object contains [various properties](API/WebServerClass.md../comman 2. 上を使用しない場合は、`WEB SET OPTION` コマンドを使用して定義します (ホストアプリケーションのみ)。 3. 上を使用しない場合は、ホストアプリケーションまたはコンポーネントの設定で定義します。 - - Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 - - Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 +- Webサーバーを起動していない場合、プロパティには Webサーバーの次回起動時に使用される値が含まれています。 +- Webサーバーが起動されている場合、プロパティには Webサーバーで使用される実際の値が含まれます (デフォルトの定は [`.start()`](API/WebServerClass.md#start) 関数の `settings` パラメーターによって上書きされている可能性があります)。 > *isRunning*、*name*、*openSSLVersion*、*perfectForwardSecrecy* は読み取り専用のプロパティで、[`start()`](API/WebServerClass.md#start)関数の `settings` オブジェクトパラメーターで事前に定義することはできません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 75a443b6172d1b..9de16429321acb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション) +- 4D Write Pro ドキュメント *breakType* 引数には、*4D Write Pro 定数* テーマから以下の定数のどれか一つを渡し、挿入するブレークのタイプを定義します: @@ -47,7 +47,7 @@ displayed_sidebar: docs | wk prepend | Integer | 1 | コンテンツをターゲットの始めに挿入する | | wk replace | Integer | 0 | ターゲットのコンテンツを置き換える | - - *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: +- *targetObj* がレンジである場合、オプションの*rangeUpdate* 引数に以下の定数のいづれか一つを渡すことで挿入されたコンテンツが結果のレンジに含まれるかどうかを指定することができます: | 定数 | 型 | 値 | 説明 | | --------------------- | ------- | - | ------------------------------------------------- | @@ -56,7 +56,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 7d89b03a109738..f0e5c9d984ab9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ displayed_sidebar: docs *targetObj* 引数には、以下のいずれかを渡すことができます: - - レンジ - - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - - 4D Write Pro ドキュメント +- レンジ +- 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) +- 4D Write Pro ドキュメント 挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands-legacy/wp-new.md) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 @@ -54,7 +54,7 @@ displayed_sidebar: docs *rangeUpdate* 引数を渡さなかった場合、デフォルトでは挿入されたコンテンツは結果のレンジに含まれます。 - - *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 +- *targetObj* がレンジではない場合、*rangeUpdate* は無視されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index 32e52084f1faf9..fc2acfdb8020c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -12,8 +12,8 @@ slug: /WritePro/write-pro-interface You will find below: - - the Table Wizard configuration documentation, - - the integrated A.I. ドキュメント. +- the Table Wizard configuration documentation, +- the integrated A.I. ドキュメント. ## 表ウィザード @@ -61,9 +61,9 @@ You will find below: テンプレートの設定には以下が含まれます: - - [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 - - [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 - - [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 +- [テンプレートファイル](#テンプレートファイル): テーブルとフィールドを定義し、アプリケーションに適合したフォーミュラを用意します。 +- [トランスレーションファイル](#トランスレーションファイル): テーブル、フィールド、フォーミュラの翻訳名を指定します。 +- [テーマファイル](#テーマファイル): グラフィックスタイルとテーマをデザインしカスタマイズします。 表ウィザードを設定するにあたって、これら 3種類のファイルにはそれぞれ明確な役割がありますが、いずれも必須ではありません。 @@ -71,10 +71,10 @@ You will find below: テンプレートファイルを使って、以下のことが定義できます: - - 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ - - ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) - - 表の列として使用できるデータクラス属性 - - ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ +- 表のデータソースとして使用されるエンティティセレクションを返すフォーミュラ +- ブレーク行のフォーミュラ (ブレーク行を挿入できる場合) +- 表の列として使用できるデータクラス属性 +- ブレーク行、キャリーオーバー行、プレースホルダー行、追加の行において、コンテキストメニューから選択可能なフォーミュラ テンプレートファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Templates" フォルダーに保存する必要があります。 @@ -319,11 +319,11 @@ The 4D Write Pro interface uses OpenAI, for which you need to provide your own k In the current implementation, the feature has the following limitations: - - use of a predefined AI provider and necessity to pass your OpenAI key - - basic chatting features - - no image handling - - non-configurable predefined action commands - - predefined translations English/French and French/English only +- use of a predefined AI provider and necessity to pass your OpenAI key +- basic chatting features +- no image handling +- non-configurable predefined action commands +- predefined translations English/French and French/English only ### Enabling the AI feature @@ -350,8 +350,8 @@ The **A.I.** button is then displayed: ![ai button](../assets/en/WritePro/ai-button.png) - - in the 4D Write Pro Toolbar, in the **Import Export** tab, - - in the 4D Write Pro Widget, in the **Font Style** tab. +- in the 4D Write Pro Toolbar, in the **Import Export** tab, +- in the 4D Write Pro Widget, in the **Font Style** tab. Click on the button to display the AI dialog box. @@ -389,8 +389,8 @@ These buttons propose basic interactions between the chat area, the underlying 4 ![ai interaction](../assets/en/WritePro/ai-interaction.png) - - **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. - - **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. +- **Return raw text**/**Return styled text**: Copy the latest response or the selected response from the AI to the 4D Write Pro document at the current insertion point, replacing the selected text if any. +- **Copy raw text**/**Copy styled text**: Copy the latest response or the selected response from the AI in the clipboard. In both cases, if the response was provided with styles, you can decide to copy the text with or without styles. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 28eda06a2a0a2f..6305cfc00401be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -37,8 +37,8 @@ displayed_sidebar: docs イベントオブジェクトには、イベントが発生したオブジェクト によっては追加のプロパティが含まれていることがあります。 これは以下のオブジェクトで生成された *eventObj* オブジェクトが対象です: - - リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 - - 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 +- リストボックスまたはリストボックスカラムオブジェクト。詳細は[こちらの章](../FormObjects/listbox_overview.md#追加プロパティ)を参照してください。 +- 4D View Pro エリア。詳細は[On VP Ready フォームイベント](../Events/onVpReady.md) を参照してください。 ***注意:*** カレントのイベントが何もない場合、**FORM Event** はnull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index 1ceb2de53786d0..ec284ecd7a9bc4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -26,17 +26,17 @@ displayed_sidebar: docs **Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - - カレントフォームがサブフォームである場合。 - - テーブルフォームが現在画面上に表示されている場合。 +- カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 +- カレントフォームがサブフォームである場合。 +- テーブルフォームが現在画面上に表示されている場合。 ### コマンド(DIALOGなど) カレントのフォームが[DIALOG](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します: - - コマンドに引数として渡された*formData* オブジェクト(あれば)。 - - [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 - - または、空のオブジェクト。 +- コマンドに引数として渡された*formData* オブジェクト(あれば)。 +- [フォームに割り当てられているユーザークラス](../FormEditor/properties_FormProperties.md#form-class) のインスタンス化されたオブジェクト(あれば)。 +- または、空のオブジェクト。 ### サブフォーム @@ -49,7 +49,7 @@ displayed_sidebar: docs (OBJECT Get pointer(Object subform container))-> ``` - - 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 +- 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、**Form** は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。 より詳細な情報については、*サブフォームページ* の章を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 352fff791b636b..7b6bd571dad62d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ displayed_sidebar: docs 以下のサポートされる型であれば、いくつでも値を渡すことができます: - - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - - text - - boolean - - date - - 時間 (ミリ秒の数 (実数) として保存されます)。 - - null - - 共有オブジェクト - - 共有コレクション +- 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +- text +- boolean +- date +- 時間 (ミリ秒の数 (実数) として保存されます)。 +- null +- 共有オブジェクト +- 共有コレクション :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index cdb231ed9fe273..f80d1bd1b2f9c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs *form* 引数には、以下のいづれかを渡すことができます: - - フォーム名 - - 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) - - フォームの詳細を格納しているオブジェクト +- フォーム名 +- 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、*Form file path* 参照) +- フォームの詳細を格納しているオブジェクト **Print form** は、 フォームの印刷後に改ページを行わないため、同じページに異なるフォームを容易に配置することができます。 したがって、**Print form** は、異なるテーブルや異なるフォームを含む複雑な印刷処理に最適です。 フォーム間で改ページを強制的に行うには[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用してください。 印刷可能領域を超える高さのフォームの印刷を次のページに持ち越すには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを使用する前に[CANCEL](../commands-legacy/cancel.md) コマンドを呼び出してください。 3つの異なるシンタックスを使用できます: - - **詳細エリアの印刷** +- **詳細エリアの印刷** シンタックス: @@ -43,7 +43,7 @@ displayed_sidebar: docs この場合、**Print form** はフォームの詳細エリア (ヘッダマーカと詳細マーカの間のエリア) だけを印刷します。 - - **フォームエリアの印刷** +- **フォームエリアの印刷** シンタックス: @@ -79,7 +79,7 @@ displayed_sidebar: docs | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **セクション印刷** +- **セクション印刷** シンタックス: @@ -101,8 +101,8 @@ form data オブジェクトについての詳細な情報については、[`DI **Print form** を使用する場合、印刷ダイアログボックス は表示されません。 レポート はデザインモードでフォームに割り当てられた用紙設定を使用しません。 **Print form** を呼び出す前に用紙設定を指定する方法は2通りあります: - - [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 - - [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 +- [PRINT SETTINGS](../commands-legacy/print-settings.md) コマンドを使用する。 この場合、ユーザが設定を行います。 +- [SET PRINT OPTION](../commands-legacy/set-print-option.md) と [GET PRINT OPTION](../commands-legacy/get-print-option.md) コマンドを使用する。 この場合、用紙設定はプログラムで指定します。 **Print form** は、印刷するページをそれぞれメモリ 中に作成します。 各ページはメモリ中のページがいっぱいになるか、[PAGE BREAK](../commands-legacy/page-break.md) コマンドを実行すると印刷されます。 **Print form** の使用後、最後のページの印刷を確実に行うためには、[PAGE BREAK](../commands-legacy/page-break.md) コマンドで終了しなければなりません(ただし [OPEN PRINTING JOB](../commands-legacy/open-printing-job.md) のコンテキスト内の場合を除く、注意参照)。 そうでないと、最後のページが一杯にならないと、それはメモリ中に残り印刷されません。 @@ -116,8 +116,8 @@ form data オブジェクトについての詳細な情報については、[`DI **4D Server:** このコマンドは、ストアドプロシージャのフレームワークにおいて4D Server 上で実行することができます。 この状況では、次の制約があります: - - サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 - - プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 +- サーバマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。 +- プリンタ関連の問題が発生しても (用紙切れ、プリンタ接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md index a9bafc2eb7a12a..6ba3012ac1915d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ displayed_sidebar: docs | type | Integer | 実行中のプロセスタイプ。 取り得る値: 以下を参照のこと 取り得る値: 以下を参照のこと | | visible | Boolean | 表示であればTrue、それ以外はFalse | - - "state" の取り得る値: +- "state" の取り得る値: | 定数 | 値 | | ------------------------- | ---- | @@ -57,7 +57,7 @@ displayed_sidebar: docs | Waiting for internal flag | 4 | | Paused | 5 | - - "type" の取り得る値: +- "type" の取り得る値: | 定数 | 値 | | ----------------------------- | --- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 6e7406bdf9f07b..ba21d38bca8883 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ title: クライアント-サーバーページ このオプションを使用して、起動された 4D Server データベースが公開データベースのリストに表示されるかどうかを指定できます。 - - このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 - - このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 +- このオプションが選択されていると (デフォルト)、データベースは公開され、公開データベースの一覧に表示されます (リモート4D の **利用可能**タブ)。 +- このオプションがチェックされていないと、データベースは公開されず、公開データベースの一覧に表示されません。 接続するには、接続ダイアログボックスの **カスタム** タブにデータベースのアドレスを手入力しなければなりません。 :::note @@ -49,10 +49,10 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ 4D Server は 3つの TCPポートを使用して、内部サーバーとクライアントの通信をおこないます: - - **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 - - **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 - - **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 - - [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 +- **SQLサーバー**: デフォルトで 19812 (設定の "SQL" ページで変更可)。 +- **アプリケーションサーバー**: デフォルトで 19813 (設定の "クライアント-サーバー" ページで変更可)。 +- **DB4Dサーバー** (データベースサーバー): デフォルトで 19814。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+1 です。\ 4Dクライアントが 4D Server に接続するとき、アプリケーションサーバーのポート番号 (19813 または接続ダイアログボックスの IPアドレス欄でコロンの後ろに指定された番号) を使用して接続します。 その後の、それぞれ対応するポートを介した他のサーバーへの接続は自動です。再度ポート番号を指定する必要はありません。\ ルーターやファイアウォール越しに接続する場合には、この 3つのポートを明示的に開く必要があります。 +- [**リモートデバッガー**](../Debugging/debugging-remote.md): デフォルトで 19815。 このポート番号は直接変更できませんが、常にアプリケーションサーバーのポート番号+2 です。 #### ドメインサーバーによるユーザーの認証 @@ -66,9 +66,9 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 ここでは、ドロップダウンメニューにて 3つのネットワークオプションから選択できます: **Legacy**、**ServerNet** 、**QUIC** (プロジェクトモードのみ)。ネットワークレイヤーは、4D Server とリモートの 4Dマシン (クライアント) 間の通信を管理するのに使用されます。 - - **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. - - **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 - - **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 +- **旧式**: v15以前に作成されたデータベースとの互換性を確保するため、この旧式ネットワークレイヤーは引き続きサポートされています。 This network layer can also be enabled by programming using the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. +- **ServerNet** (デフォルト): サーバーの ServerNet ネットワークレイヤーを有効にします (4D 15 以降で利用可能)。 +- **QUIC** (プロジェクトモードでのみ利用可能): サーバー上で QUICネットワークレイヤーを有効にします。 **注**: @@ -119,9 +119,9 @@ This option is not available when the [QUIC](#network-layer) network layer optio この設定は、データベースの **Resources** フォルダーがセッション中に更新された場合について、接続中のクライアントマシンにおける同フォルダーのローカルインスタンスの更新モードを包括的に指定します (**Resources** フォルダーは、セッションが開かれるたびにリモートマシン上で自動的に同期されます)。 3つの選択肢があります: - - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). - - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 - - **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. +- **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 The local **Resources** folder may be updated manually using the **Update Local Resources** action menu command (see [Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html)). +- **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインタフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](https://doc.4d.com/4Dv20/4D/20/Managing-the-Resources-folder.300-6330534.en.html) section. ## IP設定ページ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index c3e00c2d71417f..b89b518f527aec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ title: 互換性ページ - **旧式ネットワークレイヤーを使用する**: 4D v15 のリリース以降、4Dアプリケーションは 4D Server とリモートの 4Dマシン (クライアント) 間の通信に、*ServerNet* という新しいネットワークレイヤーを使い始めました。 以前のネットワークレイヤーは廃止予定となりますが、既存のデータベースとの互換性を保つために保持されます。 このオプションを使用すると、4D Serverアプリケーションにおいて、必要に応じていつでも以前のネットワークレイヤーを有効化することができます。 *ServerNet* は新規に作成されたデータベースおよび v15 以降から変換されたデータベースにおいては自動的に使用されます (このオプションがチェックされます)。 この設定を変更する場合、変更を反映するにはアプリケーションを再起動する必要があります。 接続していたクライアントアプリケーションも、新しいネットワークレイヤーで接続するため再起動しなければなりません。 **注:** このオプションは、`SET DATABASE PARAMETER` コマンドを使い、プログラミングによって管理することもできます。 - - **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: +- **標準のXPathを使用:** デフォルトでは、v18 R3 より前のバージョンの 4D から変換されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックされています。 v18 R3 以降、4D の XPath 実装は、より多くの述語に対応しサポートするために変更されました。 結果的に、以前の標準でない一部の機能は動作しなくなります。 これには以下のような機能が含まれます: - 最初の "/" はルートノードに限らない - "/" を XPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。 - 暗示的なカレントノードはなし - カレントノードは XPath 式の中に含められていなければなりません。 @@ -19,12 +19,12 @@ title: 互換性ページ 標準的なものでなくとも、コードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。その場合、この *チェックを外して* ください。 On the other hand, if your code does not rely on the non-standard implementation and if you want to benefit from the extended XPath features in your databases (as described in the [`DOM Find XML element`](../commands-legacy/dom-find-xml-element.md) command), make sure the **Use standard XPath** option is *checked*. - - **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **macOSにて改行コードとしてLFを使用する:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降) の新規プロジェクトにおいて、4D は macOS でデフォルトの改行コード (EOL) として CR (xml SAX では CRLF) ではなくラインフィード (LF) をテキストファイルに書き込みます。 以前の 4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックしてください。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Unicodeテキストファイルに書き込んでいる際にデフォルトでBOMを追加しない:** 4D v19 R2 以降 (XMLファイルについては 4D v19 R3 以降)、4D はデフォルトでバイトオーダーマーク (BOM) なしでテキストファイルに書き込みます。 以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。 変換されたプロジェクトでこの新しい振る舞いを有効化するには、このオプションを選択します。 See [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md), and [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 +- **フィールド作成時にデフォルトで"ヌル値を空値にマップ"オプションのチェックを外す:** ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時に **ヌル値を空値にマップ** フィールドプロパティがデフォルトでチェックされなくなります。 このオプションにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます ([ORDA](../ORDA/overview.md) で NULL値がサポートされるようになったため、今後は空値ではなく NULL値の使用が推奨されます)。 - - **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 +- **ノンブロッキング印刷**: 4D v20 R4以降、各プロセスには独自の印刷設定 (印刷オプション、カレントプリンターなど) を持つようになりました。これにより、複数の印刷ジョブを同時に実行できます。 このオプションをチェックすると、アップグレード変換された 4Dプロジェクトや、バイナリモードから変換されたプロジェクトデータベースで、この新しい機能を有効化できます。 **チェックしない場合**、以前の実装が適用されます: カレントの 4D印刷設定がグローバルに適用され、印刷ジョブ実行中はプリンターが "ビジー" 状態になります。次の印刷ジョブのためにプリンターを利用可能にするには、`CLOSE PRINTING JOB` を呼び出す必要があります (詳細は以前の4Dドキュメントを参照ください)。 - - **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file +- **ストラクチャーのカラーと座標を個別の catalog_editor.json ファイルに保存する**: 4D 20 R5以降、ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、catalog_editor.json という個別ファイルに保存されます。このファイルはプロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に保存されます。 この新しいファイルアーキテクチャーにより、`catalog.4DCatalog` ファイルは重要なデータベースストラクチャーの変更のみを含むようになるため、VCSアプリケーションでマージの競合を管理しやすくなります。 互換性のため、この機能は以前の 4Dバージョンから変換されたプロジェクトではデフォルトで有効になっていません。有効にするには、このオプションをチェックする必要があります。 この機能が有効になっている場合、ストラクチャーエディターで初めて編集した時に `catalog_editor.json` ファイルが作成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md index b920691ca0dbab..8bccad86936066 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/database.md @@ -45,9 +45,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: - - **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 - - **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 +- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 You can find out the current location defined by your system using the [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D command. ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 - This option can also have an influence on the behavior of the commands in the [Objects (Forms)](../commands/theme/Objects_Forms.md) theme that accept the wildcard character ("@") in the object parameter. - セキュリティの理由で、データベースの Administrator または Designer のみがこのパラメーターを変更できます。 - - **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 +- **現在のデータ言語**: 文字列の処理と比較に使用する言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 デフォルトで 4D はシステム言語を使用します。 つまり、4Dプロジェクトはシステム言語とは異なる言語で動作することができます。 プロジェクトが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 > 4D環境設定でも言語を設定できます ([一般ページ](../Preferences/general.md) 参照)。 この場合、その設定は新規に作成されるデータベースに適用されます。 - - **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 +- **非文字・非数字のみをキーワード区切り文字とする**: 4D が使用するキーワード区切り文字の設定を変更し、その結果、作成されるキーワードインデックスに影響を与えます。 このオプションが選択されていない場合、4D は言語上の特質を考慮する洗練されたアルゴリズムを使用します。 このアルゴリズムは、文字列中をダブルクリックしたときに選択範囲を決定するためワープロソフトが使用するものと同じです。 このアルゴリズムに関する詳細は以下の Webページを参照ください: `http://userguide.icu-project.org/boundaryanalysis`。 このオプションが選択されている場合、4D は簡易的なアルゴリズムを使用します。 この設定では、文字でも数字でもない文字がキーワード区切り文字として扱われます。 この設定は日本語など特定の言語の要求に沿うものです。 - - **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 +- **テキスト検索用の文字列比較を使用する**: このオプションは日本語が選択されている場合にのみ表示されます。 このオプションは "カタカナ-ひらがなでの長音記号" および、"ゝ" または "ゞ" などの繰り返し記号 (踊り字) などの文字の解釈を変更します。 一般的には、この設定が有効化されている方が日本語話者にとって望ましい結果が得られます。 #### MeCab のサポート (日本語版) @@ -96,7 +96,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ### データベースキャッシュ設定 - - **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 +- **起動時にキャッシュサイズを計算**: このオプションが選択されている場合、キャッシュメモリの管理は、設定された制限に基づき、4D起動時にキャッシュサイズが計算されます。 これにより、ほとんどのケースで高パフォーマンスのメモリ設定がおこなわれます。 キャッシュメモリのサイズは設定されたパラメーターに基づき動的に計算されます。 デフォルトで提案される値は標準の 4D の使用状況に対応します。 - **他のアプリケーションとシステムのために予約するメモリ**: システムや他のアプリケーションが使用するために取り置く RAMメモリ量。 4D が実行されるマシン上で他のアプリケーションも実行する場合、必要に応じてこの値を増やします。 - **利用可能なメモリからキャッシュに使用する率**: 残りのメモリからキャッシュに割り当てる量の率。\ デフォルトでキャッシュに割り当てるサイズを取得するためには、以下の計算式を適用します: (物理メモリ – 予約したメモリ) X キャッシュに使用するメモリのパーセンテージ。 動的に計算するモードの場合、キャッシュメモリのサイズはアプリケーションやシステムのニーズに応じて動的に変化します。 以下のオプションを使用して上限と下限を設定できます: @@ -107,7 +107,7 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ![](../assets/en/settings/memory-maximum-size.png) - - **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 +- **起動時にキャッシュサイズを計算オプションがチェックされていない場合**: このモードでは、データベースのキャッシュメモリサイズを開発者が決定します。 4D はキャッシュメモリを設定する入力エリアと、物理メモリに関する情報 (マシンに実装されたRAM)、現在のキャッシュ、そして再起動後のキャッシュサイズを表示します。 入力されたキャッシュサイズは、マシンのリソース状況にかかわらず、4Dデータベース用に予約されます。 この設定は、メモリ搭載量が分かっているなど、特定の状況で使用できます。 ほとんどのケースで起動時計算モードのキャッシュで良いパフォーマンスが提供されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md index 873541121213ef..5a7a741d2fec4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ title: インターフェースページ 他のオプションでは、アプリケーションモードでのさまざまなウィンドウの表示を設定します。 - - **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 +- **スプラッシュスクリーン**: このオプションが選択解除されていると、アプリケーションモードにおいて、[カレントメニューバーのスプラッシュスクリーン](Menus/bars.md#スプラッシュスクリーン) は表示されません。 このウィンドウを非表示にした場合、ウィンドウの表示は、たとえば `On Startup` データベースメソッドによってプログラムで管理しなければなりません。 - - **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 +- **フラッシュの進捗状況**: このオプションがチェックされていると、キャッシュデータがフラッシュされる際、4D は画面左下にウィンドウを表示します。 この処理はユーザー操作を一時的にブロックするため、ウィンドウを表示することでフラッシュがおこなわれていることをユーザーに通知することができます。 :::note @@ -33,9 +33,9 @@ title: インターフェースページ ::: - - **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 +- **印刷の進捗状況**: 印刷時の印刷進捗状況を表示するダイアログを有効または無効にします。 - - **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: +- **WindowsでSDIモードを使用する**: このオプションが選択されていると、[対応している環境](../Menus/sdi.md#SDIモード利用条件) で組み込みアプリが実行された場合に、4D は自動で [SDIモード (Single-Document Interface)](../Menus/sdi.md) を有効にします。 このオプションを選択すると、Windows では、4D メニューバーの **実行** メニューからアプリケーションの実行モードが選択できます: ![](../assets/en/settings/sdi-mdi.png) @@ -53,16 +53,16 @@ title: インターフェースページ 以下のスキームが利用可能です: - - **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) - - **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) - - **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 +- **ライト**: アプリケーションはデフォルトのライトテーマを使用します。![](../assets/en/settings/light-appearance.png) +- **ダーク**: アプリケーションはデフォルトのダークテーマを使用します。![](../assets/en/settings/dark-appearance.png) +- **継承する** (デフォルト): アプリケーションは次の優先レベル (例: OSユーザー設定) のテーマを継承します。 > デフォルトのテーマは CSS で管理可能です。 詳細については、[メディアクエリ](../FormEditor/createStylesheet.md#メディアクエリ) を参照してください。 メインアプリケーションスキームはデフォルトでフォームに適用されます。 その一方で、それを以下の方法で上書きすることもできます: - - by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; - - 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 +- by the [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) command at the working session level; +- 各フォームレベル (最優先レベル) では、[カラースキーム](../FormEditor/propertiesForm.html#カラースキーム) プロパティを使用できます。 **注記**: 印刷時には、フォームは常に "ライト" スキームを使用します。 ## ショートカット @@ -70,9 +70,9 @@ title: インターフェースページ デフォルトのショートカットは以下のとおりです: - - 入力フォーム確定: **Enter** - - 入力フォームキャンセル: **Esc** - - サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) +- 入力フォーム確定: **Enter** +- 入力フォームキャンセル: **Esc** +- サブフォームに追加: **Ctrl+Shift+/** (Windows) または **Command+Shift+/** (macOS) 操作のショートカットを変更するには、対応する **編集** ボタンをクリックします。 以下のダイアログボックスが表示されます: 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 dee6d27d5cbc73..5f4c17e5e218a7 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 @@ -78,9 +78,9 @@ Webページキャッシュを有効化します。 [キャッシュ](../WebServ このモードでは、以下の追加の Web サーバー設定を設定することができます: - - [最大同時Webプロセス](#最大同時webプロセス) - - [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) - - [Use preemptive processes](#use-preemptive-processes) +- [最大同時Webプロセス](#最大同時webプロセス) +- [一時的なコンテキストを再利用する (リモートモード)](#一時的なコンテキストを再利用する) +- [Use preemptive processes](#use-preemptive-processes) #### 旧式セッション (シングルプロセスセッション) @@ -166,9 +166,9 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 ログフォーマットメニューでは、次のオプションを提供します。 - - **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 +- **ログファイルなし**: このオプションが選択されると、4D はリクエストのログファイルを作成しません。 - - **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 +- **CLF (Common Log Format)**: このオプションが選択されると、リクエストのログが CLFフォーマットで作成されます。 CLFフォーマットでは、それぞれのリクエストが行単位でファイル内に表示されます:\host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length\ 各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 - host: クライアントの IPアドレス (例: 192.100.100.10) - rfc931: 4Dによって作成されない情報。 常に - (マイナス記号) です。 @@ -177,23 +177,23 @@ CORSサービスで許可されたホストとメソッドの一覧。 [CORS設 > 日付と時間はサーバーのローカルタイム。 - - request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) - - state: サーバーの返答。 - - length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 +- request: クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) +- state: サーバーの返答。 +- length: 返されたデータ (HTTPヘッダー以外) のサイズまたは 0。 > **注:** パフォーマンス上の理由により、操作はメモリのバッファーに 1Kbのパケットで保存されてから、ディスクに書き込まれます。 5秒間リクエストが発生しなくても、操作はディスクに書き込まれます。 > state として取り得る値は以下の通り:
200: OK
204: No contents
302: Redirection
304: Not modified
400: Incorrect request
401: Authentication required
404: Not found
500: Internal error
CLFフォーマットはカスタマイズされません。 - - **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 +- **DLF (Combined Log Format)**: このオプションが選択されると、リクエストログが DLFフォーマットで作成されます。 DLFフォーマットは CLFフォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 - Referer: リクエストされたドキュメントを指しているページの URL を含みます。 - User-agent: リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 > DLFフォーマットはカスタマイズされません。 - - **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +- **ELF (Extended Log Format)**: このオプションが選択されると、リクエストログが ELFフォーマットで作成されます。 ELFフォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 - - **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 +- **WLF (WebStar Log Format)**: このオプションが選択されると、リクエストログが WLFフォーマットで作成されます。 WLFフォーマットは 4D WebSTAR サーバー用として特別に開発されました。 いくつかの追加フィールドを持つ以外、EFLフォーマットと似ています。 EFLフォーマットと同様、 カスタマイズされます。 **フィールドの設定**
ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると、選択されたフォーマットに対して利用可能なフィールドが表示されます。 ログに含む各フィールドを選択する必要があります。 ログに含む各フィールドを選択する必要があります。 @@ -233,8 +233,8 @@ ELF (Extended Log Format) または WLF (WebStar Log Format) を選択すると リクエストログの自動バックアップ設定を指定します。 最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 - - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 +- **バックアップしない**: 周期的なバックアップ機能が無効になっています。 +- **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 - **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 @@ -254,9 +254,9 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは 4D を Webサービスサーバーとして使用する (つまり、Webサービスの形でプロジェクトメソッドを公開する) ための設定をおこないます。 - - **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 - - **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 - - **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 +- **Webサービスリクエストを許可する**: このオプションを使用して Webサービスクライアントからのリクエストを受け付けるかどうかを設定します。 このオプションが選択されていない場合、4D は SOAPリクエストを拒否し、メソッドが*WSDLを公開* 属性を設定されていても WSDL を生成しません。 このオプションを選択すると、4D はメソッドプロパティに基づき WSDLファイルを生成します。 +- **Webサービス名:** このエリアでは Webサービスの "包括的な名称" を変更できます。 この名前は、SOAPサーバーレベルでサービスを識別するために使用されます。 デフォルトで 4D は "A_WebService" を使用します。 +- **Webサービス名前空間**: このエリアは 4D が公開する Webサービスの名前空間を設定するのに使用します。 インターネットに公開される各 Webサービスはユニークでなければなりません。 Webサービス名をユニークにするために XML名前空間が使用されます。 名前空間は任意の文字列で、XMLタグをユニークに識別するために使用されます。 典型的には、名前空間は会社の URL で始まります (http://mycompany.com/mynamespace)。 指定された文字列がユニークである限り、指定した URL に何か付け加える必要はありません。 デフォルトで 4D は以下の名前空間を使用します: http://www.4d.com/namespace/default。 > タグ名に関する XML標準に準拠するために、使用する文字には空白が含まれていてはなりません。また数字から始まっていてはなりません。 非互換性を避けるために、アクセント文字や日本語などの拡張文字は使用しないことを推奨します。 @@ -264,7 +264,7 @@ For more information about the support of Web Services in 4D, refer to the [Publ このエリアでは Webサービスクライアントとして 4D を使用する (つまり、ネットワーク上に公開されているサービスにサブスクライブする) ための設定をおこないます。 - - **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 +- **ウィザードメソッドプリフィクス**: このエリアでは、Webサービスウィザードを使用して 4D が自動生成するプロキシメソッドの接頭辞を設定します。 プロキシプロジェクトメソッドは 4Dアプリケーションと Webサービスサーバーとのリンクを形成します。 デフォルトで "proxy_" が使用されます。 ## Web機能 @@ -298,9 +298,9 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co このボタンは次のアップグレードシーケンスをトリガーします: - - **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 - - `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 - - プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 +- **読み込み/書き出し** メニューで設定されている REST API ユーザーグループが削除されます。 +- `On REST Authentication` データベースメソッドが削除されます (システムのゴミ箱に移動されます)。 +- プロジェクトの [Sourcesフォルダー](../Project/architecture.md#sources) に ["roles.jsonファイル"](../ORDA/privileges.md#rolesjson-ファイル) が存在しない場合、`forceLogin` 属性が `True` に設定された状態でデフォルトのファイルが作成されます。 このアップグレードをおこなった後は、プロジェクトを再起動することを忘れないでください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém 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 fa555959894d8e..6ea1fd129e4c34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index ca94ba2f4d4146..e6033ed940d735 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md index 7e1cf1df45e40b..9122d4ff37673f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: - - a periodicidade das cópias de segurança automáticas - - os arquivos a incluir em cada backup - - as funcionalidades avançadas que permitem executar tarefas automáticas +- a periodicidade das cópias de segurança automáticas +- os arquivos a incluir em cada backup +- as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. +- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md index 4b80f44d529a0b..58ac0e31a2c1ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index f5d90dd86392b9..1138d8154a484c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index d96e75a9aee559..5562a804e07ab3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: - - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). - - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). - - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). +- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). +- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). +- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index 67357d2f8733bf..7e1d6622e178ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 6399969341d035..2a241e00bb28bf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -207,20 +207,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. - - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). - - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). - - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. - - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. - - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. - - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. - - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. - - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. - - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. +- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. +- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). +- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). +- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. +- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. +- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. +- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. +- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. +- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. +- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -249,8 +249,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. - - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. +- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. +- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -279,9 +279,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. - - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. - - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. +- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. +- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. +- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -289,25 +289,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). - - When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). - - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). - - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. - - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. - - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. - - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. - - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. - - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). - - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). - - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. - - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. - - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. +- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). +- When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). +- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). +- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. +- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. +- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. +- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. +- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. +- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). +- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). +- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. +- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. +- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento - - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). - - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). +- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). +- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -315,21 +315,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. - - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. +- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Mudanças de comportamento - - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). - - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. +- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). +- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -337,24 +337,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. - - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). - - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. - - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). - - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) - - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. - - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. +- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. +- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). +- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. +- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). +- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) +- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. +- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento - - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. - - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). +- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. +- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -362,21 +362,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) - - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. +- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) +- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento - - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). - - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. +- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). +- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -390,15 +390,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques - - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. - - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. +- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. +- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento - - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. +- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index ae9c77ede12e60..2d483010e8a237 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -150,8 +150,8 @@ If this function [throws](../commands/throw) an error, it will not stop the unde This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -186,7 +186,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -212,7 +212,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -234,7 +234,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). 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 2d6736f653cf78..6308d745616b51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index f46faa0b61b065..b6c05fefa599fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -39,8 +39,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: - - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. - - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). +- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. +- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -48,14 +48,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: - - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), - - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). +- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), +- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: - - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, - - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** - - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. +- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, +- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** +- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -234,7 +234,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: - - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,9 +284,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". +- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -321,12 +321,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -364,11 +364,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. - - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. +- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md index c1b08acda98594..6fc3020dad7369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md index 61aa1e6d319a20..d21437b56a1f5a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$method.md @@ -193,9 +193,9 @@ Se surgir um problema ao adicionar ou modificar uma entidade, ser-lhe-á enviado :::note - - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). - - **Booleanos** son true o false. - - Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). +- **Booleanos** son true o false. +- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md index 2a4dbdad883a65..f552e7d35b35e5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index cb4d9c72d21047..a07d153673411c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 9a2b43bb33fca4..c7087a7d78fa5c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -11,9 +11,9 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - handle an authentication via oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- handle an authentication via oAuth 2.0. ## Requisitos @@ -73,9 +73,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -95,8 +95,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: - - the first matching pattern is executed - - the following patterns are not executed even if they match the URL +- the first matching pattern is executed +- the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -128,17 +128,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. - - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). - - "method": class function belonging to the class. +- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). +- "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -219,11 +219,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: - - *handle function* in the *GeneralHandling* class - - *manageAccount* na classe *UsersHandling* - - *handleInvoices* na classe \*FinancialHandling - - *handleDocs* na classe *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* +- *handle function* in the *GeneralHandling* class +- *manageAccount* na classe *UsersHandling* +- *handleInvoices* na classe \*FinancialHandling +- *handleDocs* na classe *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index cd92034eb88767..1463e612fb2c56 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -73,15 +73,15 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 13d80f1e562734..146662cec4481d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - acionar o código 4D configurando eventos - - e muito mais. +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- acionar o código 4D configurando eventos +- e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D - - Desenvolvimento: 4D v20 R2 ou superior - - Desenvolvimento: 4D Server v20 R2 ou superior - - Qodly Studio only works with 4D projects (binary databases are not supported). - - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). - - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). +- Desenvolvimento: 4D v20 R2 ou superior +- Desenvolvimento: 4D Server v20 R2 ou superior +- Qodly Studio only works with 4D projects (binary databases are not supported). +- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). +- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: - - ao nível da aplicação 4D - - a nível do projeto +- ao nível da aplicação 4D +- a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: - - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). - - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. +- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). +- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -145,24 +145,24 @@ Note that in 4D single-user, if you open some 4D code with the Qodly Studio code The following commands and classes are dedicated to the server-side management of Qodly pages: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. - - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. - - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. - - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. +- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. +- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. +- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: - - Você pode chamar seus métodos a partir de funções classe. - - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. +- Você pode chamar seus métodos a partir de funções classe. +- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty - - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty +- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -178,8 +178,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. - - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. - - O [servidor Web 4D](webServer.md) deve estar em execução. +- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. +- O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -309,9 +309,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: - - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, - - a licença associada ao 4D é liberada, - - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. +- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, +- a licença associada ao 4D é liberada, +- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -363,7 +363,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. - - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. +- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index c546ee102e2cd9..e6222856a3d812 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - O caminho não deve começar nem terminar com uma barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - com 4D em modo remoto, na pasta de recursos locais. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta - - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta +- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). - - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). +- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md index 9f57b41f63b0af..ae118bb3c8a11f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandThe **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md index f92975731a6d8c..5a7b84e56d29c0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md index 08307bb537735e..4fd62d255b810f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md index e14ad720abe5ce..a8de63c5c093d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md index 50a676171a8a74..b7f34d3e4b2d0c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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 59cf606f92fedb..0367e339700974 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md index f145ad3f0030a5..c63253d649fce3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md index 7e1cf1df45e40b..9122d4ff37673f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: - - a periodicidade das cópias de segurança automáticas - - os arquivos a incluir em cada backup - - as funcionalidades avançadas que permitem executar tarefas automáticas +- a periodicidade das cópias de segurança automáticas +- os arquivos a incluir em cada backup +- as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. +- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 704ebdc0162f49..556bb6af1296b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index f98382730ba66b..67a39c8d81d25d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md index d96e75a9aee559..5562a804e07ab3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/input_overview.md @@ -50,6 +50,6 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a Também pode representar expressões de campo e variáveis nos seus formulários utilizando objectos alternativos, mais particularmente: - - Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). - - Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). - - Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). +- Você pode exibir e inserir dados dos campos do banco de dados diretamente nas colunas das [List boxes do tipo de seleção](listbox_overview.md). +- Você pode representar um campo de lista ou variável diretamente em um formulário usando objetos [Popup Menus/Listas suspensas](dropdownList_Overview.md) e [Combo Boxes](comboBox_overview.md). +- Você pode representar uma expressão booleana como um [objeto de seleção](checkbox_overview.md) ou como um [botão de opção](radio_overview.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md index 08405ce2e879d5..03616bbe2c57c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -49,8 +49,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -74,9 +74,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. 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 bda81ac2c4baa2..4406f1744cd649 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 @@ -39,20 +39,20 @@ Leia [**O que há de novo no 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. - - Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). - - O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). - - New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. - - Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). - - Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. - - Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. - - Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). - - [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. - - Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. - - Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). - - Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. - - 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. - - [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. +- The [*MeCab* library](../settings/database.md#support-of-mecab-japanese-version) is now deprecated and will be removed in the next release. +- Suporte de [tokens de sessão](../WebServer/sessions.md#session-token-otp) manipulado com as novas funções [`Session.createOTP()`](../API/SessionClass.md#createotp) e [`Session.restore()`](../API/SessionClass.md#restore). +- O assistente de etiqueta agora usa o editor de fórmula para adicionar ou editar fórmulas na [área de design de etiqueta](../Desktop/labels.md#label-preview). +- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Os comandos e constantes obsoletos agora geram warnings específicos no [live checker e no compilador](../code-editor/write-class-method.md#warnings-and-errors). Você pode saber se um comando está obsoleto usando o comando [`Command name`](../commands/command-name.md). +- Novos comandos [WA SET CONTEXT](../commands/wa-set-context.md) e [WA Get context](../commands/wa-get-context.md) para controlar o conteúdo de [$4d](../FormObjects/webArea_overview.md#4d-object) em áreas da Web. +- Novo [parâmetro de banco de dados `RD`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para otimizar, por exemplo, a área de transferência compartilhada ao usar o protocolo remoto desktop com 4D. +- Os componentes interpretados agora podem ser [editados a partir do projeto host](../Extensions/develop-components.md#editing-components-from-the-host). +- [Licencias](../Admin/licenses.md) são agora atualizadas automaticamente na inicialização. +- Nova [4D AIKit component](../aikit/overview.md) permitindo a interação com APIs de terceiros. +- Os seguintes comandos de callbacks de comando VP agora esperam que todas as funções personalizadas 4D completem seus cálculos: [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md), [VP IMPORT FORM BLOB](../ViewPro/commands/vp-import-from-blob.md), [VP IMPORT FROM OBJECT](../ViewPro/commands/vp-import-from-object.md) e [VP FLUSH COMMANDS](../ViewPro/commands/vp-flush-commands.md). +- Novos recursos [4D Netkit](https://developer.4d.com/4D-NetKit/) para gerenciar agendas do Google e do Microsoft 365; capacidade de usar o servidor web de hospedagem para autenticação OAuth 2.0. +- 4D Write Pro Interface: New [integrated AI](../WritePro/writeprointerface.md#integrated-ai) to interact with **chatGTP** from your 4D Write Pro documents. +- [**Lista de bugs corrigidos**](https://bugs.4d.fr/fixedbugslist?version=20_R9): lista de todos os bugs que foram corrigidos no 4D 20 R9. ## 4D 20 R8 @@ -81,8 +81,8 @@ Leia [**O que há de novo no 4D 20 R8**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. - - Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. +- After a log file modification using [`SELECT LOG FILE`](../commands/select-log-file.md) or the [Backup settings](../Backup/settings.md#log-management), the [`New log file`](../commands/new-log-file.md) command now validates the change, without waiting for a backup. The error -4447 (backup required) is no longer raised. +- Devido à sua [nova arquitetura](../Desktop/building.md#build-component), os componentes criados com o 4D 20 R8 e superior não podem ser instalados em versões anteriores do 4D. ## 4D 20 R7 @@ -111,9 +111,9 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- #### Mudanças de comportamento - - As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. - - The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. - - A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. +- As documentações para [Linguagem 4D](../commands/command-index.md) e [Linguagem 4D Write Pro](../WritePro/commands/command-index.md) estão agora totalmente disponíveis em developer.4d.com. Saiba mais sobre todos os novos recursos e alterações referentes a essas documentações nesta nota de versão. +- The [`File`](../commands/file.md) command (as well as [`4D.File.new()`](../API/FileClass.md#4dfilenew)) is stricter when it comes to checking the syntax of the *path* supplied as a parameter. +- A ação de [permission](../ORDA/privileges.md#permission-actions) **describe** foi removida das ações disponíveis. Acesso às urls [`/rest/$catalog`](../REST/$catalog.md) não é mais controlado. Session *describe* privileges are now ignored. ## 4D 20 R6 @@ -121,25 +121,25 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). - - Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). - - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). - - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. - - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. - - Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. - - Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. - - Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. - - Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). - - Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). - - Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. - - Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. - - New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. +- Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). +- Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). +- Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). +- Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. +- Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. +- Novo [arquivo 4DCEFParameters.json](../FormObjects/webArea_overview.md#4dcefparametersjson) para personalizar áreas web embutidas no 4D. +- Nova classe [HTTPAgent](../API/HTTPAgentClass.md) e nova propriedade [`agent`](../API/HTTPRequestClass.md#options-parameter) para a classe HTTPRequest. +- Novas funções [`enableState()`](../API/WebFormClass.md) e [`disableState()`](../API/WebFormClass.md) para monitorar os estados da página Qodly a partir do servidor. +- Nova [`$singleton` API](../REST/$singleton.md) para chamar funções singleton expostas do REST e novos [privilégios associados](../ORDA/privileges.md). +- Um [novo botão de configurações](../settings/web.md#activate-rest-authentication-through-dsauthentify-function) ajuda você a atualizar seu projeto para usar o modo REST de "login forçado" (o método de banco de dados `On REST Authentication` agora está obsoleto). +- Uma [nova guia de parametros](../Project/compiler.md#warnings) ajuda a definir a geração de avisos globalmente. +- Several commands, mainly from the "4D Environment" theme, are now thread-safe, as well as some selectors of the [`SET DATABASE PARAMETER`](../commands-legacy/set-database-parameter.md)/[`Get database parameter`](../commands-legacy/get-database-parameter.md) commands. +- New [4D-QPDF component](https://github.com/4d/4D-QPDF) that provides the `PDF Get attachments` command to extract attachments from a PDF/A3 document. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R6): lista de todos os bugs corrigidos em 4D 20 R6. #### Mudanças de comportamento - - Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). - - A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). +- Suporte para perseguir a rolagem nos formulários: subformas pai agora rolam automaticamente quando objetos roláveis incorporados ([verticalmente](../FormObjects/properties_Appearance.md#vertical-scroll-bar) ou [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) atingiram os limites e o usuário continua rolando usando o mouse ou rastreador (overscrolling). +- A API REST [`$catalog`](../REST/$catalog.md) agora retorna singletons (se houver). ## 4D 20 R5 @@ -147,21 +147,21 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - - Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. - - Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). - - QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). - - 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 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. +- Novo [Gerenciador de componentes](../Project/components.md) para lidar com componentes por meio de um arquivo `dependencies.json`. +- Suporte a estruturas de tratamento de erros [`Try...Catch...End try`](../Concepts/error-handling.md#trycatchend-try). +- QUIC network layer now supports [broadcasting](../Desktop/clientServer.md#opening-a-remote-project), [SSO](https://doc.4d.com/4Dv20R5/4D/20-R5/Single-Sign-On-SSO-on-Windows.300-6932709.en.html), and [IPv6](https://doc.4d.com/4Dv20R5/4D/20-R5/IP-Settings.300-6932707.en.html). +- 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 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. #### Mudanças de comportamento - - Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). - - Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. +- Os plug-ins *4D Internet Commands* e *4D for OCI* não estão mais incluídos nos instaladores do 4D. Para obter esses plug-ins, você precisa se conectar ao [**Portal de descarrega de produtos 4D**](https://product-download.4d.com/). +- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) agora são salvas em um arquivo separado chamado `catalog_editor.json` armazenado na pasta [`Sources`](../Project/architecture.md#sources) do projeto. ## 4D 20 R4 @@ -169,24 +169,24 @@ Leia [**O que há de novo no 4D v20 R4**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. - - As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). - - Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). - - Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. - - Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). - - Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) - - Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. - - Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). - - Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). - - Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. +- Suporte do [formato de criptografia `ECDSA`](../Admin/tls.md#encryption) para os certificados TLS. +- As conexões TLS cliente/servidor e servidor SQL agora são [configuradas dinamicamente](../Admin/tls.md#enabling-tls-with-the-other-servers) (não são necessários arquivos de certificado). +- Direct HTML format for [structure definition exports](https://doc.4d.com/4Dv20R4/4D/20-R4/Exporting-and-importing-structure-definitions.300-6654851.en.html). +- Novo [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) que aprimora o controle de código durante a digitação de código, a verificação de sintaxe e as etapas de compilação para evitar erros de execução. +- Os parâmetros de métodos declarados nos protótipos `#DECLARE` [não são mais necessários nos métodos "Compiler_"](../Concepts/parameters.md). +- Suporte de [formatos personalizados de data e hora](../Project/date-time-formats.md) +- Nova palavra-chave [`Try(expression)`](../Concepts/error-handling.md#tryexpression) para tratar casos de erro simples. +- Novo comando [`HTTP Parse message`](../commands/http-parse-message.md). +- Nova opção de compatibilidade [Impressão sem bloqueio](../settings/compatibility.md). +- Nuevo [modo de edición](../Admin/dataExplorer.md#editing-data) en el Explorador de datos. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R4): lista de todos os bugs corrigidos em 4D 20 R4. #### Mudanças de comportamento - - Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. - - La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). - - Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. - - Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). +- Usando uma sintaxe legada para declarar parâmetros (por exemplo, `C_TEXT($1)` ou `var $1 : Text`) está agora obsoleto e gera avisos na digitação de código, verificação de sintaxe e etapas de compilação. +- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver [esta entrada de blog](https://blog.4d.com/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/)). +- Na atualização da [biblioteca OpenSSL](#library-table), o nível de segurança SSL/TLS padrão foi alterado de 1 para 2. Chaves RSA, DSA e DH de 1024 bits ou mais e menos de 2048 bits, assim como chaves ECC de 160 bits ou mais e menos de 224 bits, agora não são mais permitidas. Por padrão, a compressão TLS já estava desativada nas versões anteriores do OpenSSL. No nível de segurança 2, ele não pode ser habilitado. +- Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then **False**) and that `Open datastore` encrypts your connection by passing the "tls" option to **True** in *connectionInfo*. In order to allow password verification when the [4D user directory uses the bcrypt algorithm](https://blog.4d.com/bcrypt-support-for-passwords/), the "password" value in the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command is now sent in clear form by default. Em casos específicos, uma nova opção "passwordAlgorithm" também pode ser usada para fins de compatibilidade (consulte o comando [`Open datastore`](../commands/open-datastore.md)). ## 4D 20 R3 @@ -194,21 +194,21 @@ Leia [**O que há de novo no 4D v20 R3**](https://blog.4d.com/en-whats-new-in-4d #### Destaques - - Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). - - Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). - - Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). - - [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). - - Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). - - Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). - - As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) - - Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) - - 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. +- Nova função [`collection.multiSort`](../API/CollectionClass.md#multisort). +- Support of *context* parameter in [`Formula from string`](../commands/formula-from-string.md). +- Support of `headers` property in *connectionHandler* parameter of [4D.WebSocket.new](../API/WebSocketClass.md#4dwebsocketnew). +- [Marcador de modificação global](../ORDA/global-stamp.md) para facilitar a implementação de módulos de sincronização de dados. Novas funções: [`ds.getGlobalStamp`](../API/DataStoreClass.md#getglobalstamp) e [`ds.setGlobalStamp`](../API/DataStoreClass.md#setglobalstamp). +- Atribuindo arquivo de referências a atributos de imagem/blob é [suportado no ORDA](../ORDA/entities.md#assigning-files-to-picture-or-blob-attributes). +- Support for [initializing the variable's value and data type in the declaration line](../Concepts/variables/#initializing-variables-in-the-declaration-line). +- As configurações de arquivos de log agora são [salvas com o arquivo de dados atual](../Backup/settings.md#log-management) +- Nova sintaxe para [declarar parâmetros variádicos](../Concepts/parameters.md#declaring-variadic-parameters) +- 4D View Pro: soporte de la [importación](../ViewPro/commands/vp-import-from-blob) y de la [exportación](../ViewPro/commands/vp-export-to-blob) de documentos 4D View Pro al formato Blob. +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R3): lista de todos os bugs corrigidos em 4D 20 R3. #### Mudanças de comportamento - - Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). - - 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. +- Alguns erros foram capturados pelo seu [método de tratamento de erros](../Concepts/error-handling.md) somente no modo interpretado. A fix has been done, so that the following errors will now be caught also in compiled mode: *Indice out of range*, *Type incompatible*, and *Dereferencing a Null pointer*. Entretanto, para esses erros nos processadores Intel, o procedimento ainda é interrompido como antes, enquanto nos processadores Apple Silicon o procedimento só é interrompido se você chamar o comando [`ABORT`](../commands-legacy/abort.md). +- 4D não inclui mais um interpretador PHP interno. You need to [set up and run your own PHP interpreter](https://blog.4d.com/deprecation-of-php-commands-and-removal-of-4d-built-in-php-interpreter) to use PHP commands. ## 4D 20 R2 @@ -222,15 +222,15 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a #### Destaques - - Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. - - Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. - - 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. - - Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). - - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. +- Nova classe [WebSocket](../API/WebSocketClass.md) para criar e gerenciar conexões WebSocket do cliente a partir de 4D. +- Nova [configuração de interface](../settings/client-server.md#network-layer) para a camada de rede QUIC. +- 4D View Pro: soporte del formato de archivo **.sjs** para [la importación](../ViewPro/commands/vp-import-document) y la [exportación](../ViewPro/commands/vp-export-document) de documentos. +- Interface 4D Write Pro: novo [Table Wizard](../WritePro/writeprointerface.md). +- [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R2): lista de todos os bugs corrigidos em 4D 20 R2. #### Mudanças de comportamento - - **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. +- **Aviso**: o valor inicial dos objetos [`offset`](../API/FileHandleClass.md#offset) de [4D.FileHandle](../API/FileHandleClass.md) era configurado incorretamente para 1 ao invés de 0. Foi feita uma correção no 4D a partir das versões **20.1 HF1** e **20 R2** e o valor agora é 0. ## 4D 20.x LTS diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ceb561ae20b10d..89f7200ce40369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. - - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. +- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -107,8 +107,8 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t This event is also triggered: - - when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, - - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -143,7 +143,7 @@ Function get sameDay() : Boolean Even though they are very similar, these functions cannot be associated with identical queries because they do not compare the same types of values. The first compares attributes to a given value, while the second compares attributes to each other. - - For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: +- For the *onGoing* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function is simple to write and uses indexed attributes: ```4d Function query onGoing($event : Object) : Object @@ -169,7 +169,7 @@ Function query onGoing($event : Object) : Object return {query: $myQuery; parameters: $parameters} ``` - - For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: +- For the *sameDay* attribute, the [`query`](./ordaClasses.md#function-query-attributename) function requires an ORDA query based on formulas and will be sequential: ```4d Function query sameDay($event : Object) : Text @@ -191,7 +191,7 @@ Function query sameDay($event : Object) : Text ``` - - Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: +- Using a **scalar** *sameDay* attribute updated when other attributes are "touched" will save time: ```4d //BookingEntity class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index f89c79f64e5a21..29f41eb921bd1a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -120,9 +120,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -175,11 +175,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 3a277756e5fa88..c78e4286cff83c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -13,8 +13,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -52,8 +52,8 @@ A arquitetura da pasta "Contents" é recomendada para componentes, se você dese Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Server**. Em outros ambientes, os componentes são geridos de forma diferente: - - em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. - - em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). +- em [4D no modo remoto](../Desktop/clientServer.md), componentes são carregados pelo servidor e enviados para o aplicativo remoto. +- em aplicações mescladas, componentes são [incluídos na etapa de compilação](../Desktop/building.md#plugins--components-page). ::: @@ -61,14 +61,14 @@ Esta página descreve como trabalhar com componentes nos ambientes **4D** e **4D Para carregar um componente no seu projeto 4D, você pode: - - copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), - - ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). +- copie os arquivos de componentes na pasta [**Components** do seu projeto](architecture.md#components) (as pastas de pacotes de componentes interpretados devem ser sufixadas com ".4dbase", veja acima), +- ou, declarar o componente nas **dependências**. fil\*\* arquivo de seu projeto; isto é feito automaticamente para arquivos locais quando você [**adicionar uma dependência usando a interface do Gerenciador de Dependência**](#adding-a-github-dependency). Os componentes declarados no arquivo **dependencies.json** podem ser armazenados em locais diferentes: - - no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, - - em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** - - em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. +- no mesmo nível da pasta do pacote do seu projeto 4D: esse é o local padrão, +- em qualquer lugar de sua máquina: o caminho do componente deve ser declarado no arquivo **environment4d.json** +- em um repositório GitHub: o caminho do componente pode ser declarado no arquivo **dependencies.json** ou no arquivo **environment4d.json**, ou em ambos os arquivos. Se o mesmo componente for instalado em locais diferentes, uma [ordem de prioridade](#prioridade) é aplicada. @@ -84,8 +84,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -93,8 +93,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -202,9 +202,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers ::: - - **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : +- **Etiquetas** são textos que fazem referência exclusiva a uma versão. Nos arquivos [**dependencies.json**](#dependenciesjson) e [**environment4d.json**](#environment4djson), você pode indicar a tag de versão que deseja usar em seu projeto. Por exemplo : ```json { @@ -260,7 +260,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -277,17 +277,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -297,9 +297,9 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". +- **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". :::note @@ -325,8 +325,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -334,12 +334,12 @@ Os componentes GitHub referenciados são baixados em uma pasta de cache local e When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Isto inclui: - - **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file - - **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file +- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. - - **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note @@ -377,11 +377,11 @@ Por padrão, todas as dependências identificadas pelo gerenciador de dependênc ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. - - **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - - **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. - - **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... - - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. +- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. +- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Ativo**: dependências carregadas e podem ser usadas no projeto. Isso inclui dependências *overloading*, que são de fato carregadas. As dependências *sobrecarregadas* são listadas no painel **Conflitos**, juntamente com todas as dependências conflitantes. +- **Inativo**: dependências que não estão carregadas no projeto e não estão disponíveis. Há muitos motivos possíveis para esse status: arquivos ausentes, incompatibilidade de versão... +- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). As dependências sobrecarregadas também são exibidas para que você possa verificar a origem do conflito e tomar as medidas adequadas. ### Secondary dependencies @@ -399,16 +399,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -442,8 +442,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -463,8 +463,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -504,11 +504,11 @@ Você pode definir a opção [tag ou versão](#tags-and-versions) para uma depen ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) - - **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). - - **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. - - **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. - - **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. - - **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). +- **Latest**: Selecionado por padrão e permite baixar a versão marcada como a mais recente (estável). +- **Até a próxima versão major**: defina um [intervalo de versão semântica](#tags-and-versions) para restringir as atualizações para a próxima versão principal. +- **Até a próxima versão minor**: da mesma forma, restringe as atualizações para a próxima versão minor. +- **Versão exata (etiqueta)**: selecione ou insira manualmente uma [etiqueta específica](#tags-and-versions) na lista disponível. +- **Siga a versão 4D**: Faça o download da versão mais recente do componente que é compatível com a versão 4D em execução. Você pode usar essa regra de dependência somente se as tags de liberação do componente seguirem a [convenção de nomenclatura] apropriada (#naming-conventions-for-4d-version-tags). A versão atual da dependência do GitHub é exibida no lado direito do item de dependência: @@ -524,8 +524,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -541,11 +541,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -563,11 +563,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -575,8 +575,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -590,13 +590,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 36d3ee0320e863..f3a85b723ead42 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 2a4dbdad883a65..f552e7d35b35e5 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md index 9c6345ce096f49..6bcadedbf99395 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ViewPro/getting-started.md @@ -37,20 +37,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -128,8 +128,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -146,10 +146,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 509e11e0a6cb9f..1de6c9b89e4d15 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -11,16 +11,16 @@ When a custom HTTP request handler intercepts a request, it is processed directl Custom HTTP request handlers meet various needs, including: - - using a given URL as a resource provider or a file-uploading box (to download or upload various files), - - redirecting on specific pages according to a context (user authenticated, privileges granted...), - - handle an authentication via oAuth 2.0. +- using a given URL as a resource provider or a file-uploading box (to download or upload various files), +- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- handle an authentication via oAuth 2.0. ## Requisitos Custom HTTP Request handlers are supported: - - quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, - - with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). +- quando as [sessões escalonáveis](./sessions.md#enabling-web-sessions) estão ativadas, +- with the main Web Server only (HTTP Request handlers that may have been defined in [Web Servers of components](../WebServer/webServerObject.md) are ignored). :::warning @@ -62,9 +62,9 @@ You must restart the Web server so that modifications made in this file are take A handler is defined by: - - a listened URL pattern - - a function and its class where the code is implemented to handle the listened URL pattern - - the verbs with which the URL can be called to trigger the handler +- a listened URL pattern +- a function and its class where the code is implemented to handle the listened URL pattern +- the verbs with which the URL can be called to trigger the handler The handler identifier is the couple [pattern + a verb among the verbs list]. @@ -84,8 +84,8 @@ Os padrões de URL podem ser fornecidos como **prefixos** ou usando **expressõe URL patterns are triggered in the given order: - - the first matching pattern is executed - - the following patterns are not executed even if they match the URL +- the first matching pattern is executed +- the following patterns are not executed even if they match the URL As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. @@ -117,17 +117,17 @@ As a consequence, you need to apply a accurate strategy when writing your handle URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled: - - `/4DACTION` - - `/rest` - - `/$lib/renderer` - - `/$shared` +- `/4DACTION` +- `/rest` +- `/$lib/renderer` +- `/$shared` ### Classe e método You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. - - "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). - - "method": class function belonging to the class. +- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Deve ser uma classe [**compartilhada**](../Concepts/classes.md#shared-singleton) e [**singleton**](../Concepts/classes.md#singleton-classes). +- "method": class function belonging to the class. [Veja abaixo](#request-handler-code) para informações sobre o código do manipulador de pedidos. @@ -208,11 +208,11 @@ Here is a detailed example of a HTTPHandlers.json file: In this example, you must implement the following functions: - - *handle function* in the *GeneralHandling* class - - *manageAccount* na classe *UsersHandling* - - *handleInvoices* na classe \*FinancialHandling - - *handleDocs* na classe *DocsHandling* - - *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* +- *handle function* in the *GeneralHandling* class +- *manageAccount* na classe *UsersHandling* +- *handleInvoices* na classe \*FinancialHandling +- *handleDocs* na classe *DocsHandling* +- *handleTheInvoice* / *handleDetails* / *handleInvoices* na clase *InvoicesHandling* Examples of URLs triggering the handlers: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 562e616a835a1e..772b825b9b04c1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -41,15 +41,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST Para cada um desses métodos e partes de código, o compilador irá verificar se as regras de segurança de threads são respeitadas, e retornará erros em caso de problemas. Para más información sobre las reglas hilo seguro, consulte el párrafo *Escribir un método hilo seguro* en el capítulo *Procesos* del manual de [Lenguaje 4D](https://doc.4d.com). @@ -61,8 +61,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). @@ -72,16 +72,16 @@ Obviamente, o código executado por esses métodos também deve ser hilo seguro. As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo: - - *4daction/* (el método proyecto llamado también debe ser hilo seguro) - - *4dcgi/* (los métodos base llamados también deben ser hilo seguro) - - *4dwebtest/* - - *4dblank/* - - *4dstats/* - - *4dhtmlstats/* - - *4dcacheclear/* - - *rest/* - - *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) - - *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) +- *4daction/* (el método proyecto llamado también debe ser hilo seguro) +- *4dcgi/* (los métodos base llamados también deben ser hilo seguro) +- *4dwebtest/* +- *4dblank/* +- *4dstats/* +- *4dhtmlstats/* +- *4dcacheclear/* +- *rest/* +- *4dimgfield/* (generado por `PROCESS 4D TAGS` para la petición web en los campos imagen) +- *4dimg/* (generado por `PROCESS 4D TAGS` para la petición web en las variables imagen) ### Ícone de processo web preemptivo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 1591d97b78a034..d1108f678dd9b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -11,10 +11,10 @@ Qodly Studio can also be used in the [**Qodly Cloud platform**](https://qodly.co Qodly Studio proposes a full-featured web UI, allowing you to: - - create Qodly pages by placing components on a canvas - - map components to Qodly Sources - - acionar o código 4D configurando eventos - - e muito mais. +- create Qodly pages by placing components on a canvas +- map components to Qodly Sources +- acionar o código 4D configurando eventos +- e muito mais. ## Configuração @@ -24,19 +24,19 @@ Qodly Studio proposes a full-featured web UI, allowing you to: Qodly Studio suporta os seguintes navegadores Web: - - Chrome - - Edge - - FireFox +- Chrome +- Edge +- FireFox A resolução recomendada é 1920x1080. #### Aplicação 4D - - Desenvolvimento: 4D v20 R2 ou superior - - Desenvolvimento: 4D Server v20 R2 ou superior - - Qodly Studio only works with 4D projects (binary databases are not supported). - - Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). - - O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). +- Desenvolvimento: 4D v20 R2 ou superior +- Desenvolvimento: 4D Server v20 R2 ou superior +- Qodly Studio only works with 4D projects (binary databases are not supported). +- Web sessions (*aka* Scalable sessions) must [be enabled](sessions.md#enabling-web-sessions). +- O código 4D chamado pelos formulários Qodly deve ser [hilo seguro](preemptiveWeb.md). ### Habilitando o acesso a Qodly Studio @@ -46,8 +46,8 @@ Qodly Studio é servido pelo [servidor web WebAdmin](../Admin/webAdmin.md) e exi Para permitir o acesso ao Qodly Studio, você deve permiti-lo explicitamente em dois níveis: - - ao nível da aplicação 4D - - a nível do projeto +- ao nível da aplicação 4D +- a nível do projeto If one of the two levels (or both) are not enabled, access to Qodly Studio is denied (a 403 page is returned). @@ -79,8 +79,8 @@ Authentication on the WebAdmin web server is granted using an access key. Para m In accordance with the management of 4D projects, only the following usages are supported: - - o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). - - implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. +- o desenvolvimento com Qodly Studio deve ser feito usando **4D** (monousuário). +- implantação de aplicações 4D com páginas Qodly deve ser feita usando **4D Server**. :::warning @@ -146,24 +146,24 @@ There is no direct compatibility between apps implemented with 4D and apps imple The following commands and classes are dedicated to the server-side management of Qodly pages: - - Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. - - comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. - - clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. - - Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. +- Comando [`Web Form`](../API/WebFormClass.md#web-form): retorna a página Qodly como um objeto. +- comando [`Web Event`](../API/WebFormClass.md#web-event): retorna eventos acionados nos componentes da página Qodly. +- clase [`WebForm`](../API/WebFormClass.md): funções e propriedades para gerenciar a página Qodly renderizada. +- Classe [`WebFormItem`](../API/WebFormItemClass.md): funções e propriedades para gerenciar componentes de página Qodly. ### Uso de métodos projeto Recomendamos o uso de funções classe em vez de métodos projeto. Apenas as funções de classe podem ser chamadas a partir de componentes. No entanto, você ainda pode usar seus métodos projeto no Qodly Studio de duas maneiras: - - Você pode chamar seus métodos a partir de funções classe. - - Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. +- Você pode chamar seus métodos a partir de funções classe. +- Você pode diretamente [executar seus métodos](https://developer.qodly.com/docs/studio/coding#methods-and-classes) do Explorador Qodly. ### Uso fora de linha You can develop with Qodly Studio while your computer is not connected to the internet. Nesse caso, entretanto, os seguintes recursos não estão disponíveis: - - [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty - - Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). +- [Templates](https://developer.qodly.com/docs/studio/pageLoaders/templates): the Template library is empty +- Dicas da UI: elas não são exibidas quando você clica ![alt-text](../assets/en/WebServer/tips.png). ## Implantação @@ -179,8 +179,8 @@ See [this page](https://developer.qodly.com/docs/studio/rendering) for detailed Para ativar a renderização das páginas Qodly, as seguintes opções devem ser definidas. - - A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. - - O [servidor Web 4D](webServer.md) deve estar em execução. +- A opção **Propriedades** > **Web** > **Funcionalidades Web** > [**Expor como servidor REST**](../settings/web.md#expose-as-rest-server) deve ser ativada. +- O [servidor Web 4D](webServer.md) deve estar em execução. :::note @@ -310,9 +310,9 @@ Para fazer o logout do usuário, basta executar a ação padrão **Logout** na p Triggering the logout action from a web user session has the following effects: - - a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, - - a licença associada ao 4D é liberada, - - the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. +- a sessão usuário web atual perde seus privilégios, apenas as [requisições REST descritivas](../REST/authUsers.md#descriptive-rest-requests) são permitidas, +- a licença associada ao 4D é liberada, +- the `Session.storage` is kept until the web session inactivity timeout is reached (at least one hour). During this period after a logout, if the user logs in again, the same session is used and the `Session.storage` shared object is available with its current contents. ## Sobre o uso da licença para renderização @@ -364,7 +364,7 @@ For more information on the `SameSite` attribute, check out [this blog post](htt To avoid using more licenses than necessary, we recommend doing one of the following: - - Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). - - Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. - - Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. +- Run the renderer on another browser tab (by entering the rendered URL of your Qodly page: `IP:port/$lib/renderer/?w=QodlyPageName`). +- Assegure-se de que o Qodly Studio e seu banco de dados sejam acessados no mesmo esquema de URL. +- Use o valor `Lax` para o [cookie de sessão](webServerConfig.md#session-cookie-samesite) do servidor web do banco de dados do seu projeto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md index bfa6e7452d2fcd..15253435c6bf01 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -145,9 +145,9 @@ Por padrão, quando o servidor web é iniciado pela primeira vez, 4D cria uma p Você pode designar outra página inicial padrão inserindo seu nome de caminho. - - La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - O caminho não deve começar nem terminar com uma barra. +- La ruta es relativa a la [carpeta HTML raíz ](#root-folder),. +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- O caminho não deve começar nem terminar com uma barra. Por exemplo, se você quiser que a página inicial padrão seja "MyHome. tm", e está localizado na pasta "Web" (ela própria localizada na pasta raiz padrão HTML), use "Web/MyHome.htm". @@ -323,7 +323,7 @@ Valores possíveis: Cadeia de endereços IP. Ambos os formatos de string IPv6 (p Se o seu servidor 4D não parecer responder na porta definida, pode testar o endereço [::1] na máquina do servidor (equivalente a 127.0.0.1 para IPv6, adicionar [:portNum] para testar outro número de porta). Se 4D responder, é provável que outro aplicativo esteja usando a porta em IPv4. - - **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. +- **IPv4-mapped IPv6 addresses**
To standardize processing, 4D provides a standard hybrid representation of IPv4 addresses in IPv6. Esses endereços são escritos com um prefixo de 96 bits no formato IPv6, seguido de 32 bits escritos na notação ponto-decimal do IPv4. Por exemplo, ::ffff:192.168.2.34 representa o endereço IPv4 192.168.2.34. - **Indication of port numbers**
Since IPv6 notation uses colons (:), adding port numbers may lead to some confusion, for example: @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo @@ -516,15 +516,15 @@ Além disso, a pasta raiz do HTML define, no disco rígido do servidor da Web, o Por defecto, 4D define una carpeta raíz HTML llamada **WebFolder**. Se ela ainda não existir, a pasta raiz HTML será fisicamente criada no disco no momento em que o servidor Web for iniciado pela primeira vez. A pasta raiz é criada: - - con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). - - com 4D em modo remoto, na pasta de recursos locais. +- con 4D (local) y 4D Server, en el mismo nivel de la [carpeta del proyecto](Project/architecture.md#project-folder). +- com 4D em modo remoto, na pasta de recursos locais. Você pode designar outra pasta raiz HTML padrão inserindo seu caminho. - - La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). - - O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) - - Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta - - O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). +- La ruta es relativa a la [carpeta del proyecto](Project/architecture.md#project-folder) (4D local y 4D Server) o a la carpeta que contiene la aplicación 4D o el paquete de software (4D en modo remoto). +- O caminho é expresso com a sintaxe POSIX (pastas são separadas por uma barra ("/")) +- Para "subir" um nível na hierarquia de pastas, digite "..." (dois pontos) antes do nome da pasta +- O caminho não deve começar com uma barra (exceto se você quiser que a pasta raiz HTML seja a pasta remota Project ou 4D, mas que o acesso às pastas acima seja proibido; nesse caso, você pode passar "/" como a pasta raiz). Por exemplo, se você quiser que a pasta raiz HTML seja a subpasta "Web" na pasta "MyWebApp", digite "MyWebApp/Web". @@ -579,9 +579,9 @@ Valor del atributo `SameSite` de la cookie de sesión. Este atributo le permite Há três valores disponíveis: - - "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. - - "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). - - "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). +- "Estricto" (valor predeterminado del atributo `SameSite` para las cookies de sesión de 4D): las cookies sólo se enviarán en el contexto de primera parte, es decir, el contexto correspondiente al dominio del sitio y nunca a sitios web de terceros. +- "Laxos": Os cookies não são enviados em solicitações entre sites (por exemplo, para carregar imagens ou quadros em um site de terceiros), mas são enviados quando um usuário está navegando para o site de origem (ou seja, ele segue um link). +- "None": Cookies são enviados em todos os contextos, ou seja, nas respostas para solicitações de primeira e de cruzada de origem. Cuando se utiliza el valor "None", el atributo cookie `Secure` también debe ser definido (o la cookie será bloqueada). El valor del atributo `Secure` de la cookie de sesión se define automáticamente en "True" si la conexión es HTTPS (sea cual sea el valor del atributo `SameSite`). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md index 241cf8f08802d9..8279b68a3320eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md index 9932777fa589eb..06e4be9e27340c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index 7e4493042ef320..379594a459210d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md index e14ad720abe5ce..a8de63c5c093d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/database.md @@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica São oferecidos três opções de localização: - - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. - - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. - - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. +- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo. +- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos. +- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada. > This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)). @@ -66,19 +66,19 @@ São oferecidos três opções de localização: - Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto. - Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro. - - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. +- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema. Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma. > Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D. - - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. +- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas. Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`. Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês. - - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. +- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada. #### Compatibilidade do MeCab (versão japonesa) @@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ### Parâmetros da cache do banco de dados - - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. +- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D. - **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D. - **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\ @@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para ![](../assets/en/settings/memory-maximum-size.png) - - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). +- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta). O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md index 50a676171a8a74..b7f34d3e4b2d0c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/security.md @@ -11,7 +11,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa > Essas configurações não se aplicam às bases de dados do projeto abertas no modo de usuário único. - - **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. +- **Acceso Diseño y al Explorador de ejecución**: da al grupo especificado la capacidad de entrar al modo Diseño de la base y mostrar el Explorador de ejecución. Note que: @@ -25,11 +25,11 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - Se você associou uma senha ao usuário padrão, uma caixa de diálogo aparece quando o banco de dados está aberto e os usuários devem inserir uma senha. - If you haven't associated a password with the Default User, the User Identification dialog box will not appear.**Note:** You can "force" the display of the User Identification dialog box when the "Default User" mode is active, for instance in order to connect as Administrator or Designer. Para ello, presione la tecla **Mayús** mientras abre la base de datos o se conecta a ella. - - **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html +- **Mostrar lista de usuarios en la caja de diálogo Contraseña**: si se marca esta opción, los usuarios deben elegir su nombre en la lista de usuarios e introducir su contraseña en la caja de diálogo de identificación de usuario. Se essa opção não estiver marcada, os usuários deverão digitar o nome e a senha. Para obtener más información sobre las dos versiones de la caja de diálogo de contraseña, consulte la sección "Acceso a las bases protegidas" en [Presentación del control de acceso](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.en.html - **Ordenar la lista de los usuarios en orden alfabético** (sólo disponible si está marcada la opción anterior): cuando esta opción está seleccionada, la lista de los usuarios de la caja de diálogo de introducción de contraseña se ordena por orden alfabétic - - **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. +- **Los usuarios pueden cambiar su contraseña**: cuando esta opción está marcada, aparece un botón **Cambiar** en la caja de diálogo Identificación del usuario. This button lets the user access a dialog box that can be used to change their password (for more information about this dialog box, refer to the "Modification of password by user" in [Ensuring system maintenance](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.en.html)). Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. Para o fazer, basta desmarcar esta opção. ## Opções @@ -43,7 +43,7 @@ Esta página contém opções relacionadas ao acesso e à proteção de dados pa - **Autorizar las propiedades usuario**: debe marcar esta opción para poder mostrar cajas de diálogo separadas para las propiedades usuario. Cuando esta opción está marcada, hay disponibles hasta tres cuadros de diálogo: **Propiedades estructura**, **Propiedades usuario**, y **Propiedades usuario para archivo de datos**. Para mais informações, consulte [Parâmetros do usuário](../settings/overview.md#user-settings). - - **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. +- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands-legacy/on-host-database-event-database-method.md) facilitates the initialization and backup phases for 4D components. Por razões de segurança, você deve autorizar explicitamente a execução deste método em cada banco de dados de host. Para o efeito, é necessário marcar esta opção. Por padrão, não está marcada. Quando esta opção está seleccionada: 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 b13a314a936fc3..2d6ad4f28702f2 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 @@ -82,9 +82,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -164,7 +164,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -177,9 +177,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -193,16 +193,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -242,8 +242,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -263,9 +263,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -273,7 +273,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -307,9 +307,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md index ff6661f192e020..51b288575d7208 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/ClassClass.md @@ -160,8 +160,8 @@ Você pode passar um ou mais parâmetros *param* opcionais, que serão passados :::note Notas - - Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - - Se `.new()` for chamado em uma classe inexistente, será retornado um erro. +- Se `.new()` for chamado em uma [singleton class](../Concepts/classes.md#singleton-classes) que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. +- Se `.new()` for chamado em uma classe inexistente, será retornado um erro. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md index e7f4dff58d6d8f..d474fd0e038e34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/Document.md @@ -320,8 +320,8 @@ Essa propriedade é **somente leitura**. A propriedade `.original` retorna o elemento de destino para um alias, um atalho ou um arquivo de link simbólico. O elemento alvo pode ser: - - um objeto File - - um objeto folder +- um objeto File +- um objeto folder Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo. @@ -585,8 +585,8 @@ A função `.getText()` retorna o conte Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também: - - em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), - - ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. +- em *charSetName*, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"), +- ou em *charSetNum*, o MIBEnum ID (número) do nome de configuração padrão. > Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando `CONVERT FROM TEXT`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md index 6526a74cdccc72..e4c03a133f8be1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/OutgoingMessageClass.md @@ -63,10 +63,10 @@ Um objeto 4D.OutgoingMessage é um objeto [não compartilhável](../Concepts/sha A propriedade `.body` contém o corpo da mensagem enviada. Os seguintes tipos de dados são suportados na propriedade `.body`: - - text - - blob - - object - - image +- text +- blob +- object +- image A propriedade `.body` é de leitura e gravação. @@ -108,17 +108,17 @@ A função `.setBody()` defi Os seguintes tipos de dados são suportados no *corpo*: - - Text - - Blob - - Object - - Imagem +- Text +- Blob +- Object +- Imagem Quando essa função é usada, o cabeçalho do tipo de conteúdo é definido automaticamente dependendo do tipo *corpo*: - - Content-Type:text/plain se o corpo é um Texto - - Content-Type:application/octet-stream se o corpo é um Blob - - Content-Type:application/json se o corpo é um objeto - - Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem +- Content-Type:text/plain se o corpo é um Texto +- Content-Type:application/octet-stream se o corpo é um Blob +- Content-Type:application/json se o corpo é um objeto +- Conteúdo-Tipo:image/jpeg, imagem/gif... se o corpo for uma imagem Se *body* não for de um tipo de valor suportado, um erro é retornado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md index 293adb31fe2f7b..6e63bfc3fc3252 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SMTPTransporterClass.md @@ -100,8 +100,8 @@ A propriedade `.keepAlive` contém diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md index 4b46b5c6dcc890..72094b45cc78fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebFormClass.md @@ -55,8 +55,8 @@ A função `.disableState()` de Essa função não faz nada se: - - o *estado* não está habilitado no momento no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* não está habilitado no momento no formulário Web, +- o *estado* não existe para o formulário Web. Se você [enable](#enablestate) ou desativar vários estados na mesma função de usuário, todas as modificações são enviadas em simultâneo, para o cliente quando a função termina. @@ -80,8 +80,8 @@ A função `.enableState()` ativ Essa função não faz nada se: - - o *estado* já foi ativado no formulário Web, - - o *estado* não existe para o formulário Web. +- o *estado* já foi ativado no formulário Web, +- o *estado* não existe para o formulário Web. Se você ativar ou [desativar](#disablestate) vários estados dentro da mesma função de usuário, todas as modificações serão enviadas ao mesmo tempo, para o cliente quando a função terminar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md index f145ad3f0030a5..c63253d649fce3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketClass.md @@ -86,8 +86,8 @@ A função `4D.WebSocket.new()` cria e Em *url*, passe o URL ao qual o servidor WebSocket responderá. Podem ser utilizados os seguintes padrões de URL: - - `ws://host[:port]path[?query]` para ligações padrão - - `wss://host[:port]path[?query]` para conexões TLS seguras +- `ws://host[:port]path[?query]` para ligações padrão +- `wss://host[:port]path[?query]` para conexões TLS seguras Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um erro (que pode ser intersetado através de um método instalado com `ON ERR CALL`). @@ -95,8 +95,8 @@ Se a ligação não for possível, é devolvido um objeto `null` sendo gerado um Em *connectionHandler*, você pode passar um objeto que contém funções de callback a serem chamadas de acordo com eventos de conexão, bem como o tipo de dados e os cabeçalhos a serem tratados. - - As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. - - O WebSocket será válido enquanto o formulário ou o worker não for fechado. +- As chamadas de retorno são chamadas automaticamente no contexto do formulário ou do worker que inicia a ligação. +- O WebSocket será válido enquanto o formulário ou o worker não for fechado. | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -236,8 +236,8 @@ A função `.terminate()` fecha Em *code*, você pode passar um código de estado explicando porque a conexão está sendo fechada (consulte também [WebSocket Connection Close Code in the RFC6455](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5)): - - Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. - - Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. +- Se não for especificado, um código de fechamento da conexão será automaticamente definido como 1000 para um fechamento normal ou, caso contrário, como outro valor padrão no intervalo 1001-1015 que indique o motivo real pelo qual a conexão foi fechada. +- Se especificado, o valor desse parâmetro de código substitui a configuração automática. O valor deve ser um número inteiro. Ou 1000, ou um código personalizado no intervalo 3000-4999. Se você especificar um valor *code*, também deverá especificar um valor *reason*. Em *reason*, você pode passar uma frase descrevendo porque a conexão está sendo fechada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md index 50a87f6cc1943a..4fd51bb7b34faa 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketServerClass.md @@ -29,13 +29,13 @@ Consulte também [esta postagem no blog](https://blog.4d.com/new-built-in-websoc Para criar e manipular seu servidor WebSocket em 4D, é preciso usar duas classes embutidas em 4D: - - essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, - - a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. +- essa classe (`4D.WebSocketServer`) para gerenciar o próprio servidor, +- a classe [`4D.WebSocketConnection`](WebSocketConnectionClass.md) para gerir as ligações e as mensagens. Além disso, terá de criar duas classes de utilizador que conterão funções de retorno de chamada: - - uma classe de usuário para tratar as ligações ao servidor, - - uma classe de usuário para tratar as mensagens. +- uma classe de usuário para tratar as ligações ao servidor, +- uma classe de usuário para tratar as mensagens. Você deve [criar o servidor WebSocket](#4dwebsocketservernew) em um [worker](../Develop/processes.md#worker-processes) para manter a conexão ativa. @@ -387,8 +387,8 @@ Por padrão, se nenhum valor de *timeout* for definido, a função inicializa o Se um valor *timeout* for definido: - - quando o tempo de espera é alcançado, a força destrói o meio. - - se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. +- quando o tempo de espera é alcançado, a força destrói o meio. +- se *timeout* = 0, forçando a destruir o soquete sem fechar quadros ou trocar pacotes finos, e instantaneamente sem tempo de espera. 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 143ed134bd5e1b..10b9f28462322f 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 @@ -18,7 +18,7 @@ servidor web `WebAdmin` no se lanza. Precisa configurar o lançamento ao início Pode configurar o servidor web `WebAdmin` para que se lance ao início da aplicação 4D ou 4D Server (antes de que se carregue qualquer projeto). - - Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. +- Se utilizar uma aplicação 4D con interface, selecione a opção de menu **Arquivo > Administração web > Propriedades...**. ![alt-text](../assets/en/Admin/waMenu1.png) @@ -26,7 +26,7 @@ Selecione a opção **Iniciar WebAdmin ao iniciar** na caixa de diálogo de par ![alt-text](../assets/en/Admin/waSettings.png) - - Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: +- Se usar uma aplicação 4D que tenha ou não interface, pode habilitar o modo de inicio automático utilizando o argumento abaixo *Interface de linha de comandos*: ``` open ~/Desktop/4D.app --webadmin-auto-start true @@ -72,8 +72,8 @@ Quando esta opção for marcada, pode conectar ao servidor web `WebAdmin` atrav **Notas:** - - Conexões com HTTP outras que localhost nunca são aceitas. - - Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. +- Conexões com HTTP outras que localhost nunca são aceitas. +- Mesmo se esta opção for marcada, quando [Accept HTTPS](#accept-https) for marcado e a configuração TLS for válida, as conexões localhost vão usar HTTPS. #### Porta HTTP @@ -95,11 +95,11 @@ Rota da pasta onde o certificado TLS está localizado. Como padrão, a rota da p O estado ou formato do arquivo de registro da petição HTTP (HTTPDebugLog_*nn*.txt, armazenada na pasta "Logs" da aplicação -- *nn* é o número do arquivo). As opções abaixo estão disponíveis: - - **Desactivado** (por defecto) - - **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas - - **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) - - **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições - - **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas +- **Desactivado** (por defecto) +- **Com todas as partes do corpo** - habilitado com partes do cuerpo das petições e respostas +- **Sem as partes do corpo** - ativado sem partes do corpo (se indica o tamanho do corpo) +- **Com os corpos das petições** - ativado com as partes do corpo unicamente nas petições +- **Com a resposta corpos** - ativado com as partes do corpo unicamente nas respostas #### Chave de acesso @@ -147,9 +147,9 @@ Exemplo: ## Autenticação e sessão - - Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. +- Quando acessar uma página de gestão entrando uma URL e sem identificação prévia, uma autenticação é exigida. O usuário deve introduzir a [chave-de-acesso](#access-key) em uma janela de autenticação. Se a chave de acesso nâo foi definida na configuração de `WebAdmin`, não é possível o acesso via URL. - - Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente +- Quando uma página de gerenciamento é acessada diretamentee de um item menu 4D ou 4D Servidor (tal como **Records > Data Explorer** ou **Window > Data Explorer** (4D Server)), o acesso é garantido sem autenticação, e o usuário é autenticado automaticamente Quando o acesso é concedido, uma [sessão web](WebServer/sessions.md) com o privilégio "WebAdmin" é criado na aplicação 4D. Enquanto a sessão atual tiver o privilégio "WebAdmin", o componente `WebAdmin` entrega páginas solicitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md index 47e9147f3da08d..acca53eed85c04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/restore.md @@ -10,7 +10,7 @@ title: Restaurar um backup - Se a cache conter operações, o arquivo de dados está intacto mas exige integrar o arquivo de histórico atual. - Se a cache estiver no processo de ser escrita, o arquivo de dados está provavelmente danificado. When restoring a backup and integrating the current log file in a encrypted database: - - A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. +- A perda de um ou mais arquivos do banco de dados. This incident can occur because of defective sectors on the disk containing the database, a virus, manipulation error, etc. The last backup must be restored and then the current log file must be integrated. O último backup deve ser restaurado e o arquivo de histórico atual deve ser integrado. Para saber se um banco de dados foi danificado depois de um incidente, basta relançar o banco de dados com 4D. O programa realiza um autodiagnóstico e detalha as operações de restauração necessárias. Em modo automático, essas operações são realizadas diretamente sem precisar de ajuda da parte do usuário. Se usar uma estratégia de backup regulares, as ferramentas de restauração de 4D permite recuperar (na maioria dos casos) o banco de dados na mesma situação que estava antes do incidente. > 4D pode lançar procedimentos automaticamente para recuperar os bancos de dados depois de um incidente. Esses mecanismos são gerenciados usando duas opções disponíveis na página **Backup/Backup & Restore** das Configurações. Para obter mais informações, consulte o parágrafo [Restaurador automático](settings.md#automatic-restore-and-log-integration). > Se o incidente for resultado de uma operação inadequada realizada nos dados (eliminação de um registro, por exemplo), você pode tentar reparar o arquivo de dados usando a função "rollback" no arquivo de log. Esta função está disponível na página [Rollback](MSC/rollback.md) do MSC. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md index 7e1cf1df45e40b..9122d4ff37673f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/settings.md @@ -5,9 +5,9 @@ title: Backups periódicos As configurações de backup são definidas através de três páginas na [caixa de diálogo Configurações](../settings/overview.md). Pode estabelecer: - - a periodicidade das cópias de segurança automáticas - - os arquivos a incluir em cada backup - - as funcionalidades avançadas que permitem executar tarefas automáticas +- a periodicidade das cópias de segurança automáticas +- os arquivos a incluir em cada backup +- as funcionalidades avançadas que permitem executar tarefas automáticas > As propriedades definidas nesta caixa de diálogo são escritas no arquivo *Backup.4DSettings*, guardado na pasta [Settings](../Project/architecture.md#settings-user). @@ -88,11 +88,11 @@ Modificar as opções de cópia de segurança e restauração é opcional. Seus > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. +- **Fazer Cópia de segurança só se o arquivo de dados tiver sido modificado**: Quando marcar esta opção, 4D inicia as cópias de segurança programadas apenas se os dados tiverem sido adicionados, modificados ou excluídos desde a última cópia de segurança. Senão, o backup programado é cancelado e abandonado até o próximo backup programado. Nenhum erro é gerado, entretanto o diário de cópias de segurança assinala que a cópia de segurança foi adiada. Esta opção também permite poupar tempo de máquina para a cópia de segurança de aplicações utilizados principalmente para visualização. Lembre que ao ativar esta opção não se levam em consideração as modificações realizadas nos arquivos de estrutura ou nos arquivos anexos. > Esse parâmetro se refere tanto a aplicações quanto aos arquivos de registro. - - **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. +- **Excluir arquivo de backup mais antigo antes de/após backup**: Esta opção só é usada se a opção "Manter apenas os últimos X arquivos de backup" estiver marcada. Especifica se o 4D deve começar apagando o arquivo mais antigo antes de iniciar o backup (opção **before**) ou se a exclusão deve ocorrer após a conclusão do backup (opção **after**). Para que os mecanismos funcionem, o arquivo mais velho não deve ser renomeado nem movido. - **Se a cópia de segurança falhar**: Esta opção permite definir o mecanismo usado para lidar com cópias de segurança falhadas (cópia de segurança impossível). Quando uma cópia de segurança não puder ser realizada, 4D deixa que realize uma nova tentativa. - **Tente novamente na próxima data e hora agendadas**: essa opção só faz sentido quando trabalhar com backups automáticos programados. Equivale a anular a cópia de segurança que falhou. Um erro é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md index 61d094820c1784..9494e03c367619 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/operators.md @@ -11,8 +11,8 @@ A linguagem 4D suporta os operadores que talvez já conheça de outras linguagen A linguagem 4D suporta operadores **binários** e **ternários**: - - Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. - - os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). +- Os operadores binários operam em dois alvos (como `2 + 3`) e aparecem entre seus dois alvos. +- os operadores ternários operam em três objectivos. Como o C, o 4D tem apenas um operador ternário, o [operador condicional ternário](#ternary-operator) (`a ? b : c`). Os valores que os operadores afectam são os operandos. Na expressão `1 + 2`, o símbolo + é um operador binário e seus dois operandos são os valores 1 e 2. @@ -33,18 +33,18 @@ $col:=New collection //$col é inicializado com uma coleção vazia Os resultados do operador dependem dos **tipos de dados** aos quais são aplicados. 4D suporta diferentes operadores em tipos de dados escalares. São descritos com os tipos de dados, nas secções seguintes: - - [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) - - [**Operadores de data**](dt_date.md#operadores-de-data) - - [**Operadores de tempo**](dt_time.md#operadores-de-tempo) - - [**Operadores de números**](dt_number.md#number-operators) - - [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) - - [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) - - [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) - - [**Operadores de string**](dt_string.md#string-operators) - - [**Operadores nas referências de objetos**](dt_object.md#object-operators) - - [**Operadores de referência de coleção**](dt_collection.md#collection-operators) - - [**Operadores null**](dt_null_undefined.md#operadores-null) - - [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) +- [**Operadores lógicos**](dt_boolean.md#logical-operators) (em expressões **booleanas**) +- [**Operadores de data**](dt_date.md#operadores-de-data) +- [**Operadores de tempo**](dt_time.md#operadores-de-tempo) +- [**Operadores de números**](dt_number.md#number-operators) +- [\*\*Operadores Bitwise \*\*](dt_number.md#bitwise-operators) (em \*\*expressões inteiras longas) +- [**Operadores em imagens**](dt_picture.md#operadores-em-imagens) +- [**Operadores em ponteiros**](dt_pointer.md#operadores-em-ponteiros) +- [**Operadores de string**](dt_string.md#string-operators) +- [**Operadores nas referências de objetos**](dt_object.md#object-operators) +- [**Operadores de referência de coleção**](dt_collection.md#collection-operators) +- [**Operadores null**](dt_null_undefined.md#operadores-null) +- [**Operadores indefinidos**](dt_null_undefined.md#undefined-operators) ## Operadores de atribuição compostos @@ -275,9 +275,9 @@ O operador condicional ternário permite-lhe escrever expressões condicionais d Aceita três operandos na seguinte ordem: - - uma condição seguida de um ponto de interrogação (?) - - uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) - - uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) +- uma condição seguida de um ponto de interrogação (?) +- uma expressão a ser executada se a condição for [truthy](#truthy-and-falsy), seguido por dois pontos (:) +- uma expressão a ser executada se a condição for [falsy](#truthy-and-falsy) ### Sintaxe @@ -328,21 +328,21 @@ Para além de um tipo, cada valor tem também um valor booliano inerente, geralm Os seguintes valores são falsy\*\*: - - false - - Null - - indefinido - - Null object - - Null collection - - Null pointer - - Null picture - - Null date !00-00-00! - - "" - Empty strings - - [] - Colecções vazias - - {} - Objectos vazios +- false +- Null +- indefinido +- Null object +- Null collection +- Null pointer +- Null picture +- Null date !00-00-00! +- "" - Empty strings +- [] - Colecções vazias +- {} - Objectos vazios Todos os outros valores são considerados **verdadeiros**, inclusive: - - 0 - zero numérico (inteiro ou não) +- 0 - zero numérico (inteiro ou não) Em 4D, a avaliação **verdadeira** e **falsa** reflete a **utilização** de um valor, o que significa que um valor verdadeiro existe e pode ser processado pelo código sem gerar erros ou resultados inesperados. A lógica por trás disso é fornecer uma maneira conveniente de lidar com valores *undefined* e *null* em objetos e coleções, de modo que um número reduzido de instruções [If…Else](flow-control.md#ifelseend-if) seja necessário para evitar erros de tempo de execução. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md index af79891afd9132..9ffc9beea3d801 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/variables.md @@ -53,8 +53,8 @@ Essa sintaxe só é compatível com declarações de [variáveis locais e de pro `varType` pode ser: - - um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, - - uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. +- um [tipo básico](Concepts/data-types.md), caso em que a variável contém um valor do tipo declarado, +- uma [referência de classe](Concepts/classes.md) (classe 4D ou classe de usuário), caso em que a variável contém uma referência a um objeto da classe definida. Se `varType` for omitido, será criada uma variável do tipo **variant**. @@ -86,7 +86,7 @@ A sintaxe legada usando comandos `C_XXX` está obsoleta a partir de 4D 20 R7. ### Exemplos - - Para declarar variáveis básicas locais e de processo: +- Para declarar variáveis básicas locais e de processo: ```4d var $myText; myText; $vt : Text @@ -98,14 +98,14 @@ var $o : 4D. Object //also equivalent to C_OBJECT($o) ``` - - Para declarar variáveis objeto da classe 4D: +- Para declarar variáveis objeto da classe 4D: ```4d var $myFolder : 4D. Folder var $myFile : 4D. File ``` - - Para declarar as variáveis objeto da classe usuário: +- Para declarar as variáveis objeto da classe usuário: ```4d var $myClass : cs. MyClass @@ -193,9 +193,9 @@ Uma variável local é, como o seu nome indica, local para um método - apenas a Poderá querer utilizar uma variável local para: - - Evitar conflitos com os nomes de outras variáveis - - Utilizar dados temporariamente - - Reduzir o número de variáveis do processo +- Evitar conflitos com os nomes de outras variáveis +- Utilizar dados temporariamente +- Reduzir o número de variáveis do processo O nome de uma variável local começa sempre com um sinal de dólar ($) e pode conter até 31 caracteres adicionais. Se introduzir um nome mais longo, 4D trunca o nome com o comprimento apropriado. @@ -224,9 +224,9 @@ No modo interpretado, as variáveis são mantidas dinamicamente; são criadas e Um processo pode "espiar e cutucar" as variáveis de processo de outro processo usando os comandos `GET PROCESS VARIABLE` e `SET PROCESS VARIABLE`. É boa prática de programação restringir a utilização destes comandos à situação para a qual foram adicionados à 4D: - - Comunicação interprocessada em locais específicos ou o seu código - - Gestão de arrastar e soltar entre processos - - Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor +- Comunicação interprocessada em locais específicos ou o seu código +- Gestão de arrastar e soltar entre processos +- Em Cliente/Servidor, comunicação entre os processos nas máquinas do cliente e os procedimentos armazenados a correr nas máquinas do servidor Para obter mais informações, consulte o capítulo **Processos** e a descrição desses comandos. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md index e4cb3ddc3f2033..1649d937a161c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/basics.md @@ -33,13 +33,13 @@ Ocasionalmente, pode não haver memória suficiente para criar um BLOB. Ou, quan Estes são geralmente o tipo de erro mais difícil de encontrar. Com exceção dos erros de digitação, todos os tipos de erros acima enumerados são, em certa medida, abrangidos pela expressão "erro de conceção ou de lógica". Utilice el [depurador ](debugger.md) para detectarlos. Por exemplo: - - Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. - - Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. +- Puede ocurrir un *error de sintaxis* cuando intenta utilizar una variable que aún no está inicializada. +- Puede ocurrir un *error de entorno* cuando intenta abrir un documento, porque el nombre de ese documento es recibido por una subrutina que no obtuvo el valor correcto como parámetro. Os erros de concepção ou lógicos incluem também situações como: - - Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. - - Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. +- Un registro no está correctamente actualizado porque, mientras se llama a `SAVE RECORD`, se olvidó de la primera prueba de si el registro estaba bloqueado o no. +- Um método não faz exatamente o que se espera, porque a presença de um parâmetro opcional não é testada. Por vezes, a parte do código que apresenta o erro pode ser diferente do código que está efetivamente na origem do problema. @@ -55,8 +55,8 @@ Para encontrar rapidamente a origem do problema, reabrir a versão interpretada A janela erro de sintaxe aparece automaticamente quando a execução de um método é interrompida. Isto pode acontecer quando: - - um erro impede a continuação da execução do código - - el método produce una afirmación falsa (ver el comando `ASSERT`) +- um erro impede a continuação da execução do código +- el método produce una afirmación falsa (ver el comando `ASSERT`) ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -64,11 +64,11 @@ A área de texto superior apresenta uma mensagem que descreve o erro. A área de A janela de erro de sintaxe propõe várias opções: - - **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. +- **Modificar**: detiene la ejecución de todos los métodos. 4D muda para o ambiente de Design e o método com o erro é aberto no Editor de Código, permitindo sua correção. Utilize esta opção quando reconhecer imediatamente o erro e puder corrigi-lo sem mais investigações. - - **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. +- **Rastrear**: entra en modo Rastrear/Depurador. Se muestra la ventana del [Depurador](debugger.md). Si la línea actual solo se ha ejecutado parcialmente, es posible que tenga que hacer clic en el botón **rastrear** varias veces. - - **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. +- **Continuar**: la ejecución continua. A linha com o erro pode ser parcialmente executada, dependendo da localização do erro. Continue com cuidado: o erro pode impedir que o resto do seu método seja executado corretamente. Recomendamos hacer clic en **Continuar** sólo si el error está en una llamada trivial (como `SET WINDOW TITLE`) que no impide ejecutar y probar el resto de su código. :::tip @@ -76,14 +76,14 @@ Para ignorar um erro que ocorre repetidamente (por exemplo, em loops), você pod ::: - - **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: +- **Abortar**: Interrompe a execução do método e retorna ao estado antes do método começar a executar: - Se um método formulário ou um método objeto estiver a ser executado em resposta a um evento, é interrompido e o usuário regressa ao formulário. - Se o método estiver sendo executado a partir do ambiente Application, o usuário regressa a esse ambiente. - - **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. +- **Copiar**: copia as informações de depuração na área de transferência. A informação descreve o ambiente interno do erro (número, componente interno, etc.). Eles são formatados como texto tabulado. - - **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. +- **Salvar...**: Salva o conteúdo da janela de erro de sintaxe e a cadeia de chamadas em um arquivo `.txt`. ## Depurador diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 704ebdc0162f49..556bb6af1296b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -15,10 +15,10 @@ Este evento pode ser usado para filtrar a entrada de dados nos objetos digitáve Quando é usado, este evento é gerado após cada alteração feita no conteúdo de um objeto inserível, independentemente da ação que causou a alteração, *ou seja*: - - Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; - - Eliminar um valor (ação semelhante a colar); - - Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. - - Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). +- Ações de edição padrão que modificam conteúdo como colar, cortar, excluir ou cancelar; +- Eliminar um valor (ação semelhante a colar); +- Qualquer entrada de teclado feita pelo usuário; neste caso, o evento `On After Edit` é gerado após os eventos [`On Before Keystroke`](onBeforeKeystroke.md) e [`On After Keystroke`](onAfterKeystroke.md), se eles forem utilizados. +- Qualquer modificação feita usando um comando de linguagem que simula uma ação do usuário (ou seja, `POST KEY`). No evento `No After Edit`, os dados de texto sendo inseridos são retornados pelo comando [`Obter texto editado`](../commands-legacy/get-edited-text.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md index 1360748863f4b4..7584b63ca7234e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onClicked.md @@ -15,11 +15,11 @@ El evento `On Clicked` se genera cuando el usuario hace clic en un objeto. El evento `On Clicked` suele producirse una vez que se suelta el botón del ratón. No entanto, há várias excepções: - - [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. - - [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. - - [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. - - [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual - - Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. +- [Botones invisibles](FormObjects/properties_Display.md#not-rendered): el evento `On Clicked` se produce en cuanto se hace clic y no espera a que se suelte el botón del ratón. +- [Reglas](FormObjects/ruler.md): si la opción de [método de ejecución del objeto](FormObjects/properties_Action.md#execute-object-method) se define en **true**, el evento `On Clicked` se produce en cuanto se hace clic. +- [Combo box](FormObjects/comboBox_overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú asociado. Un [combo box](FormObjects/comboBox_overview.md) debe ser tratado como un área de texto introducible cuya lista desplegable asociada ofrece valores por defecto. Por lo tanto, se maneja la entrada de datos dentro de un combo box a través de los eventos `On Before Keystroke`, `On After Keystroke` y `On Data Change`. +- [Listas desplegables](FormObjects/dropdownList_Overview.md): el evento `On Clicked` ocurre sólo si el usuario selecciona otro valor en el menú. El evento `On Data Change` permite detectar la activación del objeto cuando se selecciona un valor diferente al actual +- Cuando una celda de entrada del list box está [siendo editada](FormObjects/listbox_overview.md#managing-entry), se genera el evento `On Clicked` cuando se presiona el botón del ratón, permitiendo utilizar el comando `Contextual click` por ejemplo. En el contexto de un evento `On Clicked`, se puede comprobar el número de clics realizados por el usuario utilizando el comando `Clickcount`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md index e91261464d1b11..3e97f1006409be 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onDragOver.md @@ -11,8 +11,8 @@ title: On Drag Over O evento `Ao Arrastar Para` é repetidamente enviado para o objeto de destino quando o ponteiro do mouse é movido sobre o objeto. Em resposta a este evento, normalmente: - - Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). - - Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. +- Obtenha os dados e assinaturas encontrados no pasteboard (via o comando `GET PASTEBOARD DATA`). +- Dependendo da natureza e do tipo de dados na área de transferência, você **aceita** ou **rejeita** o arrastar e soltar. Para **aceitar** a arraste, o método objeto de destino deve retornar 0 (zero). Para **rejeitar** o arraste, o método objeto deve retornar -1 (menos um). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md index 8539316186b800..8fb9d7da298645 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/onHeaderClick.md @@ -15,8 +15,8 @@ Esse evento é gerado quando ocorre um clique no cabeçalho de uma coluna de lis Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) tiver sido selecionada para o list box, você poderá decidir se autoriza ou não uma classificação padrão da coluna passando o valor 0, ou -1 na variável `$0`: - - Se `$0` for igual a 0, é efetuada uma ordenação padrão. - - Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. +- Se `$0` for igual a 0, é efetuada uma ordenação padrão. +- Se `$0` for igual a -1, uma classificação padrão não será executada e o cabeçalho não exibirá a seta de classificação. O desenvolvedor ainda pode gerar uma classificação de coluna com base em critérios de classificação personalizados usando a linguagem 4D. Se a propriedade [Sortable](FormObjects/properties_Action.md#sortable) não estiver selecionada para o list box, a variável `$0` não será usada. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index f5d90dd86392b9..1138d8154a484c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -9,16 +9,16 @@ Os formulários constituem a interface através da qual a informação é introd Os formulários também podem conter outros formulários através das seguintes funcionalidades: - - [objetos de subformulário](FormObjects/subform_overview.md) - - [formulários herdados](./properties_FormProperties.md#inherited-form-name) +- [objetos de subformulário](FormObjects/subform_overview.md) +- [formulários herdados](./properties_FormProperties.md#inherited-form-name) ## Criar formulários É possível adicionar ou modificar formulários 4D usando os seguintes elementos: - - **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. - - **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. - - **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: +- **Interface de Desenvolvedor 4D:** Crie novos formulários a partir do menu **Arquivo** ou da janela **Explorador**. +- **Form Editor**: Modifique seus formulários usando o **[Editor de formulários](FormEditor/formEditor.md)**. +- **Código JSON:** crie e projete seus formulários usando JSON e salve os arquivos de formulário no [local apropriado](Project/architecture#sources). Exemplo: ``` { @@ -70,9 +70,9 @@ Os formulários também podem conter outros formulários através das seguintes Existem duas categorias de formulários: - - **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. +- **Formulários de projeto** - Formulários independentes que não estão anexados a nenhuma tabela. Eles são destinados principalmente para criar caixas de diálogo de interface, bem como componentes. Os formulários do projeto podem ser usados para criar interfaces que estejam em conformidade com os padrões do sistema operacional. - - **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. +- **Formulários de tabela** - Vinculados a tabelas específicas e, portanto, beneficiam-se de funções automáticas úteis para o desenvolvimento de aplicativos baseados em bancos de dados. Normalmente, uma tabela tem formulários de entrada e saída separados. Normalmente, você seleciona a categoria do formulário quando o cria, mas pode alterá-la posteriormente. @@ -80,15 +80,15 @@ Normalmente, você seleciona a categoria do formulário quando o cria, mas pode Cada formulário é composto por, pelo menos, duas páginas: - - uma página 1: uma página principal, exibida por defeito - - uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. +- uma página 1: uma página principal, exibida por defeito +- uma página 0: uma página de fundo, cujo conteúdo é exibido em todas as outras páginas. É possível criar várias páginas para um formulário de entrada. Se você tiver mais campos ou variáveis do que cabem em uma tela, você pode querer criar páginas adicionais para exibi-los. As páginas múltiplas permitem-lhe fazer o seguinte: - - Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. - - Organize cada tópico na sua própria página. - - Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). - - Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. +- Coloque as informações mais importantes na primeira página e as informações menos importantes nas outras páginas. +- Organize cada tópico na sua própria página. +- Reduza ou elimine a rolagem durante a entrada de dados definindo a [ordem de entrada](formEditor.md#data-entry-order). +- Fornece espaço em torno dos elementos de formulário para um design de tela atrativo. As páginas múltiplas são uma conveniência utilizada apenas para formulários de introdução. Não são para produção impressa. Quando um formulário de várias páginas é impresso, apenas a primeira página é impressa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md index 1976dfab5cc6e9..50c036cfa4e172 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/macros.md @@ -7,11 +7,11 @@ O editor de formulários 4D suporta macros. Uma macro é um conjunto de instruç Por exemplo, se você tiver um relatório recorrente com formatação específica (por exemplo, determinado texto deve aparecer em vermelho e determinado texto deve aparecer em verde), poderá criar uma macro para definir automaticamente a cor. É possível criar macros para o editor de 4D Form que podem: - - Criar e executar código 4D - - Exibir diálogos - - Seleccionar objectos do formulário - - Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades - - Modificar ficheiros de projeto (atualizar, apagar) +- Criar e executar código 4D +- Exibir diálogos +- Seleccionar objectos do formulário +- Adicionar / excluir / modificar formulários, objetos de formulário e suas propriedades +- Modificar ficheiros de projeto (atualizar, apagar) O código de macros suporta [funções de classe](Concepts/classes.md) e [propriedades de objeto de formulário em JSON](FormObjects/properties_Reference.md) para permitir que você defina qualquer recurso personalizado no editor de formulários. @@ -237,9 +237,9 @@ Por exemplo, se objectos da página actual e grupos tiverem sido modificados, po Ao lidar com o atributo 'método' de objetos de formulário, você pode definir o valor do atributo de duas maneiras nas macros: - - Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). +- Usando uma [string contendo o nome/caminho do arquivo do método](FormObjects/properties_Action.md#method). - - Utilizar um objeto com a seguinte estrutura: +- Utilizar um objeto com a seguinte estrutura: | Propriedade | Tipo | Descrição | | ----------- | ---- | ---------------- | @@ -251,9 +251,9 @@ O 4D criará um arquivo usando o nome do objeto na pasta "objectMethods" com o c A propriedade `$4dId` define um ID exclusivo para cada objeto na página atual. Essa chave é usada pelo processador de macro para controlar as alterações em `$result.currentPage`: - - Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. - - Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. - - Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. +- Se a chave `$4dId` estiver ausente no formulário e em um objeto em `$result`, o objeto será criado. +- Se a chave `$4dId` existir no formulário, mas estiver ausente em `$result`, o objeto será excluído. +- Se a chave `$4dId` existir tanto no formulário quanto em um objeto em `$result`, o objeto será modificado. #### Exemplo @@ -296,8 +296,8 @@ A função `onError` é executada quando o processador de macros encontra um err Ao executar uma macro, se a 4D encontrar um erro que impeça a macro de ser cancelada, ela não executa o macro. É o caso, por exemplo, se a execução de uma macro resultar em: - - eliminar ou modificar um script cujo ficheiro é só de leitura. - - criar dois objectos com o mesmo ID interno. +- eliminar ou modificar um script cujo ficheiro é só de leitura. +- criar dois objectos com o mesmo ID interno. #### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md index 2546b3af5ce86d..efa0e17a907175 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/objectLibrary.md @@ -7,8 +7,8 @@ Pode utilizar bibliotecas de objectos nos seus formulários. Uma biblioteca de o 4D propõe dois tipos de bibliotecas de objetos: - - uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. - - as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. +- uma biblioteca de objetos padrão, pré-configurada, disponível em todos os seus projetos. +- as bibliotecas de objetos personalizados, que você pode usar para armazenar seus objetos formulários favoritos ou formulários projetos completos. ## Criar e utilizar bibliotecas de objetos personalizadas @@ -57,13 +57,13 @@ Uma determinada biblioteca de objetos só pode ser aberta por um m banco de dado Para abrir uma biblioteca de objetos personalizada, selecione o comando **Open>Object Library...** no menu 4D **File** ou na barra de ferramentas. Aparece uma caixa de diálogo padrão de ficheiro aberto, que lhe permite seleccionar a biblioteca de objectos a abrir. Pode seleccionar os seguintes tipos de ficheiros: - - **.4dproject** - - **.4dz** +- **.4dproject** +- **.4dz** Na realidade, as bibliotecas de objectos personalizados são projectos 4D clássicos. Apenas as seguintes partes de um projecto são expostas quando este é aberto como biblioteca: - - formulários projecto - - páginas formulário 1 +- formulários projecto +- páginas formulário 1 ### Construir uma biblioteca de objectos @@ -75,10 +75,10 @@ As operações básicas estão disponíveis no menu de contexto ou no menu de op ![](../assets/en/FormEditor/library5.png) - - **Cortar** ou **Copiar** para a área de transferência - - **Colar** um objeto da área de transferência - - **Clear** - exclui o objeto da biblioteca - - **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. +- **Cortar** ou **Copiar** para a área de transferência +- **Colar** um objeto da área de transferência +- **Clear** - exclui o objeto da biblioteca +- **Renomear** - é exibida uma caixa de diálogo que permite renomear o item. Note-se que os nomes dos objectos devem ser únicos numa biblioteca. Pode colocar objectos individuais (incluindo subformulários) ou conjuntos de objectos numa biblioteca de objectos. Cada objecto ou conjunto é agrupado num único item: @@ -94,9 +94,9 @@ A utilização de copiar-colar ou arrastar-e-soltar com determinados objetos de Segue-se uma lista de objetos dependentes que serão colados na biblioteca enquanto o objeto principal que os utiliza (quando aplicável): - - Listas - - Formatos/Filtros - - Imagens - - Dicas de ajuda (ligadas a um campo) - - Métodos objecto +- Listas +- Formatos/Filtros +- Imagens +- Dicas de ajuda (ligadas a um campo) +- Métodos objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 8190745cf00f5c..59cd45b373b908 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,13 +11,13 @@ As opções de tamanho dependem do valor da opção **Tamanho baseado em**. ## Tamanho baseado em - - **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). +- **Tamanho automático**: o tamanho do formulário será o necessário para exibir todos os objetos, aos quais serão adicionados os valores de margem (em píxeis) inseridos nos campos [**Hor Margin**](#hor-margin) e [**Vert Margin**](#vert-margin). Você pode escolher essa opção quando quiser usar objetos ativos colocados em uma área fora da tela (ou seja, fora do retângulo delimitador da janela) com uma janela de tamanho automático. Graças a essa opção, a presença desses objetos não modificará o tamanho da janela. - - **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). +- **Definir tamanho**: o tamanho do formulário será baseado no que você inserir (em píxeis) nos campos [**Largura**](#width) e [**Altura**](#height). - - ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. +- ``: o tamanho do formulário será baseado na posição do objeto de formulário selecionado. Por exemplo, se você escolher um objeto que esteja posicionado na parte inferior direita da área a ser exibida, o tamanho do formulário consistirá em um retângulo cujo canto superior esquerdo será a origem do formulário e o canto inferior direito corresponderá ao do objeto selecionado, acrescido de quaisquer valores de margem. > Para formulários de saída, somente os campos [**Margem Hor**](#hor-margin) ou [**Largura**](#width) estão disponíveis. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md index ee433526b04f38..2b2ff0255f62a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/formObjects_overview.md @@ -9,16 +9,16 @@ O usuário constrói e personaliza os seus formulários de aplicação manipulan Os formulários 4D suportam um grande número de objetos **ativos** e **estáticos** incorporados: - - Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. - - Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. +- Os **objetos ativos** executam uma tarefa de banco de dados ou uma função de interface. Os campos são objetos ativos. Outros objetos ativos - objetos digitáveis (variáveis), combo box, listas suspensas, botões imagem, etc. - armazenam dados temporariamente na memória ou executam alguma ação, como abrir uma caixa de diálogo, imprimir um relatório ou iniciar um processo em segundo plano. +- Os **objetos estáticos** são geralmente usados para definir a aparência do formulário e de seus rótulos, bem como para a interface gráfica. Os objetos estáticos não têm variáveis associadas como os objetos ativos. No entanto, é possível inserir objetos dinâmicos em objetos estáticos. ## Manipulação de objectos de formulário Pode adicionar ou modificar objetos de formulários 4D das seguintes formas: - - **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. +- **[Editor de formulários](FormEditor/formEditor.md):** arraste um objeto da barra de ferramentas do editor de formulários para o formulário. Em seguida, use a Lista de propriedades para especificar as propriedades do objeto. - - **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. +- **Linguagem 4D**: os comandos do tema `Objetos (Formulários)`, como [`OBJECT DUPLICATE`](../commands-legacy/object-duplicate.md) ou [`OBJECT SET FONT STYLE`](../commands-legacy/object-set-font-style.md), permitem criar e definir objetos de formulário. - **Código JSON em formulários dinâmicos:** defina as propriedades usando JSON. Use a propriedade [type](properties_Object.md#type) para definir o tipo de objeto e, em seguida, defina suas [propriedades disponíveis](properties_Reference.md). Exemplo de um objeto botão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md index 18b5e12ecbad35..98e8e0757a1496 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/list_overview.md @@ -13,8 +13,8 @@ Quando apropriado, o ícone de expansão/colapso é automaticamente apresentado O conteúdo de um objeto formulário lista hierárquica pode ser inicializado de uma das seguintes formas: - - Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. - - Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. +- Associar uma [lista de opções](properties_DataSource.md#choice-list) existente ao objeto. A lista de opções deve ter sido definida no editor de listas no modo Desenho. +- Atribuir diretamente uma referência de lista hierárquica à [variável ou expressão](properties_Object.md#variable-or-expression) associada ao objeto formulário. Em ambos os casos, você gerencia uma lista hierárquica em tempo de execução através de sua referência *ListRef*, usando os comandos de [lista hierárquica](../commands/theme/Hierarchical_Lists.md) na linguagem 4D. @@ -34,9 +34,9 @@ $mylist:=New list Cada representação da lista tem suas próprias características específicas e compartilha características comuns com todas as outras representações. As características a seguir são específicas de cada representação da lista: - - A selecção, - - O estado expandido/recolhido dos seus itens, - - A posição do cursor de rolagem. +- A selecção, +- O estado expandido/recolhido dos seus itens, +- A posição do cursor de rolagem. As outras características (fonte, tamanho da fonte, estilo, controle de entrada, cor, conteúdo da lista, ícones, etc.) são comuns a todas as representações e não podem ser modificados separadamente. Consequentemente, quando você usa comandos com base na configuração expandida/colapsada ou no item atual, por exemplo, `Count list items` (quando o parâmetro final `*` não é passado), é importante poder especificar a representação a ser usada sem nenhuma ambiguidade. @@ -82,14 +82,14 @@ Assim como em outros comandos de gerenciamento de propriedades de objetos, é po É possível modificar a aparência de uma lista hierárquica de objetos usando vários comandos 4D genéricos. Você pode passar para esses comandos o nome do objeto da lista hierárquica (usando o parâmetro \*) ou o nome da variável (contendo o valor ListRef): - - `OBJECT SET FONT` - - `OBJECT SET FONT STYLE` - - `OBJECT SET FONT SIZE` - - `OBJECT SET FILTER` - - `OBJECT SET ENTERABLE` - - `OBJECT SET SCROLLBAR` - - `OBJECT SET SCROLL POSITION` - - `OBJECT SET RGB COLORS` +- `OBJECT SET FONT` +- `OBJECT SET FONT STYLE` +- `OBJECT SET FONT SIZE` +- `OBJECT SET FILTER` +- `OBJECT SET ENTERABLE` +- `OBJECT SET SCROLLBAR` +- `OBJECT SET SCROLL POSITION` +- `OBJECT SET RGB COLORS` > Lembrete: exceto `OBJECT SET SCROLL POSIÇÃO`, esses comandos modificam todas as representações da mesma lista, mesmo que você especifique apenas uma lista usando seu nome de objeto. @@ -107,8 +107,8 @@ Esse princípio é aplicado independentemente da ordem em que os comandos são c Normalmente, você pode trabalhar de duas maneiras com o conteúdo das listas hierárquicas: por posição ou por referência. - - Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. - - Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. +- Quando se trabalha por posição, 4D se baseia na posição em relação aos itens da lista exibida na tela para identificá-los. O resultado diferirá conforme o fato de determinados itens hierárquicos serem expandidos ou recolhidos. Observe que, no caso de várias representações, cada objeto de formulário tem sua própria configuração de itens expandidos/colapsados. +- Quando você trabalha por referência, 4D se baseia no número de identificação *itemRef* dos itens da lista. Assim, cada item pode ser especificado individualmente, independentemente de sua posição ou de sua exibição na lista hierárquica. ### Utilização de números de referência dos items (itemRef) @@ -141,9 +141,9 @@ Basicamente, você precisa lidar com números de referência de itens quando qui Pode controlar se os itens da lista hierárquica podem ser modificados pelo usuário, utilizando o atalho **Alt+click**(Windows) / **Option+click** (macOS), ou fazendo um clique longo no texto do item. - - Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). +- Independentemente da fonte de dados da lista hierárquica, você pode controlar todo o objeto com a propriedade [Entrável](properties_Entry.md#enterable). - - Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). +- Além disso, se você preencher a lista hierárquica usando uma lista criada no editor de Listas, poderá controlar se um item em uma lista hierárquica é modificável usando a opção **Elemento modificável** no editor de Listas. Para obter mais informações, consulte [Definir as propriedades das listas](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.en.html#1350157). ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md index 67357d2f8733bf..7e1d6622e178ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Subform.md @@ -31,7 +31,7 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n > Para ello, basta con hacer dos clics en el campo a modificar para que pase al modo edición (asegúrese de dejar suficiente tiempo entre los dos clics para no generar un doble clic). - - el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. +- el formulario detallado a asociar al [subformulario listado](#formulario-de-lista). O formulário detalhado pode ser utilizado para introduzir ou visualizar sub-registos. Geralmente contém mais informações do que o subformulário lista. Naturalmente, o formulário detalhado deve pertencer à mesma tabela que o subformulário. Normalmente, utiliza-se um formulário de saída como formulário lista e um formulário de entrada como formulário detalhado. Se não especificar o formulário a ser usado para a entrada de página inteira, 4D automaticamente usa o formato de entrada padrão da tabela. #### Gramática JSON @@ -53,8 +53,8 @@ Esta propriedade é utilizada para declarar o formulário detalhado a utilizar n Ação a ser executada no caso de um clique duplo em uma linha vazia de um subformulário lista. As opções abaixo estão disponíveis: - - Não fazer nada: Ignora o duplo clique. - - Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. +- Não fazer nada: Ignora o duplo clique. +- Adicionar registro: cria um registro no subformulário e muda para o modo edição. El registro se creará directamente en la lista si la propiedad [Editable en la lista](#enterable-in-list) está activada. En caso contrario, se creará en modo página, en el [formulario detallado](#detail-form) asociado al subformulario. #### Gramática JSON @@ -78,9 +78,9 @@ Ação a ser executada no caso de um clique duplo em uma linha vazia de um subfo Define a ação a ser executada quando um usuário clica duas vezes em uma linha no subformulário lista. As opções disponíveis são: - - **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. - - **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. - - **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. +- **Não fazer nada** (padrão): clicar duas vezes em uma linha não aciona nenhuma ação automática. +- **Editar registro**: al hacer doble clic en una línea se muestra el registro correspondiente en el [formulario detallado](#detail-form) definido para el subformulario lista. O registo é aberto em modo de leitura-escrita para poder ser modificado. +- **Exibir registro**: idêntico à ação anterior, exceto pelo fato de que o registro é aberto no modo somente leitura, de modo que não pode ser modificado. Independentemente da ação selecionada/escolhida, o evento de formulário `On Double clicked` é gerado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md index 5e6535494a6135..befe7cdd72f1fb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/shapes_overview.md @@ -7,9 +7,9 @@ As formas são [objetos estáticos](formObjects_overview.md#active-and-static-ob As formas 4D suportam as seguintes formas básicas: - - retângulos - - linhas - - ovals +- retângulos +- linhas +- ovals ## Retângulo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md index 00c8677749a98a..c624643b6ed698 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/splitters.md @@ -11,10 +11,10 @@ O divisor é usado, por exemplo, em formulários de saída para que as colunas p Algumas das características gerais do repartidor: - - Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. - - Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. - - As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. - - Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. +- Você pode colocar quantos divisores quiser em qualquer formulário e usar uma mistura de divisores horizontais e verticais no mesmo formulário. +- Um separador pode passar por um objeto. Este objeto será redimensionado quando o divisor for movido. +- As paradas do divisor são calculadas de modo que os objetos movidos permaneçam totalmente visíveis no formulário ou não passem sob/próximo a outro divisor. Cuando la propiedad [Empujador](properties_ResizingOptions.md#pusher) está asociada a un separador, su movimiento hacia la derecha o hacia abajo no encuentra ningún tope. +- Se você redimensionar um formulário usando um divisor, as novas dimensões do formulário serão salvas somente enquanto o formulário estiver sendo exibido. Quando um formulário é fechado, as dimensões iniciais são restauradas. Uma vez inserido, o separador aparece como uma linha. Puede modificar su [estilo de borde](properties_BackgroundAndBorder.md#border-line-style) para obtener una línea más fina o [cambiar su color](properties_BackgroundAndBorder.md#line-color). @@ -55,8 +55,8 @@ Puede asociar un método objeto a un separador y será llamado con el evento `On A cada separador se le asocia una [variable](properties_Object.md#variable-or-expression) de tipo *Longint*. Esta variável pode ser utilizada nos seus métodos objeto e/ou formulário. Seu valor indica a posição atual do divisor, em píxeis, em relação à sua posição inicial. - - Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, - - Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, - - Se o valor for 0: o divisor foi movido para a sua posição original. +- Se o valor for negativo: o divisor foi movido para cima ou para a esquerda, +- Se o valor for positivo: o divisor foi movido para a parte inferior ou para a direita, +- Se o valor for 0: o divisor foi movido para a sua posição original. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. Você também pode mover o divisor de forma programática: basta definir o valor da variável associada. A movimentação é de fato realizada no final da execução do formulário ou método objeto que contém a declaração. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md index 7610cecefa7aea..9d7391c49e6918 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/stepper.md @@ -29,8 +29,8 @@ Para mais informações, consulte [Usando indicadores](progressIndicator.md#usin ## Veja também - - [progress indicators](progressIndicator.md) - - [rulers](ruler.md) +- [progress indicators](progressIndicator.md) +- [rulers](ruler.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md index b472d374fe88ba..e1f1d4853cf367 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/subform_overview.md @@ -9,12 +9,12 @@ Um subformulário é um formulário incluído noutro formulário. Para definir claramente os conceitos implementados com subformulários, aqui estão algumas definições para certos termos utilizados: - - **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. - - **Formulário pai**: um formulário que contém um ou mais subformulários. - - **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. - - **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. - - **Formulário lista**: instância do subformulário exibido como uma lista. - - **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. +- **Subformulário**: um formulário destinado a ser incluído em outro formulário, ele próprio chamado formulário pai. +- **Formulário pai**: um formulário que contém um ou mais subformulários. +- **Contêiner de subformulário**: um objeto incluído no formulário pai, que exibe uma instância do subformulário. +- **Instância de subformulário**: a representação de um subformulário em um formulário pai. Esse conceito é importante porque é possível exibir várias instâncias do mesmo subformulário em um formulário pai. +- **Formulário lista**: instância do subformulário exibido como uma lista. +- **Formulário detalhado**: formulário de entrada do tipo página associado a um subformulário do tipo lista que pode ser acessado com um clique duplo na lista. ## Sub formulários lista @@ -43,8 +43,8 @@ Você pode vincular [uma variável ou uma expressão](properties_Object.md#varia Por padrão, 4D cria uma variável ou expressão de [tipo de objeto](properties_Object.md#expression-type) para um contêiner de subformulário, que lhe permite compartilhar valores no contexto do subformulário usando o comando `Form`. No entanto, você pode usar uma variável ou expressão de qualquer tipo escalar (tempo, inteiro, etc.) especialmente se você só precisa compartilhar um único valor: - - Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. - - Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. +- Defina uma variável vinculada ou expressão de um tipo escalar e chame os comandos `OBJECT Get subform container value` e `OBJETO SET SUBFORM CONTAINADOR VALUE` para trocar valores quando ocorreram eventos os eventos [On Bound Variable Change](../Events/onBoundVariableChange.md) ou [On Data Change](../Events/onDataChange.md). Esta solução é recomendada para sincronizar um único valor. +- Defina una variable o expresión vinculada del tipo **objecto** y utilice el comando `Form` para acceder a sus propiedades desde el subformulario. Esta solução é recomendada para sincronizar vários valores. ### Sincronização do formulário principal e do subformulário (valor único) @@ -58,8 +58,8 @@ No formulário pai, ambos os objetos (área de entrada e contêiner de subformul To display a static time, you must use the appropriate [data type](properties_DataSource.md#data-type-expression-type) for the [variable or expression](properties_Object.md#variable-or-expression): - - Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. - - Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. +- Si utiliza una variable (por ejemplo, `parisTime`), debe ser del tipo `texto` o `tiempo`. +- Si utiliza una expresión (por ejemplo, `Form.myValue`), debe contener un valor `texto`. O valor do texto deve ter o formato "hh:mm:ss". @@ -88,15 +88,15 @@ Actualiza el valor de `Form.clockValue` en el subformulario: Se genera el evento formulario [On Bound Variable Change](../Events/onBoundVariableChange.md): - - assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído - - se o subformulário pertence à página formulário atual ou à página 0. +- assim que um valor for atribuído à variável/expressão do formulário pai, mesmo que o mesmo valor seja reatribuído +- se o subformulário pertence à página formulário atual ou à página 0. Note that, as in the above example, it is preferable to use the `OBJECT Get subform container value` command which returns the value of the expression in the subform container rather than the expression itself because it is possible to insert several subforms in the same parent form (for example, a window displaying different time zones contains several clocks). Modificar a variável ou expressão vinculada aciona eventos de formulário que permitem sincronizar os valores do formulário pai e do subformulário: - - Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. - - Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. +- Utilice el evento de formulario [On Bound Variable Change](../Events/onBoundVariableChange.md) para indicar al subformulario (método de formulario del subformulario) que la variable o expresión fue modificada en el formulario padre. +- Utilice el evento de formulario [On Data Change](../Events/onDataChange.md) para indicar al contenedor del subformulario que el valor de la variable o expresión fue modificado en el subformulario. #### Atualização do conteúdo de um formulário pai @@ -169,8 +169,8 @@ A comunicação entre o formulário pai e as instâncias do subformulário pode 4D implementou os seguintes mecanismos para atender a essas necessidades: - - Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` - - Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` +- Llamada de un objeto contenedor desde el subformulario utilizando el comando `CALL SUBFORM CONTAINER` +- Ejecución de un método en el contexto del subformulario mediante el comando `EXECUTE METHOD IN SUBFORM` > El comando `GOTO OBJECT` busca el objeto de destino en el formulario padre aunque se ejecute desde un subformulario. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md index f63a09ee25c6a1..ddfbf5182f546a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/tabControl.md @@ -42,9 +42,9 @@ No macOS, além da posição padrão (superior), os controles de aba também pod Para fornecer as etiquetas para o controle de abas, você pode usar: - - um objeto - - uma lista de escolha - - um array +- um objeto +- uma lista de escolha +- um array ### Utilização de um objecto diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md index 1874c230c87282..b46a43a9cb707f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/text.md @@ -33,9 +33,9 @@ Quando um texto é rodado, pode continuar a alterar o seu tamanho ou posição, ![](../assets/en/FormObjects/staticText2.png) - - Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; - - Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; - - Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. +- Se o objeto for redimensionado na direção A, seu [largura](properties_CoordinatesAndSizing.md#width) será modificada; +- Se o objeto for redimensionado em direção C, seu [altura](properties_CoordinatesAndSizing.md#height) será modificada; +- Se o objeto for redimensionado na direção B, ambos seus [largura](properties_CoordinatesAndSizing.md#width) e [altura](properties_CoordinatesAndSizing.md#height) serão modificados. ## Propriedades compatíveis diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md index 718f34458fb45e..ce0260fae633f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/analysis.md @@ -14,7 +14,7 @@ Cada operação registada no ficheiro de registo aparece como uma linha. As colu Essas informações permitem que você identifique a origem e o contexto de cada operação: - - **Operación**: número de secuencia de la operación en el archivo de historial. +- **Operación**: número de secuencia de la operación en el archivo de historial. - **Acción**: tipo de operación realizada sobre los datos. Esta coluna pode conter uma das seguintes operações: - Abertura de ficheiro de dados: abertura de um ficheiro de dados. @@ -30,19 +30,19 @@ Essas informações permitem que você identifique a origem e o contexto de cada - Cancelamento da transação: transação cancelada. - Contexto de actualización: cambio de datos adicionales (por ejemplo, una llamada a `CHANGE CURRENT USER` o `SET USER ALIAS`). - - **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. +- **Tabla**: tabla a la que pertenece el registro añadido/borrado/modificado o el BLOB. - - **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. +- **Llave primaria/BLOB**: contenido de la llave primaria de cada registro (cuando la llave primaria se compone de varios campos, los valores se separan con punto y coma) o número de secuencia del BLOB implicado en la operación. - - **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. +- **Proceso**: número interno del proceso en el que se realizó la operación. Este número interno corresponde ao contexto da operação. - - **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. +- **Tamaño**: tamaño (en bytes) de los datos procesados por la operación. - - **Fecha y hora**: fecha y hora en que se realizó la operación. +- **Fecha y hora**: fecha y hora en que se realizó la operación. - - **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. +- **Usuario sistema**: nombre del sistema del usuario que realizó la operación. Em modo cliente-servidor, o nome da máquina do lado do cliente é exibido; em modo monousuário, a ID do usuário é exibida. - - **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. +- **Usuario 4D**: nombre de usuario 4D del usuario que ha realizado la operación. Se um alias for definido para o usuário, o alias será exibido em vez do nome de usuário 4D. - **Valores**: valores de los campos del registro en caso de adición o de modificación. Os valores são separados por ";". Only values represented in alphanumeric form are displayed.\ Only values represented in alphanumeric form are displayed.\ @@ -56,7 +56,7 @@ Essas informações permitem que você identifique a origem e o contexto de cada Only values represented in alphanumeric form are displayed.\ ***Note:** If the database is encrypted and no valid data key corresponding to the open log file has been provided, encrypted values are not displayed in this column.* - - **Registros**: número del registro. +- **Registros**: número del registro. Haga clic en **Analizar** para actualizar el contenido del archivo de historial actual de la aplicación seleccionada (llamado por defecto nomdatos.journal). O botão Navegar pode ser usado para selecionar e abrir outro arquivo de histórico para o banco de dados. El botón **Exportar...** puede utilizarse para exportar el contenido del archivo como texto. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md index ac2e7fd1a50dc6..6a2b8390d33a66 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/MSC/repair.md @@ -57,7 +57,7 @@ A área "Registros encontrados no arquivo de dados" inclui duas tabelas que resu - La columna **Tabla de destino** indica los nombres de las tablas que se asignaron automáticamente a los grupos de registros identificados. Os nomes das tabelas atribuídas aparecem automaticamente a verde. Os grupos que não foram atribuídos, ou seja, as tabelas que não puderam ser associadas a nenhum registro, aparecem em vermelho. - La columna **Recuperar** le permite indicar, para cada grupo, si quiere recuperar los registros. Por padrão, essa opção é marcada para todos os grupos com registros que podem ser associados a uma tabela. - - A segunda tabela lista as tabelas do ficheiro de projeto. +- A segunda tabela lista as tabelas do ficheiro de projeto. ### Atribuição manual @@ -74,7 +74,7 @@ Utilice el botón **Ignorar registros** para eliminar la asociación realizada m Depois que a reparação terminar, 4D gera um arquivo de histórico na pasta Logs do banco de dados. Este arquivo permite visualizar todas as operações efectuadas. É criado no formato XML e chamado: *DatabaseName\*\*_Repair_Log_yyyy-mm-dd hh-mm-ss.xml*" onde: - - *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", - - *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". +- *ApplicationName* es el nombre del archivo del proyecto sin ninguna extensión, por ejemplo "Facturas", +- *yyyy-mm-dd hh-mm-ss* es la marca de tiempo del archivo, basada en la hora del sistema local cuando se inició la operación de mantenimiento, por ejemplo "2019-02-11 15-20-45". Al presionar el botón **Abrir archivo de historial**, 4D muestra el archivo de historial más reciente en el navegador por defecto de la máquina. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md index e27c3f1f6ae59f..819c0908dd1497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/global-stamp.md @@ -34,8 +34,8 @@ Para habilitar el seguimiento de cambios de datos, la estructura de la aplicaci In addition, to ensure proper operation of the feature, the following conditions are required: - - El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. - - Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: +- El campo `__GlobalStamp` debe ser del tipo *Entero 64 bits*, con las propiedades *índice automático*, *Exponer como recurso REST* e *Invisible* seleccionadas. +- Debe añadirse una tabla `__DeletedRecords`, con los siguientes campos: | Campo | Tipo | Descrição | | ------------------------------------------------------- | --------------- | ------------------------------------- | @@ -64,8 +64,8 @@ Para ativar o rastreamento de alterações de dados: Em seguida, 4D faz as seguintes alterações: - - Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). - - Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. +- Se añade un campo preconfigurado `__GlobalStamp` a la(s) tabla(s). +- Si no existe ya, se añade a la estructura una tabla `__DeletedRecords`. Para desativar o rastreamento de alterações de dados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md index ff2efe2b2b9483..061e0c6def1e49 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/remoteDatastores.md @@ -17,9 +17,9 @@ The web session created on the remote datastore is identified using a internal s El `localID` es local a la máquina que se conecta al datastore remoto, lo que significa: - - Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. - - Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. - - Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. +- Si otros procesos de la misma aplicación necesitan acceder al mismo datastore remoto, pueden utilizar el mismo `localID` y, de este modo, compartir la misma sesión. +- Si otro proceso de la misma aplicación abre el mismo datastore remoto pero con otro `localID`, creará una nueva sesión en el datastore remoto. +- Si otra máquina se conecta al mismo datastore remoto con el mismo `localID`, creará otra sesión con otra cookie. Estes princípios são ilustrados nos gráficos seguintes: @@ -29,9 +29,9 @@ Estes princípios são ilustrados nos gráficos seguintes: Os processos que gerenciam sessões para acesso ao armazenamento de dados são mostrados na janela de administração do 4D Server: - - nombre: "REST Handler: \" - - type: type Worker Server HTTP - - sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. +- nombre: "REST Handler: \" +- type: type Worker Server HTTP +- sesión: el nombre de la sesión es el nombre de usuario que se pasa al comando `Open datastore`. No exemplo a seguir, dois processos estão sendo executados na mesma sessão: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md index 489847b36fb8f3..e5968402c5d1f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/general.md @@ -30,8 +30,8 @@ A partir do macOS Sierra, os aplicativos Mac podem se beneficiar do recurso Auto Você pode se beneficiar desse recurso nos seguintes ambientes (somente com versões 4D de 64 bits): - - Method Editor windows - - Janelas do editor de formulários +- Method Editor windows +- Janelas do editor de formulários Todas as janelas destes editores podem ser colocadas no formulário de tabulação: @@ -47,9 +47,9 @@ En la caja de diálogo de Preferencias de 4D, la opción **Ventana con pestañas Estão disponíveis três opções: - - **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). - - **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). - - **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. +- **Según las Preferencias sistema** (por defecto): las ventanas 4D se comportarán como se definen en las Preferencias Sistema de macOS (En pantalla completa, Siempre o Manualmente). +- **Nunca**: al abrir un nuevo documento en el editor de formularios 4D o en el Editor de Código siempre se crea una nueva ventana (nunca se crean pestañas). +- **Siempre**: al abrir un nuevo documento en el editor de formularios o en los editores de métodos de 4D, siempre se creará una nueva pestaña. ### Aparência (somente macOS) @@ -59,9 +59,9 @@ Este menú permite seleccionar la combinación de colores que se utilizará para Estão disponíveis três opções: - - **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. - - **Claro**: utilizar el tema claro - - **Sombra**: utilizar el tema Sombra +- **Según las preferencias de la paleta de colores del sistema** (por defecto): utiliza la paleta de colores definida en las Preferencias sistema de macOS. +- **Claro**: utilizar el tema claro +- **Sombra**: utilizar el tema Sombra > Esta preferência só é suportada no macOS. No Windows, é sempre utilizado o esquema "Light". @@ -73,8 +73,8 @@ Si esta opción está marcada, cuando el usuario cambia al entorno Aplicación u Si marca esta opción, se añaden dos elementos en el menú **Archivo > Nuevo** y el botón **Nuevo** de la barra de herramientas: - - **Base de dados...** - - **Base de dados a partir da definição da estrutura...** +- **Base de dados...** +- **Base de dados a partir da definição da estrutura...** ![](../assets/en/Preferences/general5.png) @@ -138,8 +138,8 @@ Ao criar um novo arquivo de dados, o 4D usa o idioma previamente definido nesse Esta área configura o acesso à documentação HTML 4D exibida no seu navegador atual: - - Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; - - Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. +- Cuando pulsa la tecla **F1** mientras el cursor está insertado en una función de clase 4D o nombre de comando en el Editor de Código; +- Al hacer doble clic sobre un comando 4D en la **página de los comandos** del Explorador. ### Língua da documentação @@ -151,8 +151,8 @@ Linguaje da documentação HTML a apresentar. É possível selecionar uma docume Define onde 4D irá procurar por páginas de documentação. - - Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. - - Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. +- Quando marcado (padrão), 4D primeiro procura a página na pasta local (veja abaixo). Se for encontrado, 4D mostra a página no navegador atual. Se for encontrado, 4D mostra a página no navegador atual. Desta forma, é possível aceder à documentação mesmo quando se está offline. +- Quando não marcada, 4D procura a página desejada diretamente no site de documentação on-line e a exibe no navegador atual. Se não for encontrado, 4D mostra uma mensagem de erro no navegador. ### Pasta local diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 612d3c05d3f8fb..0d2618f571d757 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -15,8 +15,8 @@ Esta página permite selecionar, criar ou configurar temas do Editor de código. Nesta lista, seleciona o tema a aplicar ao editor de código. São apresentados todos os temas disponíveis, incluindo os temas personalizados (se existirem). 4D fornece dois temas por padrão: - - **Tema Light predefinido** - - **Tema escuro predefinido** +- **Tema Light predefinido** +- **Tema escuro predefinido** > Os temas padrão não podem ser modificados ou eliminados. @@ -38,8 +38,8 @@ Cada tema personalizado se almacena en un único archivo JSON llamado *themeName Definir um tema significa: - - definir um tipo de letra e um tamanho de letra globais para todo o editor de código, - - atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. +- definir um tipo de letra e um tamanho de letra globais para todo o editor de código, +- atribuir estilos e cores específicos a cada elemento da linguagem 4D (campos, tabelas, variáveis, parâmetros, SQL, etc.), elemento da linguagem SQL (palavras-chave, funções, etc.) e fundos de cor. A combinação de cores e estilos diferentes é particularmente útil para manutenção do código. @@ -83,8 +83,8 @@ Esta página configura as opções de exibição do Editor de código. Permite-lhe desativar/ativar os parâmetros do código "internacional" para a aplicação 4D local. - - **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. - - **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. +- **no seleccionado** (por defecto): los parámetros English-US y el lenguaje de programación inglés se utilizan en los métodos 4D. +- **seleccionado**: los parámetros regionales se utilizan en los métodos 4D. > Se modificar esta opção, tem de reiniciar a aplicação 4D para que a alteração seja tida em conta. @@ -138,9 +138,9 @@ Permite-lhe ocultar todos os ícones de expansão/recolhimento por padrão ao ap Permite a inserção automática de () e de chaves de fecho durante a escrita de código. Esta opção controla duas funcionalidades automáticas: - - **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). +- **par de paréntesis ()<**: se añade después de un comando 4D, una palabra clave o un método proyecto insertado desde una lista de sugerencias o de finalización, si el elemento insertado requiere uno o más argumentos obligatorios. Por exemplo, se escrever "C_OB" e pressionar Tab, 4D escreve "C_OBJECT()" e coloca o ponto de inserção dentro do (). - - **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": +- **cierre }, ), ], o "**: caracter que se añade al escribir respectivamente una apertura {, (, ], o ". Esta função permite inserir pares de símbolos correspondentes no ponto de inserção ou à volta de um texto selecionado. Por exemplo, se realçar uma cadeia de caracteres e escrever um único ", toda a cadeia de caracteres selecionada será colocada entre "": ![](../assets/en/Preferences/optionsClosing.png)\ ![](../assets/en/Preferences/optionsClosing2.png) @@ -162,9 +162,9 @@ Permite destacar todas as ocorrências da mesma variável ou campo numa janela d ![](../assets/en/Preferences/optionsVariables.png) - - **No**(por defecto): no resaltado - - **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto - - **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto +- **No**(por defecto): no resaltado +- **Con cursor**: todas las ocurrencias se destacan cuando se hace clic en el texto +- **Al seleccionar**: se resaltan todas las ocurrencias cuando se selecciona el texto El color de resaltado se puede definir en la página [Tema](#theme-definition). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md index 2d6736f653cf78..6308d745616b51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -42,8 +42,8 @@ A pasta Project contém normalmente a seguinte hierarquia: Arquivo de desenvolvimento do projeto, utilizado para designar e lançar o projeto. Esse arquivo pode ser aberto por: - - 4D - - 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) +- 4D +- 4D Server (sólo lectura, ver [Abrir un proyecto remoto](Desktop/clientServer.md#opening-a-remote-project)) > Nota: nos projetos 4D, o desenvolvimento se realiza com 4D Developer e o desenvolvimento multiusuários se gerencia através das ferramentas de controle de versão. 4D Server pode abrir arquivos .4DProject para fins de teste. @@ -121,9 +121,9 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: - - `Página Métodos` - - `Formulários` - - `TableForms` +- `Página Métodos` +- `Formulários` +- `TableForms` Dentro destas pastas, os nomes dos elementos eliminados estão entre parênteses, por exemplo, "(myMethod).4dm". La organización de las carpetas es idéntica a la carpeta [Sources](#sources). @@ -176,11 +176,11 @@ Essa pasta contém [**configurações de usuário para os dados**](../settings/o A pasta Logs contém todos os arquivos de registo utilizados pelo projeto. Os arquivos de registro incluem, em particular: - - conversão da base de dados, - - pedidos do servidor Web, - - backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) - - depuração de comandos, - - 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). +- conversão da base de dados, +- pedidos do servidor Web, +- backup/restore activities journal (*Backup Journal\[xxx].txt*, see [Backup journal](Backup/backup.md#backup-journal)) +- depuração de comandos, +- 4D Pedidos do servidor (gerados em máquinas clientes e no servidor). > Uma pasta adicional de Logs está disponível na pasta de preferências sistema do usuário (pasta 4D ativa, consulte o comando [Get 4D folder](../commands-legacy/get-4d-folder.md)) para arquivos de log de manutenção e nos casos em que a pasta de dados é somente leitura. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index e249d09c4454c3..b6c05fefa599fc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -15,8 +15,8 @@ Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma Componentes podem ser interpretados ou [compilados](../Desktop/building.md). - - Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. - - Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. +- Um projeto 4D em modo interpretado pode usar componentes interpretados ou compilados. +- Um projeto 4D em execução no modo compilado não pode usar componentes interpretados. Por isso não pode ser usado em um componente. ### Pasta do pacote @@ -71,8 +71,8 @@ O arquivo **dependencies.json** faz referência a todos os componentes necessár Pode conter: - - nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), - - nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). +- nomes de componentes [armazenado localmente](#local-components) (caminho ou caminho padrão definido em um arquivo **environment4d.json**), +- nomes de componentes [armazenados nos repositórios do GitHub](#components-stored-on-github) (seus caminhos podem ser definidos neste arquivo ou em um arquivo **environment4d.json**). #### environment4d.json @@ -80,8 +80,8 @@ O arquivo **environment4d.json** é opcional. Ele permite que você defina **cam Os principais benefícios desta arquitetura são os seguintes: - - você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. - - se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. +- você pode armazenar o **ambiente4d. arquivo son** em uma pasta pai de seus projetos e decida não fazer commit dele, permitindo que você tenha sua organização local de componentes. +- se quiser usar o mesmo repositório GitHub para vários projetos, você poderá fazer referência a ele no arquivo **environment4d.json** e declará-lo no arquivo **dependencies.json**. ### Prioridade @@ -189,9 +189,9 @@ Em relação aos componentes armazenados no GitHub, ambos os arquivos [**depende Para ser capaz de fazer referência direta e usar um componente 4D armazenado no GitHub, você precisa configurar o repositório do componente GitHub: - - Compacte os arquivos de componentes no formato ZIP. - - Nomeie este arquivo com o mesmo nome do repositório do GitHub. - - Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. +- Compacte os arquivos de componentes no formato ZIP. +- Nomeie este arquivo com o mesmo nome do repositório do GitHub. +- Integre o arquivo em uma [versão do GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) do repositório. Essas etapas podem ser facilmente automatizadas, com o código 4D ou usando o GitHub Actions, por exemplo. @@ -247,7 +247,7 @@ Se você selecionar a [**Seguir 4D Version**](#defining-a-github-dependency-vers } ``` - - Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: +- Uma versão também é identificada por uma **versão**. O sistema de versionamento usado é baseado no conceito de [*Versão semântica*](https://regex101.com/r/Ly7O1x/3/), que é o mais comummente usado. Cada número de versão é identificado da seguinte forma: `majorNumber.minorNumber.pathNumber`. Da mesma forma que para marcadores, você pode indicar a versão do componente que você deseja usar em seu projeto, como neste exemplo: ```json { @@ -264,17 +264,17 @@ Um intervalo é definido por duas versões semânticas, um mínimo e um máximo, Eis alguns exemplos: - - "latest": a versão com o selo "latest" nas versões GitHub. - - "\*": a versão mais recente lançada. - - "1.\*": todas as versões da versão principal 1. - - "1.2.\*": todos os patches da versão menor 1.2. - - ">=1.2.3": a última versão, começando com a versão 1.2.3. - - ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. - - "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. - - "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. - - "<=1.2.3": a versão mais recente até a 1.2.3. - - "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. - - "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. +- "latest": a versão com o selo "latest" nas versões GitHub. +- "\*": a versão mais recente lançada. +- "1.\*": todas as versões da versão principal 1. +- "1.2.\*": todos os patches da versão menor 1.2. +- ">=1.2.3": a última versão, começando com a versão 1.2.3. +- ">1.2.3": a versão mais recente, começando com a versão imediatamente após a versão 1.2.3. +- "^1.2.3": a última versão 1, começando com a versão 1.2.3 e estritamente inferior à versão 2. +- "~1.2.3": a última versão 1.2, começando com a versão 1.2.3 e estritamente inferior à versão 1.3. +- "<=1.2.3": a versão mais recente até a 1.2.3. +- "1.0.0 - 1.2.3" ou ">=1.0.0 <=1.2.3": versão entre 1.0.0 e 1.2.3. +- "`<1.2.3 || >=2`": versão que não está entre 1.2.3 e 2.0.0. Se você não especificar uma tag ou uma versão, 4D recupera automaticamente a "versão mais recente". @@ -284,7 +284,7 @@ O gerenciador de dependências verifica periodicamente se as atualizações do c Se quiser usar a [**Seguir 4D Version**](#defining-a-github-dependency-version-range) regra de dependência, os marcadores de versões de componentes no repositório do Github devem obedecer a convenções específicas. - - **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". +- **Versões do LT**: padrão `x.y.p`, onde `x. ` corresponde à versão 4D principal a seguir e o `p` (opcional) pode ser usado para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para *x. \* Versão LTS, o Gerenciador de Dependências irá resolvê-lo como "a versão mais recente x.*" se disponível ou "versão abaixo de x". Se não existir essa versão, o usuário será notificado. Por exemplo, "20.4" será resolvido pelo Gerenciador de Dependências como "a última versão do componente 20.\* ou versão abaixo de 20". - **Versões R-Release**: padrão `xRy. `, onde `x` e `y` correspondem à versão principal 4D R-release para seguir e `p` (opcional) podem ser usados para versões patch ou atualizações adicionais. Quando um projeto especifica que segue a versão 4D para a versão *xRy*, o Gerenciador de Dependências a resolverá para a "versão mais recente abaixo de xR(y+1)", se disponível. Se não existir essa versão, o usuário será notificado. Por exemplo, "20R9" será resolvido pelo Gerenciador de Dependências como "a última versão do componente abaixo de 20R10". @@ -312,8 +312,8 @@ Em seguida, você precisa [fornecer seu token de conexão](#providing-your-githu Os componentes GitHub referenciados são baixados em uma pasta de cache local e carregados em seu ambiente. A pasta de cache local é armazenada na seguinte localização: - - en macOs: `$HOME/Library/Caches//Dependencies` - - no Windows: `C:\Users\\AppData\Local\\Dependencies` +- en macOs: `$HOME/Library/Caches//Dependencies` +- no Windows: `C:\Users\\AppData\Local\\Dependencies` ...onde `` pode ser "4D", "4D Server" ou "tool4D". @@ -386,16 +386,16 @@ As dependências que exigem a atenção do desenvolvedor são indicadas por um * Estão disponíveis as seguintes etiquetas de status: - - **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). - - **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). - - **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. - - **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). - - **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. - - **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. - - **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). - - **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. - - **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. +- **Overloaded**: a dependência não é carregada porque está sobrecarregada por outra dependência com o mesmo nome em um [nível de prioridade] mais alto (#prioridade). +- **Overloading**: a dependência está carregada e está sobrecarregando uma ou mais dependências com o mesmo nome em um [nível de prioridade] inferior (#prioridade). +- **Not found**: a dependência está declarada no arquivo dependencies.json, mas não foi encontrada. +- **Inactive**: a dependência não é carregada porque não é compatível com o projeto (por exemplo, o componente não é compilado para a plataforma atual). +- **Duplicated**: a dependência não é carregada porque existe uma outra dependência com o mesmo nome no mesmo local (e é carregado). +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#monitoring-project-dependencies) e será carregada quando o aplicativo for reiniciado. +- **Disponível após a reinicialização**: A referência de dependência acabou de ser adicionada ou atualizada [usando a interface] (#removing-a-dependency) e será carregada quando o aplicativo for reiniciado. +- **Atualização disponível \**: Foi detectada uma nova versão da dependência do GitHub que corresponde à sua [configuração da versão do componente](#defining-a-github-dependency-version-range). +- **Refreshed after restart**: A [configuração da versão do componente](#defining-a-github-dependency-version-range) da dependência do GitHub foi modificada, ela será ajustada na próxima inicialização. +- **Atualização recente**: uma nova versão da dependência do GitHub foi carregada na inicialização. Uma dica é exibida quando você passa o mouse sobre a linha de dependência, provando informações adicionais sobre o status: @@ -429,8 +429,8 @@ Este item não é exibido se a dependência estiver inativa porque seus arquivos O ícone do componente e o logotipo da localização fornecem informações adicionais: - - O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. - - Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. +- O logotipo do componente indica se é fornecido por 4D ou por um desenvolvedor terceiro. +- Os componentes locais podem ser diferenciados de componentes do GitHub usando um ícone pequeno. ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -450,8 +450,8 @@ Se o item selecionado não for válido, será exibida uma mensagem de erro. Clique em **Adicionar** para adicionar a dependência ao projeto. - - Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). - - Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). +- Se você selecionar um componente localizado próximo à pasta do pacote do projeto (local padrão), ele será declarado no arquivo [**dependencies.json**](#dependenciesjson). +- Se você selecionar um componente que não esteja localizado próximo à pasta do pacote do projeto, ele será declarado no arquivo [**dependencies.json**](#dependenciesjson) e seu caminho será declarado no arquivo [**environment4d.json**](#environment4djson) (consulte a nota). O painel Dependências pergunta se você deseja salvar um [caminho relativo ou absoluto](#relative-paths-vs-absolute-paths). :::note @@ -521,8 +521,8 @@ Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: - - Verificação automática e manual das versões disponíveis - - Atualização automática e manual de componentes +- Verificação automática e manual das versões disponíveis +- Atualização automática e manual de componentes As operações manuais podem ser feitas **por dependência** ou **para todas as dependências**. @@ -538,11 +538,11 @@ Se você fornecer um [token de acesso](#providing-your-github-access-token), as Além disso, você pode verificar se há atualizações a qualquer momento, para uma única dependência ou para todas as dependências: - - Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. +- Para verificar se há atualizações de uma única dependência, clique com o botão direito do mouse na dependência e selecione **Verificar atualizações** no menu contextual. ![componente de verificação](../assets/en/Project/check-component-one.png) - - Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. +- Para verificar se há atualizações de todas as dependências, clique no menu **opções** na parte inferior da janela do Gerenciador de dependências e selecione **Verificar atualizações**. ![componentes de verificação](../assets/en/Project/check-component-all.png) @@ -560,11 +560,11 @@ Se não quiser usar uma atualização de componente (por exemplo, se quiser perm Você pode atualizar as dependências a qualquer momento, para uma única dependência ou para todas as dependências: - - Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: +- Para atualizar uma única dependência, clique com o botão direito na dependência e selecione **Atualizar \ na próxima inicialização** no menu contextual ou no menu **opções** na parte inferior da janela Gerenciador de Dependências: ![componente de verificação](../assets/en/Project/update-component-one.png) - - Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: +- Para atualizar todas as dependências de uma só vez, clique no menu **opções** na parte inferior da janela do gerenciador de dependências e selecione **Atualizar todas as dependências remotas na próxima inicialização**: ![check components](../assets/en/Project/update-component-all.png) @@ -572,8 +572,8 @@ Em qualquer caso, independentemente do status atual da dependência, é feita um Quando você seleciona um comando de atualização: - - uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. - - Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. +- uma caixa de diálogo é exibida e propõe **reiniciar o projeto**, para que as dependências atualizadas estejam imediatamente disponíveis. Em geral, recomenda-se reiniciar o projeto para avaliar as dependências atualizadas. +- Se você clicar em Later (Mais tarde), o comando de atualização não estará mais disponível no menu, o que significa que a ação foi planejada para a próxima inicialização. #### Atualização automática @@ -587,13 +587,13 @@ Quando essa opção estiver desmarcada, uma nova versão de componente que corre O registro do seu token de acesso pessoal no Gerenciador de dependências é: - - obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), - - recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). +- obrigatório se o componente estiver armazenado em um [repositório GitHub privado](#private-repositories), +- recomendado para uma [verificação de atualizações de dependências](#updating-github-dependencies). Para fornecer seu token de acesso ao GitHub, você pode: - - clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. - - ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. +- clique no botão **Adicionar um token de acesso pessoal...** que é exibido na caixa de diálogo "Adicionar uma dependência" depois que você inserir um caminho de repositório privado do GitHub. +- ou selecione **Adicionar um token de acesso pessoal GitHub...** no menu do Gerenciador de dependências a qualquer momento. ![dependency-add-token](../assets/en/Project/dependency-add-token.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md index c1b08acda98594..6fc3020dad7369 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -7,10 +7,10 @@ Nos projetos de aplicação, você pode documentar seus métodos e suas classes, Os seguintes elementos do projeto aceitam documentação: - - Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) - - Classes - - Formulários - - Tabela +- Métodos (métodos banco de dados, métodos componentes, métodos projeto, métodos formulário, métodos 4D Mobile e triggers) +- Classes +- Formulários +- Tabela Seus arquivos de documentação são escritos na sintaxe Markdown (arquivos .md) usando qualquer editor compatível com Markdown. São armazenados como ficheiros independentes na pasta do seu projeto. @@ -55,9 +55,9 @@ La arquitectura de la carpeta `Documentation` es la siguiente: - table1.md - ... - - Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. +- Um formulário projeto e seu método de formulário projeto compartilham o mesmo arquivo de documentação para formulário e método. - - Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. +- Um formulário tabela e seu método de formulário tabela compartilham o mesmo arquivo de documentação para o formulário e o método. > Renomear ou excluir um elemento documentado em seu projeto também renomeará ou excluirá o arquivo Markdown associado ao elemento. @@ -73,9 +73,9 @@ Para visualizar a documentação na janela do Explorer: ![](../assets/en/Project/comments-explo2.png) - - Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). +- Si no se ha encontrado ningún archivo de documentación para el elemento seleccionado, se muestra un botón **Crear** (ver más abajo). - - Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. +- Caso contrário, se houver um arquivo de documentação para o elemento selecionado, o conteúdo será exibido na área. Os conteúdos não são diretamente editáveis no painel. ### Editar o ficheiro de documentação @@ -83,8 +83,8 @@ Você pode criar e/ou editar um arquivo de documentação Markdown na janela Exp Se não houver um arquivo de documentação para o elemento selecionado, você poderá: - - haga clic en el botón **Crear** en el panel `Documentation` o, - - elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. +- haga clic en el botón **Crear** en el panel `Documentation` o, +- elija la opción **Modificar la documentación...** en el menú contextual o el menú de opciones del Explorador. ![](../assets/en/Project/comments-explo3.png) @@ -100,7 +100,7 @@ O editor de código 4D exibe uma parte da documentação de um método em sua di Si existe un archivo llamado `\.md` en la carpeta `\/documentation`, el editor de código muestra (por prioridad): - - Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. +- Todo texto introducido en una etiqueta de comentario HTML (``) en la parte superior del archivo markdown. - Or, if no html comment tag is used, the first sentence after a `# Description` tag of the markdown file.\ Nesse caso, a primeira linha contém o **protótipo** do método, gerado automaticamente pelo analisador de código 4D.\ @@ -134,7 +134,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Markdown suportado - - A etiqueta de título é suportada: +- A etiqueta de título é suportada: ```md # Title 1 @@ -142,7 +142,7 @@ Novos arquivos de documentação são criados com o seguinte conteúdo padrão: ### Title 3 ``` - - As etiquetas de estilo (itálico, negrito, riscado) são suportadas: +- As etiquetas de estilo (itálico, negrito, riscado) são suportadas: ```md _italic_ @@ -151,7 +151,7 @@ _italic_ ~~strikethrough~~ ``` - - A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: +- A tag do bloco de código (\`4d ... `) é suportado com destaque de código 4D: ````md ```4d @@ -160,7 +160,7 @@ _italic_ ``` ```` - - A etiqueta de tabela é suportada: +- A etiqueta de tabela é suportada: ```md | Parâmetro | Tipo | Descrição | @@ -169,7 +169,7 @@ _italic_ | toolbar | Text |Nome da barra de ferramentas | ``` - - A etiqueta de ligação é suportada: +- A etiqueta de ligação é suportada: ```md // Case 1 @@ -181,7 +181,7 @@ The [documentation](https://doc.4d.com) of the command .... [1]: https://blog.4d.com ``` - - As etiquetas de imagem são suportadas: +- As etiquetas de imagem são suportadas: ```md ![image info](pictures/image.png) @@ -228,10 +228,10 @@ $logo:=GetLogo(5) ``` ```` - - Explorer view: +- Explorer view: ![](../assets/en/Project/explorer_Doc.png) - - Code editor view: +- Code editor view: ![](../assets/en/Project/comments-explo5.png) \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md index caba09f6643420..90cb64398ccff7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$attributes.md @@ -11,7 +11,7 @@ If you have relation attributes in a dataclass, use `$attributes` to define the Puede aplicar `$attributes` a una entidad (*p. Ej.*, People(1)) o una entity selection (*p. Ej.*, People/$entityset/0AF4679A5C394746BFEB68D2162A19FF). - - Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. +- Si `$attributes` no se especifica en una consulta, o si se pasa el valor "\*", se extraen todos los atributos disponibles. Los atributos \*\*de entidad relacionada \*\* se extraen con la forma simple: un objeto con la propiedad `__KEY` (llave primaria) y `URI`. Los atributos de las **entidades relacionadas** no se extraen. - Si se especifica `$attributes` para los atributos **de entidad relacionada**: - `$attributes=relatedEntity`: se devuelve la entidad relacionada con forma simple (propiedad __KEY diferida (llave primaria)) y `URI`. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md index dd48476a7fcfe5..6e2dfde4a12fb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$lock.md @@ -27,13 +27,13 @@ Los bloqueos activados por la API REST se colocan al nivel de la [sesión](authU Una entidad bloqueada se ve como *bloqueada* (es decir, las acciones de bloqueo / desbloqueo / actualización / eliminación no son posibles) por: - - outras sessões REST - - Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. +- outras sessões REST +- Processos 4D (cliente/servidor, datastore remoto, autónomo) em execução no servidor REST. Uma entidade bloqueada pela API REST só pode ser desbloqueada: - - por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` - - o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). +- por su bloqueador, es decir un `/?$lock=false` en la sesión REST que define `/?$lock=true` +- o si el [timeout de inactividad]($directory.md) de la sesión se alcanza (la sesión se cierra). ### Resposta diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 206f046a875fa3..3c9932bb4f93c7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -7,8 +7,8 @@ You can call [data model class functions](ORDA/ordaClasses.md) defined for the O Functions can be called in two ways: - - usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. - - usando solicitações **GET**, com parâmetros passados diretamente no URL. +- usando **POST requests**, com parâmetros de dados passados no corpo da solicitação. +- usando solicitações **GET**, com parâmetros passados diretamente no URL. POST requests provide a better security level because they avoid running sensitive code through an action as simple as clicking on a link. However, GET requests can be more compliant with user experience, allowing to call functions by entering an URL in a browser (note: the developer must ensure no sensitive action is done in such functions). @@ -96,11 +96,11 @@ You can send parameters to functions defined in ORDA user classes or singletons. As regras abaixo são válidas: - - Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. - - In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. - - Os parâmetros devem ser incluídos numa coleção (formato JSON). - - Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. - - A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. +- Nas funções chamadas por meio de solicitações POST, os parâmetros devem ser passados **no corpo da solicitação POST**. +- In functions called through GET requests, parameters must be passed **in the URL with "?$params=" syntax**. +- Os parâmetros devem ser incluídos numa coleção (formato JSON). +- Todos os tipos de dados escalares suportados nas coleções JSON podem ser passados como parâmetros. +- A entidade e a seleção de entidades podem ser passadas como parâmetros. The parameter list must contain specific attributes used by the REST server to assign data to the corresponding ORDA objects: `__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`. Veja [este exemplo](#using-an-entity-to-be-created-on-the-server) e [este exemplo](#receiving-an-entity-selection-as-parameter). @@ -134,8 +134,8 @@ Também é possível transmitir valores para quaisquer atributos da entidade. Es | __ENTITY | Parâmetros | Obrigatório - Verdadeiro para indicar ao servidor que o parâmetro é uma entidade | | __KEY | misto (do mesmo tipo que a chave primária) | Facultativo - Chave primária da entidade | - - Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. - - Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos +- Se `__KEY` não for fornecido, uma nova entidade é criada no servidor com os atributos fornecidos. +- Se `__KEY` for fornecido, a entidade correspondente a `__KEY` é carregada no servidor com os atributos fornecidos See examples below for creating or updating entities with POST requests. See an example of contents downloading using an entity with a GET request. 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 2a4dbdad883a65..f552e7d35b35e5 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 @@ -43,9 +43,9 @@ All other REST requests (handling data or executing a function) will only be pro As solicitações REST descritivas podem ser processadas em sessões de usuário Web que não exigem licenças (sessões "guest"). Essas solicitações são: - - Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis - - `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario - - `/rest/$getWebForm` - Renderização de uma página Qodly +- Solicitações [`/rest/$catalog`]($catalog.md) (por exemplo, `/rest/$catalog/$all`) - acesso às dataclasses disponíveis +- `/rest/$catalog/authentify` - la función del almacén de datos utilizada para iniciar sesión del usuario +- `/rest/$getWebForm` - Renderização de uma página Qodly ![alt-text](../assets/en/REST/force-login-1.jpeg) @@ -72,8 +72,8 @@ A função pode receber qualquer autenticação ou informação contextual como Esta função deve conter duas partes: - - some code to identify and authenticate the REST request sender, - - se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. +- some code to identify and authenticate the REST request sender, +- se a autenticação for bem-sucedida, uma chamada para [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) que atribui os privilégios apropriados à sessão. Se a função não chamar [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges), nenhum privilégio será atribuído, nenhuma licença será consumida e solicitações REST subsequentes não descritivas serão rejeitadas. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md index d9eebedfbac004..27aad6d6b81bb5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/gettingStarted.md @@ -9,8 +9,8 @@ El servidor REST está incluido en 4D y 4D Server, está automáticamente dispon Esta seção tem o objetivo de familiarizar com as funcionalidades REST com um exemplo simples. Nós vamos: - - criar e configurar um banco de dados 4D simples - - acessar aos dados do banco 4D através de REST usando um navegador padrão. +- criar e configurar um banco de dados 4D simples +- acessar aos dados do banco 4D através de REST usando um navegador padrão. Para simplificar o exemplo, vamos usar uma aplicação 4D e um navegador que são executados na mesma máquina. Também poderia usar uma arquitetura remota. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md index 30393392c3e856..fad2c4c98b5da4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/processes.md @@ -17,15 +17,15 @@ Existem também três botões de atalho que podem ser utilizados para filtrar o ![](../assets/en/Admin/server-process-buttons.png) - - **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. - - **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. - - **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos usuarios**: procesos generados por y para las sesiones usuarios. Estes processos são precedidos de um ícone sob a forma de uma persona. +- **Procesos 4D**: procesos generados por el motor de 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. +- **Procesos de reserva**: procesos inactivos pero que se mantienen temporalmente y que pueden reutilizarse en cualquier momento. Este mecanismo otimiza a reatividade do 4D Server. Estes processos são precedidos de um ícone com a forma de uma roda dentada. La opción **Mostrar los procesos por grupos** le permite agrupar los procesos internos de 4D Server así como los procesos cliente, para una mejor legibilidad. Quando você marcar essa opção: - - los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, - - é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), - - é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. +- los procesos cliente 4D "gemelos" (proceso cliente 4D principal y proceso base cliente 4D, véase [Tipo de proceso ](#process-type)) se agrupan como uno solo, +- é criado um grupo "Gestores de tarefas"; inclui os processos internos dedicados à divisão de tarefas (Equilibrador partilhado, Gestor de sessões de rede, Trabalhador do grupo exclusivo), +- é criado um grupo "Gestores de clientes", que inclui vários processos internos dos clientes. A área inferior da janela é utilizada para apresentar a representação gráfica da atividade do(s) processo(s) selecionado(s). @@ -83,15 +83,15 @@ A página também tem cinco botões de controle que atuam nos processos selecion ![](../assets/en/Admin/server-process-actions.png) - - **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. +- **Abortar proceso**: permite abortar el proceso o los procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. > You can also abort the selected process(es) directly without displaying the confirmation dialog box by holding down the **Alt** key while clicking on this button, or by using the [`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) command. - - **Pausar processo**: pode ser usado para pausar os processos selecionados. - - **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. - - **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). +- **Pausar processo**: pode ser usado para pausar os processos selecionados. +- **Activar proceso**: permite reactivar los procesos seleccionados. Os processos devem ter sido colocados em pausa anteriormente (utilizando o botão acima ou por programação); caso contrário, este botão não tem qualquer efeito. +- **Depurar proceso**: permite abrir en el equipo servidor una o varias ventanas de depuración para el proceso o procesos seleccionados. Quando clicar neste botão, aparece uma caixa de diálogo de aviso para que se possa confirmar ou cancelar a operação. Note que a janela do depurador só é exibida quando o código 4D for realmente executado na máquina do servidor (por exemplo, em um gatilho ou na execução de um método com o atributo "Execute on Server"). > También puede depurar un proceso directamente sin mostrar la caja de diálogo de confirmación manteniendo presionada la tecla **Alt** mientras presiona este botón. - - **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. +- **Ver usuarios**: permite visualizar, en la [página Usuarios](users.md), todos los procesos del usuario o usuarios seleccionados. Este botão está ativo quando pelo menos um processo do utilizador for selecionado. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md index 66fa7e9eb96532..c9786f2d62d820 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ServerWindow/real-time-monitor.md @@ -26,9 +26,9 @@ As informações seguintes são fornecidas para cada linha: A página está ativa e é atualizada permanentemente assim que é exibida. Note-se que o seu funcionamento pode atrasar significativamente a execução da aplicação. É possível suspender a atualização desta página de uma das seguintes maneiras: - - haciendo clic en el botón **Pausa**, - - clicando na lista, - - premindo a barra de espaços. +- haciendo clic en el botón **Pausa**, +- clicando na lista, +- premindo a barra de espaços. Al pausar la página, aparece el mensaje "PAUSED" y la etiqueta del botón cambia a **Reanudar**. Você pode retomar o monitoramento das operações realizando a mesma ação que realizar a pausa. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index e283eb9cf3a573..667ae23ab125a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -34,11 +34,11 @@ Em filePath, passe o caminho de destino e o nome do documento a ser importado. S Você pode especificar o formato do arquivo exportado incluindo uma extensão após o nome do documento: - - 4D View Pro (".4vp") - - Microsoft Excel (".xlsx") - - PDF (".pdf") - - CSV (".txt", ou ".csv") - - [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") +- 4D View Pro (".4vp") +- Microsoft Excel (".xlsx") +- PDF (".pdf") +- CSV (".txt", ou ".csv") +- [Documento SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (".sjs") Se a extensão não for incluída, mas o formato for especificado em *paramObj*, o arquivo exportado terá a extensão que corresponde ao formato, exceto para o formato CSV (nenhuma extensão é adicionada nesse caso). @@ -88,25 +88,25 @@ O parâmetro opcional *paramObj* permite que você defina várias propriedades p **Notas sobre o formato Excel**: - - Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. - - Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. +- Ao exportar um documento do 4D View Pro para um arquivo no formato Microsoft Excel, algumas configurações podem ser perdidas. Por exemplo, os métodos e fórmulas 4D não são suportados pelo Excel. You can verify other settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Usando o objeto *excelOptions* é recomendado ao exportar no formato ".xlsx". Certifique-se de não misturar esse objeto com propriedades legadas de primeiro nível (*password*, *includeBindingSource*...) para evitar problemas potenciais. **Notas sobre o formato PDF**: - - Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro em PDF, as fontes usadas no documento são automaticamente incorporadas ao arquivo PDF. Somente fontes OpenType (arquivos .OTF ou .TTF) com um mapa Unicode podem ser incorporadas. Se não for encontrado nenhum arquivo de fonte válido para uma fonte, será usada uma fonte padrão. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato CSV**: - - Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. - - Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Ao exportar um documento do 4D View Pro para CSV, algumas configurações podem ser perdidas, pois somente o texto e os valores são salvos. +- Todos os valores são guardados como cadeias de caracteres entre aspas duplas. For more information on delimiter-separated values, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values). +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. **Notas sobre o formato de arquivo SpreadJS**: - - Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. - - Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. +- Os [arquivos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) são arquivos compactados. +- Exporting in this format is run asynchronously, use the `formula` property of the *paramObj* for code to be executed after the export. Once the export operation is finished, `VP EXPORT DOCUMENT` automatically triggers the execution of the method set in the *formula* property of the *paramObj*, if used. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 9f8db97da06cb1..a69e8faeea2a78 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -5,7 +5,7 @@ title: VP Find -**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object } ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object +**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ) : Object
**VP Find** ( *rangeObj* : Object ; *searchValue* : Text ; *searchCondition* : Object ; *replaceValue* : Text ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md index 3a6361ba1ce077..fc90cc04ccc72f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-stylesheets.md @@ -23,8 +23,8 @@ Em *vpAreaName*, passe o nome da propriedade da área 4D View Pro. Se passar um You can define where to get the style sheets in the optional *sheet* parameter using the sheet index (counting begins at 0) or with the following constants: - - `vk current sheet` - - `vk workbook` +- `vk current sheet` +- `vk workbook` ## Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md index 47e8cd97ce06bf..40e8f143e18c79 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-get-value.md @@ -31,8 +31,8 @@ The object returned will contain the `value` property, and, in case of a js date Se o objetivo retornado incluir uma data ou hora, é tratado como uma datetime e completado como abaixo: - - valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy - - valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) +- valor hora - a porção da data se completa como dezembro, 30, 1899 em formato dd/MM/yyyy +- valor data - a parte da hora se completa como meia noite no formato HH:mm:ss (00:00:00) Se *rangeObj* contiver várias células ou vários intervalos, o valor da primeira célula é retornado. O comando retorna um objeto null se a célula estiver vazia. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 950f0b3fadd449..89009c2424490e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -32,10 +32,10 @@ Em *vpAreaName*, passe o nome da área 4D View Pro. Se passar um nome que não e Em *filePath*, passe o caminho de destino e o nome do documento a ser importado. São suportados os seguintes formatos: - - Os documentos 4D View Pro (extensão ".4vp") - - Microsoft Excel (extensão ".xlsx") - - documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) - - [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") +- Os documentos 4D View Pro (extensão ".4vp") +- Microsoft Excel (extensão ".xlsx") +- documentos textos (extensão ".txt", ".csv", o documento deve ser em utf-8) +- [Documentos SpreadJS](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (extensão ".sjs") If the document extension is not a recognized extension, such as `.4vp` or `.xlsx`, the document is considered a text document. Deve passar uma rota completa, a não ser que o documento esteja localizado no mesmo nível que a pasta Project, em cujo caso pode passar apenas seu nome. @@ -73,11 +73,11 @@ O parâmetro opcional *paramObj* permite definir as propriedades do documento im :::note Notas - - Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. - - Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - - For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) - - Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. - - A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. +- Importar arquivos em formatos .xslx, .csv, e .sjs é **assíncrona**. With these formats, you must use the `formula` attribute if you want to start an action at the end of the document processing. +- Quando importar um arquivo formatado em Excel em um documento 4D View Pro, algumas configurações podem ser perdidas. You can verify your settings with [this list from SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). +- For more information on the CSV format and delimiter-separated values in general, see [this article on Wikipedia](https://en.wikipedia.org/wiki/Delimiter-separated_values) +- Usando o objeto *excelOptions* é recomendado ao importar o formato ".xlsx". Make sure to not mix this object with legacy first level property *password* to avoid potiental issues. +- A função callback especificada no atributo `formula` é acionada depois que todas as [funções personalizadas 4D](../formulas.md#4d-functions) dentro do conteúdo importado tiverem concluído seus cálculos. This ensures that any dependent processes, such as document modifications or exports, are performed only after all formula-based computations are fully resolved. ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md index 042bb9c8815ff4..3095815f840351 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-remove-table-columns.md @@ -13,7 +13,7 @@ title: VP REMOVE TABLE COLUMNS -**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }}} ) +**VP REMOVE TABLE COLUMNS** ( *vpAreaName* : Text ; *tableName* : Text ; *column* : Integer {; *count* : Integer {; *sheet* : Integer }} ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index cb4d9c72d21047..a07d153673411c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -48,20 +48,20 @@ As folhas de cálculo são compostas por linhas e colunas. A cada linha está as ### Seleção de células, colunas e linhas - - Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. +- Para selecionar uma célula, basta clicar nela ou usar as setas de direção do teclado. O seu conteúdo (ou fórmula) é apresentado na célula. - - Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. +- Para selecionar várias células contínuas, arraste o mouse de uma extremidade da seleção para a outra. Você também pode clicar nas duas extremidades da seleção enquanto mantém pressionada a tecla Shift. - To select all cells in the spreadsheet, click on the cell at the top left of the area: ![](../assets/en/ViewPro/vpSelectAll.PNG) - - Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). +- Para selecionar uma coluna, clique na letra correspondente (ou conjunto de letras). - - Para selecionar uma linha, clique no número correspondente. +- Para selecionar uma linha, clique no número correspondente. - - Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. +- Para seleccionar un grupo de celdas que no sean continuas, mantenga presionada la tecla **Ctrl** (Windows) o la tecla **Comando** (Mac) y haga clic en cada celda que desee seleccionar. - - Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. +- Para anular a seleção de células, basta clicar em qualquer parte da folha de cálculo. ### Introdução de dados @@ -139,8 +139,8 @@ Você pode então passar `$myRange` para outro método 4D View Pro para modifica Os objectos intervalo 4D View Pro são compostos por várias propriedades: - - área - O nome da área 4D View Pro - - intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. +- área - O nome da área 4D View Pro +- intervalos - Uma coleção de objeto(s) intervalo. As propriedades disponíveis em cada objeto de intervalo dependem do tipo de objeto de intervalo. Por ejemplo, un objeto rango de tipo columna sólo incluirá las propiedades *.column* y *.sheet*. | Propriedade | | Tipo | Descrição | Disponível para | | ----------- | ------------------------------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | @@ -157,10 +157,10 @@ Os objectos intervalo 4D View Pro são compostos por várias propriedades: 4D View Pro suporta a importação e exportação de vários formatos de documentos: - - .4vp - - .xlsx - - .txt e .csv - - .sjs - - .pdf (apenas para exportação) +- .4vp +- .xlsx +- .txt e .csv +- .sjs +- .pdf (apenas para exportação) Para obter mais detalhes, confira a descrição de [VP IMPORT DOCUMENT](commands/vp-import-document.md) e [VP EXPORT DOCUMENT](commands/vp-export-document.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md index 217af63b46f897..836441d9b6ee0d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/from-qodlyscript-to-4d.md @@ -35,12 +35,12 @@ Some other items have a different case (ex: `this` vs `This`) but can be pasted QodlyScript command and constant names are written in camel case without spaces. Além disso, os nomes das constantes QodlyScript começam com a letra `k`. You might need to adapt these QodlyScript items to the 4D Language. - - Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. - - However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. +- Normalmente, você só precisará converter os nomes. Por exemplo, `newCollection` em QodlyScript é `New collection` em Linguagem 4D. +- However, some commands have been renamed for a better compliance, for example `atan` and `sqrt` are QodlyScript names for `Arctan` and `Square root` commands in 4D Language. ### Exemplo - - Código QodlyScript: +- Código QodlyScript: ```qs declare(entitySelection : 4D.EntitySelection) @@ -56,7 +56,7 @@ QodlyScript command and constant names are written in camel case without spaces. end ``` - - Código 4D equivalente no linguajem: +- Código 4D equivalente no linguajem: ```4d #DECLARE ( $entitySelection : 4D.EntitySelection ) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md index 977b254aee9de4..1d7161d9a2c5e7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/gettingStarted.md @@ -188,8 +188,8 @@ Nas seções acima, nós temos acesso gratuito à aplicação através de solici A maneira mais simples e segura para registrar um usuário no servidor da Web 4D é baseada no seguinte cenário: - - Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) - - La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. +- Los usuarios se almacenan en una tabla dedicada y no expuesta (llamada *WebUsers* por ejemplo) +- La tabla *WebUsers* podría estar [encriptada](MSC/encrypt.md) y almacena el login del usuario y un hash de su contraseña. 1. Criar uma tabela com alguns campos, por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 0b8acd50f8d5f4..1463e612fb2c56 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -42,15 +42,15 @@ Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser q - `On REST Authentication` - [`On Mobile App Authentication`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-authentication) e [`On Mobile App Action`](https://developer.4d.com/go-mobile/docs/4d/on-mobile-app-action) - - El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); +- El método proyecto `compilador_web` (independientemente de su propiedad real "Modo de ejecución"); - - Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml +- Basicamente, qualquer código processado pelo comando [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) no contexto Web, por exemplo, por páginas .shtml - - Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) +- Todo método proyecto con el atributo "Disponible a través de etiquetas 4D y URLs (`4DACTION`, etc.) - - Triggers para as tabelas com o atributo "Expor como recurso REST" +- Triggers para as tabelas com o atributo "Expor como recurso REST" - - [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST +- [funciones de clase del modelo de datos ORDA](../REST/ClassFunctions.md) llamadas vía REST For each of these methods and code parts, the compiler will check if the [thread-safety rules are respected](../Develop/preemptive.md#writing-a-thread-safe-method), and will return errors in case of issues. @@ -62,8 +62,8 @@ A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de Todos los comandos 4D relativos a la web son hilo seguro, *es decir*: - - todos los comandos del tema *Servidor Web*, - - todos los comandos del tema *Cliente HTTP*. +- todos los comandos del tema *Servidor Web*, +- todos los comandos del tema *Cliente HTTP*. Los métodos base relacionados con la web son hilo seguro y pueden utilizarse en modo apropiativo (ver arriba): `On Web Authentication`, `On Web Connection`, `On REST Authentication`...). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md index 48f067b2f19148..db7782b67a1684 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/templates.md @@ -19,16 +19,16 @@ El valor de la variable 4D *vtSiteName* se insertará en la página HTML. Estão disponíveis as seguintes etiquetas 4D: - - 4DTEXT, para inserir variáveis e expressões 4D como texto, - - 4DHTML, para inserir código HTML, - - 4DEVAL, para avaliar qualquer expressão 4D, - - 4DSCRIPT, para executar um método 4D, - - 4DINCLUDE, para incluir uma página dentro de outra, - - 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, - - 4DCODE, para inserir o código 4D, - - 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, - - 4DLOOP e 4DENDLOOP, para criar loops no código HTML, - - 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. +- 4DTEXT, para inserir variáveis e expressões 4D como texto, +- 4DHTML, para inserir código HTML, +- 4DEVAL, para avaliar qualquer expressão 4D, +- 4DSCRIPT, para executar um método 4D, +- 4DINCLUDE, para incluir uma página dentro de outra, +- 4DBASE, para modificar a pasta predefinida utilizada pela etiqueta 4DINCLUDE, +- 4DCODE, para inserir o código 4D, +- 4DIF, 4DELSE, 4DELSEIF e 4DENDIF, para inserir condições no código HTML, +- 4DLOOP e 4DENDLOOP, para criar loops no código HTML, +- 4DEACH e 4DENDEACH, para fazer loop em coleções, seleções de entidades ou propriedades de objetos. Estas etiquetas se describen en la página [Etiquetas de transformación](../Tags/transformation-tags.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md index 895a31a450f2aa..0e029a4c08341a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerAdmin.md @@ -17,9 +17,9 @@ O servidor web principal de 4D pode ser iniciado de diferentes maneiras: - 4D: menu **Executar\>Iniciar o servidor Web**
![](../assets/en/WebServer/start1.png) - 4D Server: botão **Iniciar servidor HTTP** da página Servidor HTTP
![](../assets/en/WebServer/start2.png) - - Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) +- Inicia automaticamente cada vez que a aplicação 4D é aberta. To do this, display the **Web\/Configuration** page of the Settings and select the **Launch Web Server at Startup** check box:
![](../assets/en/WebServer/config.png) - - Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. +- Programaticamente, chamando o comando [`webServer.start()`](API/WebServerClass.md#start) ou `WEB START SERVER`. O servidor Web de qualquer componente pode ser iniciado com a chamada da função [`webServer.start()`](API/WebServerClass.md#start) no objeto do servidor Web do componente. @@ -29,9 +29,9 @@ O servidor Web de qualquer componente pode ser iniciado com a chamada da funçã O servidor web principal de 4D pode ser parado de diferentes maneiras: - - Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). +- Utilizando el menú 4D **Ejecución\>Detener el servidor Web**, o vía el botón **Detener el servidor HTTP** de la página Servidor HTTP de 4D Server (ambos elementos muestran **Iniciar...** cuando el servidor no está ya iniciado). - - Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. +- Programmaticamente, chamando o comando [`webServer.stop()`](API/WebServerClass.md#stop) ou `WEB STOP SERVER`. El servidor web de cualquier componente puede detenerse llamando a la función `webServer.stop()` en el objeto servidor web del componente. @@ -53,8 +53,8 @@ A qualquer momento, você pode limpar o cache das páginas e imagens que ele con Para o fazer, pode: - - 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. - - 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. +- 4D: haga clic en el botón **Borrar la caché** de la página [Web/Opciones (I)](../settings/web.md) de la caja de diálogo Parámetros. +- 4D Server: haga clic en el botón **Borrar la caché** de la página HTTP de la ventana Administración de 4D Server. A cache é então imediatamente limpa. @@ -64,11 +64,11 @@ A cache é então imediatamente limpa. La página **Watch** (sección **Web**) del Explorador de ejecución muestra la información del servidor web, en particular: - - **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. +- **Uso de la caché web**: indica el número de páginas presentes en la caché web así como su porcentaje de uso. Esta informação só estará disponível se o servidor web estiver ativo e se o tamanho do cache for maior que 0. - - **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. +- **Tiempo de actividad del servidor web**: indica la duración del uso (en formato horas:minutos:segundos) del servidor web. Esta informação só está disponível se o servidor Web estiver ativo. - - **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. +- **Conteo de visitas web**: indica el número total de peticiones HTTP recibidas desde el arranque del servidor web, así como un número instantáneo de peticiones por segundo (medida tomada entre dos actualizaciones del Explorador de ejecución). Esta informação só está disponível se o servidor Web estiver ativo. ## URLs de administração @@ -123,8 +123,8 @@ La URL */4DWEBTEST* permite verificar el estado del servidor web. Quando esse UR 4D permite gerar dois logs de pedidos web: - - un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), - - un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). +- un historial de depuración, útil en la fase de desarrollo del servidor web (*HTTPDebugLog.txt*), +- un historial estandarizado de peticiones web, más bien utilizado con fines estadísticos (*logweb.txt*). Ambos archivos de historial se crean automáticamente en la carpeta **Logs** del proyecto de aplicación. @@ -223,15 +223,15 @@ Los parámetros de copia de seguridad automáticadel logweb.txt se definen en la First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. +- **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. - - **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. +- **Cada X semana(s), día a las X**: esta opción se utiliza para programar las copias de seguridad con una base semanal. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Digite 1 se quiser realizar o backup 1 vez por semana. Você pode selecionar vários dias da semana, se desejar. - - **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. +- **Cada X mes(es), el día X a las X**: esta opción se utiliza para programar las copias de seguridad con una base mensual. Digite 1 se quiser realizar uma cópia de segurança mensal. Quando essa opção estiver marcada, você deve indicar o dia do mês e a hora em que o backup deve ser iniciado. - - **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. +- **Todos los X MB**: esta opción se utiliza para programar las copias de seguridad en función del tamaño del archivo de registro actual. Um backup é automaticamente acionado quando o arquivo atinge o tamanho definido. Você pode definir um limite de tamanho de 1, 10, 100 ou 1000 MB. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index e51eb633529c2d..e6222856a3d812 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -82,29 +82,29 @@ Lista de hosts e métodos permitidos para o serviço CORS. Nome de domínio ou endereço IP de onde as páginas externas têm permissão para enviar solicitações de dados ao servidor via CORS. Vários atributos de domínio podem ser adicionados para criar uma lista branca. Várias sintaxes são suportadas: - - 192.168.5.17:8081 - - 192.168.5.17 - - 192.168.\* - - 192.168.\*:8081 - - http://192.168.5.17:8081 - - http://\*.myDomain.com - - http://myProject.myDomain.com - - \*.myDomain.com - - myProject.myDomain.com - - \* +- 192.168.5.17:8081 +- 192.168.5.17 +- 192.168.\* +- 192.168.\*:8081 +- http://192.168.5.17:8081 +- http://\*.myDomain.com +- http://myProject.myDomain.com +- \*.myDomain.com +- myProject.myDomain.com +- \* #### Métodos HTTP autorizados (propriedade methods) Método(s) HTTP aceite(s) para o host CORS correspondente. São suportados os seguintes métodos HTTP: - - GET - - HEAD - - POST - - PUT - - DELETE - - OPTIONS - - TRACE - - PATCH +- GET +- HEAD +- POST +- PUT +- DELETE +- OPTIONS +- TRACE +- PATCH Separar cada método com um ";" (por exemplo: "post;get"). Se methods estiver vazio, null ou indefinido, todos os métodos serão ativados. @@ -419,10 +419,10 @@ Versão mínima de TLS aceita para ligações. As tentativas de ligação de cli Valores possíveis: - - 1 = TLSv1_0 - - 2 = TLSv1_1 - - 3 = TLSv1_2 (padrão) - - 4 = TLSv1_3 +- 1 = TLSv1_0 +- 2 = TLSv1_1 +- 3 = TLSv1_2 (padrão) +- 4 = TLSv1_3 Se modificado, o servidor deve ser reiniciado para utilizar o novo valor. @@ -488,10 +488,10 @@ Por exemplo: Disallow: /GIFS/ ``` - - "User-Agent: \*" - todos os robôs são afetados. - - "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. - - "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. - - "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. +- "User-Agent: \*" - todos os robôs são afetados. +- "Disallow: /4D" - os robôs não têm permissão para acessar URLs que começam com /4D. +- "Disallow: /%23%23" - os robôs não têm permissão para acessar URLs que começam com /%23%23. +- "Disallow: /GIFS/' - os robôs não têm permissão para acessar a pasta /GIFS/ ou suas subpastas. Outro exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md index 13a20739a6d43d..74a343c263f4b0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerObject.md @@ -7,9 +7,9 @@ A 4D project can start and monitor a web server for the main (host) application Por exemplo, se você instalou dois componentes em sua aplicação principal, você pode iniciar e monitorar até três servidores web independentes em sua aplicação: - - um servidor web para a aplicação local, - - um servidor Web para o componente #1, - - um servidor Web para o componente #2. +- um servidor web para a aplicação local, +- um servidor Web para o componente #1, +- um servidor Web para o componente #2. Além da memória, não há limite para o número de componentes e, assim, de servidores web, que podem ser anexados a um único projeto de aplicação 4D. @@ -19,9 +19,9 @@ Cada servidor web 4D, incluido el servidor web de la aplicación principal, se e Cada servidor web (aplicação host ou componente) pode ser usado em seu próprio contexto separado, incluindo: - - las llamadas a los métodos base `On Web Authentication` y `On Web Connection` - - o processamento das etiquetas 4D e das chamadas de métodos, - - sessões Web e gestão do protocolo TLS. +- las llamadas a los métodos base `On Web Authentication` y `On Web Connection` +- o processamento das etiquetas 4D e das chamadas de métodos, +- sessões Web e gestão do protocolo TLS. Isso permite que você desenvolva componentes e recursos independentes que vêm com suas próprias interfaces web. @@ -48,8 +48,8 @@ webServer:=WEB Server(Web server database) Se a aplicação utilizar componentes e o usuário pretender chamar: - - o servidor Web da aplicação host a partir de um componente ou - - o servidor que recebeu o pedido (qualquer que seja o servidor), +- o servidor Web da aplicação host a partir de um componente ou +- o servidor que recebeu o pedido (qualquer que seja o servidor), também pode ser utilizado: @@ -94,8 +94,8 @@ Estas propriedades são definidas: 2. si no se utiliza, utilizando el comando `WEB SET OPTION` (sólo aplicaciones locales), 3. se não for usado, nos parâmetros da aplicação host ou do componente. - - Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. - - If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. +- Se o servidor web não for iniciado, as propriedades contêm os valores que serão usados na próxima inicialização do servidor web. +- If the web server is started, the properties contain the actual values used by the web server (default settings could have been overriden by the `settings` parameter of the [`.start()`](API/WebServerClass.md#start) function. > *isRunning*, *name*, *openSSLVersion*, and *perfectForwardSecrecy* are read-only properties that cannot be predefined in the `settings` object parameter for the [`start()`](API/WebServerClass.md#start) function. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index 9f57b41f63b0af..ae118bb3c8a11f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -24,9 +24,9 @@ The **WP Insert break** command ins Em *targetObj*, passe: - - um intervalo, ou - - an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or - - um documento 4D Write Pro +- um intervalo, ou +- an element (table / row / paragraph / body / header / footer / inline picture / section / subsection), or +- um documento 4D Write Pro In *breakType*, pass one of the following constants from the *4D Write Pro Constants* theme to define the type of break to insert: @@ -47,7 +47,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us | wk prepend | Integer | 1 | Insert contents at beginning of target | | wk replace | Integer | 0 | Replace target contents | - - If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: +- If *targetObj* is a range, you can use the optional *rangeUpdate* parameter to pass one of the following constants to specify whether or not the inserted contents are included in the resulting range: | Parâmetros | Tipo | Valor | Comentário | | --------------------- | ------- | ----- | ------------------------------------------------------------------------ | @@ -56,7 +56,7 @@ In the *mode* parameter, pass a constant to indicate the insertion mode to be us If you do not pass a *rangeUpdate* parameter, by default the inserted contents are included in the resulting range. - - Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. +- Se *targetObj* não for um intervalo, *rangeUpdate* será ignorado. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md index 491bc78f5d2554..23587c8ed23223 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-document-body.md @@ -24,9 +24,9 @@ The **WP Insert document body** commandO comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - - o formulário atual é um subformulário, - - um formulário de tabela é exibido na tela no momento. +- o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), +- o formulário atual é um subformulário, +- um formulário de tabela é exibido na tela no momento. ### Comandos (DIALOG...) Se o formulário atual estiver sendo exibido ou carregado por uma chamada aos comandos [DIALOG](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), **Form** retornará um dos dois: - - o objeto *formData* passado como parâmetro para esse comando, se houver, - - ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, - - ou um objeto vazio. +- o objeto *formData* passado como parâmetro para esse comando, se houver, +- ou, um objeto instanciado da [classe de usuário associada ao formulário](../FormEditor/properties_FormProperties.md#form-class), se houver, +- ou um objeto vazio. ### Subformulário @@ -50,7 +50,7 @@ Se o formulário atual for um subformulário, o objeto retornado dependerá da v (OBJECT Get pointer(Object subform container))-> ``` - - Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. +- Se a variável associada ao contêiner pai não foi tipada como um objeto, **Forma** retorna um objeto vazio, mantido por 4D no contexto do subformulário. Para mais informações, consulte a seção *Subformulários de Páginas*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 2128ff99f847fc..2ffe7e88a60ae7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -39,14 +39,14 @@ Se o novo índice elemento for além do último elemento existente da coleção Pode passar qualquer número de valores dos tipos compatíveis abaixo: - - número (real, longint....). Valores numéricos são sempre armazenados como reais. - - text - - boolean - - date - - hora (armazenada como número de milissegundos - real) - - null - - objeto compartido - - coleção compartilhada +- número (real, longint....). Valores numéricos são sempre armazenados como reais. +- text +- boolean +- date +- hora (armazenada como número de milissegundos - real) +- null +- objeto compartido +- coleção compartilhada :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 9932777fa589eb..06e4be9e27340c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -25,15 +25,15 @@ displayed_sidebar: docs No parâmetro *form*, você pode passar: - - o nome de um formulário, ou - - o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou - - um objeto contendo uma descrição do formulário. +- o nome de um formulário, ou +- o caminho (na sintaxe POSIX) para um arquivo .json válido que contém uma descrição do formulário a ser usado (consulte *Caminho do arquivo de formulário*), ou +- um objeto contendo uma descrição do formulário. Como **Imprimir formulário** não emite uma quebra de página após a impressão do formulário, é fácil combinar diferentes formulários na mesma página. Portanto, o **Print form** é perfeito para tarefas de impressão complexas que envolvam diferentes tabelas e diferentes formulários. Para forçar uma quebra de página entre os formulários, use o comando [PAGE BREAK](../commands-legacy/page-break.md). Para transferir a impressão para a próxima página em um formulário cuja altura seja maior que o espaço disponível, chame o comando [CANCEL](../commands-legacy/cancel.md) antes do comando [PAGE BREAK](../commands-legacy/page-break.md). Três sintaxes diferentes podem ser usadas: - - **Impressão da área de detalhe** +- **Impressão da área de detalhe** Sintaxe: @@ -43,7 +43,7 @@ Sintaxe: Nesse caso, **Imprimir formulário** imprime apenas a área de detalhes (a área entre a linha do cabeçalho e a linha de detalhes) do formulário. - - **Impressão da área do formulário** +- **Impressão da área do formulário** Sintaxe: @@ -79,7 +79,7 @@ Nesse caso, o comando imprimirá a seção designada pelo *marker*. Passe uma da | Form header8 | Integer | 208 | | Form header9 | Integer | 209 | - - **Impressão da seção** +- **Impressão da seção** Sintaxe: @@ -101,8 +101,8 @@ O valor retornado por **Print form** indica a altura da área impressa. Esse val As caixas de diálogo da impressora não são exibidas quando você usa **Print form**. O relatório não usa as configurações de impressão que foram atribuídas ao formulário no ambiente Design. Há duas maneiras de especificar as configurações de impressão antes de emitir uma série de chamadas para **Print form**: - - Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. - - Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. +- Chame [PRINT SETTINGS](../commands-legacy/print-settings.md). Nesse caso, você permite que o usuário escolha as configurações. +- Chame [SET PRINT OPTION](../commands-legacy/set-print-option.md) e [GET PRINT OPTION](../commands-legacy/get-print-option.md). Nesse caso, as configurações de impressão são especificadas de forma programática. **Print form**\* cria cada página impressa na memória. Cada página é impressa quando a página na memória está cheia ou quando você chama [PAGE BREAK] (../commands-legacy/page-break.md). Para garantir a impressão da última página após qualquer uso de **formulário de impressão**, você deve concluir com o comando [PAGE BREAK](../commands-legacy/page-break.md) (exceto no contexto de um [ABERTO PRINTING JOB](../commands-legacy/open-printing-job.md), ver nota). Caso contrário, se a última página não estiver cheia, ela permanecerá na memória e não será impressa. @@ -116,8 +116,8 @@ Esse comando imprime áreas e objetos externos (por exemplo, áreas 4D Write ou **4D Server:** Esse comando pode ser executado no 4D Server dentro da estrutura de um procedimento armazenado. Neste contexto: - - Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). - - No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. +- Certifique-se de que nenhuma caixa de diálogo seja exibida no computador do servidor (exceto por um requisito específico). +- No caso de um problema relacionado à impressora (falta de papel, impressora desconectada, etc.), nenhuma mensagem de erro é gerada. ## Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 8ef8463555262b..c35abaaaa85ce5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -44,7 +44,7 @@ O objeto retornado contém as propriedades abaixo: | type | Integer | Tipo de processo em execução. Valores possíveis: veja abaixo | | visible | Parâmetros | True if visible, false otherwise | - - Valores possíveis para "state": +- Valores possíveis para "state": | Parâmetros | Valor | | ------------------------- | ----- | @@ -57,7 +57,7 @@ O objeto retornado contém as propriedades abaixo: | Waiting for internal flag | 4 | | Paused | 5 | - - Valores possíveis para "type": +- Valores possíveis para "type": | Parâmetros | Valor | | ----------------------------- | ----- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md index 08307bb537735e..4fd62d255b810f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -13,8 +13,8 @@ As páginas Cliente-servidor agrupam parâmetros relacionados ao uso do banco de Essa opção permite que você indique se o banco de dados do 4D Server aparecerá ou não na lista de bancos de dados publicados. - - When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). - - Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. +- When this option is checked (default), the database is made public and appears in the list of published databases (**Available** tab). +- Quando a opção não estiver marcada, o banco de dados não será tornado público e não aparecerá na lista de bancos de dados publicados. Para se conectar, os usuários devem inserir manualmente o endereço do banco de dados na guia **Personalizado** da caixa de diálogo de conexão. :::note @@ -68,9 +68,9 @@ Quando o Single Sign On (SSO) estiver ativado (veja acima), você deverá preenc This drop-down box contains 3 network layer options to choose between: **legacy**, **ServerNet** and **QUIC** (only in project mode), which are used to handle communications between 4D Server and remote 4D machines (clients). - - **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). - - **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). - - **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. +- **Legacy**: This former "legacy" network layer is still supported in order to ensure compatibility for databases created prior to v15. Essa camada de rede também pode ser ativada por programação usando o comando [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md). +- **ServerNet** (por padrão): ativa a camada de rede ServerNet no servidor (disponível desde 4D v15). +- **QUIC** (disponible solo en modo proyecto): activa la capa de red QUIC en el servidor. **Notas**: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md index 6921cdc43ce710..bb202f65a5dfe4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/compatibility.md @@ -11,7 +11,7 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m - **Use legacy network layer**: Starting with 4D v15, 4D applications propose a new network layer, named *ServerNet*, to handle communications between 4D Server and remote 4D machines (clients). A antiga camada de rede tornou-se obsoleta, mas é mantida para garantir a compatibilidade com as bases de dados existentes. Usando esta opção, você pode ativar a antiga camada de rede a qualquer momento nos seus aplicativos do servidor 4D dependendo das suas necessidades. *ServerNet* é usado automaticamente para novos bancos de dados e bancos de dados convertidos a partir de uma versão v15 ou posterior. Observe que, em caso de modificação, você precisa reiniciar o aplicativo para que a mudança seja levada em conta. Todos os aplicativos clientes que foram conectados também devem ser reiniciados para poderem se conectar à nova camada de rede. **Nota:** esta opção também pode ser gerenciada programando usando o comando `SET DATABASE PARAMETER`. - - **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: +- **Usar XPath padrão:** oor padrão, essa opção está desmarcada para bancos de dados convertidos de uma versão 4D anterior à v18 R3 e marcada para bancos de dados criados com 4D v18 R3 e superior. A partir da v18 R3, a implementação do XPath no 4D foi modificada para ser mais compatível e suportar mais previsões. Consequentemente, as características não convencionais da anterior implementação já não funcionam. Estes incluem: - inicial "/" não é apenas o nó raiz - usar um / como primeiro caractere em uma expressão XPath não declara um caminho absoluto do nó raiz - não há nó atual implícito - o nó atual tem que ser incluído na expressão XPath @@ -19,12 +19,12 @@ Os grupos de páginas de compatibilidade juntam parâmetros relacionados com a m Although not standard, you might want to keep using these features so that your code continues to work as before -- in this case, just set the option *unchecked*. Por outro lado, se seu código não depender da implementação não padrão e se você quiser se beneficiar dos recursos estendidos do XPath em seus bancos de dados (como descrito no [`elemento DOM Find XML`](../commands-legacy/dom-find-xml-element.md) comando), certifique-se que a opção **Use XPath** padrão está *marcada*. - - **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Use LF for end of line on macOS:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files with line feed (LF) as default end of line (EOL) character instead of CR (CRLF for xml SAX) on macOS in new projects. Se você deseja se beneficiar deste novo comportamento em projetos convertidos de versões anteriores da 4D, marque esta opção. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). +- **Don't add a BOM when writing a unicode text file by default:** Starting with 4D v19 R2 (and 4D v19 R3 for XML files), 4D writes text files without a byte order mark (BOM) by default. Nas versões anteriores, os arquivos texto eram gravados com um BOM por padrão. Selecione esta opção se quiser ativar o novo comportamento nos projetos convertidos. Consulte [`TEXT TO DOCUMENT`](../commands-legacy/text-to-document.md), [`Document to text`](../commands-legacy/document-to-text.md) e [XML SET OPTIONS](../commands-legacy/xml-set-options.md). - - **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). +- **Map NULL values to blank values unchecked by default a field creation**: For better compliance with ORDA specifications, in databases created with 4D v19 R4 and higher the **Map NULL values to blank values** field property is unchecked by default when you create fields. Você pode aplicar esse comportamento padrão aos seus bancos de dados convertidos marcando esta opção (trabalhar com valores Null é recomendado, uma vez que são totalmente suportados por [ORDA](../ORDA/overview.md). - - **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). +- **Non-blocking printing**: Starting with 4D v20 R4, each process has its own printing settings (print options, current printer, etc.), thus allowing you to run multiple printing jobs simultaneously. Check this option if you want to benefit from this new implementation in your converted 4D projects or databases converted from binary mode to project mode. **When left unchecked**, the previous implementation is applied: the current 4D printing settings are applied globally, the printer is placed in "busy" mode when one printing job is running, you must call `CLOSE PRINTING JOB` for the printer to be available for the next print job (check previous 4D documentations for more information). - - **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file +- **Salvar cores da estrutura e coordenadas em um arquivo catalog_editor.json file**: começando com 4D v20 R5, alterações feitas no editor de estrutura sobre a aparência gráfica das tabelas e campos (cor, posição, ordem...) são salvos em um arquivo separado chamado `catalog_editor.json`, armazenado na [pasta de códigos](../Project/architecture.md#sources). Esta nueva arquitectura de archivos facilita la gestión de conflictos en aplicaciones VCS, ya que el archivo `catalog.4DCatalog` ahora contiene sólo cambios cruciales en la estructura de la base de datos. For compatibility reasons, this feature is not enabled by default in projects converted from previous 4D versions, you need to check this option. Cuando la función está habilitada, el archivo `catalog_editor.json` se crea en la primera modificación en el editor de estructuras. \ No newline at end of file diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md index 41b003b167ebfe..9b249ce8754399 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/interface.md @@ -23,9 +23,9 @@ A fonte padrão e seu tamanho dependem da plataforma onde 4D está sendo executa Outras opções configuram a exibição de várias janelas no modo Aplicativo. - - **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. +- **Pantalla de inicio**: cuando esta opción no está seleccionada, la [pantalla de inicio de la barra de menú actual](Menus/bars.md#splash-screen) no aparece en modo Aplicación. Cuando oculte esta ventana, le corresponderá gestionar la visualización de todas sus ventanas por programación, por ejemplo en el método base `On Startup`. - - **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. +- **Escritura de caché**: cuando esta opción está marcada, 4D muestra una ventana en la parte inferior izquierda de la pantalla mientras se vacían los datos de la caché. Como esta operação bloqueia temporariamente ações do usuário, exibindo esta janela permite que ele saiba que o movimento está em andamento. :::note @@ -33,9 +33,9 @@ Puede definir la [frecuencia de escritura de la caché](database.md#memory-page) ::: - - **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. +- **Progreso de la impresión**: permite, durante la impresión, activar o desactivar la visualización de la caja de diálogo de progreso de la impresión. - - **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: +- **Usar modo SDI en Windows**: cuando esta opción está marcada, 4D habilita automáticamente el [modo SDI (Single-Document Interface)](../Menus/sdi.md) en su aplicación cuando se ejecuta en un [contexto soportado](../Menus/sdi.md#sdi-mode-availability). Al seleccionar esta opción, en Windows el menú **Ejecutar** de la barra de menú de 4D le permite seleccionar el modo en el que desea probar la aplicación: ![](../assets/en/settings/sdi-mdi.png) @@ -63,8 +63,8 @@ Os seguintes esquemas estão disponíveis: O esquema de aplicação principal será aplicado aos formulários por defeito. No entanto, ele pode ser substituído: - - por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; - - utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". +- por el comando [SET APPLICATION COLOR SCHEME](../commands-legacy/set-application-color-scheme.md) a nivel de la sesión de trabajo; +- utilizando la propiedad de formulario [Color Scheme](../FormEditor/propertiesForm.html#color-scheme) en cada nivel de formulario (nivel de prioridad más alto). **Nota:** cuando se imprimen, los formularios utilizan siempre la paleta "Light". ## Atalhos @@ -72,9 +72,9 @@ Você usa a área de atalhos para visualizar e modificar atalhos padrão para tr Os atalhos predefinidos são os seguintes: - - Aceptación de formulario de entrada: **Entrada** - - Anulación de entrada: **Esc** - - Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) +- Aceptación de formulario de entrada: **Entrada** +- Anulación de entrada: **Esc** +- Añadir al subformulario: **Ctrl+Mayús+/** (Windows) o **Comando+Mayús+/** (macOS) Para cambiar el acceso directo de una operación, haga clic en el botón **Editar** correspondiente. Aparece a seguinte caixa de diálogo: 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 59cf606f92fedb..0367e339700974 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 @@ -78,9 +78,9 @@ Quando esta opção é selecionada, o servidor web não fornece nenhum suporte e Neste modo, pode configurar parâmetros do servidor Web adicionais: - - [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) - - [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) - - [Usar processos preemptivos](#use-preemptive-processes) +- [Máximo de Processos Web Concorrentes](#maximum-concurrent-web-processes) +- [Reutilização dos contextos temporários (4D em modo remoto)](#reuse-temporary-contexts) +- [Usar processos preemptivos](#use-preemptive-processes) #### Sessões herdadas (sessões de processo único) @@ -166,7 +166,7 @@ Inicia o detiene el registro de las peticiones recibidas por el servidor web 4D O menu de formato do histórico oferece as seguintes opções: - - **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. +- **Sem arquivo de registro**: Quando esta opção for selecionada, o 4D não irá gerar um arquivo de registro de requisições. - **CLF (Formato de Log Comum)**: Quando esta opção for selecionada, o log de pedidos é gerado no formato CLF Com o formato CLF, cada linha do arquivo representa uma solicitação, como:\ host rfc931 usuário [DD/MMM/AAAA:HH:MM:SS] "solicitação" estado tamanho\ @@ -179,9 +179,9 @@ O menu de formato do histórico oferece as seguintes opções: > A data e a hora são locais para o servidor. - - petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) - - estado: resposta dada pelo servidor. - - length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. +- petição: petição enviada pelo cliente (por exemplo, GET /index.htm HTTP/1.0) +- estado: resposta dada pelo servidor. +- length: tamanho dos dados devolvidos (exceto o cabeçalho HTTP) ou 0. > **Nota:** Por razões de desempenho, as operações são salvas em um buffer de memória em pacotes de 1Kb antes de serem escritas em disco. As operações também são gravadas no disco se nenhuma solicitação tiver sido enviada a cada 5 segundos. > Os valores possíveis de estado são os seguintes: @@ -195,16 +195,16 @@ O menu de formato do histórico oferece as seguintes opções: > 500: Internal error > O formato CLF não pode ser personalizado. - - **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. +- **DLF (Combined Log Format)**: Quando esta opção é selecionada, o registro de solicitações é gerado no formato DLF. O formato DLF é semelhante ao formato CLF e usa a mesma estrutura. Simplesmente adiciona dois campos HTTP adicionais no final de cada solicitação: Referer e User-agent. - Referer: contém o URL da página que aponta para o documento solicitado. - User-agent: contém o nome e a versão do navegador ou software cliente que origina a solicitação. > O formato DLF não pode ser personalizado. - - **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. +- **ELF (Extended Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato ELF. O formato ELF está muito difundido no mundo dos navegadores HTTP. Ele pode ser usado para criar registros sofisticados que atendam a necessidades específicas. Por esse motivo, o formato ELF pode ser personalizado: é possível escolher os campos a serem registrados, bem como sua ordem de inserção no arquivo. - - **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. +- **WLF (WebStar Log Format)**: Quando essa opção é selecionada, o registro da solicitação é gerado no formato WLF. O formato WLF foi desenvolvido especificamente para o servidor 4D WebSTAR. Ele é semelhante ao formato ELF, com apenas alguns campos adicionais. Tal como o formato ELF, pode ser personalizado. **Configuração dos campos** Quando você escolhe o formato ELF (Extended Log Format) ou WLF (WebStar Log Format), a área "Weg Log Token Selection" exibe os campos disponíveis para o formato escolhido. Você precisará selecionar cada campo a ser incluído no registro. You will need to select each field to be included in the log. To do so, check the desired fields. @@ -244,8 +244,8 @@ A tabela a seguir lista os campos disponíveis para cada formato (em ordem alfab Configure the automatic backup parameters for the request log. Configure the automatic backup parameters for the request log. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. First you must choose the frequency (days, weeks, etc.) or the file size limit criterion by clicking on the corresponding radio button. Você deve então especificar o momento exato do backup, se necessário. - - **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. - - **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. +- **Sin copia de seguridad**: la función de copia de seguridad programada está desactivada. +- **Cada X hora(s)**: esta opción se utiliza para programar las copias de seguridad con una base horaria. Pode digitar um valor entre 1 e 24. - **a partir de**: permite definir la hora de activación de la primera copia de seguridad. - **Cada X día(s) a las X**: esta opción se utiliza para programar las copias de seguridad con una base diaria. Introduza 1 se pretender efetuar uma cópia de segurança diária. Quando essa opção estiver marcada, você deve indicar a hora em que o backup deve ser iniciado. @@ -265,9 +265,9 @@ Para obter mais informações sobre o suporte de serviços da Web em 4D, consult Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" de serviços da Web, ou seja, a publicação de métodos projeto na forma de serviços Web. - - **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. - - **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. - - **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. +- **Autorizar peticiones de servicios web**: Esta opção permite que você inicialize a publicação de Serviços Web. Se essa opção não tiver sido marcada, o 4D recusará solicitações SOAP e não gerará um WSDL, mesmo que os métodos tenham o atributo *Published in WSDL*. Quando essa opção está marcada, 4D cria o arquivo WSDL. +- **Nome do Serviço Web**: Esta área permite que você altere o "nome genérico" do Serviço Web. Esse nome é usado para diferenciar os serviços no nível do servidor SOAP (quando o servidor publica vários serviços Web diferentes), bem como nos diretórios de serviços Web. Por padrão, 4D usa o nome A_WebService. +- **Namespace de Serviços Web**: Essa área é usada para alterar o namespace dos serviços da Web publicados por 4D. Cada serviço Web publicado na Internet deve ser único. A singularidade dos nomes dos Serviços Web é assegurada pelo uso de namespaces XML. Um namespace é uma cadeia de caracteres arbitrária usada para identificar um conjunto de tags XML de forma exclusiva. Normalmente, o namespace começa com a URL da empresa (http://mycompany.com/mynamespace). Nesse caso, não é indispensável ter algo em particular no URL indicado; o que importa é que a cadeia de caracteres usada seja exclusiva. Por padrão, o 4D usa o seguinte namespace: http://www.4d.com/namespace/default. > Em conformidade com o padrão XML para nomes de etiquetas, as cadeias de caracteres usadas não devem conter espaços nem começar com um número. Além disso, para evitar qualquer risco de incompatibilidade, recomendamos que você não use nenhum caractere estendido (como caracteres acentuados). @@ -275,7 +275,7 @@ Essa área contém várias opções relacionadas ao uso de 4D como um "servidor" Essa área contém várias opções relacionadas ao uso de 4D como um "cliente" de serviços Web, ou seja, a assinatura de serviços publicados na rede. - - **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". +- **Prefixo do Método do Wizard**: Esta área permite que você altere o prefixo que é adicionado automaticamente por 4D ao nome dos métodos proxy gerados pelo Assistente de Serviços Web. Os métodos do projeto de proxy formam um link entre a aplicação 4D e o servidor de Serviços Web. Por padrão, 4D usa o prefixo "proxy_". ## Funcionalidades Web @@ -309,9 +309,9 @@ Esse botão só está disponível em projetos abertos com a aplicação 4D (usu O botão aciona a seguinte sequência de atualização: - - O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. - - O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). - - Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. +- O grupo de usuários da API REST definido no menu **Leitura/Escrita** é removido. +- O método de banco de dados `On REST Authentication` é excluído (movido para a lixeira do sistema). +- Um arquivo padrão ["roles.json"](../ORDA/privileges.md#rolesjson-file) é criado na pasta [Sources](../Project/architecture.md#sources) do projeto, caso ainda não exista, com seu atributo `forceLogin` como `True`. Lembre-se de reiniciar seu projeto após realizar essa atualização. From eb6ec28d9510bc13a7d01188e983878169932773 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 2 Sep 2025 09:54:28 +0200 Subject: [PATCH 035/119] New Crowdin updates (#2887) * New translations onwindowopeningdenied.md (French) * New translations overview.md (French) * New translations develop-components.md (French) * New translations updates.md (French) * New translations onwindowopeningdenied.md (French) * New translations overview.md (French) * New translations develop-components.md (French) * New translations onwindowopeningdenied.md (French) * New translations overview.md (French) * New translations develop-components.md (French) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations database.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations orda-events.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations database.md (Spanish) * New translations generate-uuid.md (Spanish) * New translations generate-uuid.md (Spanish) * New translations updates.md (Japanese) --- i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + 2 files changed, 2 insertions(+) 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 c66c7f4e3f5b79..37f2e19f75c9b1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -100,6 +100,7 @@ Dans les bases de données binaires, vous devez sélectionner les composants req - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. #### Developer Preview 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 5354ab71427490..5470f7d864a470 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -101,6 +101,7 @@ In binary databases, you need to select the required components in the 4D instal - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. #### デベロッパー・プレビュー From d8597cd2081c30d45b1cad5958fc6038d27e18bc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 3 Sep 2025 10:04:58 +0200 Subject: [PATCH 036/119] New Crowdin updates (#2889) * New translations develop-components.md (French) * New translations develop-components.md (French) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Spanish) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Japanese) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations sdi.md (Spanish) * New translations sdi.md (Spanish) * New translations sdi.md (Spanish) * New translations updates.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations sdi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) --- 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 2a241e00bb28bf..e7ad7e9f9ee497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -100,6 +100,7 @@ In binary databases, you need to select the required components in the 4D instal - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. #### Prévia do desenvolvedor From d74d82a9dcce4314b37bcb5a78dcb116f47d0589 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 3 Sep 2025 15:00:40 +0200 Subject: [PATCH 037/119] Revert "Merge branch 'tempo2'" This reverts commit 67d833a82025aec3a45f3da8325d14b46bb37247, reversing changes made to ba2aad937673a1d5bf69fbbf489d43a058f27d47. --- docs/API/SessionClass.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/API/SessionClass.md b/docs/API/SessionClass.md index 1ad435a7823c29..ed2886e8de489f 100644 --- a/docs/API/SessionClass.md +++ b/docs/API/SessionClass.md @@ -58,10 +58,6 @@ The availability of properties and functions in the `Session` object depends on |[](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) ## .clearPrivileges() From 19c9d4b85e81205644f202d49db587195bf8aa4a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 3 Sep 2025 15:14:45 +0200 Subject: [PATCH 038/119] Reapply "Merge branch 'tempo2'" This reverts commit 97265662bbc3f82dac357affcf7decc64bc068b1. --- docs/API/SessionClass.md | 4 + docs/Develop-legacy/field-properties.md | 19 ++ .../current/Notes/updates.md | 7 + .../current/WebServer/sessions.md | 2 +- .../version-20-R10/ORDA/entities.md | 2 +- .../version-21/WebServer/sessions.md | 2 +- .../current/Notes/updates.md | 6 + .../current/Events/onWindowOpeningDenied.md | 2 +- .../current/Notes/updates.md | 7 + .../Events/onWindowOpeningDenied.md | 2 +- .../Events/onWindowOpeningDenied.md | 2 +- .../current/Notes/updates.md | 6 + .../Develop-legacy/field-properties.md | 19 ++ .../version-20-R10/commands-legacy/string.md | 171 +++++++++++++----- 14 files changed, 197 insertions(+), 54 deletions(-) create mode 100644 docs/Develop-legacy/field-properties.md create mode 100644 versioned_docs/version-20-R10/Develop-legacy/field-properties.md diff --git a/docs/API/SessionClass.md b/docs/API/SessionClass.md index ed2886e8de489f..1ad435a7823c29 100644 --- a/docs/API/SessionClass.md +++ b/docs/API/SessionClass.md @@ -58,6 +58,10 @@ The availability of properties and functions in the `Session` object depends on |[](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) ## .clearPrivileges() diff --git a/docs/Develop-legacy/field-properties.md b/docs/Develop-legacy/field-properties.md new file mode 100644 index 00000000000000..ac93ddd8139aa9 --- /dev/null +++ b/docs/Develop-legacy/field-properties.md @@ -0,0 +1,19 @@ +--- +id: field-properties +title: Field properties +--- + +For more field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R9/4D/20-R9/Field-properties.300-7543749.en.html#5523008). + +## Class + +//Add screenshot + + +This property is only available for fields of type **Object**. + +It allows you to define a **class-typed object field** in the database structure, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. + +When a value is assigned to an entity's object field, 4D ensures that the object belongs to the declared class. + + 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 a8506312f9bf45..a007d2792e3a9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -182,6 +182,13 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +#### Cambios de comportamiento + + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + + ## 4D 20 R10 Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R10. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md index b2a3a87835a17c..7c85db439ae724 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -36,7 +36,7 @@ Esta opción está seleccionada por defecto en los nuevos proyectos. Sin embargo - Usando la propiedad [`.scalableSession`](API/WebServerClass.md#scalablesession) del objeto Servidor Web (para pasar el parámetro *settings* de la función [`.start()`](API/WebServerClass.md#start)). En este caso, esta configuración anula la opción definida en la caja de diálogo Configuración del objeto Servidor Web (no se almacena en el disco). -> El comando [`WEB SET OPTION`](../commands-legacy/web-set-option.md) también puede definir el modo de sesión para el servidor Web principal. +> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. En cualquier caso, la configuración es local para la máquina; por lo que puede ser diferente en el servidor web de 4D Server y en los servidores web de las máquinas 4D remotas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 7a2db28e32c11f..77c276c1f14faf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -564,7 +564,7 @@ Este mecanismo automático se basa en el concepto de "bloqueo optimista", especi El siguiente diagrama ilustra el bloqueo optimista: -1. Dos procesos cargan la misma entidad.

![](../assets/en/ORDA/optimisticLock1.png) +1. Two processes load the same entity.

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

![](../assets/en/ORDA/optimisticLock2.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index b2a3a87835a17c..7c85db439ae724 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -36,7 +36,7 @@ Esta opción está seleccionada por defecto en los nuevos proyectos. Sin embargo - Usando la propiedad [`.scalableSession`](API/WebServerClass.md#scalablesession) del objeto Servidor Web (para pasar el parámetro *settings* de la función [`.start()`](API/WebServerClass.md#start)). En este caso, esta configuración anula la opción definida en la caja de diálogo Configuración del objeto Servidor Web (no se almacena en el disco). -> El comando [`WEB SET OPTION`](../commands-legacy/web-set-option.md) también puede definir el modo de sesión para el servidor Web principal. +> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. En cualquier caso, la configuración es local para la máquina; por lo que puede ser diferente en el servidor web de 4D Server y en los servidores web de las máquinas 4D remotas. 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 37f2e19f75c9b1..6edf9dbce7625d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,6 +171,12 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +#### Changements de comportement + + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 Lisez [**Les nouveautés de 4D 20 R10**](https://blog.4d.com/fe-whats-new-in-4d-20-R10/), l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R10. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md index a2e307612375f4..75d41d3b6ffc48 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: +This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド 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 5470f7d864a470..db7e69e1921a70 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -172,6 +172,13 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +#### 動作の変更 + + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + + ## 4D 20 R10 [**4D 20 R10の新機能**](https://blog.4d.com/en-whats-new-in-4d-20-R10/) 4D 20 R10 の新機能と拡張機能をすべてリストアップしたブログ記事です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md index a2e307612375f4..75d41d3b6ffc48 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: +This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md index a2e307612375f4..75d41d3b6ffc48 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: +This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド 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 e7ad7e9f9ee497..5ceb3806dcf953 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,6 +171,12 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +#### Mudanças de comportamento + + - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. + - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. + - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). + ## 4D 20 R10 Leia [**O que há de novo no 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R10. diff --git a/versioned_docs/version-20-R10/Develop-legacy/field-properties.md b/versioned_docs/version-20-R10/Develop-legacy/field-properties.md new file mode 100644 index 00000000000000..ac93ddd8139aa9 --- /dev/null +++ b/versioned_docs/version-20-R10/Develop-legacy/field-properties.md @@ -0,0 +1,19 @@ +--- +id: field-properties +title: Field properties +--- + +For more field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R9/4D/20-R9/Field-properties.300-7543749.en.html#5523008). + +## Class + +//Add screenshot + + +This property is only available for fields of type **Object**. + +It allows you to define a **class-typed object field** in the database structure, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. + +When a value is assigned to an entity's object field, 4D ensures that the object belongs to the declared class. + + diff --git a/versioned_docs/version-20-R10/commands-legacy/string.md b/versioned_docs/version-20-R10/commands-legacy/string.md index cc08380ade3288..39dde66bd5e2d7 100644 --- a/versioned_docs/version-20-R10/commands-legacy/string.md +++ b/versioned_docs/version-20-R10/commands-legacy/string.md @@ -5,27 +5,58 @@ slug: /commands/string displayed_sidebar: docs --- -**String** ( *expression* {; *format* {; *addTime*}} ) : Text +**String** ( *expression* {; *format* {; *addTime*}} ) : Text
**String** ( *expression* ; *base* ) : Text | Parameter | Type | | Description | | --- | --- | --- | --- | -| expression | Expression | → | Expression for which to return the string form (can be Real, Integer, Long Integer, Date, Time, String, Text, Boolean, Undefined, or Null) | +| expression | Expression | → | Expression for which to return the string form (can be Real, Integer, Long Integer, Date, Time, Text, Boolean, Undefined, or Null) | | format | Integer, Text | → | Display format | | addTime | Time | → | Time to add on if expression is a date | +| base | Integer | → | Value between 2 and 36 that represents the radix if expression is a number| | Function result | Text | ← | String form of the expression | + +
History + +|Release|Changes| +|---|---| +|21|Support of *base* parameter| + +
+ + + + ## Description -The String command returns the string form of the numeric, Date, Time, string or Boolean expression you pass in *expression*. +The **String** command returns the string form of the numeric, Date, Time, string or Boolean expression you pass in *expression*. -If you do not pass the optional *format* parameter, the string is returned with the appropriate default format. If you pass *format*, you can force the result string to be of a specific format. +If you do not pass any other parameter, the string is returned with the appropriate default format. If you pass *format*, you can force the result string to be of a specific format. The optional *addTime* parameter adds a time to a date in a combined format. It can only be used when the *expression* parameter is a date (see below). -**Numeric Expressions** -If *expression* is a numeric expression (Real, Integer, Long Integer), you can pass an optional string format. Following are some examples: +The optional *base* parameter can only be used with a numeric *expression*, it returns the number in the specified base (see below). + +### Numeric Expressions + +When you use the **String** command with a numeric *expression* (Real, Integer, Long Integer), two syntaxes are available: + +- **String(number{;format})** +- **String(number;base)** + +:::note + +The **String** function is not compatible with "Integer 64 bits" type fields in compiled mode. + +::: + +#### String(number{;format}) + +If you do not pass the optional *format* parameter, the string is returned with the default number format. + +The format is specified in the same way as it would be for a [number input on a form](../FormObjects/properties_Display.md#number-format). You can also pass the name of a custom style in *format*. The custom style name must be preceded by the `|` character. Following are some examples: | **Example** | **Result** | **Comments** | | ---------------------------------- | -------------------- | ------------------------------- | @@ -44,17 +75,50 @@ If *expression* is a numeric expression (Real, Integer, Long Integer), you can p | String(50.3;"&xml") | "50.3" | Always "." as decimal separator | | String(Num(1=1);"True;;False") | "True" | | | String(Num(1=2);"True;;False") | "False" | | -| String(Log(-1)) | "" | Undefined number | +| String(Log(-1)) | "" | Not a number | | String(1/0) | "INF" | Positive infinite number | | String(-1/0) | "-INF" | Negative infinite number | -(\*) The algorithm for converting real values into text is based on 13 significant digits. +(\*) The algorithm for converting real values into text is based on 13 significant digits, see [`SET REAL COMPARISON LEVEL`](../commands-legacy/set-real-comparison-level.md). + +#### String(number;base) + +Using a *base* parameter (integer) triggers a specific mode in which you pass the radix (base) of the number to be returned. In particular, this syntax allows you to convert numbers to hexadecimal strings. + +In the *base* parameter, pass the radix of the number in *expression*. You can pass any integer value between 2 and 36. + +If you pass 0 in *base*, the command determines the radix depending on the *expression* value. If *expression* starts with "0x", base 16 is used. Otherwise, base 10 is used. + -The format is specified in the same way as it would be for a number field on a form. See the section *Display formats* in the 4D Design Reference manual for more information about formatting numbers. You can also pass the name of a custom style in *format*. The custom style name must be preceded by the *“|”* character. -**Note:** The **String** function is not compatible with "Integer 64 bits" type fields in compiled mode. +:::info + +- This syntax strictly follows the [`toString` EcmaScript specification regarding radix handling](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.prototype.tostring). +- Using this syntax with *base*=10 will not give exactly the same results as using the syntax without *base* parameter. For example, if the specified number value is not a number, the "NaN" string is returned. + +::: + +| **Example** | **Result** | **Comments** | +| ---------------------------------- | -------------------- | ------------------------------- | +| String(10;2) | "1010" | binary string | +| String(-10;2) | "-1010" | binary string (negative)| +| String(254;16) | "fe" | hexadecimal string | +| String(-16523461; 16)| "-fc20c5" | hexadecimal string (negative) | +| String(Log(-1); 10)| "NaN" | Not a number | +| String(1/0; 10) | "NaN" | Not a number | +| String(-1/0; 10) | "NaN" | Not a number | + + +:::note + +If the specified number value is negative, the sign is preserved. This is the case even if the radix is 2; the returned string is > N, the positive binary representation of the number value preceded by a - sign. + +::: + + + +### Date Expressions -**Date Expressions** If *expression* is a Date expression and if you omit the *format* parameter, the string is returned using the default format specified in the system. Otherwise, in the *format* parameter, you can pass: @@ -62,19 +126,19 @@ Otherwise, in the *format* parameter, you can pass: * either a predefined format available though the following constants of the *Date Display Formats* theme (longint value): -| Constant | Value | Comment | -| --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------- | +| Constant | Value | Comment | +| --------------------------- | ----- | ------------------------------------- | | Blank if null date | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | -| Date RFC 1123 | 10 | Fri, 10 Sep 2010 13:07:20 GMT (see Notes) | -| Internal date abbreviated | 6 | Dec 29, 2006 | -| Internal date long | 5 | December 29, 2006 | -| Internal date short | 7 | 12/29/2006 | -| Internal date short special | 4 | 12/29/06 (but 12/29/1896 or 12/29/2096) | -| ISO Date | 8 | 2006-12-29T00:00:00 (see Notes) | -| ISO Date GMT | 9 | 2010-09-13T16:11:53Z (see Notes) | -| System date abbreviated | 2 | Sun, Dec 29, 2006 | -| System date long | 3 | Sunday, December 29, 2006 | -| System date short | 1 | 12/29/2006 | +| Date RFC 1123 | 10 | Fri, 10 Sep 2010 13:07:20 GMT (see Notes) | +| Internal date abbreviated | 6 | Dec 29, 2006 | +| Internal date long | 5 | December 29, 2006 | +| Internal date short | 7 | 12/29/2006 | +| Internal date short special | 4 | 12/29/06 (but 12/29/1896 or 12/29/2096) | +| ISO Date | 8 | 2006-12-29T00:00:00 (see Notes) | +| ISO Date GMT | 9 | 2010-09-13T16:11:53Z (see Notes) | +| System date abbreviated | 2 | Sun, Dec 29, 2006 | +| System date long | 3 | Sunday, December 29, 2006 | +| System date short | 1 | 12/29/2006 | Examples: ```4d @@ -90,9 +154,14 @@ Examples:  $vsResult:=String(!2023-11-27!;"E dd/MM/yyyy zzzz") //"Mon 27/11/2023 GMT+01:00" in French timezone ``` -**Note:** Formats can vary depending on system settings. +:::note + +Formats can vary depending on system settings. + +::: + +#### *addTime* parameter -***addTime* parameter** When processing Date expressions, you can also pass a time in the *addTime* parameter. This parameter lets you combine a date with a time so that you can generate time stamps in compliance with current standards (ISO Date GMT and Date RFC 1123 constants). These formats are particularly useful in the context of xml and Web processing. The *addTime* parameter can only be used when the *expression* parameter is a date. This parameter can be used with both predefined or pattern-based date formats. Examples: @@ -103,7 +172,8 @@ This parameter can be used with both predefined or pattern-based date formats. E ``` -**Notes about combined date/time predefined formats:** +#### Notes about combined date/time predefined formats + * The ISO Date GMT format corresponds to the ISO8601 standard, containing a date and a time expressed with respect to the time zone (GMT). ```4d  $mydate:=String(Current date;ISO Date GMT;Current time) // returns, for instance, 2010-09-13T16:11:53Z @@ -129,27 +199,28 @@ The time expressed takes the time zone into account (GMT zone). If you only pass  $mydate:=String(!2010-09-09!;Date RFC 1123) // returns Wed, 08 Sep 2010 22:00:00 GMT ``` -**Time Expressions** +### Time Expressions + If *expression* is a Time expression and if you omit the *format* parameter, the string is returned using the default HH:MM:SS format. Otherwise, in the *format* parameter, you can pass: * either a predefined format available though the following constants of the *Time Display Formats* theme (longint value): -| Constant | Value | Comment | -| ---------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Blank if null time | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | -| HH MM | 2 | 01:02 | -| HH MM AM PM | 5 | 1:02 AM | -| HH MM SS | 1 | 01:02:03 | -| Hour min | 4 | 1 hour 2 minutes | -| Hour min sec | 3 | 1 hour 2 minutes 3 seconds | +| Constant | Value | Comment | +| ---------------------------- | ----- | ------------------------------------ | +| Blank if null time | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | +| HH MM | 2 | 01:02 | +| HH MM AM PM | 5 | 1:02 AM | +| HH MM SS | 1 | 01:02:03 | +| Hour min | 4 | 1 hour 2 minutes | +| Hour min sec | 3 | 1 hour 2 minutes 3 seconds | | ISO time | 8 | 0000-00-00T01:02:03\. Corresponds to the ISO8601 standard and contains, in theory, a date and a time. Since this format does not support combined dates/times, the date part is filled with 0s. This format expresses the local time. | -| Min sec | 7 | 62 minutes 3 seconds | -| MM SS | 6 | 62:03 | -| System time long | 11 | 1:02:03 AM HNEC (Mac only) | -| System time long abbreviated | 10 | 1•02•03 AM (Mac only) | -| System time short | 9 | 01:02:03 | +| Min sec | 7 | 62 minutes 3 seconds | +| MM SS | 6 | 62:03 | +| System time long | 11 | 1:02:03 AM HNEC (Mac only) | +| System time long abbreviated | 10 | 1•02•03 AM (Mac only) | +| System time short | 9 | 01:02:03 | Examples: @@ -166,27 +237,31 @@ Examples:  $vsResult:=String(?17:30:45?;"'It is' K a") //"It is 5 PM" ``` -**String Expressions** +### String Expressions + If *expression* is of the String or Text type, the command returns the same value as the one passed in the parameter. This can be useful more particularly in generic programming using pointers. In this case, the *format* parameter, if passed, is ignored. -**Boolean Expressions** +### Boolean Expressions + If *expression* is of the Boolean type, the command returns the string “True” or “False” in the language of the application (for example, “Vrai” or “Faux” in a French version of 4D). In this case, the *format* parameter, if passed, is ignored. -**Undefined Expressions** +### Undefined Expressions + If *expression* is evaluated to undefined, the command returns an empty string. This is useful when you expect the result of an expression (e.g. an object attribute) to be a string, even if it can be undefined. -**Null Expressions** +### Null Expressions + If *expression* is evaluated to Null, the command returns the "null" string. This is useful when you expect the result of an expression (e.g. an object attribute) to be a string, even if it can be null. ## See also -[Bool](bool.md) -[Date](date.md) +[Bool](../commands-legacy/bool.md) +[Date](../commands-legacy/date.md) [Num](num.md) -[Time string](time-string.md) -[Timestamp](timestamp.md) +[Time string](../commands-legacy/time-string.md) +[Timestamp](../commands-legacy/timestamp.md) ## Properties From 3133df1ee894080a1727442f316ac5b49b743070 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 3 Sep 2025 15:31:41 +0200 Subject: [PATCH 039/119] fixes --- docs/Develop-legacy/field-properties.md | 19 -- .../Develop-legacy/field-properties.md | 19 -- .../version-20-R10/commands-legacy/string.md | 171 +++++------------- 3 files changed, 48 insertions(+), 161 deletions(-) delete mode 100644 docs/Develop-legacy/field-properties.md delete mode 100644 versioned_docs/version-20-R10/Develop-legacy/field-properties.md diff --git a/docs/Develop-legacy/field-properties.md b/docs/Develop-legacy/field-properties.md deleted file mode 100644 index ac93ddd8139aa9..00000000000000 --- a/docs/Develop-legacy/field-properties.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: field-properties -title: Field properties ---- - -For more field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R9/4D/20-R9/Field-properties.300-7543749.en.html#5523008). - -## Class - -//Add screenshot - - -This property is only available for fields of type **Object**. - -It allows you to define a **class-typed object field** in the database structure, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. - -When a value is assigned to an entity's object field, 4D ensures that the object belongs to the declared class. - - diff --git a/versioned_docs/version-20-R10/Develop-legacy/field-properties.md b/versioned_docs/version-20-R10/Develop-legacy/field-properties.md deleted file mode 100644 index ac93ddd8139aa9..00000000000000 --- a/versioned_docs/version-20-R10/Develop-legacy/field-properties.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: field-properties -title: Field properties ---- - -For more field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R9/4D/20-R9/Field-properties.300-7543749.en.html#5523008). - -## Class - -//Add screenshot - - -This property is only available for fields of type **Object**. - -It allows you to define a **class-typed object field** in the database structure, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. - -When a value is assigned to an entity's object field, 4D ensures that the object belongs to the declared class. - - diff --git a/versioned_docs/version-20-R10/commands-legacy/string.md b/versioned_docs/version-20-R10/commands-legacy/string.md index 39dde66bd5e2d7..cc08380ade3288 100644 --- a/versioned_docs/version-20-R10/commands-legacy/string.md +++ b/versioned_docs/version-20-R10/commands-legacy/string.md @@ -5,58 +5,27 @@ slug: /commands/string displayed_sidebar: docs --- -**String** ( *expression* {; *format* {; *addTime*}} ) : Text
**String** ( *expression* ; *base* ) : Text +**String** ( *expression* {; *format* {; *addTime*}} ) : Text | Parameter | Type | | Description | | --- | --- | --- | --- | -| expression | Expression | → | Expression for which to return the string form (can be Real, Integer, Long Integer, Date, Time, Text, Boolean, Undefined, or Null) | +| expression | Expression | → | Expression for which to return the string form (can be Real, Integer, Long Integer, Date, Time, String, Text, Boolean, Undefined, or Null) | | format | Integer, Text | → | Display format | | addTime | Time | → | Time to add on if expression is a date | -| base | Integer | → | Value between 2 and 36 that represents the radix if expression is a number| | Function result | Text | ← | String form of the expression | - -
History - -|Release|Changes| -|---|---| -|21|Support of *base* parameter| - -
- - - - ## Description -The **String** command returns the string form of the numeric, Date, Time, string or Boolean expression you pass in *expression*. +The String command returns the string form of the numeric, Date, Time, string or Boolean expression you pass in *expression*. -If you do not pass any other parameter, the string is returned with the appropriate default format. If you pass *format*, you can force the result string to be of a specific format. +If you do not pass the optional *format* parameter, the string is returned with the appropriate default format. If you pass *format*, you can force the result string to be of a specific format. The optional *addTime* parameter adds a time to a date in a combined format. It can only be used when the *expression* parameter is a date (see below). -The optional *base* parameter can only be used with a numeric *expression*, it returns the number in the specified base (see below). - -### Numeric Expressions - -When you use the **String** command with a numeric *expression* (Real, Integer, Long Integer), two syntaxes are available: - -- **String(number{;format})** -- **String(number;base)** - -:::note - -The **String** function is not compatible with "Integer 64 bits" type fields in compiled mode. - -::: - -#### String(number{;format}) - -If you do not pass the optional *format* parameter, the string is returned with the default number format. - -The format is specified in the same way as it would be for a [number input on a form](../FormObjects/properties_Display.md#number-format). You can also pass the name of a custom style in *format*. The custom style name must be preceded by the `|` character. Following are some examples: +**Numeric Expressions** +If *expression* is a numeric expression (Real, Integer, Long Integer), you can pass an optional string format. Following are some examples: | **Example** | **Result** | **Comments** | | ---------------------------------- | -------------------- | ------------------------------- | @@ -75,50 +44,17 @@ The format is specified in the same way as it would be for a [number input on a | String(50.3;"&xml") | "50.3" | Always "." as decimal separator | | String(Num(1=1);"True;;False") | "True" | | | String(Num(1=2);"True;;False") | "False" | | -| String(Log(-1)) | "" | Not a number | +| String(Log(-1)) | "" | Undefined number | | String(1/0) | "INF" | Positive infinite number | | String(-1/0) | "-INF" | Negative infinite number | -(\*) The algorithm for converting real values into text is based on 13 significant digits, see [`SET REAL COMPARISON LEVEL`](../commands-legacy/set-real-comparison-level.md). - -#### String(number;base) - -Using a *base* parameter (integer) triggers a specific mode in which you pass the radix (base) of the number to be returned. In particular, this syntax allows you to convert numbers to hexadecimal strings. - -In the *base* parameter, pass the radix of the number in *expression*. You can pass any integer value between 2 and 36. - -If you pass 0 in *base*, the command determines the radix depending on the *expression* value. If *expression* starts with "0x", base 16 is used. Otherwise, base 10 is used. - +(\*) The algorithm for converting real values into text is based on 13 significant digits. +The format is specified in the same way as it would be for a number field on a form. See the section *Display formats* in the 4D Design Reference manual for more information about formatting numbers. You can also pass the name of a custom style in *format*. The custom style name must be preceded by the *“|”* character. -:::info - -- This syntax strictly follows the [`toString` EcmaScript specification regarding radix handling](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.prototype.tostring). -- Using this syntax with *base*=10 will not give exactly the same results as using the syntax without *base* parameter. For example, if the specified number value is not a number, the "NaN" string is returned. - -::: - -| **Example** | **Result** | **Comments** | -| ---------------------------------- | -------------------- | ------------------------------- | -| String(10;2) | "1010" | binary string | -| String(-10;2) | "-1010" | binary string (negative)| -| String(254;16) | "fe" | hexadecimal string | -| String(-16523461; 16)| "-fc20c5" | hexadecimal string (negative) | -| String(Log(-1); 10)| "NaN" | Not a number | -| String(1/0; 10) | "NaN" | Not a number | -| String(-1/0; 10) | "NaN" | Not a number | - - -:::note - -If the specified number value is negative, the sign is preserved. This is the case even if the radix is 2; the returned string is > N, the positive binary representation of the number value preceded by a - sign. - -::: - - - -### Date Expressions +**Note:** The **String** function is not compatible with "Integer 64 bits" type fields in compiled mode. +**Date Expressions** If *expression* is a Date expression and if you omit the *format* parameter, the string is returned using the default format specified in the system. Otherwise, in the *format* parameter, you can pass: @@ -126,19 +62,19 @@ Otherwise, in the *format* parameter, you can pass: * either a predefined format available though the following constants of the *Date Display Formats* theme (longint value): -| Constant | Value | Comment | -| --------------------------- | ----- | ------------------------------------- | +| Constant | Value | Comment | +| --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------- | | Blank if null date | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | -| Date RFC 1123 | 10 | Fri, 10 Sep 2010 13:07:20 GMT (see Notes) | -| Internal date abbreviated | 6 | Dec 29, 2006 | -| Internal date long | 5 | December 29, 2006 | -| Internal date short | 7 | 12/29/2006 | -| Internal date short special | 4 | 12/29/06 (but 12/29/1896 or 12/29/2096) | -| ISO Date | 8 | 2006-12-29T00:00:00 (see Notes) | -| ISO Date GMT | 9 | 2010-09-13T16:11:53Z (see Notes) | -| System date abbreviated | 2 | Sun, Dec 29, 2006 | -| System date long | 3 | Sunday, December 29, 2006 | -| System date short | 1 | 12/29/2006 | +| Date RFC 1123 | 10 | Fri, 10 Sep 2010 13:07:20 GMT (see Notes) | +| Internal date abbreviated | 6 | Dec 29, 2006 | +| Internal date long | 5 | December 29, 2006 | +| Internal date short | 7 | 12/29/2006 | +| Internal date short special | 4 | 12/29/06 (but 12/29/1896 or 12/29/2096) | +| ISO Date | 8 | 2006-12-29T00:00:00 (see Notes) | +| ISO Date GMT | 9 | 2010-09-13T16:11:53Z (see Notes) | +| System date abbreviated | 2 | Sun, Dec 29, 2006 | +| System date long | 3 | Sunday, December 29, 2006 | +| System date short | 1 | 12/29/2006 | Examples: ```4d @@ -154,14 +90,9 @@ Examples:  $vsResult:=String(!2023-11-27!;"E dd/MM/yyyy zzzz") //"Mon 27/11/2023 GMT+01:00" in French timezone ``` -:::note - -Formats can vary depending on system settings. - -::: - -#### *addTime* parameter +**Note:** Formats can vary depending on system settings. +***addTime* parameter** When processing Date expressions, you can also pass a time in the *addTime* parameter. This parameter lets you combine a date with a time so that you can generate time stamps in compliance with current standards (ISO Date GMT and Date RFC 1123 constants). These formats are particularly useful in the context of xml and Web processing. The *addTime* parameter can only be used when the *expression* parameter is a date. This parameter can be used with both predefined or pattern-based date formats. Examples: @@ -172,8 +103,7 @@ This parameter can be used with both predefined or pattern-based date formats. E ``` -#### Notes about combined date/time predefined formats - +**Notes about combined date/time predefined formats:** * The ISO Date GMT format corresponds to the ISO8601 standard, containing a date and a time expressed with respect to the time zone (GMT). ```4d  $mydate:=String(Current date;ISO Date GMT;Current time) // returns, for instance, 2010-09-13T16:11:53Z @@ -199,28 +129,27 @@ The time expressed takes the time zone into account (GMT zone). If you only pass  $mydate:=String(!2010-09-09!;Date RFC 1123) // returns Wed, 08 Sep 2010 22:00:00 GMT ``` -### Time Expressions - +**Time Expressions** If *expression* is a Time expression and if you omit the *format* parameter, the string is returned using the default HH:MM:SS format. Otherwise, in the *format* parameter, you can pass: * either a predefined format available though the following constants of the *Time Display Formats* theme (longint value): -| Constant | Value | Comment | -| ---------------------------- | ----- | ------------------------------------ | -| Blank if null time | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | -| HH MM | 2 | 01:02 | -| HH MM AM PM | 5 | 1:02 AM | -| HH MM SS | 1 | 01:02:03 | -| Hour min | 4 | 1 hour 2 minutes | -| Hour min sec | 3 | 1 hour 2 minutes 3 seconds | +| Constant | Value | Comment | +| ---------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Blank if null time | 100 | To be added to the format constant. Indicates that in the case of a null value, 4D must return an empty string instead of zeros | +| HH MM | 2 | 01:02 | +| HH MM AM PM | 5 | 1:02 AM | +| HH MM SS | 1 | 01:02:03 | +| Hour min | 4 | 1 hour 2 minutes | +| Hour min sec | 3 | 1 hour 2 minutes 3 seconds | | ISO time | 8 | 0000-00-00T01:02:03\. Corresponds to the ISO8601 standard and contains, in theory, a date and a time. Since this format does not support combined dates/times, the date part is filled with 0s. This format expresses the local time. | -| Min sec | 7 | 62 minutes 3 seconds | -| MM SS | 6 | 62:03 | -| System time long | 11 | 1:02:03 AM HNEC (Mac only) | -| System time long abbreviated | 10 | 1•02•03 AM (Mac only) | -| System time short | 9 | 01:02:03 | +| Min sec | 7 | 62 minutes 3 seconds | +| MM SS | 6 | 62:03 | +| System time long | 11 | 1:02:03 AM HNEC (Mac only) | +| System time long abbreviated | 10 | 1•02•03 AM (Mac only) | +| System time short | 9 | 01:02:03 | Examples: @@ -237,31 +166,27 @@ Examples:  $vsResult:=String(?17:30:45?;"'It is' K a") //"It is 5 PM" ``` -### String Expressions - +**String Expressions** If *expression* is of the String or Text type, the command returns the same value as the one passed in the parameter. This can be useful more particularly in generic programming using pointers. In this case, the *format* parameter, if passed, is ignored. -### Boolean Expressions - +**Boolean Expressions** If *expression* is of the Boolean type, the command returns the string “True” or “False” in the language of the application (for example, “Vrai” or “Faux” in a French version of 4D). In this case, the *format* parameter, if passed, is ignored. -### Undefined Expressions - +**Undefined Expressions** If *expression* is evaluated to undefined, the command returns an empty string. This is useful when you expect the result of an expression (e.g. an object attribute) to be a string, even if it can be undefined. -### Null Expressions - +**Null Expressions** If *expression* is evaluated to Null, the command returns the "null" string. This is useful when you expect the result of an expression (e.g. an object attribute) to be a string, even if it can be null. ## See also -[Bool](../commands-legacy/bool.md) -[Date](../commands-legacy/date.md) +[Bool](bool.md) +[Date](date.md) [Num](num.md) -[Time string](../commands-legacy/time-string.md) -[Timestamp](../commands-legacy/timestamp.md) +[Time string](time-string.md) +[Timestamp](timestamp.md) ## Properties From e4bd5c8bd6b08d4b6bcd6337f45a7771d3fe59a2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 4 Sep 2025 10:08:32 +0200 Subject: [PATCH 040/119] New Crowdin updates (#2893) * New translations sessionclass.md (French) * New translations updates.md (French) * New translations privileges.md (French) * New translations sessionclass.md (French) * New translations updates.md (French) * New translations privileges.md (French) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations privileges.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations sessionclass.md (Spanish) * New translations sdi.md (Spanish) * New translations updates.md (Spanish) * New translations privileges.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations classclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations sessionclass.md (French) * New translations sessionclass.md (Japanese) * New translations updates.md (Japanese) * New translations privileges.md (Japanese) * New translations openaimessage.md (Japanese) * New translations classclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations openaiembeddingsresult.md (Japanese) * New translations classclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (French) * New translations updates.md (Japanese) * New translations privileges.md (Japanese) * New translations openaiembeddingsresult.md (Japanese) * New translations openaimessage.md (Japanese) * New translations sdi.md (Portuguese, Brazilian) * New translations sdi.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Spanish) * New translations sdi.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations privileges.md (Portuguese, Brazilian) * New translations sdi.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Spanish) * New translations sdi.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations privileges.md (Portuguese, Brazilian) --- .../current/API/SessionClass.md | 5 +++++ .../version-20-R10/API/SessionClass.md | 5 +++++ .../current/API/SessionClass.md | 5 +++++ .../version-20-R10/API/SessionClass.md | 5 +++++ .../current/API/SessionClass.md | 5 +++++ .../version-20-R10/API/SessionClass.md | 5 +++++ .../current/API/SessionClass.md | 5 +++++ .../version-20-R10/API/SessionClass.md | 5 +++++ 8 files changed, 40 insertions(+) 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 7b9392b7d194f3..fda30e9bd4da1d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### Para aprender más + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index f9fd60a5858123..cd4427c3de110c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| +### Para aprender más + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md index c64b4f8a9728c6..100123845d03e8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,6 +89,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 75b05496143148..cd8d9873e855bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md index dbdb9acd8d6eef..160f28b397b146 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 270807975f714f..50566a174916d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md index 6ea1fd129e4c34..fa555959894d8e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,6 +48,11 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index b9e7ba45b3c0ac..ef8f6a4c77b93f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,6 +48,11 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| +### To learn more + +[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) + ## .clearPrivileges() From 391c81f418d6c5a3902c32e3f166160dfed733d0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 5 Sep 2025 10:19:52 +0200 Subject: [PATCH 041/119] New Crowdin updates (#2897) * New translations updates.md (French) * New translations webserver.md (French) * New translations outgoingmessageclass.md (French) * New translations outgoingmessageclass.md (French) * New translations outgoingmessageclass.md (French) * New translations updates.md (Spanish) * New translations sessions.md (Spanish) * New translations webserver.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations sessions.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations entities.md (Spanish) * New translations onwindowopeningdenied.md (Japanese) * New translations updates.md (Japanese) * New translations webserver.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations onwindowopeningdenied.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations onwindowopeningdenied.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations webserver.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) --- .../current/Notes/updates.md | 7 ------- .../current/WebServer/sessions.md | 2 +- .../version-20-R10/ORDA/entities.md | 2 +- .../version-21/WebServer/sessions.md | 2 +- .../current/Notes/updates.md | 6 ------ .../current/Events/onWindowOpeningDenied.md | 2 +- .../current/Notes/updates.md | 7 ------- .../version-20-R10/Events/onWindowOpeningDenied.md | 2 +- .../version-21/Events/onWindowOpeningDenied.md | 2 +- .../current/Notes/updates.md | 6 ------ 10 files changed, 6 insertions(+), 32 deletions(-) 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 a007d2792e3a9a..a8506312f9bf45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -182,13 +182,6 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -#### Cambios de comportamiento - - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - - ## 4D 20 R10 Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R10. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 7c85db439ae724..b2a3a87835a17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -36,7 +36,7 @@ Esta opción está seleccionada por defecto en los nuevos proyectos. Sin embargo - Usando la propiedad [`.scalableSession`](API/WebServerClass.md#scalablesession) del objeto Servidor Web (para pasar el parámetro *settings* de la función [`.start()`](API/WebServerClass.md#start)). En este caso, esta configuración anula la opción definida en la caja de diálogo Configuración del objeto Servidor Web (no se almacena en el disco). -> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. +> El comando [`WEB SET OPTION`](../commands-legacy/web-set-option.md) también puede definir el modo de sesión para el servidor Web principal. En cualquier caso, la configuración es local para la máquina; por lo que puede ser diferente en el servidor web de 4D Server y en los servidores web de las máquinas 4D remotas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 77c276c1f14faf..7a2db28e32c11f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -564,7 +564,7 @@ Este mecanismo automático se basa en el concepto de "bloqueo optimista", especi El siguiente diagrama ilustra el bloqueo optimista: -1. Two processes load the same entity.

![](../assets/en/ORDA/optimisticLock1.png) +1. Dos procesos cargan la misma entidad.

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

![](../assets/en/ORDA/optimisticLock2.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index 7c85db439ae724..b2a3a87835a17c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -36,7 +36,7 @@ Esta opción está seleccionada por defecto en los nuevos proyectos. Sin embargo - Usando la propiedad [`.scalableSession`](API/WebServerClass.md#scalablesession) del objeto Servidor Web (para pasar el parámetro *settings* de la función [`.start()`](API/WebServerClass.md#start)). En este caso, esta configuración anula la opción definida en la caja de diálogo Configuración del objeto Servidor Web (no se almacena en el disco). -> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. +> El comando [`WEB SET OPTION`](../commands-legacy/web-set-option.md) también puede definir el modo de sesión para el servidor Web principal. En cualquier caso, la configuración es local para la máquina; por lo que puede ser diferente en el servidor web de 4D Server y en los servidores web de las máquinas 4D remotas. 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 6edf9dbce7625d..37f2e19f75c9b1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,12 +171,6 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -#### Changements de comportement - - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - ## 4D 20 R10 Lisez [**Les nouveautés de 4D 20 R10**](https://blog.4d.com/fe-whats-new-in-4d-20-R10/), l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R10. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md index 75d41d3b6ffc48..a2e307612375f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: +このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド 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 db7e69e1921a70..5470f7d864a470 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -172,13 +172,6 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -#### 動作の変更 - - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - - ## 4D 20 R10 [**4D 20 R10の新機能**](https://blog.4d.com/en-whats-new-in-4d-20-R10/) 4D 20 R10 の新機能と拡張機能をすべてリストアップしたブログ記事です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md index 75d41d3b6ffc48..a2e307612375f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: +このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md index 75d41d3b6ffc48..a2e307612375f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -This event is also triggered when a drop operation has been done in the Web area (with embedded and Windows system [engines](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine)) if the [Drag and drop](../FormObjects/webArea_overview.md#user-interface) option is also enabled for the area. 次を呼び出すことで、ドロップを受け入れることができます: +このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド 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 5ceb3806dcf953..e7ad7e9f9ee497 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,12 +171,6 @@ In binary databases, you need to select the required components in the 4D instal - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -#### Mudanças de comportamento - - - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - ## 4D 20 R10 Leia [**O que há de novo no 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R10. From 6031298d07ecb503946c4b7f727488fb4cb83091 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 8 Sep 2025 10:00:21 +0200 Subject: [PATCH 042/119] New Crowdin updates (#2899) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations fileclass.md (Japanese) * New translations imaptransporterclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations compile-project.md (Japanese) * New translations dialog.md (Japanese) * New translations form-edit.md (Japanese) * New translations form-event.md (Japanese) * New translations form-load.md (Japanese) * New translations new-collection.md (Japanese) * New translations process-activity.md (Japanese) * New translations process-number.md (Japanese) * New translations session-storage.md (Japanese) * New translations entityclass.md (Japanese) * New translations imaptransporterclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations compile-project.md (Japanese) * New translations dialog.md (Japanese) * New translations form-edit.md (Japanese) * New translations form-event.md (Japanese) * New translations form-load.md (Japanese) * New translations new-collection.md (Japanese) * New translations process-activity.md (Japanese) * New translations process-number.md (Japanese) * New translations session-storage.md (Japanese) * New translations error-handling.md (Japanese) * New translations button_overview.md (Japanese) * New translations button_overview.md (Japanese) --- .../current/API/SessionClass.md | 4 ++-- .../version-20-R10/API/SessionClass.md | 4 ++-- 2 files changed, 4 insertions(+), 4 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 160f28b397b146..2ca619b9c47e37 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,9 +48,9 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### To learn more +### 詳細はこちら -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**高度な Webアプリケーションに対応したスケーラブルセッション**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 50566a174916d8..df4106a9656ade 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,9 +48,9 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### To learn more +### 詳細はこちら -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**高度な Webアプリケーションに対応したスケーラブルセッション**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) From e7ca5cde435333669a621213e81ed17bdba46f80 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 8 Sep 2025 10:57:20 +0200 Subject: [PATCH 043/119] updated see alsos --- docs/API/SessionClass.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/API/SessionClass.md b/docs/API/SessionClass.md index 1ad435a7823c29..ed2886e8de489f 100644 --- a/docs/API/SessionClass.md +++ b/docs/API/SessionClass.md @@ -58,10 +58,6 @@ The availability of properties and functions in the `Session` object depends on |[](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) ## .clearPrivileges() From c8816ee6c444263ee190bc3a2a64a33c5e92dd1a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 9 Sep 2025 10:04:16 +0200 Subject: [PATCH 044/119] New Crowdin updates (#2900) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations dataclassclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations updates.md (French) * New translations $filter.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations sessions.md (French) * New translations session.md (French) * New translations tcpeventclass.md (French) * New translations outgoingmessageclass.md (French) * New translations openaichatcompletionsapi.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations outgoingmessageclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations udpeventclass.md (French) * New translations outgoingmessageclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations sessions.md (French) * New translations session.md (French) * New translations dataclassclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations $filter.md (Spanish) * New translations sessions.md (Spanish) * New translations session.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations sessions.md (Spanish) * New translations session.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations updates.md (Japanese) * New translations $filter.md (Japanese) * New translations configuring.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations sessions.md (Japanese) * New translations session.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations openaichatcompletionsapi.md (Japanese) * New translations openaiparameters.md (Japanese) * New translations asynchronous-call.md (Japanese) * New translations checkbox_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_datasource.md (Japanese) * New translations properties_text.md (Japanese) * New translations radio_overview.md (Japanese) * New translations updates.md (Japanese) * New translations components.md (Japanese) * New translations date-time-formats.md (Japanese) * New translations $method.md (Japanese) * New translations vp-export-to-blob.md (Japanese) * New translations configuring.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations sessionclass.md (Japanese) * New translations error-handling.md (Japanese) * New translations checkbox_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations properties_text.md (Japanese) * New translations radio_overview.md (Japanese) * New translations components.md (Japanese) * New translations date-time-formats.md (Japanese) * New translations $method.md (Japanese) * New translations vp-export-to-blob.md (Japanese) * New translations configuring.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations wp-add-picture.md (Japanese) * New translations session.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $filter.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations openaichatcompletionsapi.md (Portuguese, Brazilian) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations asynchronous-call.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) --- .../current/API/SessionClass.md | 5 ----- .../current/aikit/Classes/OpenAIParameters.md | 15 +++++++++++++-- .../version-20-R10/API/SessionClass.md | 5 ----- .../current/API/SessionClass.md | 12 +++--------- .../version-20-R10/API/SessionClass.md | 5 ----- .../version-21/API/SessionClass.md | 6 +++--- .../version-21/FormEditor/pictures.md | 8 ++++---- .../current/API/SessionClass.md | 5 ----- .../current/aikit/Classes/OpenAIParameters.md | 15 +++++++++++++-- .../version-20-R10/API/SessionClass.md | 5 ----- .../current/API/SessionClass.md | 5 ----- .../version-20-R10/API/SessionClass.md | 5 ----- 12 files changed, 36 insertions(+), 55 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 fda30e9bd4da1d..7b9392b7d194f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### Para aprender más - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 2f9e0d4190f873..be800095bcd212 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -61,7 +61,18 @@ Use these callback properties for more granular control over success and error h See [documentation about asynchronous code for examples](../asynchronous-call.md) -### Propiedades de la red +Use these callback properties for more granular control over success and error handling: + +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called synchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | +| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | + +> The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. + +See [documentation about asynchronous code for examples](../asynchronous-call.md) + +### Network Properties | Propiedad | Tipo | Descripción | | -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -70,7 +81,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md | `maxRetries` | Integer | El número máximo de reintentos para la petición. (Sólo si el código no es asíncrono, es decir, no se proporciona ninguna función) | | `extraHeaders` | Object | Encabezados adicionales para enviar con la petición. | -### Propiedades OpenAPI +### OpenAPI Properties | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------------------------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index cd4427c3de110c..f9fd60a5858123 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilidad de las propiedades y funciones del objeto `Session` depende de | [](#storage)
| | [](#username)
| -### Para aprender más - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md index 100123845d03e8..63d98c5f2b94a7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -45,12 +45,11 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi ::: -:::info To learn more - -Blog posts about this feature: +:::tip Related blog posts - [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) -- [Permissions: Inspect Session Privileges for Easy Debugging](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) +- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) +- [Generate, share and use web sessions One-Time Passcodes (OTP)](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) ::: @@ -89,11 +88,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index cd8d9873e855bc..75b05496143148 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index abb8a4f1e3bd87..d084bc461a9585 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 @@ -51,12 +51,12 @@ Articles de blog sur cette fonctionnalité : ::: -:::info To learn more +:::info Pour en savoir plus -Blog posts about this feature: +Articles de blog sur cette fonctionnalité : - [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) -- [Permissions: Inspect Session Privileges for Easy Debugging](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) +- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md index ea0e62531b19ed..177ddd5f3c53a3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md @@ -57,10 +57,10 @@ Les images haute résolution avec la convention @nx peuvent être utilisées dan Si 4D donne automatiquement la priorité à la résolution la plus élevée, il existe cependant des différences de comportement en fonction de la résolution de l'écran et de l'image *(\*)* et du format de l'image : -| Opération | Comportement | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Déposer ou Coller | If the picture has:
  • **72dpi or 96dpi** - The picture is "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatted and the object containing the picture has the same number of pixels.
  • **Other dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted and the object containing the picture is equal to (picture's number of pixels \* screen dpi) / (picture's dpi)
  • **No dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted.
| -| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | If the picture's display format is:
  • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - The object containing the picture is resized according to (picture's number of pixels \* screen dpi) / (picture's dpi)
  • **Not scaled** - The object containing the picture has the same number of pixels as the picture.
| +| Opération | Comportement | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Déposer ou Coller | Si l'image a :
  • **72 dpi ou 96 dpi** - L'image est au format "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" et l'objet contenant l'image a le même nombre de pixels.
  • **Autres dpi** - L'image est au format "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" et l'objet contenant l'image a une taille égale à (nombre de pixels de l'image \* dpi de l'écran) / (dpi de l'image).
  • **Pas de dpi** - L'image est au format "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
| +| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | Si le format d'affichage de l'image est :
  • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - L'objet contenant l'image est redimensionné en fonction du (nombre de pixels de l'image \* dpi de l'écran) / (dpi de l'image).
  • **Non redimensionné** - L'objet contenant l'image a le même nombre de pixels que l'image.
| *(\*) Généralement, macOS = 72 dpi, Windows = 96 dpi* 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 2ca619b9c47e37..dbdb9acd8d6eef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### 詳細はこちら - -[**高度な Webアプリケーションに対応したスケーラブルセッション**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index e66df1f19d5d80..83c005e82a985a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -61,7 +61,18 @@ title: OpenAIParameters 詳細な情報については [非同期コードに関するドキュメンテーション](../asynchronous-call.md) を参照してください。 -### ネットワークプロパティ +Use these callback properties for more granular control over success and error handling: + +| プロパティ | 型 | 説明 | +| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called synchronously when the request finishes **successfully**. カレントプロセスが終了しないように注意してください。 | +| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. カレントプロセスが終了しないように注意してください。 | + +> The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. + +See [documentation about asynchronous code for examples](../asynchronous-call.md) + +### Network Properties | プロパティ | 型 | 説明 | | -------------- | --------- | --------------------------------------------------------------------------- | @@ -70,7 +81,7 @@ title: OpenAIParameters | `maxRetries` | Integer | リクエストのリトライの最大回数。 (コードが非同期でない場合、つまり関数が提供されていない場合のみ) | | `extraHeaders` | Object | リクエストに付随して送信する追加のヘッダー。 | -### OpenAPIプロパティ +### OpenAPI Properties | プロパティ | 型 | 説明 | | ------ | ---- | -------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index df4106a9656ade..270807975f714f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド | [](#storage)
| | [](#username)
| -### 詳細はこちら - -[**高度な Webアプリケーションに対応したスケーラブルセッション**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md index fa555959894d8e..6ea1fd129e4c34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -48,11 +48,6 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index ef8f6a4c77b93f..b9e7ba45b3c0ac 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -48,11 +48,6 @@ A disponibilidade de propriedades e funções no objeto `Session` depende do tip | [](#storage)
| | [](#username)
| -### To learn more - -[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
-[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post) - ## .clearPrivileges() From 3ef098304a7d2adb1ba41de91965b2387d693252 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 12 Sep 2025 10:19:17 +0200 Subject: [PATCH 045/119] New Crowdin updates (#2906) * New translations architecture.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations process-activity.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations session.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations session.md (Japanese) * New translations string.md (Japanese) * New translations generate-uuid.md (Japanese) * New translations generate-uuid.md (Japanese) --- .../current/Extensions/develop-components.md | 2 +- .../docusaurus-plugin-content-docs/current/commands/string.md | 2 +- .../version-20-R10/Extensions/develop-components.md | 2 +- .../version-21/Extensions/develop-components.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index 157463eb7562ff..fe8feb36c11799 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -464,7 +464,7 @@ SAVE RECORD($tablepointer->) コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#コンポーネントの読み込み) によって使用されます。 -The following keys can be defined: +定義可能なキーは以下の通りです: | key | description | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md index a4268656a3bb72..0fcef929673fec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/string.md @@ -31,7 +31,7 @@ displayed_sidebar: docs **String** コマンドは、*expression* に渡した数値、日付、時間、文字列、またはブールを文字列に変換します。 -If you do not pass any other parameter, the string is returned with the appropriate default format. *format* を指定すると、結果の文字列は指定した形式になります。 +引数を何も渡さなかった場合、適切なデフォルトの形式の文字列で返されます。 *format* を指定すると、結果の文字列は指定した形式になります。 オプションの*addTime* 引数は、日付に時間を複合フォーマットで追加します。 この引数は *expression* 引数が日付型の時にのみ使用できます (後述)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md index b4bf9f5173acf6..026f468a7ebbdb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md @@ -387,7 +387,7 @@ SAVE RECORD($tablepointer->) コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#コンポーネントの読み込み) によって使用されます。 -The following keys can be defined: +定義可能なキーは以下の通りです: | key | description | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md index 0b2b3fa62a4ed5..e868994b21403d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md @@ -460,7 +460,7 @@ SAVE RECORD($tablepointer->) コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#コンポーネントの読み込み) によって使用されます。 -The following keys can be defined: +定義可能なキーは以下の通りです: | key | description | | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | From 847c76bc8890c3a8bdbb21f7404c62714ade5f85 Mon Sep 17 00:00:00 2001 From: mouna-elmaazouzi <118451160+mouna-elmaazouzi@users.noreply.github.com> Date: Tue, 16 Sep 2025 10:27:01 +0100 Subject: [PATCH 046/119] Writepro/user legacy import (#2910) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * en: folder created - pages & assets added * entries of imported pages added to sidebar * missing pictures added * slugs taken out * es done * fr done * few es fixes * ja done * pt done * fix in ja * fixes in pt * more fixes in pt * Update defining-a-4d-write-pro-area.md * first rewrite * Rewrite parts - 1 * 1st pass * Update sidebars.js * reformatted * Update managing-formulas.md * in i18n: 3 new pages added (ranges, stylesheets, text-boxes) Summary - Added 3 new pages (ranges.md, stylesheets.md, text-boxes.md) under WritePro > user-legacy in i18n folders (es, fr, ja, pt). - ranges.md and stylesheets.md are EN-only for now (to be translated later; content taken from doc.4d.com). - text-boxes.md was created by extracting the corresponding section from using-a-4d-write-pro-area.md (copied then removed from original). Details 1) New pages (EN for now; translation pending) - ranges.md - stylesheets.md 2) New page (extracted section, translated version) - text-boxes.md * storing-4d-write-pro-documents-in-4d-object-fields.md done Summary - Moved and updated content to finalize storing-4d-write-pro-documents-in-4d-object-fields.md. - i18n: fr, es, pt completed. For ja: body content translated, some section titles still pending. Details - updated: using-a-4d-write-pro-area.md * 3 section titles moved into storing-4d-write-pro-documents-in-4d-object-fields.md. - deleted: printing-4d-write-pro-documents.md * Entire content moved into storing-4d-write-pro-documents-in-4d-object-fields.md. - done ✔️: storing-4d-write-pro-documents-in-4d-object-fields.md * Reorganized with the extracted/moved content. * in i18n: update defining-a-4d-write-pro-area.md (merged and reorganized content) Summary - Reorganized defining-a-4d-write-pro-area.md by moving content in and out. - Applied consistently across all i18n folders. - Remaining TODO: fix the table of standard actions. Details - updated: presentation.md * Received the first two sections originally in defining-a-4d-write-pro-area.md. - updated: using-a-4d-write-pro-area.md * Contributed 2 sections moved into defining-a-4d-write-pro-area.md. - deleted: using-4d-write-pro-standard-actions.md * Entire content merged into defining-a-4d-write-pro-area.md. * File deleted afterwards. - done ✔️: defining-a-4d-write-pro-area.md * Updated to include new sections and merged content. * in i18n: presentation.md done Summary & details - Updated and completed presentation.md. * Updated the first two sections with the new part. * Added the last two sections moved from defining-a-4d-write-pro-area.md. - Translations of new part: * fr done * ja, es, pt: new part pending translation - Page otherwise complete. * in i18n: using-a-4d-write-pro-area.md done Summary & Details - Major update to using-a-4d-write-pro-area.md * Edits and restructuring applied consistently across all i18n folders (fr, es, pt & ja) * Integrated new content translations from LiveDoc. - All content fully translated except: * Some section titles+ New paragraph under "Headers, Footers and Sections" in ja. * in i18n: ranges.md and stylesheets.md done Summary & Details - Finalized ranges.md and stylesheets.md. * Commands links fixed (mostly pointing to the wrong folder, commands vs commands-legacy) * Exported and integrated translations from LiveDoc. - All locales fully translated, except maybe one page title in ja. * in i18n: Standard actions updated + sidebar fix Summary & details - Fixed the standard actions table. * French translation done; es/pt/ja translations still pending. - Sidebar updated. * fixes -1 * fixes -2 * fixes -3 * Update defining-a-4d-write-pro-area.md * fixes -4 --------- Co-authored-by: arnaud-4d --- .../en/WritePro/commands/pict6013182.en.png | Bin 510 -> 0 bytes .../assets/en/WritePro/pict2646292.EN.png | Bin 0 -> 250329 bytes .../assets/en/WritePro/pict2646294.EN.png | Bin 0 -> 454077 bytes .../assets/en/WritePro/pict3033006.EN.png | Bin 0 -> 631 bytes .../assets/en/WritePro/pict3033008.EN.png | Bin 0 -> 1168 bytes .../assets/en/WritePro/pict3071271.EN.png | Bin 0 -> 9191 bytes .../assets/en/WritePro/pict3307937.EN.png | Bin 0 -> 12243 bytes .../assets/en/WritePro/pict3307941.EN.png | Bin 0 -> 8487 bytes .../assets/en/WritePro/pict3308424.EN.png | Bin 0 -> 4088 bytes .../assets/en/WritePro/pict3513503.EN.png | Bin 0 -> 27062 bytes .../assets/en/WritePro/pict3513505.EN.png | Bin 0 -> 921 bytes .../assets/en/WritePro/pict3541581.EN.png | Bin 0 -> 872923 bytes .../assets/en/WritePro/pict3626363.EN.png | Bin 0 -> 99975 bytes .../assets/en/WritePro/pict3752166.EN.png | Bin 0 -> 14438 bytes .../assets/en/WritePro/pict3752176.EN.png | Bin 0 -> 11223 bytes .../assets/en/WritePro/pict3893246.EN.png | Bin 0 -> 4621 bytes .../assets/en/WritePro/pict3893248.EN.png | Bin 0 -> 3667 bytes .../assets/en/WritePro/pict4619596.EN.png | Bin 0 -> 7207 bytes .../assets/en/WritePro/pict4619694.EN.png | Bin 0 -> 7602 bytes .../assets/en/WritePro/pict4619865.EN.png | Bin 0 -> 7203 bytes .../assets/en/WritePro/pict5562054.EN.png | Bin 0 -> 18600 bytes .../assets/en/WritePro/pict5562058.EN.png | Bin 0 -> 19421 bytes .../assets/en/WritePro/pict5761667.EN.png | Bin 0 -> 37054 bytes .../assets/en/WritePro/pict5761669.EN.png | Bin 0 -> 12782 bytes .../assets/en/WritePro/pict5761671.EN.png | Bin 0 -> 725 bytes .../assets/en/WritePro/pict5761673.EN.png | Bin 0 -> 8037 bytes .../assets/en/WritePro/pict5761675.EN.png | Bin 0 -> 5840 bytes .../assets/en/WritePro/pict5761677.EN.png | Bin 0 -> 7016 bytes .../assets/en/WritePro/pict5859437.EN.png | Bin 0 -> 12419 bytes .../assets/en/WritePro/pict5907021.EN.png | Bin 0 -> 9184 bytes .../assets/en/WritePro/pict5907023.EN.png | Bin 0 -> 9681 bytes .../assets/en/WritePro/pict5907026.EN.png | Bin 0 -> 10202 bytes .../assets/en/WritePro/pict5907030.EN.png | Bin 0 -> 4093 bytes .../assets/en/WritePro/pict5941073.EN.png | Bin 0 -> 20152 bytes .../assets/en/WritePro/pict6014414.EN.png | Bin 0 -> 115615 bytes .../assets/en/WritePro/pict6014426.EN.png | Bin 0 -> 43182 bytes .../assets/en/WritePro/pict6014429.EN.png | Bin 0 -> 3132 bytes .../assets/en/WritePro/pict6022144.EN.png | Bin 0 -> 116524 bytes .../assets/en/WritePro/pict6131919.EN.png | Bin 0 -> 46653 bytes .../assets/en/WritePro/pict6260026.EN.png | Bin 0 -> 5454 bytes .../assets/en/WritePro/pict6260030.EN.png | Bin 0 -> 4668 bytes .../assets/en/WritePro/pict6260033.EN.png | Bin 0 -> 6736 bytes .../assets/en/WritePro/pict6260036.EN.png | Bin 0 -> 3095 bytes .../assets/en/WritePro/pict6421031.EN.png | Bin 0 -> 103730 bytes .../assets/en/WritePro/pict6421340.EN.png | Bin 0 -> 8309 bytes .../assets/en/WritePro/pict6421342.EN.png | Bin 0 -> 9040 bytes .../assets/en/WritePro/pict6421344.EN.png | Bin 0 -> 9147 bytes .../assets/en/WritePro/pict6421356.EN.png | Bin 0 -> 9254 bytes .../assets/en/WritePro/pict6434575.EN.png | Bin 0 -> 2045 bytes .../assets/en/WritePro/pict6434579.EN.png | Bin 0 -> 605 bytes .../assets/en/WritePro/pict6434721.EN.png | Bin 0 -> 9401 bytes .../assets/en/WritePro/pict6434723.EN.png | Bin 0 -> 7206 bytes .../assets/en/WritePro/pict6434756.EN.png | Bin 0 -> 4332 bytes .../assets/en/WritePro/pict6441966.EN.png | Bin 0 -> 6080 bytes .../en/WritePro/commands/pict6013182.en.png | Bin 510 -> 0 bytes .../assets/en/WritePro/pict3033006.EN.png | Bin 0 -> 631 bytes .../assets/en/WritePro/pict3033008.EN.png | Bin 0 -> 1168 bytes .../assets/en/WritePro/pict3307937.EN.png | Bin 0 -> 12243 bytes .../assets/en/WritePro/pict3307941.EN.png | Bin 0 -> 8487 bytes .../assets/en/WritePro/pict3513503.EN.png | Bin 0 -> 27062 bytes .../assets/en/WritePro/pict3541581.EN.png | Bin 0 -> 872923 bytes .../assets/en/WritePro/pict3626363.EN.png | Bin 0 -> 99975 bytes .../assets/en/WritePro/pict3893246.EN.png | Bin 0 -> 4621 bytes .../assets/en/WritePro/pict3893248.EN.png | Bin 0 -> 3667 bytes .../assets/en/WritePro/pict5562054.EN.png | Bin 0 -> 18600 bytes .../assets/en/WritePro/pict5562058.EN.png | Bin 0 -> 19421 bytes .../assets/en/WritePro/pict5859437.EN.png | Bin 0 -> 12419 bytes .../assets/en/WritePro/pict5907013.EN.png | Bin 0 -> 68519 bytes .../assets/en/WritePro/pict5907021.EN.png | Bin 0 -> 9184 bytes .../assets/en/WritePro/pict5907023.EN.png | Bin 0 -> 9681 bytes .../assets/en/WritePro/pict5907026.EN.png | Bin 0 -> 10202 bytes .../assets/en/WritePro/pict5907030.EN.png | Bin 0 -> 4093 bytes .../assets/en/WritePro/pict5941073.EN.png | Bin 0 -> 20152 bytes .../assets/en/WritePro/pict6014414.EN.png | Bin 0 -> 115615 bytes .../assets/en/WritePro/pict6014426.EN.png | Bin 0 -> 43182 bytes .../assets/en/WritePro/pict6014429.EN.png | Bin 0 -> 3132 bytes .../assets/en/WritePro/pict6021229.EN.png | Bin 0 -> 130684 bytes .../assets/en/WritePro/pict6022144.EN.png | Bin 0 -> 116524 bytes .../assets/en/WritePro/pict6131919.EN.png | Bin 0 -> 46653 bytes .../assets/en/WritePro/pict6421031.EN.png | Bin 0 -> 103730 bytes .../assets/en/WritePro/pict6421340.EN.png | Bin 0 -> 8309 bytes .../assets/en/WritePro/pict6421342.EN.png | Bin 0 -> 9040 bytes .../assets/en/WritePro/pict6421344.EN.png | Bin 0 -> 9147 bytes .../assets/en/WritePro/pict6421356.EN.png | Bin 0 -> 9254 bytes .../assets/en/WritePro/pict6434579.EN.png | Bin 0 -> 605 bytes .../assets/en/WritePro/pict6434721.EN.png | Bin 0 -> 9401 bytes .../assets/en/WritePro/pict6434723.EN.png | Bin 0 -> 7206 bytes .../assets/en/WritePro/pict6441966.EN.png | Bin 0 -> 6080 bytes 88 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3071271.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3308424.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761673.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260030.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260033.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260036.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434575.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6021229.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png deleted file mode 100644 index c5b95111dd2fc2ee0c6516d01da9539e9e6593d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 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
    bZ!xLg#HCV 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..c5706f5b23244e3f467bffbafebd2ab35f6f7e3d GIT binary patch literal 454077 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

    uY;isboYEpx(2vzq{jsKOU4r8mu5&UKl| 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

    Y3m9DcKx z^nY4R9Im9#-lbAL$qD(9r9bFutQA~kcz3pB?vB1QVx=ES zAJdOj6-Q1{6V9Zbp+smVHDT4DbC-=&F*li2c})<}44O0`Kag%C?8hC@K7{Ek5dSCO z1S(*6UpO5)Vs#w?FgK>9TE zt+lnu#+{WhM~W`rnC+A_|J+0Wt7d6wX=G%C8REM&&q20*hQYoF*x!VTrPG*KW5}OB z|DgX>*WTVvS$1EZ(R7?KMB}w|21gea#RTlY5`q7XyMO2Nh*+=Oke0lQeC6YLP&TOf zTSI`9gFzf{Oozzf8#|$V7IP!bbK7a*x4$XVHf>qFe#eQB4in|mXLI*DRZpD^ua}1>!cgfTQ1=^6#q6dQ2M;Vos;Cj$UNW`9)$FB zQ9d@dTd#i#5UkjgSo&k5%4&-4b9~fmZMg92TIUz+8<6n&Gb;zrqJI6OWF|3*>ONK2 zwyh{%r0y?|NKhiq2lizqIH_A_nyS2U>b#Ptgc{80UIXfN>%xs{-ICi%>(9n}SrbEj zY(F(hv?hPh-~;>1B(u~CdDQiECbBm2|9zdahd$s^Zm$7={7&ZP-aWvyS_e$9s7lM@ zy!*ZAcTA5*IIM+w9Kmb-DZf?uT01jB`i%|ZiJGu}z_Vi3j|l=Zmgz!Q@0qi@*`=EX z;p^|Pb`~Vp#QF#|J|BzH+|`^H zAQoFm@OLPxlrKLx*IFPi8-cszuYW=ZX(pL+>NHcaTbROg5Q4{-AaN>qZJF%a;&@_; z_^qkUO#h#$B>dD9Ze6%q3j^xLPaU7xl*rXjFnF`*8#nWQ^!432>4E=q!j zOVtE?8F~x2t0Rjxb!t_{1Be7;Hojh8PKv@_hRHGr`0Lf%v>XRt&WzYkWZ*%3l;rYq zkjj8ZhEQ^x&T!FfXe*Y&x&IdtkVqsf?)~BZ76YO?WdyOlzqN4FWfaTvtDaJ~?d>rJ zD!})Jg+-zM8_Oe=R}kwz8yMCBM`hL3C+pKul*!Le4z{H&dLc5`gns-X>o&<@?#EwYU*mdS9|pAAM^2;i2wiq literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..eddf97544e05758b3da1514cc27a43f739f424cb GIT binary patch literal 27062 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..5e8669f5c2aace698617cb118e0686d8012dcc92 GIT binary patch literal 921 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≷~|ab|IUUdttWs`*XSq z^b&OGG{_-#Zhd64LR#4$lvM;1xPREaTK3$j`a(r?8n%6xF0OL=qHs`R%wRn3*F=+(z{G1Oapo= z22zZr=84!9F51|;h2R+%yvh>8wKZ$S$z&T)gg*CVvio$p_iXy$d5l!gW`}HF-}GP3 zhHr09-_K9p%}(CV2XAKm7qi~0?0qpidUZqj2uSwQza04J`OVJL>DIF;+uhUY=7~Vg zB=4}P#F;E7$AcGG7Zs0XxCCV`c6%@ZK_&9);z7#_cvZ1jzm2X9$1;p+k!gLrJ389} z@FYc{+5Aqfw?@~dN*bN7kDT)3R>0K}0lIc4ozk`q62?|rk(K^|Tm5ll)4AJZxd2U> zIq<~Aix=Tu@gX#R%rg$ht)G)iXvYb}@h%S{j*;?nEmVbY8qQgbv4T_}~$}0MnX&3Pg-a>6VHX;{%MNLI9L7<)57RpM5l@_G3 zFIngeN*x3OlK_*9s>)wI?)VEtq0L>9PpnTJWC|FY{nVQo3YBOm4Nb|tP8k%G41v?z z2Lc}Z30UI5Y|9~VUWe%ES7xY=>MvViRTdhq#jh4E`D<#yI0`O~@(?a3C%U!oxqzUz z;}yx{MvZYng(s7}XMR&ZP}bl7{c}-P$+^1+<2K{?t-Peb_E9|Mn_LubAqxu^K}-7+ z^9L5nimyD)z*-Tp5N#B$&>cPOb@}kG4uq9pBzBxSe$OnW^gwlR(DkXW~OsdX(r!J#@k6x#}6H*+3S#Gwba+yGYrv7 z7qC=HyvCDa(ABv5*Zx!e%g4E*RRkX=sATU(WYWgyB89m8A(?`*YCM||J@f;&L_1dq)SA1E z%LHY{Gu;|aP3Sjp#hA6x)g~koQ)+JY&$pA03)B?J6v!l1^pp;MRO$^lxNz2!@~HL9 zg(I-n4JrfeFgEvQ9??6~K`bsrM@Li~3H&2M3smE#dAGS(#wN!0i3iHYq$a5z`E<(h zBlS5KuY@l0{ot!Mi^;KSRK9P*w!C|V#N2v_t|>uKyqWh0sCQ0DI&+E6mk!gXQ;%ig zj30>h-b8186{x5Mi1~Z*5?s=KMHycx3$jhipP|J`;}s$tRX|y*aJ=vfdenYM#hFZJR*-bk*S$X@>z?h5m4lA^ht^ZiB;xOzlj z(%J#_HmjB$%Y_s-wrph0w|}GZ<|w}0*n;SsEq{&t>_tD$U%O3984Jt-h5#dq02ELN3XvCy^dead#~q5FQ><^=f|(7U@ZusRfhxBAYdD3**cwq=+;NG<&kL^w;ejm(p6(!0m~%CF8|UJ;8 zD~;Lm2rgC?B6892a1mF{sfE2eh3B+ja2K%6tQgwIraP`a4C-T>42L5cU&Kl#mQ#p; z-*l0<-l3pZyx5zkAlt0zr!Y_0Ag@6lkjQhv#_M^(pLzX!32E<)6?6?Q<>tVySNoN! z#KG6Q6mLvrgndThr&8W4qwc6!cTL05L!B`v70YQL@)YMoN zeD|bQ@75gd`kxmwm%VqXi~v-AUpfu4OV>faM{vdQ>{d@RQLvEYt{|m+@?W=50j&aK zfRhCZ`q{kd21J#m>sM`4)>Qj+E1di3@cL)A3sBTSorSH58iCOM^k2Va#i|4P5n>h5 zNsLi06TCoBMdGxBsq0)(ek98JuY<{d9h$NIXF=D*6^E0({U@)~OoKlkP5DdzTm?7h z*73~yHsEtGJaX$~vhz&iFrVb%s~;%qKluG~QI_iq3!D&OY$L!FglwHP)OGN{&}8kx zf-cIFCAZEa0;>Q>v0sU=^w3Qky$Y4AI)~f?O&y)zH3Q*z$#fUz_j-ELJ2z>!ey9K~ z?dj&mh_Nfq_unpl0s*cNW;D2eG*%FPi>8!M$Wh64U6G?nj1he_xhv9Aj)SnQZO{u? z1$m|{j7;sOClgNvC~~C~PK0**RiIWU)aWRMD(qRzRFN&hI4%3i@-RwOZO@225ai^q zYILEXORj509a=?MR;V=wpe55>L&@$YL7~*Zb5+niJe}87uvPV^aW9^YoD>Pizyyjp zk%Lrna0=lBz=PfdBy=d$S?`~(49}71jxfmpGhpt6do^%zNaPj*%w-~-{|h-_P?-=V zA}Sttz%9-Qi_s>gh?3kZI--Z59kI~5e)i_ipn=#d)1MXbwKg1ghX|{-G_su`YZ0!I zo%G;dE{eOIiwZ!ZzK^^F=>fEKEL)d5l; zNQ20O+#*VImMz29QFksl(F#`~7UiaSjXZsjr!P<5D^vj+=aC@`HwExb98v?s^=U?t zqQE2L!TE4Q+)rPjz&v(QsCU4(-M3DWNk8{dJ9t0)7x((YW5j0%pAeG>=Bc>Ld{8Ju z=$fvHyrd?Cq`yYe)68|c)%-k)W8)lXv%6p|*D?mSiPJO!qzAM^7gkmV)3dk^$YcVH zq{@&y7s^D;V*T0OtUu$0i zE$xq&_Vo`$7Vxaigk*DJuKtVp@a1gqdN$OSH5J)`PWU-*g^X85tw%Ql5Y3ivMeYe=&i4v|%V@nJbdvX{PJtvU5JeAh7py+* zRuQA76bTXlxpd?y5>hMB;%mAGa>$~HZ2j(ndG78DDok{d&rK|(g@^Bb_RBF?sAZB6 zi3M3zXcos-%RnYbTNdEz=Od91nChn^dvI6vSy-z>Zu$xyyY>_)3pfPSDNF^(X?W?N zMNffz{$*+ktxwcADhiCyrLHtaX_(p%NDEl{WqGqS^_UZJ&6TZzEAK=k?y9MAwg1Mb1t|!tj3f(*uiDM zG*yVIuvWQ5pdvG2SKtcEfF)FOo!=-6TE1=E+QX9MYZ0p+lJ@I8phZ>+4zJf^Fk?mw z7rez|Pz5^rv{Xom4*RaM6|LF}sY7UhzAi}cj1o0v!m1>Gi%Le7_Oz7fB=QEZ$4P~b zbh1{Eua;_20-@!LB-w5pp9^?AJMe>3$Kx)0?Nb4R+#1K46ttr?=_2?ll?D}@m&+g0 z&gsLXnW6whDF-}uiPLIUGGWBdv8Cr#ClPg-2zYZ>`u9ZJG>EZ_y%2jhbh4))e9~W0 z!vc=mJ~2-?vlU4f$*c>tAYid$j)F%XNh#P45F*Q{zeFP&?t zn{3CTr4dZ&B`#eXd5U#sSj9*s7rFDaS?iCTYW4AP6$*O=9z7hj=Uz`OkE|Y3d#~y* zk4Bf6yhX_GOnF8e`T`r-T&h^f$P`ra?)fqZx`aTwwRAwJ16?(D-q4iIoT^v*jN@(^ zxQhd&WS#{(l}J`6Ks+bF0I*aw)m}0iAtSm7d-pt9!Ieh9oKhVD}Er?>oVF!FlzVh)=|FR_RFN3tqxIF4!f+ zLTtHsy-t8eTgi$+N@gUA$Z!TtIijz`!l-q0e*f5&i)l&CvL1;B46g$Ja!83AIj{%H zb(gbJB1dIw1E&Qer2H`XTKTxtagz(7v|A&ZX1Y%J(ec*|bz(5J-YGSuJ;SEh=Hr!C zM<)GCa*OGVMuDoeOMYWh#naAKMGpI5v`Myg3|i zARzimXT;MAjLWB{jfk6EGgF$d!lj+((u+Y6wmulgr2-axwjspgT&_O6Yx+S~!P?V- zaJ+M>B~3@c(Rt0a8QI$`hfZ~seN4FthvZEFAoXWLti}MtRBbHET2Tb#k%duLC&f`| zeLnSvSVhqCldgbCW#No} zuuXbyV9eBi{-qvFrOm4I;sZWWfHXH9&i+-_C-xpuwpp32{so$H*R_XuR6}dRGaLJt zmYz2)84?$3TK432cd6o-!hmq@HH0iHYeC1;J0MbCekVcvI`rLrKK<>bhOFM}A1LcT z`2CYnR=yd{R+URv;$v7)+oim0ZXV?vQa&E3)C0bDAz2gRg@|?eEL}$weo8y7UL{sh z#WY(bTa*F!dLAkc5o5i}J7$O)FHjaFrwGAu{#Viq+NaR|Rt*9blm%PyC|FDmN2*Up1a zL|F-KS^%f59#fFI?8xIkF} zT69Y@#}G5xc0c{Zx@EI8fMU@CDcL#LhD+djK`DSShD5zbamHM-Ay~snA-xRPnoS89 z7GDwSQ?LO?DWr`7Fe*&o7k5E}(dlghj-rjEf1~|#d%3Ipt!GgWD=6BBwb@I9iug+7 zdWe*LrZvKr!lbsD3XQBSVd<;RHtt6Cl#%rHHUgZIS_&E2pjR{iXCEYsDg-|c7UPrT~ zA0C6>?f3oUQE`4FuaFc#nsN>=s}#@IvQVmAgKqCfI;31%kBX!y!C^kz=xuhD5G)N= zu>IJkAZmQ=ok24p`>N}FT!6ADBQI8tr*}a?5f-+0F2I*laUO3jVamli6%7hdurcO@QDukXZR`pFFa z5bBduKUOcN=4RvA+<+XuHV|T|@6tFn3Xd)QIB`&#Ba-E!0^zykOYlEql zCH)jcQ&96Btf*SZG03ijQEiPb;>ZB2L@vuz!vlkY@)!OY78-LN*8Tq6 zu+?IWFxz0HV#o^$A9fgmbBAqEYi&7pr8m>I+4tsTmbOmxzdC7>9ikxl)_rXg4j-HwJ(;uOjb}{e(q^xii z6y$epY*kysx8M*!=+~npPw!>L|NAb##)}USRkrdpT420ELltYxC`wv zJy2@~X8~f-b4@sPHl-@u*DrB#QUh?4k%E3^8-sZpZO*%JX0WU9)3#UWB_zvutf#;* z05j>Ww04P+a4Zc9Vu`N?Ko`dbvf4Hqo>)j*)5s~Y&Etk@;>cHqtc67j8bgIoiUOR< z=}tM9Yi#(cE>FM za&>Udu0mopfDB1w)pB5*P_XB%q^t5V4JR7qDq7mkJqukq;L+9UiE052*84Z?@~Tw` zxJ5Uc0NoLHa=h99>G+RiVlb5MpdO-3x%NK$AWORTYN>@$`t29td8^q|8!dnxN@^3Pu{s|l< zlq3WNvHYOSF%Ym6Yd~j(@NM_YQU(9otQL^9@o*LkhRJ3rv)xE}bu?Wa&CSNHADYYB znowal2dkt!S?wSe;0hSCeX2DH9d7T*bpJWv>ZbPsr1Wo))#%Oa3|`NUUpK4Q(W{2a2CuJ2Z>Ntx+&ugE1)%lx(-#WQ-`$*kxB+pE zfNdbO*Yjg>+N}5TCV4XE`!D9`kuJ3LM90P5r;c#%bPDv^G%ev=2!ztvmnFhK3+k}l z8JG;CZ3R3PJ!RetbI&>v7Otp-l^N#gaFbzW^17ODV(S!D9#cs`nCD7B4iXKv3Hyba z)2F9^T1vyK?Gu+v-aPfxTgXKH6u>+R$1q_3xWs9C?i_@jxqxb2jt16UGsDTyd_e%9zmqfDz1zAZAyE6MlUYNA! zz@j#>8@C09abFaN_;BQ2h|Vr{X#p#EMgVLT6{{|lxYT&c-Mun7Wk^@0vHptbG3Fz8}wJW463I*cdd+6nwT0iDz+6K zlz=78N1Cu!d*>_1=c|K@<$l@+hj4gSsS-*>{k4aUBZ)#}fG7npvyDQWHl;Dc_}op?k~f0x1AGeVQTZX;$VDl=a?a)bwcrtL#t)8cqs0(S1BqclH_gfH)sY4o?+7 z;ad#e2%;R-p)Be*jBdKxIv#K9-ew~8jsAH1C>huXV<3biG%}a^M$pdAVA=s8liO}J z=%q6T1MZAJBA?9@uu8(5v_#EZ>Ngl^1E`}l>Dnw(&RN>SZZ2m>bJk>A%yZ3lXUMtY zi?2t%HAQv~MhZd$)!3ogpV&2JFPF*v(Y24e;i8$y`03X0+Q_kyNhx-c?W3ZNKpOSY#y7 z{qmC(!SbZ)5%|y{9~sgyhAevEA@af~>LLi)>m%-7wt8J7UoY89fp>e^3D>~p=!I)N zq$X5imA5*|U#WV^P9T}R(V#^5a@*@FTjp4AFiGi)eyL8-=1rs19GM0Kl;x^fm6#aZ zb)*1xhVL7c^(`TCL{k+QhQ6!W;aXpR!@U%=_j>$)R2{4e4Q`D(N)&- z&CVYxcjJB#?Evx0vZTQ)!>*2#+2RmT z^lCN;%3@a^pq0PFS2r{(LlzM0$;X>#pZ@*)_b<@P-@lxGoIe3&ef%;oj%#-MZay?Q z;d~H3!(+OAIX!qz=ULzw)b}ju;~Cz`bQ@-vEA?9Xrib0?!;qaO6HsLf<_XRj?>LVZ z4u7h=P-=*vE>~jhxgXeE1n=U#(jz8XFMQ7!QR{hvS9;==C{*Akc1w#^R!knYb&XB< zZd@*6?)-uCXwC^D8RH1ro@1CW$A+)Q_Q(VEj2(ZA+U-dLu=Cu*R6Bs(_^0)vEXJP! zvo|f_y$&z0P?Enl5Y@d!TA6aa;oH4p>}-{E8`?Q@SA((^q9h`w>q_;2tB^RBOG6b& zx3KriOuA*veXk|n;PFuCVAxXUbWj)Dm^=*s2C^~K1?8pD7Gn3R??}P{N447 z#b#M7xCd^DY3m^C>;*3cWeK!QHkhOoKpmjVt;Ax{&(8_g5*i)QX9I6yuoS>Kb!z^) zO?|l?(jhgDDxK#n8QxLZ!K9y4V`7Y?gAZ!5tGkC@cs+C|GSmXHY^iU=8mcmK6P)Qv z%ACku6Yk#q!EA*O*-v%y;Mw%I7?8DMBoC<{r+>-*^9*5Me4g~*Ih z1WoDVCkkq~OG8#nUd^iz(jnw%ytEHky0~SQ-iuq^>L|3#vc+_Dad&@w?*OtORHGkI zS?_G=@UyE)cGH<=zc{Q^?=D8H*gG@~T9MiE@Qzm{<)xC?`UqNpkYe?#{VFU864~J}YPncUUUK2|55)jwC2T7$3aZif0X!aJ zq6@@ibYgkEX=h=A!?BZ0Xyk+QH4SStQ(m=` zYX<3s=@~6l6jy5_o|H%VP`Z&*2x`@m#$9qq42Dxz;>Xym zfa~0R8bIy-v+Z8FZi-O=Z+w@p$^}oeBx{}y1=`q{$10u&N(DRlIq;4tFO|e>JHwRN z?B1Zcf7JV+wt?mmd8zEAjF5;U(+a{v+mt!k@Ah5kKcaMYw>PgGgRU3M2dDyJ=gWGJ zT$Ge8&1NBho!3MGEdkukbVjU}WHlLvaR^8wWK!g7#1f4aw@~9j-{yPWoh8##hI;Yt(wP75xYcTt*mF|6wGj@q1*Cw z^JKQ21QNkcv#rxP%Gu`W-02~6OW0e4l@gj-z(cJsE!UtQj75bXUd>mQg=s6(&j1U%NrQ< za!<8bgi|O2td-}RR7~({{Sg#l+b*l6r}~y6W3r)4kGK?L=yQR1m5R;A@&h|9_>oMi zm3)FqkvZaf*-$;1b0ry~CG9)(B_q{3imK!66)z#zVpe2*UPRR1AH_rw%s)!Veb3Gq zl5fep@HDOj@n{Z|ktxZ&5yc=ts}um|{uCupDF$roCX|MgoLh(zhQv_4Z@ED3m_Vzx z5gB()FyjQ7Z+?+^JDoV|_d9C1XM~ zHt@F#`r%^sw-tWxTFnF-GNo%-uzV14VrsZ@IdB{PZ}0YyV%!pZO4m+)hWrtxxaJYp zwlsFgSpz%IK;}e;QpFEHT{Vvu9yH?)0H*hMFfX)tK{3A(+=Z( zSbwV|D2Z|b6I}|f28ZR^Ej8|i-OE~#Ao!J^;bcKH!_~&%i{-Qnv|5i+J}7fiWw|S; zxo0W~Yc4y`8|OQ9h{Yt}1EF88p98baB!dM>70$2k+PFH5Bn(M}AzP18HvthvQ3psd z2$B*<&?qN$jsnr8Z|}G|`W8fdh2xHsBBQGHOPiZaPM}T37b8pfF<$nuU%yZFW4?qquBkq+Z`H->*6#v0CP8>hY zR7ttblZ;8Hh_+VZ88Nn$)X_fD7ySVvIbtpjSXD@%w0KN9kEm;ywkT!ngd`1CL`y+o zi2U)M6_qHh674;c^OWb`dazw zFsn`%9kROFjY%8VRIx&f)`LY?Qd7qC?NLPa$A2WYxRt!NJ#O=?!qV_)(xEypOQB$+ z7FvNn`z%)=nKkX!Sb1hIKfUy|yM`9=csk5dufgth*S$PJ+6Dtp8C<$O1zAv#{`LZ& zFCQPEZLjh|2(MFT7Cz$Wi>;=xoc(&>?hLdPji|5Zm(%;k==-^Md^EZijR-ioF+O;E zIT{atJ&3PuWA$Pu@a>Z9QggEG%E0T*z~fb~0kgj1W3O8uLCuAjUPVR($)MQu#syA1 z#K38QSm~7OI8*q`&S8!@wRzY|zl4=D7bD8lDuB171JuVGn5I2n2h;tN*6d^HrC-+5 zcbvsMEkpUq2=P)m_5CvOaXGGgn9!sq>cf3kIZX}ure-og6Tx-z_^%7g*D#Ed<_01+ z{bpb49)&JjplH8=iDV=Vllzu-&}}M{3b0_bB;vpkfC3+r@GQlL*ivn%yfzNivQ*6i z8G>URhc~s63ej#a)O^nGRs#jw0lt1@i;3+NO?h~nkwxjg`j1wi)0AJkHBhzd$p;4x z7r5U&(225^Qb~6z1cyCD{1*QDJZ0SAFA8J=z`7%agn_4$ugR*E1L)f&63i012Smq} zGQ!w=zaEHfy)4Yw-2FgXBhS0W5y2g3$3-u#sdLnhu6SYZl~{J#5%1)w$U8XGAUocj zLlgVXQvN2M+-J;e{_rcKSbZ@qo@pD4TM<|$9k-`mVizK4Nsyw1!oxbB3a z&ivE;=PUjS-r>hI-QsSW$x;WYAq!3gm)lYD++eWWlA3YvQ-y5pI8>~GI8|kZ`dbnV zV4_h+oP=Eb@fMq{HFZUq!-io3$SzXTipR7kB(6v6d7 z25?!Y*@9~9+XoV~B~6vXI8M>n!4hQ;HsZ{;IV4V-EL&CCgmTSWvm0fjEU{pb*HtTr zd}IeX3?nG^2h#ucvY4}&tCAKcnx$*Ttu~Y`KIU>9uu=?O# z@ByHEdrdFD*UQMpdLBkaIiMLt7aSA32oCPg`t@u}JO#HwO;4>aFmuZx+WxOb{>YvN zgoX@Ax%BRHN;ItE1D^Ix4n-$(gT;s`>27Nc0eKtgLg42~2iy$Fse-FC5?`xT2ND&MV1=?b#^e(_v7XDe< z=L_Y*4&m<8sCfHID$TY8l9A;vUMWcSd+Fi^{s98;ZZuA|OQsI=(II64#dtlS1Vc)R zQtl^fK51VJR5AUwEJRY-%zr`oS-}BRi+n2s)UpGr$V;N6f*PXzPKjiKd)b%M8Li=2 z^p+l`uRaZGetvYFpFR0JK}3W3{dA7!ptCwP!}9_|KdjOOc?ZnPEvblBxi#bzGM`Q(QK9W zDMk#HQL_YOVL6jxf)ivRmsMYG#p-c6qVdvg_pY|80qjyf^`DXHcv-rOl`9EElLF~Zuau># zX&N0ro@{zPhjb#~6SF)i8w@OHmq*ISdcAA)OhwX^JtD@)$?A0He~)

    yGx|=*%Z2 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˽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

    Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

    *1T)6!Yva<^;l%`7#qPm~I=9AP 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

    O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC 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%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a zytJrxx*BnVmD0M)452?iDL>9YZv2!&g;@FzbGN-zfAt(jd7OruO6=rpd$IoN&K7c8 zn99D(lny zrA*mUT|-PIerDhZkNP|9VylSl5NIMt_cd;w<#mhir7H@+?5GV@s_h$S5UV-zR8CWP zM{|GN5&cJNH*+)GGI?w8$Y>H6VL)Jj~=T3#Z$~(}$v{&yt z8gbbvlK((dU5-`KHQKqq4D7RBO3o zJYFTT7tn|7+*B(TUhp+508rP?YlSqpmF{{vL{5TWv@A{5#F{Wd4bhU8Q5!4mu zxI+E;o21Y;34xZ-xi363*-yC#Q4@Qv=-1crcUn?iUpd<5byCzfLD}t$unRITN1gA) zIoQfgf{YjOlm0Q$JyDaC)~9Kqr?|jSN0m@3dEqhTR%kSFV3(c+JDY2@4owcau)eur zcCU%gZ6tF;^m`RLX08Mk1@O_5PBv?ycM>!2XvN9m>hf=EHItf(=JnWxi;?TfnHL^K z92AVg6b4!Ja`6EZb(W%%IH7zi?vh$uC{WpI7j-^LN;iP$TA9E&5Q$)*E-0KV2}RGz zE+$^wh@D%061pm8NWFu{<6fwhE6?sLPY1}Tnms}N&K6!J$cl-Nc@Laia9)nP#>;#k z14~Em$DgcTi(qWgdToqQ+FmvOR&D+;wm1=$v7jbbWby>x;hisI?>}uQ#+#yh$b69R zse#VaHwe+&55fkuJ@fW3u6r^!APsC{EQV<18e%qYucYV3$lm!T<(9{5 znqG~q*kB4t;(Km01*szXN-v-EQ<{ZrR^RWSb_o+3I_TcGDST9){BP8c6N8aDh@*?j zr7p?hSNX~ZYv-vyYZ&H&a+G(hA2BMXN%_&TV={?B_t9{sXG``GRZ;W)#D5kFI7yA+=qc|HQFPq0eZQq( zJv4(mUxSF#_pO{*z=FED0r$IinIK8^SengSaOmXlv{gLK&;s-`&l6cTw%p7Bg*=6> zlKLP;Q}426BTCZ{*UI*99=?~MWFb_+UmVl679hZy2(ej5G?^*4V$Ay!l|(v}0q`cF z>FN%KF{6biGXP-aGTSw4M=`HGmNVX?C5XsA_FW4Z2aOgkP#5f&%ZS8Qouo5Zw{cB< z=w|QsNNW%+b)8+y7j3_k&baKQZ@)}FE|@dn|HXhqtqI08is`bRC_vT7FhUihAi(wdwG&c z<+zL^uNl1~M!Knu(YB07FuwvrVlv|uj9f{BNRI)&kqm|Cv9noHzdkaLT0N1$ZGFiG z2P9ZyD}=LAg9=i-@1Wt^ZwI>gUG9LEz&hvdNYbDslvB<2a(3Kv|*?Z(o@SC1jRYNy3>4nY4WxId6RcV~Et?Y4TvG zN(MYS!bg{`PnYySWXWb{5Y1@CW;VGlz}Q6xTRk|aPFJ`z(d1ICBIapo&NbW1`iM{< zls}8gN8w{@uYSPVv=-jsI39+tXd--FH`vb$Z7Zxo}f2ThyD1}ZiN~%r(xHXMp9FuQa6i%<@ zca2qo2id+j<$g9#FDl9@D#$E?WEK@<6y@g><>OPMembK5oc-An4>z#vC0;C3uV?5+ zxgubMlNt&WO1V+J-K*i-V}HNLe!EZuI<-%_gX)K(kUDDwFR*;E0)6IF(FCh}Ba88O zUqJ6)qt0#-^6aK>zEy@q>{;hMb8=AqnH=^C z6oI`lB)+Y7F=2gU$Z*RhTXzL$t&eoEMdIR;V-TPvDNUp>SPCDHVW6#NLx+))WJiz4 z*)i4;?K)%doclEEwbxWwz6X7KSF}V{>*(9*)fay&11WT+!qs`i*pee{jBB-RER{qm zhxlfPu0rc4ld}vVK{k6J^ai>`T{9qOWcih47z3v{-`pEcub;SQ!s3kVo#fNTK&&02 zySFGmp?*_`044V&SY2+C3CFR3sgeQl0ECP-11*K6{#l^0R&^NViB)(R_?il)c%vKD@4ca54$XF;vWk z%5pHOGT!?nuucZTAY5#3jqQ^>Ux`+yMrE|k^pkE~p{(>zq@$>k!Be#pO-qZ%d>g#V zZF<7y?T1s6VM{)z^{4DVt*r{B-c%+=@M9ukworx}L7qNoT_K{7?UXF*&jaFP?2zBl zH4_Hahf{=W&IQISkaTLCp1GTN*>P-OB+Kj{-ovgysQg57qkHsN0 zN2xSOe4J|t*)cJV+?1GwCd&-?nBs;eYBb7y-xEkSHzoUemngxSe>>L$oOyr$NSk&Kt_?)sYfxHlQ|Y|kkw8Uq zX)Pg1vLfD=hYLu;k^T^?PvY6igTW65xB)1RmU2LaOw*X_2m$W02W#oC;AFmYsW*ch zEJ&KY7IXO^mUuF=_C)v6*Qd;1cFkg0tg|T5#_y~L+XOF+Ki$-+Kdt=#wh}my1DC9Q zQaHsNV7n6qdac8CNLX*mAXInuJQcNO708FP+HPBug{>eBz~dYiThRtYnw;;am6jgm zmhM}kfyU#%ZU8;_0yMYjDU2(jM3Ck(t@w}yO9VqoK+1UQeu$Mpe1Po)ebxO4@cP6t z4dB52yTqEuYeR^W!b}~oeDh1){8ek~PigLYgW#vWHJ2}aGv4Y+&NYK(^EOMXZ+w>< z`G@0rZF=N87AqUdCA(H{|Di@5Z;Dsf)|<8 zqwyVL{q=jgcpN+$g{e(R<+e1N{1yVQE;)l2`x*HgWi@a=VK{^h?#YH_i;olTI~CVT zQMJ2)GT~)fy&snvBV~`iJO=)HDma=#z--FZ8hiu7{}vgj81Ea`)L1LY1~7KM^@ga+Sqgj1^}3hG1c#{Su$ema?K}G2uYmp;SGw-kua!@F>4pouQ0V>wTS23r9n zufd6R!^NY#bR}SJ9D70Dll5UausSLIutJMiA|Yo+a#eP^8u|%D<&a((z|5cBHel_T zWen01>>ZH_x<~8&$wKcWA4??*pGGcZ zpUlTplI5EWm)3>;JA|$|>G3!u5?XuFu%y7sV#>G)bGqG!M3Zjb(@$q1ZkF2aVP^4K zO`o;wneshcy@d4m@Y3LvA9m?a%p#ChO2AHZi7cDWS#v0=T?~ZEmlxpbvU+w@ z`pHi?r}j0^t=fUJ<$WaSIME06*1wB2gSKKfKJ%cbO(*@)oWRvg!qrf{2npWOcF;`o z`B8i|Pba<&6@(_IxfE zqfjDkL}8j2Gs|JI{@cq8-~!5?x1*HA0sasFcxEw~Fr}gi7CjAL-pDk-fAB50J| z84$L?GFA*fvRNk@zgu1f#Nu=GpqRuFcf-lOk>%!(gUGGran9@%PK^cFcFVEyiQilV z-|-9-kP6b-XXNrU;}c^77PJ8A3-BSVz9BBKZZNPNC^gjtn+di4^bd-nYdf;H!U@86@9WDSB@;qrr5|kzFJ-9`29~OGs;92TljoV zJBuJw!LXR=W@=~#B_K-L?%lCV(z76&n5>YQ?4f!Th`Y--4_!AFv9iZ~yI!oP;$F~B zGMVMowZTR0gMlhGX)1ADW+<@-N<}Io#J3is*G@9N0c#F31xSsT&qQK7Oi_y$isPX{JIpAg8AX^`!6_N+w>_x z4~EP+?}Rih*ONOo$;x?cBq7jg6!id=7mjY7V= z)V7M@bfvmKW!#HE)C*n9rEWTmb6#SgVBi;!I!0lUBa$&V$D7$D$ZBrvT~5!Ulo_#! zFjdf=!1F&Vz4g5J5LtDd_+w-YsI&OQf37_i{4?HMSPT^Mz;QPFS0U^N_gz;0{4c@T z;3=yYKh)nTem|$`ay8pb>fLzt+lLI3VNeJB{<*w*EWm$sAMU zc^}wktR}ayl=}G#Q+IPlcktf_$zLCZ6>>n4KWnqd27j8KMYa2O(jm#1T1RsxudgfT zabFyjZ=Lt1ncp=j5KuVbH0AxFE178nX6f1fj~Xe+{Bnlsuc~HR!K;Ps9;Xi;#q=hq$~lpWSo)TgIET_ zCkz3^=uq_3;I`9abO-Hgu1N2&fn070qdatxWI96U!Ia5U;pDPctZv8-ln$B8p{L|_ z2A_RE-}Vxupk#y1=`V9P%=q;!bq46J3|Uj4!R>zx4~;1xnEHdO0ga|lBHr6e!?p- zt=-wdN~5%XbkekM9(RYVvvb$bo)Fgu2!8esOQ3rPAknh{5xTS@r4wY5spL+RtawS3 z0lG~IM0xRi<0dR-(o&p^V+-E=9HR?1bo4+U#%8l1d8InEQ+=KJ|%UT9x-${DoV1e=lDq!rM~CGO=jWP`|6$5d?fJlPJh|| zX3_Hy6$)i#3uE8I!;jhgl$qs2H&#j_rvzzT+$)!X^nc3Dg)i~rB6Y&ls1l~KoCEp6 znoNv~F6-J_&n~PMY%tYBpQcWo?QxQ%J%x{`?C%Z)1s7m++{vt5i{9&Ol}rleJ58O9 z9G0!1rLF?rzVafaNv^en3a8)5xUc1kA?vIXR++zyiHd$JH9W!mW%hQ{z4^gZI4Zxo zV8QV@#@zNhcruIG+J01*y#0D26Zy;^pzF zYRz7*ABl!S?M}!ZQK`y|2Dn!8riNVqJet}Ga@WIV;%+3`IU0nMN$O?SX2OO&QWIMe zbpni9=dK@?Yo9FJ;A!Z0m+}A88Tz-(<9I3edyHoLhkmcLzo@u99v|4dE_QUb5}w~P zUE8UBWFexQbj~+C(I4#wlk-hFNr_n#YKT1Uc5>$sR9Npf^Y(*Ht zxhb?A$?0koDzP)m-h2q%wa>c&b4WC?NW#m<3r#MBGXuQA%Vhe`yv4rj9Mws#@_9xW z)s=b)@in<*dJBSC!>izI&gV(6`JJ1u4vs5Ptrr5aqu!% zZ-$lzsLV^FaIy-X?`1Y*$kQ_6bO-0DKBlBVf}iB1UcRmJ5^s>OUqa?rH}0@6RRU0z zWpbrn8NleG89O4u{^>wKla;bC2E0E&@r|YPS=-g+Kw_-sxS^B^#1Hv7D*xOu z*jRt0%V*3pslDEdNTgW_1lpPVcrn5+^<-I$+~eHYcAMNN>J~@njGdWp4#`J$w^1qq zDJ%KaD99n*C~AJ6jcM`Y+-}T!l0Ms!6z~b_-yJcmdFnF~3UiLCLf9en@P?N#dsLcO zaU?&SI2!jtYo8m#coICp7Jp`{D)*O-gjqefb8e}d4u*zy>c9mxUIoYxu$%LhrcE^U)J*mnP#G`8;M**4{6+4@I*JU6}k=TZ28{B_XmZ3p6M} zK`~-3SK`@%)W%HdR>}a^qV_&~LXNbSXD3v<|5X8zb`6a;p>93`$j7qCl}odaVc%7`_TV`KhU=3_Y>%h8SV^RR}bmidJ2p>XV~S6N(V2iUL6RQ`6vt{v9RlEihu;VuW* z-tj6>gIJ4hj~vBgjEQLN<_d`q+<_|~pbdVLgGc8ML-VPWFhf7uM~w2Va3k(p6n<~U z2qcXA030QBBTPzqZvQmzMxJz*=zX>L>`wU#l}IUhA{ejMB*OP48Q^}PBYbtLp?V;8 zU696&G5{ebMK@G>1IZOYTEZWG(i;@Uo!&{Z(IXe>)Z&Eh#20IhQL=T)z6F;eomoqP z37VBKjJmYBZ7I*_N98(^)EHH46Y(2$ZIqS3Uf1@uai5|qoN*@Dh6jVii(-5wzF?in z_OBgp_9I5p1p+^^U*AAqpoa0blA=-E<# zeq*$TM)NMNS~T^aqyFk=Kisf?m$oEZ3;JGPgXL4Q;*GUWM8?zrJvhVx za8Mlg?0WYfl{hbpm?SMl<0PT>L~ohe*PQE0{v1H6jskQ+2_AZ!yk)f)gMq=UEBd}- zbn4{?G4{*dv3rEl3VtokSvj&Qtft_GJQXQpw<@r^TP1mzwhDQT3o8n#fu1hRrngcK zY0z{>yq1U{QMwCFcSETvni^BT0%-+(tcA%$LMBf2w8BY23V-+>S}=-@J0jFw2enm|{` zhEc#QlRoiHcA`X+6T8w~zEmCiSOISrn`S*Iu4QyK+MAz=I)&wzXc?h2qZV6Sc1m|A%!!+v;z^LdTlacce;ADF>58*DAru05{L3#;!hL90#}0ciyEfukF1xc%J&~xU)H^L zt0LOs%0JqASaZ@p!ZP1h^a->*YiZtBv7RP4pIWE{3e-th>DG4&#fM2;ma$)MW37w0 zR$MOxO&$Nje0fUw-Gj2W!SrZ(&$}v_HO8IJW+?v!6_c^e4FeZS0vk=h;Vh^V`K|5| z5`_p+u}mvQ4lvM`zay~1`7YIK&0Xr=diG|A9+%Kn3e3A(-(=7#e5Y>J&M|XmOxhC< zgWhqhv|z(cZyU%cf4gSxIqLjmqFSlSU;MwFd3<{49c;f~@W0*t{TdJ!qR9NWOg`u< zBQ*w_ta6|jho<9Fm%VQ&y6*RB_GX?5b;b30JV~O1G23KkbrYl^06KZQ3TDP%~K07c2O|ZsCpu^Z#eFY_8GblGAZ5*zc;ipGKCwQY^>^5^* zIWAU!LTS1B(4*x>0)9UscmjjTpoA-F9Ni`Ey!FJ-m~D51N*i0;@S!g&?`n%V(6|w? zJ()52TR{itBi=jWhZGuGrOt1hEq&Y4BC^4*16F8OMjl4EguU)rIsR%z`YoRNUrr}c z7Ll>XT7FL3MWUKT4~AL=Em<=cu~3lB?4$bgR>^wCa$DQ+mk+Vhc|^abwWqZlRDiG# zHGhv5=-I)EW3(Y|FV!Yv>k=B|Unu**b3LU<5+r-5%_Zb!PR`GXYi#hfYS~NCV*#76 zfBFCB%@yuK>S90~L;|cjieUNM2x4J&G+z-tTFYJ3m^b@p9m4s>t7a-6l_5$tydg;Y zFp{hpG!V-wSF1i5DcE)n7A*l=ahu}&GjHFl6c`pc2d~9PA)mbQLNBHA z9blz`j7x+KEIyCl{lbottiF8lbARFqS(r}__`8? znEzhF{rUd@qd;80N1i#Dn0HEZK7QKCPP%gA&h;@@9?Nst3zJ~Z!nB87^zn;6ZV}kY z&sYPjHBdk`KR_lF++!?(b#owZ3Sz#N(O-aljK0F6udv`P%y{yset~*}V0j}TR*<(x z1y@*fMpKyy)aXB?jaWbltE%Oi5zh5lqlR&AkXo2E(&6u6WL! z1b9G&J>WechfPsFSP~|5L^(&CS`v4`C^i5|UXlj?sgB zd>N}kB{NboE5}jyLWpMA@G=Wi`S>amUqX*o6lVNs)E*2bbLc)INml5~0;Wna{xlJO z$Vxq_Ll!Y~~fKCBop-uFF0nnmLFozHY7!zfk3D%j!b0Nq9LBSUC zW?{ZuWDWMz%KHM-!l=S~3KSi{6CoG}6Zvo&V2O!>0eJ#tWq_#|l&Q$@(TteLh%t<% z1VAEEB3TwF3q}bUEX79CY%n7LM+H(C@QL>TKy@76+*KG5cWm7o&->$fSOGwdBpFQ) zBfbPs2RBb4nib(K0MH7i3PI>bx)4NdcR)A+)?)yEcvK;b2K^B-Ofj-1(SgFr!9?x- z!#}#~z$b6%JomQo${lmMDicNq!VhE}m>uK$@y86-5wSj^tPk(;;r$*xJ}11mAiZN2 zPuj(yurwQ!7ZS2%RWYxrR6%tWlz=Ej)RLnhn^z>~x9NF)y9Z0d$!~h<1%JCE#}mP zLUAlBk7U)MC1qr#IJv5tnPNyOFKv`oH%>2=%3uI;q0)wjS8cf>1&6FEV{u_HEFbkL zZ@Hv*ebO6lp1z%PP|__0K4i zNo6smI11`wB6r^qv$H2()y3=|DI9P~b8B*_Sad63B`>Rb*piFI15fznm#yMGCb7dP zKI>KA$|_GfOSg3Kw~welJ+k)MC!^Qx3IF`j)ZQ7nH={U;rC6~XEtTA*@<2iTxA)Sz zTVYP@uBdUM4+>`9yNnfBy2?~>>zMwQN!@KT`W;4mT4TAWJ#gJ4%X;|8*U;#%)=+Ba zqW-QK-5paEw@>Kqn$~ZhId|ur4s4qVRjFXwU2oSndyv*z9J&@;WsCjXR>x&cwkwO^ULCVRyHn6aLI53 z_*pS1h;dblDyS3^Q^oZ%mZBC)07B(_Q7)AJVqGe{W-YW&a0lEx+!FW}FG<4@ZZIqk zrljte@{UJ(-mE-4C*M0R?irCAhUHuO#6NV(zwToGPiOwu$FhGq7->A2cw#Ddz$f=6 zR7b9qQi|;9(`%*jYN?!6N^wyM2}*!f18m8eQ>bOZu_n9MWZROmm=yb*;z5)Ao(b?? z>Ry$H8P%Z{({Rrh%WG;eD;C2A-mxmqM5Xub>Jhhm*e4(I7kiSJ8#Z6~%QN%*4IPwz z`#k<*g_LX4WFgQAqj^_g1=tmRHOLh}0=OM844!@fT4yMWz{aMZiukg$6<{j#AfcBD zqxiHf1eP?<(x!_EeO7w-lHb%7B=ki#k|k^>673pg!4lSivXIaS%MrdJ9x6D6ors|m z%F-kXt7%{@az~MbF@Ss^d{i2QpAz&Yk*HSI+y`An9=aB zc8sM2)01())URr|UCkA>R3)aXp+^hub3iH0+=dVRu~pYyYGVd*2v`s*KmyOae)1eDcp z&G!-OwG_H7dChvPIW%ewb{L@x0{~joI>rH7VgL03IyVUW*s%0)zXff;S{Ovd_FSK3 zZ3y zbn>Uw-9N9J{fAcSdu`M=cU!(@uza?I`ed8=+BVBoZPrT+mWx}=7dD$NZZ=)nYQCmr z;ez_Pt<4MHd1>{mox@*$EcDN>7p`cY*S8okWVs2WY4NX%MhjXqQI)|^T}&9&K7^Gm z_;18njplQ9j^ETY|6cFXyoFhC%hP^k%FWNXxhZFU%*jqW_(?Z2jWvb2c`vu%%gy`O z76S$I2ZHQa8n^)KrT_!m7yPItIE#Fhn}MCZSgm*(wg6)Jn0Y@|sRAlt5djT9+fcjHTlG+tB>NACx^CbC>K%Z4)&dNY!OF9JN4 zbH*4a*6l5LVP+r6!L%MdU4)~MH==nvY>citV(XspI)&kXq`(yL2A%~A>}t6~8Ydu! z#Ic$dDKG^)qkezPSy=fOIt<_x#`;=Z6cx__a`IsS%QRjxszCr{0pKNafKtF? zBt#GZ1{0#(z%W{N7LoLTOE{CG#RCPAa?e=!*r}=iMRJZr9v})X76bee&?dn)(gGNO zkY*&<4-MW0I5ioBoHLrkcO=BP5(QV1=rl$ODE|m-jAghA&d|CmoI{NeJRRvqiVwsA zme5`4PosWDBrTB)E5I$FCN7e}3yh&&JkSonDjR}P$}m{=D#gNq!8E>v=tZhy`GBub z1qAy8SBgnrz=Y%-^u|_+Dm^k1%7>uC3WpsjD~n78t-ozs|UU2oG@<4+O%7Lo*O z_zn9X!z5+|Eo$>S=)-w@L|Gq(4QJG@sBpq1zi*WeQS!TH@f|CF!XfkrrO}u&5|hW$ zShUKRQm5h)V98KW7z#?mQF%Ne&199~BtIDAh9lxoOc+b?vvI~4&%2g+Pmc4iaUMo> ztte)=hYJc!H*?bclCA&%|MW>jK~$ykips5vr=uL}UgIorcF-jsF!FCqt-m;ud3_@H z+*s{|CU}^QXt@+A z3dy3JEvYNz(h3R6S}K*&YB5#Z2nrIFk>?WfM6x&*mHGqnF_-d&6{QQGT9BTcmiCYE zbpvdDU%@aewvP(;P7BZ2h4xADIlIyq!(5x@ zi-&EwXU7Z2ga1GF{xdp~>gxN3)e>O91YxhTOX{2|cMGp)?`q-ue%|NXbuB*lUGzGu*6HdBr>eWpIltO_|2N(5 zC4ntv2~JFA#u#prW^^p)<1&$SCdzWUz}%QK)@vuat*I6R*`T3Y?PQmqIb)!X$;mS+ zqSwwUqpSr`ip?0)X(7pU!uJ(p94zN&m=MPWDJo1ea}?uFvjcO{dpF8*-&N!;lH`0k zp8IkCHH-RhSTS;Q!Ne^EQ{OCC-c~8TwRqzC_q(rqzyE7X#;;yFmA7~#=aV79`vX_M zKmGOPqFah5zg4ApZjbeoR;p$)y+_L)x3GJZ+#8MLH@CZPuGU=*{lKCr!IH_GBAuX6 zkz1^~p;&Q4q3Zeq+4U==SA8`2jRNUUcez%!q-s^{V4QZbT!7=EnRz1pImxDdH07Za zPB!D@nAtQPN~c3WDICXFxG;RbY?9_OBtsJ!HVI3Pj&lS-5^;u(WinEVRzXj|&p=D;%z$)8>b{qEA- z`wiam-tg8@>Y$LipeDvy{&dF7q_ru|7)u+&q;8hh&Cwb^rI};Y5k}@t?j9p6o9DJqq;^g*n}=fCCdm_O zx_M^)kchf#jU@MjLBV3NV3igjs!)jYewfT)j8N7~P>eZqS4s1D+(P0)#Nu&+FVIV) z23Qui5VZJ2!$?^`P<+G`@5q-eUnpMiKm`@}6jt(Xf!R71ey?me*24N_y!~nkpMV(S ztl$U>47RWf{03GjQ4Sh~HxvSN7leI@d=3zP^-mArc-Z@YsFDT3|! zOG7_NG)AFAY=Hk688ZH$%IcBF6e)}M42-nP!yO7Jp$=uJTN#DY zqX5=gh_=dV33kfj9Y|SGHQPTPJkwyP+BWdFvW8a+8ehvF`emu;r5e$*Riei$#Sd3XAF7o6phA3ih3u{} z$sLulJ60=iu8`hRCcV8}c6Yh_z6$A`t0rz)-1qnf=?9I`8%js+`%L-l9@kYXM^T5T zOb%oP9L2|pqTx7O79K*Z;-B=u|wuYR7=T2ZteX2ysUm|-?)az!v3tP3W)5wjDPA*dML z00203Uhs3vDkwO4)jODK`+#1Owi%!-;4Vxl3oxL=sXV_i;0LOr^R8}AboT<5Fu+M| zVI&F^HjDx)s8MP!!6!#fVj3u6&Ri6NdiD( ziY)*wN5a5UB6^ zV2#2NQMnQtCl;(&Q6ofQiz=*9jRgy@xsO@7;EZ}t90eFX2#^NU`inVyanxAHTLkwc z<>HfHVHg|UE?zYR;S=s8N@4(%;`fdLR|%UZ0RU$5z*UENn2Z^1F@rUVOJG0vg5W2F zR~Lhuh6v|_BakitEmzd$iMcQ#GU0Kj5Mmu6qcx~U16@?_NmyNRr#&(^$9V#*C&-xG zD9gU>K-Zs^pZ&qxP1pQu`08bo=;N`1e}Y&j%Uh{LEi4#5(S>~hv@o)nr>tyQ=!3qT z*H@JFWfW^7BMVSdcBa=zUyvnsb;UQgB(}6Cck~iFdgEI}U@j>Y2MR9&8W=n-qx- z4FPvpJjW_#NqvBHrIHbXWjHp;vNXrWffLdcd|9U~^z#S(kE}EN{$!x2m)bJT9n+-G znlk52=}Y!ZlP`05CR3|pYbDerWBQaaeZ)M!Rmv`Jr9Ycw&e`XiXEF_e`Hs+hUxI57 zv(3@ZyW(jnH*d@QTgUx-kj>Q1WQs?rhjz^7!mRq^soYN{a~6%}emar!@#wb-#J}Aa z-ZIX#`WO+J))8qV$@m${Pm=+ToZ}K9j&M*(8?bRYqlvIXE~3{(4tc049|?EEOaMP~ z@aqbvxp;a$!DW(}Oe)P0+gVFN*|^qUZPh<*0vZA zU63BWqB_-KYMD+9XbGW-R=Jrb3$>+_C~l0dY7JKRCyP2l>w2SmrrBD<=O?x4f1U~5 zvSdK;;Yi+6S#E(kw+Njx(SHX$bofxB?DPhWMTk=T+b^QCzA$HHyJcLtOoYaqtj&r? zDITk`+8Ah1`p-vMUdkG^{$K8bOL+U$Vt_X>&stCi=mHqy1F@iv)-5~^+OJ?-fCCnw znmjg)H>}|kIvgYTGeYG*Fjm03=V2Tg&^U}NJV~xXaZ4;{ZsM&^u!Oh8a!e>(BF!mP z3d&Weby3ReUc%V49OWx;W0>;cwo_GFQzPc zqyv~r5^k47QDBf?0y_bBVOm}&%21~~)}f5`$}xayKoRT1EWLnF=mFRRoAEA!S(@sR zh0r;Wm%iwc2YVG^bR$Hm_r!oQF``LL80bk8HK`^0rvn$dZ97g03%B+Ev$XBkE82g) zqW`BQV^38~KUFSyu2S~HO6da?iu=lC50uM(P$Bz%x%_+OvOCMA-zt~hTq(P?LV8z) z?12jT56fkb7EV95Z0Mb%raiJm@o4mS7u=6-Rb8{P|EdyEE@oPk<`(iwwHQ#lP~cyI z9T0Rz_vHF&k((4ybJh#04{dHZNj)t%mc$aDG{rDsu>oVTCirB;Q@Yr=4y{|$hPa52 z=8~IHnoq;a0HR?Eu_S?}8+Q_B&%DG!3=j*52rBp~Cb|XG;i)DYI>k?#Vd{?wj=Tvc znugHP4iLrSj9AeLEsiPIwp4NVc?7Ca_m7;j^-r_g?dR-Lfcj#-Jb8ipEM zR0(I~IRwB!gSoasDo04kC-%*j1pv#o2f)S_He-`wCTA2t$m~hNY#xm*z)`%G1Eynw zHU6Xtpu!U|`{EYhD__zL8%(3S-(gtjbnS>zQRdD%dX9hLF5_OQwlP-3p%GbZVZDQ!Wu zEv__2fwh!YU@c64%x@DygBwqAC`mtqd}v2=AI4(2fj@bUa^R04X$3$+L}!Z?ZGmqefg}9gqpW7b{$m2W}(a8UAMAOTmCH z6upRBU1%7D8w+<2Hr83g8f!#{{+3DSENu(WMi19D;yQj=y>b8WTg&Ty@^;G&9}Wr@ zPYPC`#%|t99FubMv+nPFCYJ0-$%_i&V4N*Dh$>)6Ug(3qoYz;B^<|WPeQMB5HOf+r zaXnn>v!txs{LBx|M^4@*ZgX)^OU2~%5^1MH#G z^Bf1WTozW$XXaThLv!g#Yp`}awr?cfpiEwtl4qvTFg508l>ts0WYj@g>1D(|dfZ9( znVDv7>WYdwFHatuiX9dbhsDG(Y3it$+CNGioT5+3F$-3|i<0;m%?vx~AqJh)q??iY zc%cY0-DV^^^i-RcXx0)fI-=W5^;wAlC#tBoSm`D=(;H-@QJ5|>+EiMT;?&7`MT(nF zaf2zkE5Y?A>EQ%35NA3gOoN~9j4~Yo=A@bIm|?UmGvFcmJ=Bn&7DhQ^nzM79h0SP~ zw3OgR0&ItqI;)_L%c(;$;+UK|DW?yJiTsx2hvz&c9jRR+`h<=?q@s3@hfYcp!yfd9 z1R_-snPz?Tl94*CBo0m{cMU~$kH+?mB@c|Hj!Yy^O(*N75{)uy*h0c(4!GzOQ>oRL z414_dwqQ+nWJ_;gYnx+xr=?LmEA^y2)aT*MymNlO zKQaGdZ|u3ltR=}A;Ko{gI^nU}Wz&gMK(1q;(H{sPX89M1@egA-?5VUv*0n*^13yo1I!p9!6O!6Auy5x3m_IobHI=REdid%QXh|4&;}Sp zmH^v)VTgl``GOZ%q{zkmZ-_vEf_Yht#E;;*MCdbF#)~nQNb?FYu@&AB*k+X?i%d8P z#29{luLX{RhVl8b`1v7zgodx|N4)jyi+HVtn+Ye%s=T0dq4b)<$+r&3yNu}pBh{-6 z49SA+Q{MGQ`hU6d%0o*!?p-?a6=nU;U;lqVSqsV*=r@=JEuOLfoRpa7s)u*{8&Jmj z)bU=`jOfTwMY4N*_DYZa z*d@jKeZz~^cKyDn^A`pEzgRW$lQJMH;iKi#k5tH?sFXikDSxa&{$Qoz{wmo$mC}1E z<@Z-e?x~dASth@|LVi=3694=-s7oeOUc=KnMNWB6i>=7K+1UYYcVg`%gI zbpN5Ceb;G&P{Bw{v``-((?%zCkqJY1+8CeaO;WtCU_x$AicJx@33CmL&50>vY}^o@ z&_~BKkx_koLW}u`Cv<>VKxi?bEEyn{H3buKgcFzw^H!kjoSwIwz|5O4!!#Q0HoViF z3*)KKs|{z&05g2_6p$E9onbT7NJzM0_KdcUsKZMb-4UY)rpR%N6G{{h>jug~eK~_S zjD|9t;zzXZsLBqL{)EC7R-5NkfKRrl+6t%uzz|kDf@;JPI4NKQOujMr3O7JA8m>10 zTv<_|&wy5-I8cqr0jEHgGXmYYQ%2MoPg%S%fB_89@WiCv zJbIyCA0QJH3?jl*zpgNlmC1vtfiXQ4+z>aM1#VZw>N8v63k!mnDDXu~LVG>|ch0qvLTQMe$2S`j221h_E7ND8~j*r=gVF`SdEoc_w z#TzlK%bvYUaQC8WGk_M{H%#lSfFomqGFYO9p~@OoS>fjqlVbYmC<;;9Vrqaf^fpZB z;2Pa2lRa+o6LwF+;f^_dagQej-yo2-(@VgQ0VODAQdXp|gcESc9krtV1TO&s0EPk~ zs5*#p?EufNkiii|tg_)9fF;}wG~ziEMmOx60J61uNet+kiQD{9D-;jm@Q`rZ0o4qi z2wXTHn-@2GN!uJ_aHK|sGiREO6}yN3vb5>t_nIF2p!-`N4}WtRKK#oqfbo(aiGiI~ z$Z-fqX(k2gL}f>Ad?5ONOjxK@#j8s#^g&nqCoGRlyZ6nV%=J0YDT^$AWEqWUe& zWd+foA$x4pn3tB!GLir-nRYOQ<)5zX6W?iOlF>$pQkhF%=~;hli}v) zfwZ9hIWteC)1h=m$xBwW8R*l()QJh=>}0ZD81FGqLKi*dMn)R3QEdvcb~t=&G<;4? zG#Tgy19eVL9iB*S>5Z;!3#{pgZX8VRog@zl$Elgi zYS4wcg_;CoNO9;=$RZB8(itz8wsM#q%f@gXmhz*`jfJHz&AHim3r#DMX)VdP8P>H=J*n%*ZTY6h84E=NiS$%+B8yqj9p5m{01sc4xwIudPF$NOz$iy?7Z5<4&z**hBF zHI&#q7~edc+&-MxH4-^A9Xlb8)yWeLx_Fm~>Nb;|7OF{4H|tW0IOl+dk!ejZC3I7A zKdYIewE+rEJqZpOgJlyLF2G`%V?V3@&Y-S<>uV)#fR0u&iq^?CG?go1D8OobAz3)BcPoo*s#08a$cp zLTY7K{N0Ag@@`_y5V^50y0*i=q0zFZ-F!tjEA_K(dVV&OF{RT(A#Nnbj0DruC|<&j z%+Nz_dSaH9`x#XzWsY;ES!UWnjXRk>3)!HGUyzfhB&jW3-ik)wmZ9W9A-Qjg+BTB> ztS`2@E4;QRvY~xub-TN&$?;j6b7QA_b+f&y(Nfi9{;bu#y~(n((XzkAd2HBrQRMH@ zM@F0pp`W#p>DhF~$+2dVQ-?`WkQw(-{YJXmm2R2kwkn9%`cvOM5xf6D;^E`b2Tz8c zs!P0fIr&jfYSTz^&qVTom^!JV>$Fs(p6;CP3?htkO@3os`&4Nt}$(#a)r5j){^0w;Lvy${}j~FtcHt zs_coEv<21<#CJ@wb>?)PBU98ByK9vw=ferXr$Rnzi1)n{K>uxI7^DTj1H>4l zEEE!4F6Dg?{zF-4o5CDcDCL)>FYMbK(R_3T(AL1bTFDg+#s7d)}{UI)YN-x+MfTU z^{yp-_Y{k7E0%mkS^x9be=lXBOoc20r9~d>#CoVxmgtZLI^|)^6D5xfsFL04(71-2 zG$luj+?bge(^DgIvR@b-RVRg7VpK}>$zsFu*tk3~qKLPRc`o!C`lf?@qEP#U`&^HC z%NbG4;n9^_d*3N<`P+)-cMJReP|){k>G<=N;%BOa&sB<^s+K-fEqkC`@^F>>2Nlu> z%EV~As*v7YA-khOa(jj3wsO(!<>KqhWVe<{Z>W&mQLebRT=au-$zug0zg{OlI7xTA zDRUA!DZ&+|?F@HHOFvrCnY&_KP%O+Xm*kd7q2!c`Fe66^=KaXY7x51&c+)uw?C@$c z@Hd7fKD`js;JfuV8FW$qAUcuz?T)}a+vJ0p zbOb;P4uVp6C_I=jyF(_=tkD-Y`l1#;%+4bwA3zx&ya(13`=7qYmLCST0z3mZHkBTVZ(VWTf-@<#MPVtmXP`W#~TQ``)f zkF*9QW^lv2AH5JQ0CLDea5q8*R}f>6To_da+w*9IG7>sxSmO$-oMFHi3>CA7fof1+ z#0vZqmfNAsscb=|JD{~fo8elbdMn@)d*T((gv1(A*kZ5}cGU73 z7%FTzo(OmnzDi(VyEkTcB^Pu%W|I^mA_lX_2t*Sdf! z4H(>WCP&ylM_6W4gF@$~gB`zLUjNklU3Y#m^tF$Ma+is6SITl>;DJFJMsXNvvNkIi zgI54?DYHW(4_AO#e900^v3$-0?LFg@>LSPRL?f|PWY zp7v5xeo`K!RC9#Tog8(NOS)ZpVW}Xmr|d-y!F7Gq`W~XHB~;xKKQc+Q8d6gs#>%p@z)R_WJ2Ci*bEX*= z$GFoOxCAdl`)Jb3P;QQK(v%xL8xuB$0rUdm@-v*DV?D4Jw3DIjWL%RZl}SRCNa_-V zoh02f<>b;fhILR>kYnaJ+R1UP?${X*b<$6rou!-nbk`i+Lf zKhbU@FB*vhQhMD0UDQhz4^hiIlOJ3T|MR@>&u4;fpYty|Z7r-bmR+)xT{12|t6Orx zwD`Pv`9;^#%Z^XaJ3cyVUQ}mUanZE+lx)RON%=|X`m@4)4Vq(Z=99g%9eT9;!Rah< zPB#;uv`|BOa@KBhMWeNnIomXc!y-}WUpz*6;)N;bm0Zf z@<#LGX8U_Bu8&)NAGG=3X`T63tMAP=@7pc2|7w|gvwh~xde?gw?QhlD-aBtz+3ean z7(6*1Yt(aNepW|)E=kX~#?uE3T*WwDJx`6kMOOF6t9t?kJu{0t{ckt800>Jv0~H-}C9Sh-dZSwhi7kVX zs*aftFPcBOY{|c@-PmT?(_!mWChZCM#xo8kEstbIX4y6~b6G`QkVhMhgglwnaG8^H zT!n;QG(`TnlYZrL{JGP!zdaLq=UiaPd3SMxZ%c3Zz-aQ6l)R*&o6YQil^!({ojP*Z zkdV0;dm`j*&`V3bv7XnQ-LOa4U8N8@=bP_O}? zAVY7wQk{!$fw*|L9kjz_;Urs^pgjs$i|3!LggT!!3#lW!dJvJ-~!W5`J%4`aOAJF*rovn}E4#jx@8 zHLE6XS<>~pU6Nl^cm8O}#rr>P_~FX_Z!eq5g$pc^e7!{c6=nU;U;n+7h2|zT)32ci zbxe<%9aPgpy7Z8e9h8vcDsoH{ACLxH#vEOv_MS24sRqr~QxoeBPZX@_%CG3zuuodG zZ*Xx<`^S|7pVai_uOC=m)BS#N>pxbut*9DYw7&ntf{uSKY5RSC*UyXkUnm`UrflNb z(&^VLreCTQK3*+;utxSkmE@61@uO9;hb!d|Rm$$Kl-^e%0o;0^TndzRXQlL871Eo_ zq&HPaZ>^AjvqE}Px$OE1$$izzAC^iUT{iTKs)?ghge1Y}Bb3@p>OBPN1VrLWf-UWE zf4i(Zr*ukCF3YQs2{5m`JhxN{KX(kug8wJ}4{@0b{~Y|M@qb$QgW)p_{(pu3gcE|5 zLcz+(+!grOz2U>Yzm$qDHQR+oN@0pkXv5R`(3CMWZH!KvlR|T1+Jq^FMWzJi8s?=1 zr}WWDbQDbR5m^|`HD!!U>tkX=L}~~rOkuT+pI$pKUWkunLZ3h=e3~f?)G_%}FyRJl zFu38PxPcD@%4$v+fq5KJG#t6m*NczUiM!G86|*^`FyTf&LzsX2P%Htc!{kfx3JOWb z46KP7eF2jP4MYZKP-B`=S)(djRAUawZ85batg%GY)`;2?QlU1+oYoSQ+k+Y_Kt)(% z!#rI|;3%l0-ymKE`V%^U0~2~DDyPF0@rvhBjLU*%KqDP-vm*h#WbuTpZfG8S6tV!! zpmt&c!>Bv}QK;Z&v`2uT03Z#nu+b4V+C#WIhA>6p4#0(=kqQ+Z@V?=R+({myP&gj7 zD0nND31hU97)1t%Lvoi;4X7S zW)4eDQCI`F7wT}gf%J4XRK3rJb-}l3bwGhT6ShI|AWvF7z@jOKm%_L^cfx@Xg+XiZ zwZf-HUjnJsj~;-0G+OrdMvShg!GktW)T^||w3u%?sB=R5fvF-+6rzmTyeW$pogv{n z(mR82K&vZYa?e=c`vPq9kuxzyZb%)km%USX?%}tZ@;(~OSt?#|nun1)AHZn>CB@+F z7oLH<9|$i<#p4!lwpuV@@#FV`YswcM|6i$Jd|9tAZ#>clBGXQ4%!sq$4g=AlPW4(y zk&lF#x{c;sY0k_2dzR&bT-wcYj(ExvV$5Ma3MIr!JjqErCHK=}4=r+2Qx;O}NNEG4 zJ`h*?!}bKw&U}R9s7xmPc{<7cTNh3r>^2`Ainplg9zETxBrnOR^Ha$t71eH_nsn5@ zf#BwL?|~uW=oGnWAiiakJRoN__7OGhsSU%_Q86(R0J2Jl=eZ!u&CzU-1HfavKvpbk zO{J_9Wv3Zens%|Yon?$PqoWut!C6_-Ot1!$)sc*jp!6xim?BLyrzZ({FxurvilU5; zX3cckM6xD=GSiHep-}c9&CaAV{&{XZMxXb`kIYb~Bg`~QPbIm*5H%enwFy$6N}Gwa zC!MjA?BpEVH^Vg9sl7^Oi;yeoN-S-Pu52e(btH?1sH#z-x}RFzLoL2c{ptA8S-MwUeL}bUq;2~t_bQdtbZce(jRywTqtDFZq6U(evtMs5pOh&hx9w zzBlSzzdP@KyJ===`|O&**l8i#qGWq4>9N_*$71QOx%6p0cR);S9VJ$G&6QqpRa`Rd z>U5qO_FWut_sCM_2<;-$rdV3)rX*HYY9pu3PLZ`!q1vfHtvK9c1sb1s&i}hT$?Y@~Ra0!)0I{rh9>;0b=72wSAc0K1A)A zVvi}q0P6P7r4 zA&g&wau+ZmEW~qV*$gXi6&St+o53-K*B1yMC>(!i#l-EOPUJ0{ye40kSBTozxg`=o z@mG}fzj*!kQdZw|pkvb8IPN&nso!%+bL5hKPlImb8Tpz6lj{!(OSTWMT-Udxr2W&f zt`E!G|54KZoARF5%lm#&G4#vQk)M@~y;45>i;BtLRE+<;dg9fJ@t4cSe_A&7TIIw~ zOU5578-2NA^7ZnG*UH5&Rmh$$mpxV?eY{HgbhYHi71BqmBo9|1Ry|y!c%VvpZGvw--!7MbqfB~jiTK(|*>&X-psd>~#DHG+l}`U~<B9 z5;6Qgt$^SR6xP3}bxK5F0~tR%}EQ8P!ISviJ?ehN#34k(;9$dmLEBfZBJM z(pQIZM1Tize)z&S%hyW3DPYMiXHi6sEO>Epd8nMRo54hV*y{JLW+O zn_NMIJ7mH%N|@Ex>WeyjQM)(d@S|14$_MbEoCd0B#4rfQ5>#0+8b@gfDuF|+Aq}+6 z646*;eL!mo$sG}eJ&Z1J$X5V1Q7!P5BLswFa0HAlUM#^5d=fD^QbwR1J5mr9djj4f zbfJs~s)Y0Ikx_#?Vnn5Q00TrLs2FUh#=%R*qiqTq3H8vkK5q#lssiHMg~Rfmf!GWl zoG{X9Api+QFL>O-Fe*KN94rfMhK(a=owLQ1u#1nH6oxKdl-9TFB}T#;V0ANaOlSp;3d_wQr3KJ5CI^(lgw#>75ta#5H^CBtA~i+< zy`U&?v#8P@l@)dV zh~5*{ctUss5te{LBQ{sm>5Mth1Q*de<^WLjwvgE#wAh1YBcBhjNL`wY~8fw-a~+SNpthV0Rj zFwvjzkg_?#5T$MLlqtcwiFAx*Lo`LP^CXu}ap`Hhuj-7Vv{tvX)puqh)*z!=RrD2k zs>?u%!?cA;E2EqO5H88-hAgrAiJDA6oAWRLaO=s_1H3UTr%r3jPiXi6MoE_vby0!(9yJEEa_U5q!Kc4yL7 zIz5|CyC_y0f;&b?qKuJaC!*A5b+U4VTr)}?Gc#A_=x$%S-N!cA*efQg&O{uw(1(ol zAw9iUNo^L96;nj%SgLA}s2(9I22yMK0 z{Njk|fnB=q?=aoD-}arOjvt(K{osWAfm7~#PddMM+Wmtwo(Jo^kDv2Cea`cIo$tkS zzMq`;y;SFY?Y!@e3*I;CEFWDquW56f91C}7xGq!XlrXxr&sW*x%)ek;T4#Cph-%Ss zWzi|s`a0d#GurKE6vw)3UHbT#nU#Cf>RCqaOAlzsR#E(Hulr=1`AnDhXovGqi{ntM zcYD2cS6A?ig6W>+pd44y+eYc~?(qAK{y&^^zH-v~lT)szk6Rx-Xnydp{occ-TlO2T z-ebCXkKw_?=4X%SUpZs>yR>OIREy(?P-OD;L{uejC?B-Z!GKI@BBx43up1y4*S z;9hNOcdu^ty?avrkK>}Hmkrh3zC9zM+R52QL)gl2z|wYZek{Q@xY?sBZl{#mI>~IE zruN8*JyX=q5prucxwbJ-b-}f-FIYE~yeJ`$jU`TvCyxvV5A}PF4tdW_M;g_MehWM0 zWpq*29$^dtQZd6yeXQ7%o-{KjnvGSvnoqUL&P!99yJj{ICijdnpADu~T=INWYhG4A zQ_&S&)1RpB3|F^!*S2~#cX|(whc6h?CyeRepA25NWK8hRfMBUQXSqISr7CxYGIu3T za$>I~T7Q)s4MOh1|^ZzYbzRJ?nf8w$PUl_PxeJ&gm;A$0$ z1PTf0IU9o90z{R{@=E0bOnwb55d(d}W(Y{D;G_yPsTBe&p@*TM z7-orl+&-KOpSkli2qnv4JkH@;fI37kq%Yo(#UB$_3cpn>xw%Mk4XzRA0o1|Fvsm&K zW&Lko|Gkt|wXSDHWyiu#E{c1%iV9et=H~Zwe>hZuEcC0gTxru(8I*a}E%K74ufXE*Q<_ zO_;nfGdg`mOneF^3np|5nZ047Hw@Esr-yX-B2FkM?iY1nh!l!d=xnHxhX=IIX{=#| zeGU*#ZHs8kL7fQ@E22X$xUkY1(wf6c8*G4f7_?|Xdw43-0T*Q@7Hna?1DGM4r9sT| z%g1p6Mgo8t(a;n(I02%_%9hzMN)fsru! z3-1O(DKAEkFveS)keWhpB0MRc9p1vhQC1OH%j7`P!^XHU#td$k4z9}faH=`3*VVU-!`355mY ztYqeh+!~RZ!k8q@m|ddRXx5~eT?1b?E|IumfMGHd>J6&xfNC)f8rC8}m2h=t`1XNO z(Z0lI9QK5D09xJ{K$pdX&V=y&>b-zQA(I{8JcvtxPk<;C4+O3TaEh4mUZK{a-A7oR zl+8i8Jd`((^aN6XQg$EdoJo0R2(Lfo_tS1aZS#{pKke|5R!>rAC)&px+m21WS=#;N zd(C%!JSPKnb#-B!#`*$2;WA5B`MhitjI3FYL4FkEpO5l&l&j*m z=ZEu!KIqGNeMMPcMwwwb?QFEiK=#fs;s_(b+^?i^mevLt`5ZmvVLFVdP6OGhA=)&l zHZ9$*B{~g6uaz3GV{jC3*MOCpoS~&bMlwrFXBp`%s|v8jD6I|Ah6wGX88<@*nKY5+ z$aFf9&S>YN$HqeYx@PzF2F?j%<8E3NLGcC?k>Q03Gk{OC3=?4IBk4>mok`56qv`ob zChbkL4wkmi85@YV6`#QnBsJpoQhV&Sw)nQ1(>NhMmWbP;($qs zQz7=ekF4%XZ5vJW`&ea&88T6Zc*e$LhU_yVe%8ftY$lz|d|q#-_KH&tKDH~!^~|tC z0dCsI3PY?a3TI)(aZW{M3>;_T(t0)ktUy!0W9Bku6r)d@*tC`gw#4<;bjF3YwKSZ) z-N7{Jne!^9PC=cPQnga*a6GKI`@z3JkQkmo;u@wrgr8p7v~C^f?N9nM@DD&ce{49+Y3)A-rGO* z_F?Igvxc%OuKZJmvUB?NjrKkL(H-4$Yp>Y$b-7Ls&7BeTdeZvdMORs0YW)cF*%-NDD86wh zzGIx+&=uIy7dT%n&O6_$cPwi(t?hB07S2cl%xoqD z#gXQm+`Kx;H947DBXiL~xB0j$cKWn|KB{1Lj8JPDgDXy1mz>mB*SmIh%xr1%)m*Vv z)tfgrTXuJvPYgTj#laR;q~A=9Iyj-1mH60U9nq{H8ildtJBF4X?7d>7PARxk3igDA zJ1C*I46&8%$-?G9MHf-iom|rs+cZdS9wfI6L^t(Dc8;X#&6yTw`m<5$#jW<7_Xh-@ z0H|m%bzwdR&0?kvU@9m;TvBE3&{r`Vasw+nM}%O^@UI2BUxUB5+`6Q zrgB$gty_RkiX3$LgG&I2f;RJ^Q+(qwP7Ib=%TkdX*DnD!1H$1E2o4KVIP_yeD;5?2 zEwp8!yC83>g2D%Sp&z3(H*4?80vp^StnfB5G>ZxG0X6 zFT#&t_uQ-3l#={(jr7Hu$ye4&U#ynASR;L*TKsIKy{}Snf2Hif3eiJVvL94R9;%i-SS5d;TJjLAti<4} zyDJoTS19kQkbk#Qc2}kBJ5{oKE2Z~TNbjr=-&!ucptQe`1(#}v#vc&tRbl0vN;bXCcxvPYN zWut<{qdChb1k1;BmrUd=7xI4?m@mS=NX-AwW%!4L{}Lb;{DsQkpCcBON*+EOxPP1N z=Cz6^x4UwSr*l?}KE9%>eCJ3*pL;?MQ*B0WB_-yV2oOsfn$ShYG~qFActjf-)`kYP z;Q@U#OIZ`T*n}ZDZ45&ZnWA!YOl^rMQ6>S{3CJO0bij-`0hERLeBCf_j+nhD^MGMC z&XCrLa&|fkD%!!kT+geh8_?$vcQLu626xEp22=~9@0>e?#tN9Sqhdtd>WR5f#4qag zC7iyf4Fw5dJ%&HQv|eWqK^xTepbA=I32Gd1HR|AnwbrQK5>>)SR%j|Z$SJHLz%7*n zHwIGDJA)Xr1jvLc3kkg=#;X)Yl+LVb9{^-FC@2B=gcM{C=TPiVIgFu#%Y>HL0&oNkLK+&W;0Rhcpba(yWCGkmvlTB~0Zk19Zeh5T4fcYQ z!Y(nit)T!$ROduNKP@j!4j87gg_Mqv%97OjnSNRL*$;ZZ{_emxJ|6pV@zlBt&JD+= z51y7ysDt((jgsijfW|SaaR3X2RY03I47-xq!T`w3eWvh`JvHnkhb-g>O7KyN5Uubg zBwkwNrX{nKB0_6{yHWsGtev6#bb5wK`&rhl1m>zIZZ6;zYNcD%w<^*%p9beo}ENUkTdn23rB0ENj;RtJF zxL%99IY9f;^NIP4o6a0nQwJo}0THohlH5L;+BFh~36jb#vRotFfdST|DM~weGYJBUs?&DhB@;Y-(dwAm@v12^7TS{$GFeTI6 z)3tuVMzvs@MX=o}*lrPQHRSFFfUye>Is}KU*By1;e$sL88UG`7{>RSv9yv4f{nMVO zYW>gG+J9f`%)j8+H=f+v>)+gH+}7bgFdjQ4CTe9=or=DqOAmO{!q~imPHUKX4UtjC z=M{-eyN=vkuU>a%ddFqu`SC!9mYVd##iq4nMwLnnBbjbz=8}#(G)dI7xR;)@ynn&- z%cG`;4_Uu)*m=Vt=he`veRjbfd(Ivkl-xaz9BAzhTh0zMHhY&jccBYs%Q;XbS0Nv^e(#KENBT;bj4S9$7)*V*0u%K zcg%g(9^TR)J2IKNWaZA9GH;%oz3%tWX9E9IK%U!Srfl7inhY$35uPDSVEMHO9|NQmeOIbg!k^FqM?A5i3muh4` z0a#iid3l}el{L~=*2sUlTK1C~*$Xw&msiVxyIz59*2rF5EB|q|_~|O~Gu6^3%Y{Fx z5>Z#mjAFqa(}h#dsWhVswCg5kv*_l@j$igK3G{Py{}6A zy)xnVDunlxi|(orf4fq0M}_1&mD2B2hyk~NweGHz-dZmHdYR-KWwKjJrQfKKf1_M> zN2TJyO67CQ$9_>cb)Y|}nq|xpQa6{-&m~L%S~G-UCIZBz_Y(#uZSoS90A)|G4bu3t z1zmy<2d*j@`C9qpZR=z=ex|stQh06Q#MLW@^A`2xeAJ(_XaGtc&=)>dk>`}D@ZY|I zPiI^#5>!a?DrDc^XntUw_8Uc0HrZ%AF20*^qw$a5&(t?z3))@O>a-=Y;g>Tf=M<;8AWxjI6pOyVIY$` zgh{cS=x~VnWZe z7l9C)iqnZI56N!=L~CI0U#NpGiXGEUQ~{-7liHg*0{!kJ8ED@a~N8v;ZsrZ zcE7ON8U$*BqrrVMSmzATPFqZ6jiT?R18zmqWM_=7pb08KfOe8sZx3mlJS^Em8go$U zh^c3pQyt!G-s=8ZzWAy_*{y}rJC}^#{BHY`ANB8P)EfMpZk9C9r3}uH(HelukvrmY zTU=_1N~{s7H7PWOC8oF-b^Jq6pE5?Kj40DD#6)Vaj7=LuB4b!$2+MU5i7`HDiA@2L znZt5ZRAG)PEzpu#tvRB1#Q-niXJBztR$t0FN7y`!(Mnn|yL8a#jM^PZvlBiADh}(M z0ZcY+L)OLUH5>3MfGhlLqBeJOF3j2dlth_qxMFy-u;<6`U3ujFmd8JBf1{$W{IKN2 zIpz6g)8!WZv7^#YN?U)k?Bdg(ocrzv4LKjQ=DgSW-M72$dVe5y(e%{-LisQVDYGF} zSb&aT_<_MJ`y4bYuLR45$D%m&;z$fz!qB@I20wnN&dOcDj{F8VFlV2e!beLb3w_X+ z^ZJUizKk+UvSenSNweI1Cc@H+x#XZVGHgxuTT^Xj@{EGoF-A1lXkCg^Mwvk$(P2(q zQj9XoF$xLd>&xpc|G{VZmggTy5B?tq-7#YUO&<-kXAyW>P zb}@{HC46im$o@OPCEP^P#xh=(b25~HB=taa2|yr96^$!mtSpv7*)#iFy|!O>={@!AnWnJ#6fPt#Q>M~80iKb)u1ICwDc7X-Jqo|tC(|Y@{F81r=iZM=u29* z(L^_ysb&+^02^DF3wkINlzJW0U}P>^nR+MF>Z6;y%xMd^VU%6b%Y4#Fe_S6btoIc* z_zUWNOU^kyJY)X!l5=_M+&itrcaL}ktJQ+d#vA~xEr45=oSi1YUJF`^pd7O29CO}$ z!u_4op6}Iq?>{s1Ox?`mXWg$Jw|`jYI5)=}T%sCBnQA3?qb0@^i zp3&smPXE77s9ry2di1d48~f}z`|P=U9fDofoLwftE>q49s{qIf_-dOmcdIdHn^~~Q zDA;a>w>bwL&z*GsTGJ?hsEDF1pw_wjjSMZ16JBzaVl**O;7)F0kD9Nj*Y+&W5D z^re1&KzYwL<@JY+ch)+etaJUn!Bf&7+CQGCSCP7S#uDHRvy?Hynu44*mhmy1Fa7x( z{7Taq-+abEvSTx3w~y0Zt2d(^M*mb|r3viz8A z^%c#|PSf5F?Vb*8lYs&{eRuD~(&OU8Lh9gfeB~*{^7HP>w$NvTiH!rvvgVn^b>>wK zzUubahTib*;lwd1eOkuVs@Xa%Q>S6-3~Zwp%Zi4`EoIu=cc*ebm=Y{g=d9H6u7f}k zm~j}rgO%F>INIvH##1 zk6wUqc;Wbj5mt)u6szDABGeKr=3N{ML<_j(0S@6T3$a)@jVu-C77KGr zMPE_Y|NQmeOIfef$X{8le7;)tJfPHCIdIggYmu^`@_e=Q*&5k%Yg8`+Zmp36Up08~$}Rc7JpDc&3KkqXJ9Rq{ux6pvLap*&nAeW+UT&}!uaHS!-+V|k!T z2KD=@0JNmvtCW1d3V=#-N15o(O4(f%QnX@K%I_+Z+*={NqfByhnG_J~o29aEmP&6g zligD;eWG~c#lp#hBN2U)btM@?08lDr@gLYBkgmI2AhiGGz95pAZ zntktfr*^2QTI>8dPrA;>o%CjoSh)QLwq`2zW>e(V6RtM^mcEEs=e#RCZmt=(;LtPPHVrRFYdZomVKnYUTJnOGaK;-u<_V-W|2- z<{pnsM~ZChv_3eY_D&#T#fG)v0WE-5WLOs-S4YPUKv`j-8P(q9#<4LfH{fW2=w=LjY#Hzv6Jgcbs2!R{It zTGG@Gz&R8@)LLU|8*B!Ehc+%f03P6nJMQpM9uMc4VQhZJ;vo#kv2lYVrFSIJ^5Z8} zvs}B>|CjvUoDT={U}(X7`Mk?G^t|tn{j7X!SEH%6O|3A|dKY7wV>Dg@I8$j0NiAWi zF(R=fFxtuh5QQiuG=!$K5h&BTsF+VzEkp$r^caMXgs{CSB-O{I=9I)3l-t4zOGIOd z>D@`An|AmZ=NxNrad0B3ne7?(9;uzE+1%gI>5%GU?qJ#-ARTk8YnHWpDeDYvnPGJR z(&mKPozeq-1D@GwcYtvO*(qsw=bn*26*T5Z-0OAhEImCUOt6m6+avbRw@MfIv7sSPaS}&05c0?h7%Zlzrd=6 zlJx`O?Nkdu#TPVH0hndoMWC{LAp~n-V8%zG*)bR^3w_X+^ZJUizKk+tAzUPzWHH$l z%VZo3W9L{u$GO?Gjmg;Aw2w<$S;iCx@JLMhs1Y|gIzvv*QByPQh>MYgSR0-8vl-xr zAqUxMBKoc9M%Zhho8@GehEN6AX(uK2Qpy0Si6HHGQ?!?%`~+>9VH81HGe;Psl#}Az zbXpgqWgc2QLuq52nPe>~P7&fJob;HTm4z5*Ds7?|z#e0YwGu3vswm2kNUGzcD#|FM zv^)rf63sBvbCht76?&L4H$CBHN8Hqyn-TfYr%@iDwGqmeq=NJOyg8k5vl%zRxtO$> zO{1$G!x~x6L~?qL(^KjXr*|~Nz)o3IeH1s6}bxuy7m67LRDJ4&fsagqf zY?3}PO`Q~yM<=M0BI>k^td-NXD)N+!s#VZ+D(bS1xuRq1wRF9Xsy8rKjC?V$Ee5&; zDkiqk%rqI;9w$2%Ob^X*Z9ew0m#wp>4@-${gT#jJ_=fHn0LE?+yJ?!OyI_+o=QC3duojTaP8*b*J&vmmdId*)SD*0RRy+In8Q+gjd;fBAuB<&! z+2Y?l6geYjY9+~&lf=o<_>tl8!I9v>k-6hj;j_T+9e z2{xN@wwMH4&4R7goNcz8E!Lc^Ho<0#V7)qLy;88veEWXK`*hEpcKxx= z@%BYiNxO6Rn7`FRi-MU!eX2*xbZY5#12bf#CQLDJh0rzX0q<`2U`Shfw>Y{Sxk?|dafrAsFzwQ|? zxS+4orZ1}5ZJnVl-Kj%z`kanyv@wkq=8S?lDTW(MH`|#WAJ-2pnPL09?7$2==w}D~ z%MT(sF#`E5p%J~Q&N+DRTmtU*H% zza^Aa{NT%17ElLe$+B3*Qx?A^R{q0OP~ae#I0WfPkPXU$C67$Fan?|V3Kkd`f`@`7 z9G?d*SdVM?EwdFo4uBRM1i%v3^DV(GfeexT;Aniqux%W(>UaXP5xJLObP*#ofCjeS&WG}Cg{sa+A@}o-8kE+B^ zSIeGT4Y(!waki|HJ-u4;qZ-Lmt7T7Q5euP9hE}Xf=_6ILM{5+1*C?N;hEEkgtdap- z-3JBW3cUnnKdeyzef^+Pc7KKJ{z{Zi(6+2 zb0B4n(#AM5HcMY}GAGRR9u2!&L+@2H`?c%=J$KB^9(S>4JzV`PeZj{aG*WA)Qy;Vi ze|p^ctyP_ZPdf!m2Xper1qBnir7FxIUMj!3LViu9BDYeVQwB>V8nuh1*Oth?RV;ZR zfBYvaM*dXPx4l-`GZ7G*D4~%a*QG`^kr8!pP#+nAiZ(W(i;fy1lg8+zDJC?dNknOj z^U#8>bVymglx2odTa#ut<(Y%YciirdyIe_^GwE^@R%gV5X^VNsLQE%xV1sH9D9;cx zqOu=490Kr|F`x+b-))%oH){379B#~S>+(cw-iV7A9>l~-SmGu=P|9FKiy21v*y9#Q z%xnj=17Hj3Z9#)Mg!UGI9BW7iJcH&bpscvwLD)Pg=M3fYQEne;cc<)L0yFkH<67Rd zWwM3MsGb+mSwaSkr^2u(E&Be&c!dlgz?c!e2a&a)Vz9=va4z60TNvJ&oGHB%W&QMy zgw`I=+d{x&0Dd}jR-8jm!fbGwC1S7!b#QQNL}d>t>|vdcP}ov!{r0wQ=Y()hX-;YE zl*z+d1FUV1wa?MES#HXjJkqKA`|9>P-s;a;p~^w|T3K$s5<_fPP79Wau3akn-lr`u zEoxZ2d8B6lP|Jv4X=U|3LgkE0tq~dT2PiehB?jOqAm`+SAu80zruibod}vXz37rO| zrl8>M)+Do!Y*)zxIk@!jRI>0r;^-7o+yDwm{nG=hRlFx5xSM zvNO;8t5xvfkYL#a;v(=;fdn5Gz+i)<1mlVjpJk$71TP5)D21`V%G_0I{sEzqcL;>_ zysseaf4D%CZwG-EYXkA&CI(Q0zl3Rb((T!qpNY#qi z6GG+B-rX7$f(M5{D+}BU9uNA$>&19GRw}91~+XA)`;q=`%{URzuaQXn?M> z3i`a7zNDuv=;+HP`jU~pVxyaFOoNGOurTNK)L8|4LCv%n*)A77Jj+TWtT4n4&Zhfk z)4g66mi=?-b{~D&#vV6td*$rXKK7nNZb7v)XSGJK&XT*%AlPKi*aB}9}+PNpr`u|ctx1_=Que0_~F4zk%+t#(stZ#FdH`+@Z>=jL}ie~qU zi-!D*#=^_Sb#1QQJ>GLNqRYzlI?`99^tLO;!#&;;gW+8r?&^!$!t=VV1K|@=>b!=n zRj_qx?y!Vj)#!fbisQ$}ZGvr@++B9Tc6%)tt||MZ+;?^yD0dnQXRnj7tzD;93gXkvSJYC~tVrpdpd#k;#_ z?#OWDv z_)QfK!AHWJ_e6q^p%2#!mTNGdA@s>v!T06RlVcChvlid6XS;V;B3%9Ftwexp_|6}N zj%5FFSm2{}c@2pLhdtD4U%)CJw-zeAsfvG`$LlJ==)=EVU>=^Yvhb7TnJi-Ar%W=_+}R_AXaXPRKT0C(418&$t#s!S1P@}So}4tf0ZxmfARY7 zrK}ffq|epJpNCQ{ducV=vVO8!`uu9y)76qEfwHQBtYpuvkzw#v4IhHVFQ2XvKeJi_ z1vdLpjr2z~@~3K)k5$T^sFFWjqk3kw^647s6E&)bs^xc8h;FNt+*%>|Zj~Ic>XB;2 zBbD+;D-{ox%N{6~ey?0|XSwXABGK1Z32!Tvf2Ul2ce(7IQt6##@^6;Qzg4dIR+;SE zfL>+Nhsz|-l}%hy!~-nnj8c{WWu8qMXGy&;Y4wsOZ&Eu;+I%VV9BmF!s#!wfCq^Aq zw>8ylN*z;Edu8MX5mVAn74#6R`iQcAs-%yq=qJ}t(7UA6VHJJGMzsW({s`L_&z!br z$_Hbw9ne4Unf#98;j5Po3KkCtRt)Fl59Jn&3kt^tD@Stj2Xj{p=Pn<(wqX3GQt{2@ zqT5Tvw=5febaDUR%DeZ~iQ9+$qw3_8iJ3GK(?(KgNKEQs79JVb2d51Yn1WB6A~H)@ zVMVn%og-v&Cv7vVc`n^LU|qMh{nUAl%0YV~oYhAgtVx3{ftHzB#ydy3W(d~|<@Us! z?x@`vGur@=0DI7~WORnmx6KhTyCODM-0n&^J(xtx?u}YJahpHk^{2eE$+=n5KbM^G zr<}f+V@h}>5!ssIHGmOPeSsaYj%UHau%?&GgadSu5n4=Am$csY@o*lDD@ax%3@*xtUKL0K-oi@g{Uw5>Q@1P`dhnB;*H`r|-Y2XV zMio9*?W2`GTIC^CPDW;>Wj03cVkHh%Vr3-o*3QbEu!dB)NhK5qsk9R+I|UVui&D54 znJG0ai*=08oom-rZtMKj;)~CI-1*}V+J5|A+nw+AT)U|MYs<%Ogug?n;;KbM*Do1) zd0GFTDn{N|(eu+!+FyLP<>f`aAMKW&>~XdZdJdeO-h6!GM5l4%>FJNxbiMZe<$K=j zx(;*mqmv$TR5mp*40|x7;nk^NnO6WX35W$FghH@NnS($j&0aqGMXcgYSp4N9aq%d{ zKb}P2KR&z)9ZsO+@QGHk&ocQaWB@AOHUIx|EXi^g5*KDr;h%S|RAy0ap%40UUSCnx zmr)dRj4H&sqHKiDWYU=s!+L4b&#>l5!W5-UQP!PgL(KdvNjWLToJ{$dw3p(XDaxLt zjZsSFPYoGT9SX8jlNvNr-3GczMYL+j4g=X^rdo}3r;+HjQGHHg$VLrW=>Z!t?xAI~ zjAAx*WGJ?+&3kAdcx)_sK|!_~n0^~Q;-K4&%qc~3`xvoxgxESrZ0m{cA4wgaNS>Dy z15R2JVzf!loFa?_X=YeNK8~}~X>*d*L^+_W2|qpJp}TG56<`k;byPy_nILwJkVi$t zX*pFVquR`5zk{CelapQ`LrU(W#ePaUM;enEONzGBw3DISEbB|BJuK~F2sg+0*|eX@ z2*b&IdGMd(bN6OHssEo9j=x!+G7NpQPkO!W-AR6>0+O#Qxxey59E)S0RtqK;{) zqcXZyN!O|9BVy{%G<9ea3t-hD5p`6IaJ6rQ-aSI?n;`d$Q~M`~gHzNoDRn|hpH?!b zv}~Q8xn!cRn3+okx=u?2w(XlDw)Dq7>x!&y_EpyVD;qqU+Glt6MfQ&*k4_OM#i_$n z(RwM-sb`uDT)Um=cBNY_Osk3Rw51#LUMrH}<05iZgCc$R2V253>*CROO&pR>q;F-BM>U?ir_Wt9n_aCRMAJv(Q8UrN_uA(M? zMQ5a--c!^vx2hw$vLjg37pd$Eu4%ECo>i~8tT{OrY&S8-`ey;W8x7ofHFI7;Zs_o@ zx@@a%_iq@AmbdwrowvMwO83h{$~R6qo;>0Z>@@ONWy#rM%7tcZG3R`y6Rb4|)*5p* zS_B*Q5AL;m(v>LgPp)j6UC}gK&=e|Zjj!z^s(NDiZGjIjdfqwb{^LpW3%kXSZ=C+q zVSRqHdqel^-l4?aq3G`6)Mwp+m6vRbugunrvjshg-<`Jo;)L;&=Gltg$magYDKRku zKMWT)WMd}X=}sfpAd0oCh+Z8#VxdPZ+>oB^HQw1{006pnrM?K7_ zkDd0hQeyt3lzn}R;?=#T-yAi4aM8A;-oAA#@wY?MOV4O8nz-RP?!1)V-aS_Zx9)kXESt&K<7FrS)&tgZsMK#__tWTs3Tux3r|@XRmJlUj5`wa*~`Mu z|Dh~c@)oMB`3Q~xA?c>=Dw&DHvu$1t=h^T3SCaHzStm2OeyTGUih?U(D zMngC*h zjoi4R=W8qazFyq-wH5tW=MUXcrTAWr^nohrLlyG-D*(X6-z^h;t3-5Nu_&)#^2Rdp zZDo>Mi$&L$3U4mv9d=8k*O!RzD3{(}CjH^c(f5wIWg&JZ$yx%W(Hqrz;u>$lI1{sm zX~SGh7Yb`4v^K&hLzKvu9I(Y34a6xWxpz9bX)?Kbl2|>2Nl2DIM$SM;W8CaG;A zYNwpsr6TvK$>SOv;ZDNHWaAoqY)gP`3UZg->jZdV#RgE%3F#RKUg{R{G#^1=eJkvoY;R}akkUg zITfAIkqQf=u&~qSn8=LDi)H4h+?vq2LI!}G5Nn=cgjT9)()&?W`>StV{?(Gc&2_fg zF4OuWL&fX6sy^%9v~Qrj->$KcWW!M*DA8`4 zW1TL-J;QjTtS`)Z1I$c-nN6^cFrhQV#hSRvlytah&s^Fz!ze9rp)x!;={nmWI@c)M zb9%aZZ_n0~lLs!ycb^&Gc6|8oCF$i>tyn#0naS8f892Df&vc7J9~9MoSTp#++Ri^M z?|SQ#hIf}WFInCHeobfbe#!bn(*+y5%6E=#JUUW)Q8*>`8=a)x&)R~Vi`PH2I)g@A zK<${}RXyfRfrQ#kc8uFkw`%rZknFCV*mz{TU~}(B#Vt!J+jpFh)OQ=l6cGRw>kQ}e z!&Ng@Pr~F3S)DO71KK=lE1J0^?)Zo`xv$OqN7az7ZzT{?C3D*5%Rqr)Lr@GcP{IHVMW*P7q`FgR^y`| zwLP`G`+-loZg{&@@NRb=+U3N8Pp5MMbzpRa!4K#tUz%4S!;6C97H72t`SDeeyOduE1%_U(|&r`%$}W~j`RkO^#_mk2Tx5V>eW=cnQAwY z9X6uV!t^Wa%eL_in zHjrA?6#lf%wYHzSY@;MG&dQ`+s4>WyQk*u$>PSvcrWHYQ#GQhJk9nvuFWqUO>h~)aIWKrha^xc(|T?w2}CrmtJS4_axYDQD(80_{$LW zrvdV>z2sjy$v@P`OGoMB7Ur~pIin&^$(ci9>X@84C1Z{YsUy=Q(AQxxeQ1*2Hb89c zC$sO!OHoQ>&%VYUm3(y1~kw*U_~a`lte~C9$zDTHO*ZZS)mf z@+_^hx6Yp5 z?5gez{Nu3v{o~60!o*;Z>v5%9%-r$O_}0$&w(j`B;naz7^5g_l2R~5@+wWy2X3}sR z@eC{Sb5nEN#4IP8VPzps9^@oJS`ns2Ax`M0#bHuIavC;07)fuIF%Ryw-?&&Ocv~p= zNRqQeg=MiquvD3|0w_zFl~B)FsmMi?k}i-H+Oo2B{<#~B2!JJ7(-ze8zo4uVSx(6p zMyD_M3Qbi&DLgV^uoEm-Wk(<0E`;R6vk=k_;1jaYLPk^I8K9k2P}ZH=wot(az$M@TaZUCuk9@oX2yog09Of3u zuPRY3Tn=0pstBT6Q9_R3iRniTIYU)Gz)wum4`kdZ}9R z)78os*C=0FBm3!EIWW}=fLOfo>OYjlt76Drs20CiBZ3N$*z?tr=c**nRV$vZmOfS` zezsEjY^CVOm6AtmWZx?uza_uxTg8Jhtr}%sh2ra_qMJ+QHx$dRLW#eryb^g{sqCf_`8_4FN0;@l zZJl$F8T(91;Usn5gg%h6##l?7v@>Zt&6uK;HXPRwlp@XzI#UhC)B$O7O;=>uMd#v% znI&z({C;BfG`SVH%Rn74G6!_Yy=r=|g4`viw#(@~5_+$gIv^wWOPRe>%%*X6%Ot&5 z#GX_$Egq)NH$P3Jr?`I)ahYBwJFXW0?yD0o zt8C9N>L{;lUAwD))8Wb0yGK`6H7_b?dON@Q4@(+dg0JBtA?H}8+oO2`n77|^M!-ID(QKryscz?*XD!$XX+(g zqt+>fU!{-hEriWM`(`LhkhX+bO@KYnW_@nim76~7x-nmNJ#@0=azUBmz7pkArIN=g zU!|QuDd_#{Kg0E*Sz0--N&6j_^A8I_u60op!x4B zy8g7h12%rMdidSSuD`5k`Nc==kG<7=<6CXld^jXnG|9t>7-jm(v~c#^mC`&MFnH&O zB7B?%4M2%lbhiNhLD9>vm#gkAliyz@d$>q`-O`ENW#X$=O1@qw{#v0#kT1(CQsu6g z##|`N#98Z8?h>d2Ao0YNuUfz-C^$O8z@yAwX?6`>>B6YPk2L&xJPvXZdWrC!A-rLV zw@?X|@HQ*_6hF$EuyUb-Pe6gM6(25jDzwel-l)|d7A^2Q@WfR)%{ zL;BRPo|v{%rZ5#sV|>(rg=y82-DYOYPs(T6DI3#iBrm8^b+Y6cA#q7ez|3;o#tj+C zOTtu(oURwAP7DOkO;ML+WSf!cHl;d@)bYva&fXx*=}$~2uNcV7dh)b{JT^`r7n2vw zso@Z-NMsD?s+X~I|5m5cqB(9Pn(3Wk&YIahVz#)4`luoLQDb7u2+`@Khi2HzChD}D zI44f*ohEhzv?!?a%4EHs>bDcaZhFW`by?^-HMw;lzH^E^pdhvjiLK+*zA19!0J(XH zxM-ldT-1n{9`({=K1MvlNM|T{fKrD^OOmt1I7^&Hi4OL2JIlG#X$OZUtQm?5r_=E? zmB^q{{AN@5^i3=0ADf7!eNd2Z(*eL~D$*3tDk`mBPfRbn}-AdgGvLn7)pkeHS_Z6NE+Oue0JvQqU5 z=C}&Lj5;Et4oaBaLgt{7J!@x97>Q$A`mmhbFK6~C=v_j(x-+r3&id&&*YeB$%FbwI zSGc@Au)bqpLSGx`@wul82;h^$7d;HXZa= zIaT_+HP)OpKv@>STAQHSkh{T_x5*{g;mz6Oz54Ln!$6zD-o2{PSJCFHYVlMyJJ+;(t2%w1E?X6l=3#Bc0Xym!{H?5uLvSaL&eU|nyxvNOJ-X>P+5wNFLwoMI|E z=ayYG)pYsxPR5(9X**RH2p^-P}%v@5_myLA2k?!-rk0;~#JkzLRJ~*I%tJe2+o$vi~mN!otU)wAG&Ccn9^M*!i zdce&Md)O`~(_|(ZbnJj9Ju$}&y0~@|-E3ew0O736pd&r%W~OGiNk2X1XD5B^gohUT zXpxT<%`&P08#5MZdnM`md6LMOu&IA-Bk1ATke_=CQ4e9RTE)y`}2q1lJW z6&`ZFC|L(W7;O=L3eZ55m5$)KMV^;0&I7Q4!HC~6r(l{_nBb4VFOj>xut(tr**b2F z7{#&LbfGOPuM}F#^B&Jy zNPSsH#6mvkD@$30DA$hWETF6s-mX<9%`FvORWf~JiRgx}JO=+aum4`k`uSST&#D!# zu2sCc28!&}HS(9&0Bgx#TrGRCM)s3x39Ns)TKwv2=_{+HPFli?Y}K(``fDSkJpS8?wBsv z(Es*|#^>|9A6q`~G?9<144`S~+>ss_DB*q~9%++*>TW zyG-%z67fA{;zvqk_Z7=-UN-feWj${cjl5Yk_~){o=a#oUSU8xoVk);(1tbi;+jV7< z8%m*_^6Sc!*TN-0SG9C9ccnOYsYtMB{2NP$U#Oh=edXXsYln)r4{g{nuw{S$`DVqS z(Az%dKHjD++%x#biiU@f(1vebG5x&~DaPql$nUO@-B%%gVvXYY8W|knrPA@AR}8*c z*!^KeSJCR84O>Sx?HW0FbfT%-(yy8uGzJc|TV5~fy?x0Lbe&ffX>Kf2T+8=#-!E5v zuTu5>D$N5`>W8Wo4_C>*oj;AKIZ72d6&m>B1eF>=nKGwDk&AXzg`iL)C{PRXl{tk9 zKA#4b+(PBG#i|=tNx!#Bc6WjJy5*DCES<_*A`&bW3l{TbsVMi;DZwYxxr@ZtE}FXT zlX1a^1A^t_Im^ccOGk5-jO2bgodaXi3LafhYC@Y^q(zVe+JOO#H}wdzNu^c+)J@|< zK^Op_yDx)(gz~y_#T}K(d#hC6uTkAufyv+C)7;W*Qbl-&=%`;+TBBb$07Mrwag_I zc~(rGMn!}~qm1seQbR6!%t^|_v@*sH*y)Qh`rv4C&vYSK4HksJoH@mFf`OZcEKd(goQXl^F8Fxt^xnqLZ&=FYIGPk}na8#H&p(al1 z$qRO>-A(p;s4)-I@1mQ{WTPq7J4C_R;S(`g$)t3xSMf|_AJ0IWb$ zzn|q;50lw%i>?w8f9@e}xSagEohpiR4-XOd4iIloQhymBe%nXA)THHeJ zl+bm0=AxNuu+mLtrp?UuIoMtY(`~1FY|OBSo4^cOtT>VGpJ6T-=wk}{pp4!xW)6$! zy&~#>nA|x|Zyu&M4UuKdv!%`cvgS~ATXf?9wPlRjJkD$!W!DTcl)%;sP8RCR}8gTm&(xoBvrGg4IVFR!1iXq?&5g{hgAT#4Vg!;w=V z6IAMQYb=5qn_!J2XSFS_+LBjk5UjBZwz&mc?N1!AmGsbi#Ock0^qTHubx)$SeQwbe z|6eY+e^u*y^Gf8yF6x8!@=Z8$MAJD#WQ2V<>x__K7eRR=L+~_I1U|({^u=s-IZ-*rxozj)I z%#^nUKd!SsvPC0UBfopSc=2W5?rCP(daAg3YK)v zRdxEe4o2(LOsAbYKIlEr>%JhRHeA+~o))cd&>S3aAL{iS8=AQwWljmH6BDUAG2N=? zdMw-(IeC0Icv?>P%y5zfD-EP=+~*T>-0J4wUk@1GKJ9*|&h_h~#>ckFU)e4H=Rx5K zIo)aHS~OIhlqCw$C=m+QB(-9U8abc>d|BxlbEnd9TsiAnPKG<9r>JR>77s;LWd z>Y|*wqM|zVOuK>TFi<^aYT7|7W*B{xb8&2l`+O#ou``*A4(6?TYEd&)K1sdPp1O05 zIpTJ zmW%UXgj$838tCZsjvarWB#AVi2S2KSn`UC*<<2I*-w$C7HnCF ze+wRim`Rla}&sSJx|ES*Q5PI^|32RWG3GpyK7V@}I7e{dA4|C0^JaCcDqB zmOou1d$LOUcZB9XzBBy*xP(7YoF)RT3Djv-#000{m6i(z8^V7#t5d=Q zlAQr&G|Eko>7f|gH%B$Ns8c3pubSEk8(mh99~y@phumF_W-4La(aoH!&&9aGUK44IeK z^a@st=atFtC|BN9qPVqGdVRV4s&e`D74oOn>Ypr=++QSqV)@jM3Z@?^9DcmG_wmB6 zC-VEAT{ZGR;n2M$6W1>vh3@I*3e9z;z?t%^OBH!#(pyU8w^him#%vD~xFJ^+!;ByP z$(>T$nxHM7j=Dm(ZF|?5C3rG@Q(|pe^4m9t7Q7-f~jw; z9RFV7W@W=f2ch(KOwXyH1mEGT8Hg*e2sfuzDOVr;gQ`}mi{8p9Xz6#lcRf zU;$2+qGkpX$SO4kcdgRkz_Ut?HYlK`BG_1k-iAd=?7rcE1)3bdCk%^%-dvuy683_X zfLn0kP$Vd!i!OXfSvf0&xtMGOzIth1x#H?d<;|7yZ&xe6Q>pxJrTkk}8tB$@i`00l zi(qttyc<;wtfJPV;F{dy;0ztE3W1gedw}kf$;avnV zUMu_d3&hG6e4Aw|zMvrsKnu6wty@5zaQ0==T*NJDE?-C9Taw*Omb2_DTh^EL`Vz+@ z9oelRI+UpnB~`B=PYF{;rjxZQ@|=#WQ_+VeQ(L-bsyjmYZQ+lbBOi8BOS_0=y{VP` zWI=zbydNd(>ZVg2271~_*Gq|GL*dJk*r=P)Mrl)uvruUhk=CPkAFYTn(ikg=r^P8+ zoa9cLQp+_N4P6b}Sl>A2{{YhJ5{Uo)n zH@QzlcKRq`f;BQ}Q#!3;IZ28WhS|v=J?x=7EaW9EabAsb7bA0wmgbyn+Lz8)$P93i zFP+v?8BKzf$DpJ|etN`34Y=uU8`Wwdn~h|*iRm?w{Z_KiNe{wDE^5S2OGAu0%;;j2 zjY>O_ui${(Oy+X~MefowzZ;>hYat%DGe0uZSGAK5j?sS^rr+qMUg;)Z?4n=mq<-H@ ztsEf_sHsK^H|poaAx=D#R)o_ADs5yqSSn*2yj6!Yqh7Yjz%*FcdK*`(p$|)_twTgv zv$wc0xUP>{-$!g7rFIGFZ4=bC31;UMxqXCQ-%pjdgo+yH3L9t2JEAoMROJ9&*q&H? zd3IS-_>aeJukBI(?wIM_`k9X|&whB;z2cI8`9;_2_7vdO_Az?*7_+4heJOX1v%9D1 zHABqrF2?TJ<-F!Ii(ri@cdavLoik^(Q?S~VQ*9Njv);4YyQnq3SHf)=V)E-}7uWmp z8-pt@d;fLX`m@8D#|{|o*do7gr{>86rWcRdUOVY|?TGoMUFzqyDqh$j{Mn9)U+$dz z^)BHrcM1P^Q1+L-qNV4}HSPX&E$&Udvs;FfC9VF&_3l3$(Y>-q{p>-9V52T)wL(y% z%w40&sa6VVR5@!kIqP+T4cffjmIwA2f3nZ`mvi2~)_Hz$*!b!}-AjAre>klD=#qD3 zOJH$>`<*l94{J@!FWA@jCD(M#F1s9jV4v;QO`5+QHk7x{9T768r0Jal7=l&YH2crv z+Fu^jzJ5^q*He~H8@**PJ!tckUDlnIrA`d^*3}!2P7$llC~6w42PWcM+N`B#ruPrd zHE5Um>gPL!dxT`ahwCzDn$%>wp6N4k?P}(tglf{UjXL&YRjxEicN+dL_}IAv%rZsDoBV(>5lp zrPD*R^k@`kP5nU@emt-4pA!@qaz2peyeH26NSw1wDOjcw0AelC2$n+suSCZL7#;Wl z3!#X&M4|l(Dp_^{^7#*9AqAmlewKpp86u3T=!us#3h`6}a|Rfp&?7OcV*xwze8sD! zqj3q|0(WIu2**u8GM=W;%!T6b*bJ1l;P-_cdC&r=!;N7VbmG8qmM1RQ5eH4QZY>w# zkzpHtBwaY*0%h^mGrTCkCz$HUF$-2H<~v5R!r74=JqB?lT!j$kKQMU{l<;v`Fc*T^ zNU7xNGRZY%U)i$$7q9T^@iKstdY%lxwM_- z>?C6%C}Sce3nu#Q!B%y+&k|RLQGaQcW&D}6g-bV*?B*F}otfEWVYZmK^-8j8D)DC1 z?1TI5w{0*A3a4|Ij|dj^eSP`ZPj^`lX^9a(*<~V{w8=(o90v8X+El%nXta}O)X9Ug z)NWB~{Ya{?d2U&AXwy`(b(WT}j3mMJcyz6BwlYyz1~9qv6FbSlX}0Ce5;Lmvpw`tC-G@Zd}(uNS<75u zv#+epzoy;4vCX@=%e!+Vy0tg7b2wFNX4bUN+*a71Q#5%;rTRM+$~!CMx0Q&$4p&h+ z{mm-LJ*AQx%f;U*m)=#by0%R6%}UuF<>I@`V8$>0L8%NF;FcQs4HdHM$`#j?%C9e1 z+*T&LxmfzO5=9OlpO#yuz!b@7WQR^igfn=U`xc-<9Khx~HOjjylsDoN7uog2s_&Mn z@`|8CoQ6;H3NY^IrgG(XOQpA#0JbS^EtcF=D*Ae<^lN33t4f7Ar6N92m<+S6^HzRA z8L))nnqtL`rK)d~C~hfJTwf-KmgE-8^NM9(FOuI>qP(FDE=TgsGU;_CGC>)3F*!iR znAsV698_z?H5FQb;k))4T$sef{Jy&ZgYB(gn00{<<2d-d$#EA+h@9Ox9;2PBsoh*0hV$KwK>Hayc>mpKyoA>pd&ym z6gTI22K#y(SFry@Atn`1DKJ97_9}Ezhp`6-7zsX^!;~X(B#jjkBsZWP-hPE9EDVLx z=Atc2iYgRPfg8p9QRE_{%HReHDmB+sDsQNi-2|md{`D&PO_lN+D^ z^0Se<2uoRa4rC#CyNsurtjGt-uk&t!P=Pf(N-f~l3g9|)_JftYYag^0_Lb&f9u)+q zTsS7e)&C2z&_6IsSs1JZC*ms@mxZ2+a1frjczYWEDOQ%k!J+<@lKYqS`tru3AxpAL zkCU@@6Va}tuc*lLI`WK$IV>i&^d(BJc$Z)FL09>^bKajfC;r?;WXs#VA2uf5Yl{7|Dfy3j^7mI#&(@O%*hDb}p%#fFAw^D5ms@FqLg&7l-_E4;gU>wP`ErsIj ziZDCuqB_iUqlIZPQ0*3`!N44s6Gx=vX&HG@fx_sW4zkb1^w{W5J3a2_L;*$;U?l-Y z5hN7>MjxRqNmfH}yG_(HBSdZ+B~a4>A)VXBVS6WwKEx-D$Gk#4iljRyLXk-B7KuGpC-7t`+NTK#OT zo;jvvPH5@F3VQc6;1IoYg4zLPjM_QQ?wexviRiszX1{_yZDEgT>FwjpnqG26W3ad> z^xlP;-ygI7_L$@4-Kt+6FnoF?vVMf!HAe3oV|P!oheh;hII^6nl`*Gf>=`9<*~p#H zaqFj;f|2yA7m{D!7yKa-}TibQ_?X}#yLv_a{<w2T-RGFPUb36MJI|hmML&RIB ztuODC{d9-yR|hojo^`IO_f$7I_YH&_6wLmS=+6Gg$0u~3oYb!C32pBVZftd*S5Q4p z_JWFr+qh>iepZ}nHZbR<dQH z-n>=)!#%oZcTQFJ&yI#O{SLO@$Tq3yCMDCXX6qH~B{_Re!km>e0BmO@>}d&eLd+Z$ zlgH)c86{n(q|T}E)AJhovWl$NptygtmcFDVP~~4sUr>{ED)N$&YBNwHc3K1ff)t~U zP*dKxILPQJR+3^n{F#z5`jNdex0hM2{!}LTSd#mJMDX4uRDiN@u!FG-hAJ2}eoJES8-ES|)0MCM&TfRu0?MEwjPCBP?K1KY@Pa6~ZUhhrR+|1Y~1?2C0Cv9eeQ zoAF1;B39OqQ2?_Yyg&)S6%Sf4+Y#}if-p6bO2+Olntr5c^#0QlN}f?94=GYdLQml#TV5_{#hUSQ#0{KBmHV4@ryR{cOBGkyQn{PQE#-- zFEtadw35H-B>z50eKbxk8X({4B!AzM_+4A-?``BinqqG@M&4?Ue9#tN+~Qx>G`p(V zSK8*S=?<+Qh;AH;?4II|shE$>Tk}@*<`zzUuL5TCV>c`xxW0JsYefUO%X;#b^yVxb zye@w{rwsp%S5?TrUaYviPO%2gG9WZQn*{m|@^zgZ#qZiW1T za_Rk5^6ynh?kq#A+U-D|W%6sv<#`oy*aez>bBXlZHR{{S#J57Jkl$G@y|YqwZ?){< zD(Mq7vL|b#kJl(3sF2-RF1xKtc2l`TP>!CK{Eb3)>bz1oj!ICWxTZpWYlY%#CBmBu zgf}l4`14U~55t&fR?D)31bcFpxDp|INT!cv>u1>4w@&4JJepIe&xM;@0N0}8p%MD= z>@zT_AYUU`g}8#E4y#Q$RR+8|=$BV2vB$?iCRi%4--m8}Ievsx_Mh&%fKO)6KPTh6 zZ^W$}WFG9|b4rw`y#e1We-HD@Rk_ug+)DX3Diya>D{iiq-?&EgwHoEu;CloXEfn$j z7J-nVsW?u+sKEOo@-`^m`h>)V5CsQ^;VNsb!f^#FJObgTNQR0mO5t0cvfyoYO?KtN z5@-t6WN8Z4Wcg~T3|VU_A9)32#mimrWR>R8EHq3BJS2xh4ks|@oO4bfk#itOFoPr*kb&+>-QeiERp7|G_uTu- z-_Z}Bqds-|6bg+-0}a&sKJ})-P?ZH&+fk`rsI`OoaZ+c;bfj_u7g@m#ExbAgQitLB zp78kr{_IdBRSB+W(4`T4K@P6cdohCOc0_j5LMWUN(-b&WC7kF3NuA(CH@Yx@FAt+E6~3**Ia*Yp$2od%U4b)(@%3S$#7Gr) zl4l{848n;K@z3?}OX*9WyzKf#5xk(=C|wZK_0e;q@azaY(+g7i;kjYqco#_Q^qqe4l6b}wWe^==G;syPOj*QBVtE5MVWvBHITr__1lIh!*O+UOg@!eG8XO9j1^LgFZ zFX{g!Mg83inxD{ie(Z(tn9(seK1wk0$y zWsZc3tt7`RoEkwp>OwDM*cr<#t)EJB{707ljdE+v9PV3; z_Ro?!L%2)@>MXd%Oz7`{wpxo&V-u>!QRO%(vk5GH{}ig7L^Tsa%>=2W57|lqsh@t`<5Y>ts9c!q_ zPSTY4vPO8jNxXlbM*8;Hmc6l+yF*l9#nN3Q7`8A$#$+Y)0XfWkF=Dv^V<1GO41FrW zN=4gUqY&kyLk3Ds%)?@*Qu4N3^5&rAjsAPy>X*IQFMDG^vVD|gzhJKHEP#2-0lJS7 z*M26aWXyYzu~Tf_lL=fZ2brG;D=4gE@yVN=O}JvOqC!f|-@9;&9IBFnd%tQL8xpq6OHo*K*Z+3qmT^_zX!e5j} zE{=p!`}_qOuGs+xXMkZ1P6fz3#04wcZ!%R$p)QY^`72-Mn_F-ILtqJ=VE? zvdf(zhvg3PO7)U-Z{H`k4gd6%?nFOV=@KgD;b~R)oq^DErHfxZI(qK`g>+}X^niRz zg7LoN_D?0-9y(%pFv3lu{&wzP9dwD1ucGzK~ggzB#X6}WD%@ncd z&1Km*C@Rx$j4`VIo+RyOj+#D^q z(<~aQz>c!@AX^3VsM>8td0Lb;!e8#?a+QR>W4%*on1p@HaBK+`TSI4hxfeTutPDy9 zkz|x?=|PfCAn9RE+5^AYiN4c?e$a{^ZUDck1&=hs*IW2ktJdDC^c-*YQAPYp50}!k za-qd@zR`WI*_S#T4d+UtdnAvo;FG;chPpnEIpxP?wc&hGD{aR{&pu_~P_N<&}T6;D_|I{_pOS#Th^K6G}oP|0t z;1;YwqF)#Lr-gP0>6{RICP}4P$m(Ca(zTvkH@CIewyVH!ZP-&cDN^PibmQkz4PQvH z-G6oV^BL1W%CbLsU6<17Y8?l?Gh(L`mngY{QLfG^*4S}{1y-1Fg^`p}WTL!eL4^k9 zF?d^vu8;87ha%Z>Ks#CT$W1vY(7<9n$x(w_YD9lOd3tbL3yQU%)Bvi@e2on@+u?`{ z%o1S%3F`T^o=Lvl0s0q^aUCw8=pt3a2(goBuaBf@&<~GUByWyLwvDkuTk#g=1W0uQ zR$Yn;7tOr~DRHp^#H^TaECmHqGnl6a)j)KgK4|>c1NtxQ&`Vw)xc61LWQXdW1l#vg z=U=WvDT-*C4j&mLe=Kr;^^9rD>rJwqDk|M%2dJ#1)U;_|GHlAzO{sTxPf;qCoRBe9 z%n6X~V<^S;tV4xb?5WL%u@)1ZF@x3rYMUmkn79AkK(g2(GL^Z^Z;+`p%!EZbippry zmN?!0@!AhjWh1uYEREAj-t!e?xV2fEIMzO(tiONz$EB=@h{6JM^P5D16XFGdEC_gB zh|UP&1pS+NIr$RqccGp+Jmkh>9-(g?wJhPb6+9RsV-c})8JF1L#o_SLj^L?g@0qs1 z(dJNmOK@Lv;O!Rv^`_8kO@Xbg;k_-9g!b^60sj0TcV&#fso)B9T$K$pJGdSyU)|WS zjvaou9KmiNtRseAenDIjgjs;5Ibkw{?BU=95GDb3LXlqEj40Z8qzht2K+pnA|M?3- zbab81(ZN&|cYKIT=;ijeqpeNwj}?I@iq{`5^?$#3<=;zv->K!lT^;^zneV6N@b^{x zf7kFosDs~aMc;2hPj!KJ24VadI-x_ylwfx+c%dCV-V}MfG4w=3==U|g$E$o#*LeP1 z>v^eu_4PXUTXpUoO-p;5+;J_7iA{6odREIEpmK^FsB^!V=_s+`(V(aeigGXM_u~;D zjPgR=BEG2OUaMdK&N<@)2Ura*X}o$%qW(ULRY~TD67=^SQaqTT`KM&VSCfsOPc~7+ z`b@IrbCkg-jU*ZFO)@bAiqQ`913su`4=MR1GOD?YTMT39Toy|$dXV8$Oq*vDM=VxK z$DI0DqcdIXA!9ZQNR+ZDL9r1!8{Rd)u%=^cPKTKp?e4Ri6h~(z<`1A@t5%!%6f;t> zYh#Ue==4O#H^GbzvTI`qM8O~yz)EMgeQJ6ol0@D8NsP4~OwfHS!T7Nx%9BP)Ys~49 zo}XSAOEqa^B`*>wZ|FartpD;+-ItFUzi`y>nIrm#lJp--(o327i!l{DKSevrSM&m6 z#KOk`_+l4dwgT%ts4oCj5$q5})oSoy^UCk@ zmL4x%exhpmg&t3`37((8m&Zwp2E`5gUujwYP3iKFuDgD4b^7~Pr@wJ_;-iNYvbXvq zJCuwu7&6f-F*DMm5JjhK_U%!8q7Uh(h{4t7_e1yW7BJ9~#WB#5#aY9{uljhR?&Hb2j~t~RQ!7oTQ#?D><^my;6HL0$w~o0oGFft$plFl*Ex$#KrZ%lx z|GUL}1sO+4_p)%TE%f*pSutvgjWf#H^b*|UrT0z;sovm#e4lbd= zc{C7qkTyEg!<@|pZ1wMAe^Y!e|<5gUe z0u;=lp|Ic(1sf#e92!{)H#t$w6sVbmMP_hI%Tw5>b3tW@=sCe0i5fzJa*fE>K>IAL z9ET+iRPKPKPMl}MH;wR`7F--fr+Y%j+PLKAU~;SPbYJ95Pw;eWAfeH>vubr$)%rfh zLV@#r=yY%BaCqZ>MWLxXPXh3jgbLR78+=bCVi ziGfz06&FvSVv36nq0}nWP2(~vp)gru5(-TuUr!q6qeVtBTSe%2$GkvAzse)B{NO8M z-<;4lCl0uYE+|Z5ab_dxzVq(VojbGm&NTQxmcYBC>tgfFMve+!k#i|MfrKV^VypLf zFHGzV?P~D9TsWQPbHCLwP z%Z<2D<7fFQ6ruC&E4#}bf6P)pb8YBY=X`+~^{zw>e(`ME@>h-C29P%dq`C z%koa;WUdCb&j|esxY~$w2P4@%fkHK*&|7IDm6Wm!xKM|R44Ae89bioh^E80Is=$cK zDJq*#sS%avW3gLW`sYRY1`1kyo(>f0K)DH(n_%MvYPIu`ErvD>5<B!7@)jbe+8d(~U^=_K2R zq;L02cMh@G=ADDm{Y(nTwyW=dXW-*oN4|PU|FiVvSK9sO&7f*U90+eH@g1!oj-lu< zx6$dpQ#vQSRyZx)+8tvdDi$eO=~xXb<_E}B6ea;Tb(Oo+L8XJ}_joaX*` z-N)i}AC1?2IDralt%R)+Q>{!Rd5^3pXh{yMnV(_Y2XR^d7u!EBWkDf|L;+#44#O*$ ztYGXxk!8%gAeaha^C~oWka`siFSEQ%@}U?W(!~F@ z3BK7B{%d3K&yA5MTEJu7{PR6v#{eHU0+Z!@;xLyuz#kpp&d9mTLm*{UE?&XAzKJi+?qk6 zOBCD!;lvFP6$6BquY}HwMGmU?HwXD=Is(70_x`wP?eQk>Q~g}L6ViQ*|%0>!=1~dbqdqjs?Lfk zEL^^U&2%|hK3C7>+fdaa-{i;TZgf$JpU!pu%L(N}2k6uzr%dvZB=ZCDhR-DGzMi1} z&N0)cclSsSjD0e}@P$Ofr;_v!ChI?xY-D-KlPR?5B(y^*BGI%Z(Yz(zNI7H^awwB9 zO`Wn(JX7V64QNJ)l;R58+Hu6pz-200A#wj{;!y2h+tTaH@UIrnJj6fB{X zMNgh=yg%9aV50tGiTe8!SPa-bNwE*I`B|7vEaoc73JWq?`&6?2bBVf79Wgz4#B_hM zVN0UnK4!>@VIF&<_b4mTEW2y{V^{mhINhfc4WHdN@Yf<&(G(g8!}fK)+#R{);&PYx zf;H6ag9AaNh2o?j+KHeQqoaZ_CWtB$9YJCbFSLhniyyayg!Zt|5)nEgVh4vi!_m%= zSmY9Sb_Tw9VM4NFOiIyczn&#zr{6YP)6&t8z-);uf{p^}CQzB~(l5P76ki!L8ySO9 z9;1jA`%0Y2S&li33I;D7>h936)s*OclJQ=5DA! zzLsj1uuum}46woqOKdPp&0ki)i(~MzoWC*xFOR@eJ?KCyc&o<$R(0?|E8I~Ve5cO$ za+T+qO5dYpzTcGjp04Iztc9=E1a`Hdy*=EvmdKw9)}Aj}eXYi`qcOav+JCspm)r&p zwt)XC;iY9*S_h;xytEuhtAV5iQpA#WA&Oq#=tW;|fZwbI->!%M-2}c?9{h1l3#_4i= zz8{|Nk6aqyGRIK18t3TfYXOC^n;IeCgwls17kk2&XzLGO9pG;%xN-}rwBjlUEFUMi z8U|erbA;;a`6`sJj8qv>_na`eEDkM`L63yrt_iFjdO9iukx#f7H$Qj?Xa<+Z#+8|e?M&(Aa%p{f@NSRqEFpH-;!Ut-D=lg`S z?SYexE7t~bdM`Xwx$sWW)Q^+9zmq)jgXI3lF3R_pO()g59zH$tgQLA$t5$ODVwXGG zxga*!LB2eY+3U{gUn|zZ3Ny*>nk!a?^G7@ga1G2XVC~?WQ4#{@(KX^d?t#j5V^X9iTc$50TV;NT2wn6D0^_Nc1{yfjUub00) zFEj_l9w_vO#r}ZUup|~bQRxJ%oF?UyxWY+l7sL{~__agbvOP*hK`g<>rVAnqUZ5iK ze;h{MBdg8!KR$t*jXA*Unc~47GQMIiIh(*n`)tXW5f@`EI>NjenNQ=UMkI}=N{EH= z7?rRw0WFC)-IHj!Cyph5{#d;6p#<%N@%sDY^!LQG_^T~<8&zQFd1BVBcxC~kYSIUk z_4jZ8xReznm=nb?!U2pzg!f>$2*fEqJRbBK*Sz`_-t6XdD-nYmXcqYq7wnn^O-{bt z#@0VF6!6S2cet0|*1>IU2XA!1ms|N4I#~6O-*@6?`oZ(v;Ln}l#V+t#7kIgid%h*| zd^32xnR}<1f2}_BW?g7+Gk>TlaH5AlGaNZT8on?Bj>x%VYVLv_Wa&Z0BI2(a`FC3UhkD^jCA}Va zaERaCkKSkvJX^Z>Oy$zkWv*w-TrZU^yjnc@=Nrbq=IQrUT8}nNUg=!Q8}(OPV3h&f z?q9t<9LQ7g1&pt_Oy(#b$s7w`)q-3rsGWm79;C#=7$7Yx=%NulTIG8v#dv>$>cjiw zAKNqdpXV&c<B^3UfT_a2Fb3{jY2 zp2QTE)Uj2Qm_y*E8Hc$PGgH;3A0TUYO%azB> z>$It3Or?<=RBw7($L1P(HfFh^`+HbA4c$G7T3M1VW+i9Nhje~nwye#I+`IsKhQmsV z1k49ur-IEs2|9{Z40Kmk%XoN|jC!%sL$oVltv50b(4r_VZ3uHB%L+*M6N2c3cp?(E1|l{;n&9vp z5a?6Of=I=|1i+R6F@y!VSLj@VHBOwZ1h-9mo{7)VqMKU&h8pErK)w@Sx51Mm+@bF9 zf!1(BJ9n@x9M{WjZQ%ZJbN2C)@SltPPnLKdDGYrlZ|!RZo*&nMUsgqaSseLUC48z0 zzShN`)#78LWM>!ub|-wN3%*(#e7k}>H-s{rBxMOEgoU?w^0Q^~`Ccfy9hMXWX%m#S zAV~-O$q@Q_3;0?c|6h&dyAAw5)xa-RMZVU6pK5{cw19mr=*%F@*1~Kxx;Bb04)7Ox zxoe{+--zmFaJx$w2@0x^s0@frlcahAwJZqv<0Qun(-bhNBYdKbJKqDZ$(boEO9gN1 zaG8TtO_9n8lBdO&I(+Ba{8zfd*9N%kK~k(?F;`c*J!hI0Zz@5K0_BWRZ9aUtc|K<- zlqU}tjD@SsxOqzKnij^^NdK~sr{PjN=WYxK(z{nLw=JD*T{+$8K2*2#RVdSyq=+8Z^?FP1GmlQ;9|&8h#msQ;%^qaQn|lATgWPbxp0qWi*m z(>JoFKYWtTieplSRm0Lmd8~~}6Go-Ust=to{%6+A%T3%{ZQ#2pqtX*v$uZ5AWVPg| zMnXaBxSmw29fWPE*9PefW~&k=qNeR4g56UXO3~#y5KR zRlB#B%jFP@)lU4U^OX z{_3cZ+_3Ui-t3E+>TZ&XgI8Pg?v zLSe%SFJFRV3sAd?tRZ0v5bG*4Xm`(|)=AJj2fN+4ZE2&#DI^Wy=ZfdwD0XcvbMI}5 zT+oT7QyUFaq{fDd%p|Vf`$*pMag9*6O4?v_07qLnp<)T;I{9m6cv+3kYvC0=%rN6L z9lD}`7v+4~7*{HWX1T3sy)m+Wsp#i& ze_YC%oLtq90nfXWub&kw-8!|0G492x<8dO>_II5G^+>-dX$cw!VD>EjM}h4*)X zS1OnORI>C`?(B~<_5XcI^XxVCk*3A8;Xr{N)J~GtX`y}`mg&P~nn;0?zpa3D?z=t^ zxUJ@@ZIM0~ko$=y$ZCkGLwIDBA6_s)zjRmsmfgdWgL1ZRcgFJ36P8aV>OXWiHZSa@Dl*F`7{i{}0?Z+X zH_R#$Q{P#7)7V@STMdc@chbWSGjmoFP*lMj9ZdT(nN}y+Rr3uJ{hNZAldN15yL}C znvW*2(6tXGYCoK$r!W6>yiRsVCEGJ9-98}QqokjOPJ&-ZuzV#>_xasDw``;Oh8yOs@|8Z^nwZ+&8 z@6JK*&-MXjy&r8}AhRNw5XEs4?O8yVb^Pxt$Vbv)g@0`Vk5-3&Q5k-$8UCb{f2JM%u?_sXg8Ppe z_;4eBx(U9~jE|1u%T|!skDe>@JX_+wqKjw{o)ehcg*_~cxv?HbYdyl#UF6;t;hyra zv>Zu0(RMX?ybFH23jSLS_*@N^RKtgA;lI?uUp2#5I^ebrl+;bm50Fbk@Kk5ucxNQF zpU*X+B0H=a2X%H_tO{gxxh{3DXDGNaU(~(vu1mPHw6UQI3(YQAJ_X9BNS*~f#QX{^pz-fbgdLO(#0MmPeXIfVFm)bA(N3QmB*9W)~9ch`{ zXqgf#P3UURT6&*1M?(r!RJ!@|wYc07EwhLPTAVo?xjGn0>kFrJ1}PR^7$sSH@v>4# zZ1?T2U)fW?ysLg`d)?|=6|UzB=U=T`d$r#GWRd&xXH?Qt8Wt#ZQY|~BktEBdEE$GU zmcYnrOTwsx^3^6~#g9pjs_#9n`(%pYpD!Bz`GW34$44Yb)UuQMEtIU1)pz0Qm|k|m z80%>1Q<9U~EvL=0Qzl7@S$58P??wB6-*&%J>E7G08sF$X-nM?K&3CDfKi%d#(c(E$ z?>NL?($O9>|DOnvnJ#zxr{zfYR~HB*4fN{PkPsCdSBpDuP=KnoIT>dKDd6VZSF$b z)YZO)tp$dsGu6Mz)ci3=b9N+jO9M(QxXOlm7sUz-emK?mv#9bfe zuaAIiIk+*3a+EMvfp3rD>mz)&oE6t9F@g#+Y8WR?4&3e(`evcVElfwqY!FWR@aPn3 zwnSQNe3KP4vO3G4e@?UoMdJ!-nMS!rK1Ug>FbXY`!qBRqa&L6Zlg5Q;{j^YRC)opQ zscjRNS|)E>gqDynB-|MmqdmOP?16Qwq#nW-^M7mE4k$5b5_3(dS{w9>;WhHY_X$*$24?-~2nrRf*T0&g^+{axbL zM(z){U0+NddtlFyY+DaId7R~*MC<(tmRP{NU3%CmV@b0t>@5;3%np`drtc!#KlTA- z{r%fNE@j#L5nBLG_>nD$CPMsN7|w<85|ZB?D`?OS`&V$U8xE|X?nT%(2U})Q(-dr;ggw(>XdVpA zfxbC3vIuqSSnb8S0CE64hw;21PV$6`YLkyx*NJV7m{+iA9ou}uxL44wV%;j%ECKB@ zoj8Eb4QbP_BEu?n`tUT54IIdEp@MmsKMOO*QPK#X(9fS!@)s2Fq7qyj#b*Y*N`xDn~k7U@NyD@&GdHI&kUry&82aBARufX0}P_E~)`qooB*RFK9GyB4|4lwK? zda6l8kir9p)&V_C?uH{vynGoBEzpkxM(2Tfjdwt_9F4At|Hma@1E9o3>Q_uBz~d$B|9QpoxubGf0)?(l$==~D6hGqi_axY2VLZ&Z6#GlZIO?#TW!q!w zdu&OD{@V{wpfX5VM%38K4I890&gRq;gD83uIx*dyr`R}~%VL=ZV;yEjXRo5~Lie$! zHVJ{gBPF6wB^f@SWcW;i_A`n4PbM2b8n0z;ez5~Ko#L4DUW~HXx(;QbWV1BM!ukxQ zO!p@kKAy-p?PE#02NQK4OVWQNQTtGW{u4=tPb3*Xo@99Fi18yyX1f1Gvhiby6tRpS zKVtYqGDR$nWdGp3m0$YlkD7KC)neHJ6vG53m%vUM_lNr8|-rP^x>` zI2k!)1$(UAo=NV&6nA(T-0;EXAQGwuQCSTXe4%yPjVvI8h+ z#h{C!SIkJoj8U7hSd_9@_6r6}47w;;-K8w)P93v!?bOOBXzif5Ws>bSN_Nt-#ms9l zilZ--(HHJCO80y~S?|~O{>dZy3!ekT8IDYFWF8VD5t;+SbIshRGd;g(;!c}LstN8H z4e!vv+skAOVPixX_2B+R*z5o;PSDEA41#hKth9mlSunPO%wFsW5NA-B0C*M&GvbCF z60Hwuy-??4&g%V>Au0=c=2813=yK9&6YE#Wq#w_O&?4g9(darRvzXX9s9)g+=D5}w zSZ;O@f|6s?#n ziP6>QonUl>?x&DAiK25<4vNtQQ8dD6V?d}_6<+Uzzo-cRXASyBHT-e~`dm5qk8mBSL@#wfs@NsAbK44>FI^u$*bvOp;(~FK zYZQ*Pt!=M%y<9r?T9x zW%NXMa9^W)PxJaK<%^G9w}0=V?wc1h-%qoC>Ac~-V{*xf&8RBcbh0A~idC{?l{8T) zjT@y+a#+s7v62<6&*HB%(qk&w5#^SnO6d`$jG|YfN^-;?P1MMew6bKa6sT=XEw?$Fi%M+&zx;^U z7NJ~+Z}zNQ?_MiXi`V=889nPaM!6!5kU0>%+`E251u{m0he|95O3a5U%;&mSUdkH% zeTMS4S*9m$s^2NIW~li*Ey^5PYn>JPm!rGNmw%i#@yi>tk7hZZzG>N2IbCE#CF*e7 zJSkQS1uB#^NX|9;j@K=xw0O?72QPPo(t5eHUXa#BF%Mqr1=j~r_6ThtOO9`;aE^-P zDsiz6RgVj`PE_s0MJAH328B9UYQm)kSY?5=R@gEQd!~@dLly;bD##mF!0;^WpMtHd zAUId33Khy>z9LYqM@@Dzv?#Vsfi?$jnM4Ju(5=DstbWg_n%Tr+2F=UFZ1yh;0xgtzemjkToF*9&&f)L_QVHys5R=H)z;Fpe>jwpqym5plmMv045tlVj!r0tECxHdA)i2mb# zeQomNyZR(MM12bA^qZ~wTI zWm+TsjzE`#8=K~}ZfNwti6CT&*Aey-F(isC{kk9q#poLIz9Wth(XFE%7b>%Wj4|%? z0G~Vnl83>mQE+MuB@FO;dcj-m{7ZGACu_pLtqJ|EmV2Rzd#9UARDerXaBCLlyI}qt zDx8AFPFP?AMK(}sgXK0*W`kwppva1fttih3ZtB4eEq_A;Z>qUmEvU4^wkdvi5gC2R z37Ln9BTQ_5tX#$Yv#{L>+a~y?aZqCiRDRQajh!XTskVbM3twd5^7MR}m2a5j+NNRa z1ZcMNU3RQqgpRP_!s0jwDXOgs!ctV!hs1n)Al(43Xy64o%F@9b26WwkE{}%K_IpxQ z{sKGhq~sP6t%!_+=%OgDMa2~%Iu!uJ3*j=gzsTUNvy57jfqd9GFETE;PD? z6l+NDho&I11bAC8GQnee7|#H>Oz=9y%NQ>bG7b3&9!zj}R=_iu%waM^hz+ArUg-9t z+9g~xflteQzqo3U?ii57o0-$_A>&4d_#D>kj%wN}MebPmN(iuT#;6Qit{R~xfOG0u?0?OlKTx}rIvgmlkz5POP=+szc(084Gsi;dBi?dbbT}xqt-x{@$ywm9 z%z*Qg=#&j48Ngm6zugJ8xxn^iey0oUnuUoje%~V4F$>?B;8L@i#cNgv6<16Ox zw<$|lqYy=DioNQtzeLO-kaeV+1w;O3%ZhbkW&3rKJ(T6NvQ5j?-*70_Hv2Kk(r%Wz zig^Gsrg|@bpix4Z>Mmt5#G=Pg%93tYA7(GnF#kYS3OUAaG0Kwc(0xEz@894zec*|aL+s(ULvE*SiMHHZmeHI>P6f)4SFWQ$O2NXBCUtW=fiz7Xvl@=EZQ@J z`sN@V*L#4D1?Xb4pP%N@1SAtgm_mXv42P-qru7|b3GHv=6S~0pUXZ5+EDfLm=IUYP zB&xCSB}OK~w0^AjBTax_6{qqe2Z_3(QGR1XAVM%o<(;rZ$P5Hd$j`G$URWnsvlc0x zM_Cs9mzuyg%0eHjK(cZmseoI`z=taM?^nWKmIt4%3ZB;B7O!9sqw~=_D{M+<{tI>U z_|h16W{|r@b=hgGTo<&Fjb4siaiVQ@@hv^tro>NoqJOOnOG|;YgqIeF@2TQ{-v(Z3 zhdWyE1tq*N6pU~3r1XO{6-ZN{r0&3T#jal$u71Bb@SRfbhgE?$+9UM~MB^eO^oyDz z>LtPM7wjQXw@y?m%)zhQE!574xoVK!7d+p-dbZhptv^(v#g%quKdCU0JUPl6gN0fW zS2ppNRMjh)=D3QP)b7BILH=f6uvi@_HB*TkyfzX((-Sz};g4_e9;{z}yLjg9(wTh? z%kfPs`>S1XjcW%RS6(R?e=Jq`M4IOL+qNgJ>3)4h_1o+A|GcdK@)_-er_~=muDbuU z?w(T`$x(&$6hkb@F_rYFT5?PyJEqxkL@iBHuqdp!5gDbd_)%$c47w5&%*>T2mmbwf z=`obJl9bW}r6fr$JED^$Yh^K877NWfYLc>uER*D@PI}z5<&;gDV)|72#8b80+cm2@ zt5@P1S5CFAoo-z{+rECKCy?G7xYifE+84am8!A?j8e6nTgR_SCbM%Y#kRnCd673skR9vdZ9o`$_&v;qfk5=yxHx_8TQ`nS;`&q6^wiu8@(8Dz{Qq{=_|vSpUuI7|a>M?|o5oxlDN=LwP9aahU+?3xhS0SEa%~W2kFgw> zxoUJviD|nw2vU3aD_xQFUYI#ZGKVk)$m?=^bCld3!?zXa)>te9;Yj4R66C4TZ56ty zL^;gc5EpA%bX9uj6DarlwhE9iV;{~WA0!6F5?(eKafSiai6d~3*8u7=Ha zqFf|1RK|%Lws2JI6&kGEsix(9#g@1VXI#zPHKUNXh;tW&oEdy`8ebpBnGSf(2Ci99 z<^)c+;|n@`QHw5V&=oDZsDc;O@Z1zqz_FI~jEO8Q+}A&4@I(=qaYoRX(loC#>gHrohK%9nU5dy&zBxDY}q#W zvm36f6VY04G|Pz3$jK?CaM2*9S;Q+w;ihAwaE=tuiscI%S9J6r>ekCPji13DkJ1LVZS%#)54bZZ=5)`JWq$hO0CdJs1Z z_7B4SUE#Mn;5!t+^x*0^$en_DQ}BirUeiMgFsV8&Lj|v?z!fETP0wG~fou)DreIY* z(uP3l5J(#V>2i=h!e60nIC5nWW-0gzJ7}MQJucid4eKp@l?hfDK)wpz7~^k`@V7?! zTVpIO=}j%j*1-(QNTV#d@O2HJsRF4=kg4K|ji7FVZ=VJ7bv%xUOMpIsghatdC`k%I zQ3!8r_&3BA0^8^L=2_gm1P52KK0vH!V_Xm>gs5G3cLIv0kf>N8+Erlm3AO;7C&Gdd zo#xPZh}VUL{$*B5veF8R4Sel5?53K;B37*<%{o&iRBJ%99@MWzD9~C1*cjx-BiszY zE<|P#oJM$(4^IJZ9-{?B<~g(gf-?{;AwnN6G7Q^r38D#aCpUpWaMqJW3 zN^5M-RDar!%|xuj4x?&4ou}wq7(SG!e=u45DGEqQ`cEWiA574GBu;y`FdwtO>sY<1 zn713dD*BEGV|g!!IDO!i=^Wgj(I6n_B%)?7AaB~6No(1U> z+@&daWg1p>rOlx+EW5A}*bt3=@pqThpV&40=>znOwXmxBaSTLbUn~_56k@f~I5l%! zU}h^yvsTGLmIF5iOEGq0mMbk=tE1?$&&X0=uzoDpZLBzQ46c~(AFG(Wi8uRMJ`DEk zW-(%hSa#c#Vl8wK7p~|tDOwP z7*^e_rWMPRv715~y%J_sV~iI&m6TEzrLx_IyK~U{vwc8W??xSODV{2V!U93_1iM6GhTwj8@Z{jyQ?-%5G;oJI;MxB0xdC*l7haTu$~mMA2{s^3 ziJ~<^w84mu!^SYS0+#k>nvgY-Zi2WW0+9p-yo&HlBr?tN$g}E>i=v=ILXr}Gqrm%6 z8I+bHSuxyF3Lh*5|6C28?Sy-W!Hp@>;w3FESY`^=nIoz-xGXTSvb-ShS7H#_^)-M?=`~*>%h0`(U056i*0Cc7tA!0h9#kH zQK+6m#ZGcr37#rl`{IqckLIo2SHe*+lN5zs>jI@SxO7j8qB2D zz_*N}{zb9RC3G)DI~Rn8DRf(oQ<|19w)!)A!dbn+)TZUjjmuY>R|*tDR)6Gp!^)L@ zklM$cu63PjSjv%e1u9UWMY$UO#wfR=aQw-1-DByxKU_0DUoiVfy6Kmx`bSa?k6zI| zeck?A>EeM7@Os(Ot0jvs70muQ*ZJpynMbnhpFOR<=ahEK8NKwRUUo_^J)vU$fyXt{ z=v*egTdeRh2hGE=t+Oj3Z^3Ck|KUaDFS~T@`;l$zEg){9dXIhsN zYiEwt&!zYJuMct8hQjGR-fKPUMJiNn6)VibwV}x2^7*%Jn%^myxYFURHVJiRp;Av# zCwgm`&r`u$3Pdrr(JVHaNR^uFn%(GI+$dFZDRquxRpSXYQ~S!M_mxk*RXG0iHT@%( z#(r@@{&1@D*&Oqp+Nt>Z+236o{aLE!;TzW9-Lm}ps^YI@j_O6y0f6}Jdt5JJrKDyvVLR4TWJPYTKv~~!kL5k`lxVIK@m$RG?F|W&eM^6 zgP5zql%2BWAZwVvIRb9V@vSkOH4L+c(JckOr6AdIl-d)x(7t}TE0o?Jp%`{^4Ckvr zp&AzHVW9>TYhbGbIarcs!RkZ0H9@t6Mi*f3463(-Dl@7vg2r*w<^=5y*fUA`oVaHS z4$KRBpWpydRVbR#AATiMbGUvjXNF`<<18o1cA^`T_=baII&g*^rCQJxGrTrVvK=JD zjIU@h1+DXHbY3Z>$kCZ0d|?!w?)B9!30aDD>9$VFNK{tF+-jJX!qWZ4D2p{lSrnO= zmO=+vqcV{#O2)J!wusCqi@{ZF&pL-=Ig?|qK+G)0);F0HW{bjm2LI`tIdfv8a9+$F zC#MwR2@N@_MaQ({tU)-Zhbgq9z{f{~t7cHSF6PhS{CS~d5jU-iLqIe|qf^m4(|4jK z;oZjNXs$!du!tA6c=2M0v zrw6(7{rnYqy>2*RpupFqjlj>#sQvUdsIQ6$vJ@+PBm}3~7R^rTC4w_}G zZUfcVnXyQA(6}Yu&OC#uLQiKCs#x!*a>y(@sF$&c zH_yyG8(A_s-+4Sy>_hQl|%h+<%|z51gQ2#wbJyux!)dAJ@iI5rI#%S9V~}C z#bZ{`kWKw}?+E+mV*q@R-G#fZ=ds2>i!w7MVP>sj-h-RQtIelkgLf&5mC3&wWX0HN z6RTJm6Gm45W3!^|Zx30AWfWvU#c+tF!CgF9JckyVGwQlFe*{ z^cS*eAET_bE0#iIw_(dZGdt~0-Q79p{nrxqpYSp zCy47rm<>}9g4z|>ISU#bpmH3SS^1ht)G~vbXHnCfP`>~R#zCeYUKoXE2P2mTxoj0K zwxaqe&@c|$Cg9K#?wy5$i+I?DyC-3zk!NLsCXsR(t5*f%I&uUfju2<{h77CW0T<|< zgCj0%5AfCyXY_|n9GS!$qkfcPjJ&Rf@5tev9&&OF70!Y|AXpiOiBtDko zJ~ZMbigjVc&5u$M5XS3-S+vBBchSbXK*Vb>GKY}O=c81)B1R2C@Jti;u~JT23AYr$ zk5vf|l=Jr&gg##n_iJ&Xn-tHH)DhpY=DGL=_mx3dWW+;@!g4g~iEg-wFiDU)5bmD$ zbuW^M5SkW6V~D>t29LJ5GnBC01$T6zpLXHj_QBtGqF=PZM?3Iyo$##=u)BpjGYBvD zt)J`iobL|oZ4Eq-Gj~s}M^YS?mh#eqknDEwa6ig3Bg#TI)RD~LU|QSCwdU3Q!Qica z-?`eUlT}lfJ6$&hytjsfd1JW5h;EIMbFIFln%QG@^BFy!Yn`4e&E9L>fnp6VR+Dor z%NKegnR1xf&*d`B8($lYT zqmVTm${GmVplv98bI_mJ?Y}LL6lwYDaiMWWth9+)qr#;goIQkUtYY`9&@#SJWg+R^ zp5rysiPiSoa_)BTT1wT#{+pv$TIaKe{g*qJE_W;*t95KIFg$-<|EJsIf4DXNNT%(- z&nv%mdhll%`ak4aj}G%EI+h;I*8bqC{zqAcpWQJ3@|yNfxyDROwAm%(8e!Fp*tRM> zSL*%I6$+?xze*ebeTIE&mAlMNvWNU_v%>9RA*(N#Gm3AI!W#;hZv>SSq;^`YnG&id zNYw%n@Fx6Zf1cmGNMuo zuCOuh!Fn6}C(eV7sR%T#;L#b_>mV%-SZTu5W?X4R6$V&ogf$jeXG4wSLem6nnIw%9 zLhBUlS`dbOD4}%nOs_w~CR}#lRHtykjL&HCS)G`ofhlTyPLES`@QjY67|2;2xvVD? zw9YBWX$3l`Bo|a9cLLoqlN>v_t&Mzmd+(+%J@bWOtHV?qVQaVynOJfEyN-WUjiDoq z$6_nRRMla}$IMxqxs;jOb4bhL9T<$U9D~wBl-yW(QfZuuoiLut&EaG6XrU{5Opf;U zhW3o${iFD;F%+-IIdjp1X?%SGU$xLH#5bmKg$rFU^7Mi;O}KLf4TYjw7#;PAl@9LG zkY{g`=as7ER~x*qv`0RmtiONz$EB=NJ>Rnk#v!));m9Hwo&rPDuyYF3Q_*N;zIIuv zaK4GFweww0(9Znh;ouVNorZ%hpk5cv0W^Vyc|lkb#3i;681)mvN5u$jV$>InE(wG( zjM@(kP}Ff)9mI+VD=uvG6I}q0`cS_I*SX+zBTP5o>-I>#9pAL@XVvhOlDlRHw*M|31MGiH9qutK44i%XB5;M#iUIUSqa)L zi7~4hTRMu(eTmG;kio!iwRFdr?2Q5G)_&RcLFvw+d-f^5l05$XQ?{R7u)a~?+E%`@ zzs{ej=IiFrfS;Jrh9QCs>qxf>Rm-S%lCLvz^_EEYJU6t+57WU_G`0$L^h@?*`3mYB z=R542d>QL}yxNBcmZ%yBOD4FRR&>q4rz)9-m(;L+q-r6pZ?SO}O+bp)qK#*%%&ffN z#4J-KLtHEvg2>Qhy3`4CQ!cytemhaL{~+@AC1n#jrvLWLe8>eyHfJji0pt-cF?wk-ocoQ zCUaxByF?c=Fvi%4Ez})gcZbmz6%2I0X{};@fXr!-@zrKOmcD{nkQg;FzM`bW!mcR) zu$=7g*|K)Wj7#q|HnQ2@bc@A=Sf*sOqMJ`Bs=`$JsiNt$>-M{53VWt_A5z{*oM~j==N1;9MU_9R;_nu!S%SHoD(wSliagA00+nI$ULf9W!J)B6>I8jcnWrM>m!U9uHuX zkF)tBQxKUEu5vm@MIVMT`zjFi+ipQzR&}nYXPq|^M5Iv*;%!6 zq%*RkgZo&1M0#~un!Y5ty7-Zz$cufr*eMjM(TxG_V)I&hS15BRlp`lKR-th^dbxSw zLi0+6m2@xS)*0M1iK}fwzAAF1V>Pv#t8q~FyJHTEipA*Ayr}ftQTv5%rNJm^r{-49U;eh!pAzpiA|mpZNZ&&i`!~F ze=T?a=7#gDCq_PZeDt%YRbM)1yzhicc9J;<%1)>$V#!Wwq$kv@e@sdDQaW-}vn5eU zu}Yduxr?%vl9kDd8DT%lcS~?Z2+iy;|!#&=!nubSE_}9Bo-R-L{a{?amnqCS|-IhhnTAXw?-lvU2BJO^>1cr zw&z&3=9{+N(wuBu$QT7j8W*;gIbJSs{``vm>&N^5<&^vzr$)Y&B7gY0`SF{^{cWqS zmso$6uJ~TM?mx3kKgcrtJk#)}qVW^*NaeJcJ+yXxV6AU4+P@-P8HW4o;P2C&R5Ct% z&6;hD6zXyPlu)L}wU&*VaZ;ioIfJ1agOQsfksBjH+Oh`ySG(8JJJ+stdvA?|3lw~w z29z0vi*3sXD;;M#Rq8o0W^tRIWW%7kH$e z|7nf?1IqgQw|`v9y4cBO4RB>TI4}z|D`I_Y+k#syS82digLsTtHc(WJm?L@c1_G$hkhU?b6n zqLv6T1caeg+&GK#Z9K)TW+&>IhExDM!gwAE#x;Im7B$-W3KOihW2#9vPT`hm+%pR) zrwz=rnwujopj@W3!0T6lVGUco$l{^81-Px|Gls%f2SXV{k!$^2dWYxyaInV4jV^-; zAZUEJU}*Jxi#vS?qz;4AdUSgUpEaUSpK(fdswF!OlC5`Lw(i}j`osb4H_kYp&hx(0 z5qe`V@?>l98yQQ|ohsRGtK@*46-tV~n|P2-EAbX);9~QRMRwRGJ7}g%B|E@Ci{hDN zcPwAR{@8>?Uvk(eJw&G`lawm)J1Jtt6z;t`NxWHhm^R}*afW-D?;|s{ht8=^F#zNHA=x55H3BeXi8IqcN1G1w~d^;Y3|7*uMma zm+|N-9$R4{ZJITxa)pOyL%maxE@!xZE~xeZB_$jW?4Akc$o*-9T!DsfodCmbq@o9} zLxqRed9Y>`54vHy3)D`*TpP+V!VEn;HwX^42H&ptZm(V0Q?ry9Wci(=7V}!@7MPJ$s?m1s1_nxH?q40^C~d9k#PkZR*-5L3@-pm zN5yK6d6cQ(RV{x-4o>uh6WW4tZQ+EbaB_?HRCnZL7Z=~;OK1yU90j+npm+l1+fcd^ zr4B_hh6A}{e4PcgOrll?=$HUKGpKhS%3XMD3F+LJ(vE2z8CI|(gr^{J1VhzUPnnJH zUO*;4rdpsA2s%F;SwmEsED{pjxD$!qSremFROy0juzxk&yolO8xW_}<7E$F4${9!3 zOz4sZUR0vf{lTQR$npM2h87lDQH2$>jw8(q)~_PVch46g-%UlNaSH0Z!iumF z6z>E!gcVVo;?Z~{I>n(Gf>uRwfkc&lxTkOBYjyCq9q6fk^h7uQLl^#IH+s4gJyys4 zFlXuEg4LHQeS6!{<8|QS+Thb|k(c`5$w{GP0hLanTn$%X#${Chn-E%Nh0XyHl13+1XntqE7z$n8-+ zqu+nBWpQ7%YkS$;3ptM8rs{s1ZhSn;^iJjC_R58qZ;Zc?JN|0%^tKAuk&e)rzR0Cf z@zN+s?h3|t1owA@UMOGwUGCiXuR1<{N+)5as+dpUNe!c{Q!&#Pi3(}lh~yAUgTc&Mi3-M4iDN7`21Tp{g)AY~Pu571wbEo(M?{*arIf|; zVI&zO$Be9Y)(PELE?J)_TzsQ?Wp~rs){5CTE2rNnA3t2@JWD~VcR9VweXV!xdcW`H z5Csxgq$0%%RH6nqde^V_td{9Xy+bI|!tCBa-Z0-hCG@(Yjdrox#22f=6gJK`&A*eS zj;~)z=?ENcUEfbr- z#hX(o3nz9J zj&IAi9Il)@QZ;w7b@_DbYD&BRVjq9LE08`E${ywN6tGY&7HCO{9#h<^GUHl1sh<$) z?6}P-_Rf*PMLg;v7B5-AQLBen&*KgYC>sOWUHf{{>3tkiOq9o0^d`YF^n zE3`OC{S4`x!?iYYT@B8Tk@!LUYBzjifIQcU|JaUR>L#ytlC51RVHBqr@MR-OGmvvC zbbMIY-xAs07}(Q}4zxzj^l`N=(zZZ4mc{39PRX|Q#eDx5J24-7W|)fQQhv`%a1*iU zF|7aI!hSLW8w^gXr9;;O5z((+{+8e4}B&|!NZd%AU;Tt-fra&o!=x{%H zy~+3UqNV>TS@}V+=ldn=A5hlczy0G<)|F8%TLFqRe7%Y9ng;SYRw_Zejx-*u4`6Em zP4Zv{3+4dStO1J`8P=iRhcrGgGz*7ZU~Cbn-BbyN!wV6`0wGa}5OC?%rF z2&;(a67UQW>7RTSVq=h}+OyV&RI4n~N$JCi0O@nX9yjhKqSL0xdqjeLw z+6hZdJcYM<3+$Ulqi!@zRsUr)=t9ax7D29D@SW)j?ribzZVI044wPBJs0U6FVnehE z;~{Jh3DyvMVci70spC(n`6DX++Bhz7!!(QdT2tiB9{gyP_iJghUpzMb*rmneBd~QD znTaq*#92YG31UY8|FL9A`a0E#ZIZnfW`m-d_b!!$m9A1tUhk8=HYj~#M7Bf49`4nC zENSA47guGwY2P5(W0G#7)J~=Boe}9e7Y(4herR? zHSSl-XAadbqz?JY9I$l(n|;C}BB6~9k07oKq8kbGJfh0bWC%}&1d9*pS2?o>+C0#> zf|M@4&BB+fVTqdJJ!oEs-9c<-$;w0z5j~i=c`_Y{nAiD{Sy0N<7g*_l6%(Yz#bU$8 z0(UYLk#8Q+%eIfP8J|%u-Ln))%$b4hW5z4Wt_SJEy9GelIK?m)ru80Ny+>J6X3n~6 zr;6FKHanE5m<5ShnV1*f=12^dVwR=%OiavXC8HE{H?LrfzG8#1JsppwXy2qPx~F|g zS&YzPEEnS|=3YpDHhWE!=kHS1W{Sc+2FhBoUla=%yE_NHKidbC^?o$FpP1HxVU=ZS zrEsO4M`QDFbPjY)GBm2Qqueocu{)U9xVF81Wm~Q1^;+MH)xOsn!u#9NksfqrfKO9^ zOJiVvlXrLR+Oc-;wJ}ggCsGT#r3GbX(l8EsW`W#|N0yL$0S(XL-YL{SgPA|@5)0F^ z1+XJXrumIoEG|aL9FL|U<(6n{v&Tz!BPAuz!b{&s;aNi1Q zUm$h!uy_(?n^3A6T~NZaO8(d=+}8*8bb$jM+`fMPvqADkDS-{;c!Y*bGSL<1w zsC)~2q5(*2p|p(udSDCAG^?>deAQ$!4E3IFUq;!R(KB&qH8viKO>YZlCnji#w}D*&3h8JP75`Y zq-GLzx`ci=>0K1M=Ee3&TodyFE7HLHkx=0%DAj-p9ban-v``6UK~%%e9pQ5N{AEfi z7D<;AmW&1R6d+#_x!AUPv~GD{&EnoF_g{-heFYF^vha{g+brzow{VN0h9p6$Pzhl!BDf zBNU|+v`@K9c3dkxsg<49OOI(}M^utzrSvF0Sjjqxqs(J4PA-WbVYx11h$Tr@$&!?k zc)2V=Ax)sf#Y|X|M2$3ACrj2z;#IUGrJ!}nDr3d6j9d}P5)G`kiH(lvt$u%Y zumAR7piCERcM8q6Xx`BJ)%L~Rw={c;rw-OH9;kKgt66?AXZ&~9Oh3P*dN@u0%d5uc zif8^>v9P^)eRq@p(M;nH&JMgNSe41da=DA2*yxoE8=dbq$EU+g?xzjUl- z?m*GR*1UrI?=~bKYT^$$o=u*O+vNQnq9C zzMTr$HidMz`o1{x1M%kj4_iMJXSwg7;nPW${k`y*ifrp5JNxh{6Hc2HPU!ff1EGU0 zEAfrqOZ~8ZTF`M(b0|vnhaLp^h_Z;2JHQZ3@4c|ftG z%gJ>)LH8`|UjQR+)a{CN&V{>Y_^vswZ!sdD531(<*42pJ7oPBh?Lll^Lz>0#bO2Fx z(2DAxqci=12FXRtU8$#?);Je)lkon@}}oQpuWfY(G}E#{Q9A_z;EERv{`1Nvn+ zx&Q}Uq;D3qPr@22%G0sbh3N{AHVjVoMD}-t4zvXlyZPi^?({I1Vd9bp`AidPn}fAe zxW>wrn?Z?*uW}$(SbZAQPrzCyUp<9OY%t#fZdtjT7F1+`)pl56!ubYRYDAUesA`g2 zS4K{?uAOXIy=efwOTkrgAQSTCwxr)zI)$LKCnmqiMX-P95wzpV|r^dJU%97*hsFE zPAI}-_283N79KigznALMblTcE#;QgfGRor2AB{79^pN=@2lOA=tGnmz{*NEf{W5)i zUlUhoCjB9_Km@8=1fm`%Vk@qsH|g)l(KBv3@af zbp#w~T)Q&Lr77@*f#BsakY_=SD;qb}@Jm$Bc(YHsLnA$CV-R&n#SB>oHCtlNmuNik{&vgWY`z14WaBWmsX=x}?lqkiJ$Wp~OxH z=?nMhsHmf?cy|tZf3^=O>wRfntY3jzH&(lmdKpu>0F^*$zcAuLnk78yf;}^^c>+~f z`D+T0+{wLG8~S6}+OLbfzbXknULAg|73^$*huioIL!e+1q-*%Y4W7hiZ%PlyF@n-@ zR6CA(7VwaZF;(vr?3h3eR#<1{o5xX|8I)^Lg#k2M=uD1{K7l!$d!WHDYCQs-+qJ8B z9Y%e^#yBSo%tv|`$>=iabHUbG+%W+=CqUaQZkt9mPLypyX=adWLMdvPG{Wue2iw|X zE=;}rp<#61j;=Xi_5`_Mg?VP?)KG4L%`>=Z9H#gA(g#s;4|t#wN~&1Wi(hr|g+4MY zh}tk}nHN$`cvpM)wJ!8RCw!tE{=AL*ek=E1ZIPcf1in@6{nr}*qqVEg)q0<+Slrs; zInuM1Ik;M+2=z=yX2WO=iQcFfjNS=uY^)I>wDE3u<4%bmJfS4d58*%cqNjQRrL3o# z(ZjXq=hggU4Ir)?r4OO3VSm<;FGs~yjHAX0%2ZJ^C+hiVzei|ZAh`ydsR(CLeA2)i z1-v>Gy3!v^>kFN0Uq0R9K2kjwS7f=+wsdPKQmDYW3dHIu^@j=-sB0nGyChbaNP~m4 z%!##=Lav!)s)W=Ld{ZCIRPm<=z@D~XLML}_44hX)54L$qOIA~Ml2MvUQn8Hf^x+Y;?3h-1Tq~jU zMX`#Jl|quFU=JyhC5|%0Iy@|m8)4&dqq2B~l)i+rR@|`c@R*b`73HhVGqW7-l(p2- zBNVsjIgPSYM(J78XRlcQCEfCs3#zZ2Q+@5c@h54v-(=Z;drkM;O~amwskoY%3q78* zZA+(G7BYH#`D0xENQ5$HwGp*A#cC6(F)?#rsWNh{!+ou7Ii+U&cK2%0Na$L-E3w45 zzsPo|a&}kc-0Nj?f4VjCr(4cH<}W;%H~nJq(z6A#FO<3-zd8Qn%gUc$R{h|z=6h#H zp15T@+_C;vh4Z-_^Y>D<-$*zAd#3dpS2RD)wmf#*@1pL zSmoYTy7YSf%u|`Rhf^)TO*Oq)ICs7uo$m^s?C>Ntc@NaM_m<7Sb<6&Grun5T)AQH# zuUt31am%{5Wa?1a)UoQ>i>=F9{hm@Cs??zp71ar`eoYwnN4xC7IwPz#!b&YH7ztlUr>;W2|Vm0bK*w1H7wiN zE<2!Q4mI(5X@XuBXNtKFQmkV3D~4E`PJ^5EW0>y@g|S$zsyLJ6kU>V_YP;%lryO6+ znEz_}+*dA4{wQZ=*wR+dnR4O^2iUb*Pxd-Bdv8!|5HN3r*pRt&!AjKD9e^vCWs>9=tsS zn#Vzh6;v9-4K}1$#gkZ=#^OApJRq(J8;e+QiOgi=k4Al>xGoUun!9dfF1s%<GrEvA`Ob8lQ`LQL?Hv`%y zVCy(vtmSSh`5OxUmK@w11=mJE>JWFXpFcOupC5xMN_asF&TIMj5k78+PacNnlzjd? zcg4z`Qi8f!IEkY(g5V^g2?)9f9uE`BoI|UyYZ28t!o@b2X9TzPe7-T9V*(WusCE+G z)_}7;@Mv@BNW=Q6_E72=S3X60)=9SuQ9#vs@Vp=>JfzMNZk{U3bn9mLM)gNZ#g$E>BydDbao7v&2BWVMC;Z!+PoV*VWHJW z8UuGaLZVLCn2Ek?7vAkB(bAP@{4o5t)KwYPs^3w_wvI`*4a>HVO5Pd%%mK|GGJO~2 zxOo|?foSK&34q-gx)E3xz?u;D3j7?5%uqHKqgFo|Sm3)Cz`!C@ECc#&I5{&iH=Y0h z|MW>jK~&1m0{wOQL?I+@goS7%8s$WR7dFCTG_(;FMf%&rD>z*3%8!NxJHDeQ(XuskNQ-__<-f1M|K%F+{kqT(YQo>H@IFxL{!Uf!iJI{1Z6K}} zrH-K+8c<+Foio@L5mwpBMHdHWgF*8er*z@58K|1$jmyxo1Z^wWv5x7FnWEIV4{DeA zZapY$nz&J+yIE^4Xq#+OhWl*1Y7&`UxM2!jZ0FFpS z!u;Vt?ntP}h>Fdi*a&k+QJodG(dpNQZz|v|Jy5-J`C1rzYH z5hV4!)?V~x5BGXE+ByKY_oFx!IyH*oy1~KLKtl8CwJ~^00k11yp@qvD z1LqX@rEZ?`)n}>7*auE8kS27ea~Ula_g+<-~Db z)cd0YE?i~eFSV_nYFRzrL7QqJ9MgfCAnhiWP|I*7`iPFUmx=3%E`?U{%pr;h8$lV5-#+iGdyPG1X^TG?@(?6`s1%}(m1r}UC@R>?Wz16OPxxv2l>IsHe@ z8oqqN__edDZ>Eg?K0~{$YHnwl^LYE}H93E!bM12HT2{|mM(1i$f&NC1r-Tt#;8y>7 zl^)hx#VWl}Z;j^5!+FEL!lBUh4)@KW(9w#CKVMb+^6c>UP7eRiw|E=@Ne?2w&?Tea!OBsAJ-x1foy0zHx=UbNVry0JUZu*y0!@pe7 z{V?11@GaYm6?1P?IG@ckJb!KELaTH34jFTc!^`5xLbPLww9G~i6kFcBVJ@{G`P#b$ zVg12L1x|N!mxfWA9H$N8YjQDHDcl}Lr5apk7H;*sOVoU;or0FA zSd27K#L~esB`zA{ZVmWTYG;qt&K{|sIng|KvUTZb^HNg%{El+_YuWm^2G2XJXe#(| zEBfzF^dFtVV?F4NA>o1rr&)y*EllVq`@2beKRPl*POF8)L6Xof#1Enay#j@<eZL4-MjmQcm+A!$Gz4Nc)JO_*%11Gvi|<$Z4S^f!M8ZL zrg2bf1r?@9g&DL@0^J%K=Y+`!aYDREP#`LT=p8^+TOv^GLE?rWP%W3xfsN<}5u!*C z$EH1n@?hprsLm9r)`4OrGfa)Rh-qE0d9cNUOiNg^jO6pE$B7$lT&)?F8zMQ1;7t{O zQ^V)zxZ4_-H4L*AsKCIgVD&DrHB{>g8C&H0=i!(OGvoCFeK~5G0Bz&2#l|<<_$E8w z>4ZJgeBV6FqTV!(8eF*BgLMI_E@K-fS~1vc`M>ovys@$8e3lA zjBP$-T#Zab&z7*QuC!0pYgToO+#Y=J?i}M5ZEwBZN$ASmnlp3#ddFxYWILWgtj@2DuhyEi5#0wVC__mcYPxsC&ZS?eq@Lc*m9^#&tYHzgQ@E#OO*?n1-TqneSTyBVKHUf=i6L zqr%FDxU?ZGM57jAqhy8rp(iZ8vGUN3^^cW=zfcjnuQd3X^7S7#bFXxR!^1E`&2n1i z82EA%Y?*+{RWi+sZZWzp3M&9FBEjJ1T1>Fh3I?2@RpV<>`+Mw>AqSFA0NpfFPebJ# z-#;GgvIg2re2*3M+R=y=%I%=p2J%$=S*q&{z+(gW%mDK%IMp3I))h)q2?Y-Ef&%_3 zeM<69uXL+|5ep+L?UsF;^*~}KELQZ4q6_0I3Ny@##rl+9w2Yc!;B=Q{Xn(h!Iq7Zs z{!xx%pvA0SlD*7jlr@SyED8H&;8x63#o&s$3&vg*3%>eaO-lEh9)_C?w$~)vONow3 zGKz(USn0MHVzIztid*zbC~Iv}UktJ6HBj8zsg-@;G5Ef1@1Hy}tYi6HWMmpEXHieg zQdDmNHAb$|goH>dl=3Z~(_xAC-dcZpkfo+wGnOa;uOX_D}%e+uG ziRg8vDENa~oZ`gSU8r!0)VOi^lu$}lF)L0O0e@`=kG8_^H=!@pMjon*+*ccsRtD~^ z^vlZDrB%VNR(l_5MSti(Pd0~sTe19;qQ&1;x&K(bzQ4`CwK@2g!l}6W#e5ac9}Zn^ z3tk%q*#?|tMCYyOPjd9!FnW0qJ=uZ(s}cUZ5&WhJz1hMaX$;<0lX@rWTV&x?{d2I5 ze(h6Y?Ub0uOiwU%7+h1K;z?ZMWFt4V_@+iIwxjAfa?3zc<@}`~e5`dfsd4>er~gFr z+VM8u_Tt$$Zkdznms9(~XPah^S5Ka8n7uX1RoY3u4rL64GX~L>esr=Ua;yg*Y~^1r zUjEeu^{+1Le{xaxNi9(z0kPmP?TN7H*;x%iDf%n8Fn^XHlj)LXT9+ zSav~8%<#pcvzR9#Gh}I`$90n9+Rem+jIU1JO&KpqG0M)G=w3?qrwv=q>OXNt``s&+ zC$jC&-n2cDs(L0(d8p2Hw$**H(|x_qSD?VBYMkjE?!4h}k(|r!TFf7g)S06-dZED- zEmueK<-znu*XeS{&0#LBZS9>Krf09)ex2d?;U(jvSq@5BFBHu`o#TA6!1e1a`&Z8C zKAWQZ+(q42FX_L2V({4_XSPi|TO$z27`-9^)J zm98TVt7kfb=X)ZTdcoN)-|6<%(=96(+C4Y=0%aQ9GA;}(kbV~#nn$WdVh@UQ;>H}g zV+)F-%fi6C*y>qlkjp9=*rMqFvApD5*)xtE;phXp3mGAFc5iNyx-wnn_670(T!)5GN0 zfEfEY|bDc3$0=7-~{GU zNEi++h|wiMoEBJhtQjmU66j_&H%#}-qTnJMQwSL&q77gdCd-5>=+R|i!zD1Ey;)Io z3DMOJk@8IQEMGH+8r`_di-){K9w6EmqEL??u(){lDUK-~napdZtMG7bFke!R8X zpU@AI`#@4BJlN*nTeFzlv~qhW&}<3y&VVLIxJVnkuJB(Q4y6x-FZ72l3~^Tm!|6l* z8_HmwCRl0+*V#iIld#hX+NWT{IBK+W#*i>aFARuQ52tcLgPT~_kZm0@Q%_i6j6q14 zRnKH)j@=l01ksBHpRnPMkjZr@pIEI`ujGyRGJ1WddRCA1t{>_3#&@k9>RO9y_v~t2 z+1a>!uw^l+Zt8TMBcpw~Y;3Jcwc2HeN_SKp5{LZJy2WU!3hwI&y;kSn)5)J40OxuF zr`p^p^-~$G&RW%~&P`lsV>KF`6vY9rFcic?9#P4Xmyn?qG~hy`tHj{OW-sRq36rZ> zIS1wQxMvE~nL`x@P@v^5b}S{=FJBypWUD}?0$v`9ob3so=d4z&-1(tM#%Sca2IiX) zRnh9lQP&iv7eDTUHZOGe#d#iU-GXkFpNWu}0J1I<;~dbqklF>bE^J=G=2dK6N8=u1 zazo8L)XYNdJXS3TwR$c`9iecWGK!B3z%zq5MGlX2hvHk-PxXaT6{OTDmd-`vI)h(4 zsFu7nD&4MP#il4t?WfSfU?!H`Q5$>sUKAF?7)Dtvk>DO3%QNvml*MdQtcKNImc2bT z7;`UV&V(`R)^28}V(_!;ZYP$_f+5yj%8Dfqyh~ZkSMWXD+5|277L=MOU$N{d@5PcG z)Jx)N-zeRsmeF_It(CH5m0D)YVh=YR7eAn^_iKCqNeBT^Vx)DXA{%P1gj%)0oN()N#=<*iuw~=d%^wPnNEJymkH{_sloHWivYbJ#j*GA2_SZO1bwrJLH_++yusWq6`!XIo1 z#5aYLI>7E)@4n{X!4~dN2e-Rv{a8;VLn&nI@0{r4|B!9@_f)eic~}y!kWs{nQ?hnw zOnOKmIWQ)RQ!%eU+LAO3nOLHWyXGn8G?+NX>{m&#e1q|0EQQ7~mGp>`Wyqk2MQMt8 z6)G5yF`q+?^ps9|Ldzn)C}Povbo``VddeU@&6quWOuJ*ce!u%c`i23 zr?sw}ubVzqK6P^-aj69 zisrK^s((8<_*T_y#hiGhYw__k)psvy|Mjx*>z9n*&aiy%n)!#Brk~!l|KytSSJy3% zUN`2eaqoJi%JW|^2)qt1{x5AWF4K!**LDni%$ zr~)vvztH|_ruM1Jqfexc{`tE3g z(=MD*fOBemK`oqBlhY$&LLW&S#E1IG;Xd)`FgiL!;(Jg+FOF*qq;v(_r^Ru!alD&< zaBG`1UdQsV)5dZMY8YZMcaPWt-$4pj%+W*oCS`Kl&vVuj2O_!iLPH>0<;8gmebgK=a!F!`^=fH*#Hh z-#EaLH~887Y_d1lUgx0TY)iHkE!oP!N;A^TC`}F=PT~ZnVa_?{oO31tBIlez0w6L0 zk^qsq@4emN=>2tbwEO(3-v4$>Rgd4ATc^4jV57SMqWhi?&N<(c5W8X=N5l{Teu9W3 z2`ssfQIvI;#NmFJa^gv18=x>EBaomT1|f7~xF03Ah-eg|1hxHsGMuD#o9LE@T1D|5 zVWNe-HLQru>cG4K7dXJY8E@h56ihkq4BAT<_Uc&C>Xp44gTB*k_Ddt%Sxb2KLgL26 z&drHPgCH?!iVJt(20~jDFOi>a(#2QACJCJcbdgEwEqEaC0?Y$(7Xdc`?xHgrqc#XB z^rDE%2MHg6+|;Y6^Mt^TMRYMt9ZP7UF+((A$1oSbHwn@PkpsuK2^b*2CP7TP!kuos z)rWU&fiWML3xEX=vFb_a<4_j@>TOINCV9TZv<>SwCu-y%YXw|d#M4;#nc3K}!QHod zy{~p|AMWve+_90`ZN56Nes#cnrps`$&vK&IdZyobYS8gX@8$Cx>4o_^o zGZA=u+W+>D^ZkDNyWO_;d#&fjorSC0Exhokk>L7}0lzCF_a`G{jfuF<12@^Ia19l* z!i9_5t!wy*8cZ8-zKife>Oa081WC&-KBJ{2Rpc%taX^s`h@DUy01|s_RkuAQ-fCTS zx2w zYm;LGIxucUD;t1gP0SiFwkfJ`LVJ{S+>*u z7-_bkHVCyLLQmmVfG~xj8;~wYXF53Wq$f$3!$7qKQ~`pz(C*BJuT6%|j|V;)@g5)A zJvp>{s(sC_WE5q2;erkC zl_ciO_?io6JE)5Y^ho1bLmRh7yg74wrChAriq&gCr5Nip;)6ESV#KS(v~*#aB$34d zXQshNQ`kqd;5;jFkqd5!@N{9~rU<_+z;ncSmKeXjhF{|)Zc0Fg952>_S_`eoeusx= zEMb}R@!X|Ey#y=fC$5O#htvyYFy8`-&7jHx%Zzxf9p+2n%Y*(0N232S6#MJ`*cWpv?Ez1G~?%z+(g3-*0!kKJLDw0QFYXXo1y6 zm?s5SS7SF{J`bLm0q-v0rNGoY~z=gPv0ZfulX1 zi^Dr7`u#80o8M}8eLNUAH{ia|XHOsX6fW%M&Ihw*{kO&)IkTQB4&69w-o4KW?N3REF42^gLLnBdiXmW9 zltulOf~Xr5TpiSO(M`96DYxa!Y!&@iima$7Z&Mg1V`iurx0N(*-I6jgrF28&48>pH zlKjIh?n60}=c@H@wU|%#IdT?u%2#$v7J?Pa+ZC&kD;?T96RrkcyiE`*pK%vW+Ox;j zGly-LTIC;B@k?iY18TBwr4y8_pepMj;Ql{|FbG0cs z6y}K;S+ak~l006gyEN_VGw+uzx?e02{IE#&9|iJn6ssx9`ay;I$2Gd2)M|fTYxqTt z@zH9{ugat!wrLuLv36$!W^ zNB>NmbfQnyyCip$ShS!iJsdX>gIYMOMWcE&prY2vel_e>p&ljCEij9)cYbSVy{QGBINIj2rJ%6{Og@ugW%NY?)Ny0;Xx`l{sf^;Fm z5s9zwKdpZ8%SKZa2=C6;`$(F3`VrRU3-+Go&69&;K?L;my8jg z8g|Lrd21spGNA-Jz`<&ikecCc zO~-TCc%wA27Np3ER$|f&x6~p~woMjd*+m$L#<*N#I1lj-VMp0}k~GVgq5; z1TtaBfI&k7H^vj@IA#Ha5lbky!*h<9Bn%AzSpjLmkR^dz0o;H%Eqg%HZ76;F1b+|o z`XUW}ydwlf2nb`u>JBd2#`ICl7$>a>(oH7q7!m}~k{^!Q@k%wMF3z;M=&7;rx#`5k znb;*3euI;^xs2alz)uWfZ?y+rY4$%+z5bhO%X3xgrz`YNmFk}=F+X2we67@QxZH5O zQg^CSd$Yw*-fAmuGnY>~hSZ5ABM{k;CID>IoeoP{a8ka53%r2uNvv2ClUlrAk!Tf1 zYu19Li|*oSM^?Wjty6cZMR%k|ezeJOti$$fo9*cy+fxJ1-}XD78}d9k;Cgbv{baxU z=>hK({qDyHsg=#=dfd+qdY|cbzR>GBJmx<&y_K=L*C9p|YP7IUa<}es_sF>b*1jLabf5(=H6QOLrGGC>r12-2ZesMwD6;H-zZwO5*e+c5y0x zYAkkUB6eF5X_RI69#NW2(fII?l4ut?@VGq!%Y# z80BcjO?wF&AUCKFAwsBK@wRze!w`3zYhN>jdlb=DNvvA~n}jfXA#ig(oVk+7W#Pqa zP|U(Bgs4e{`mKnylVtnI8X^8*uAXs(#XO-%Iiq8q)f_sfrP~VA`FQu#{0<}s?;#UK zS^w2U_+BiF&JX-7enppK9q3`u4?oKu{6BUeVnNwwp(;8XkY*}6Es%MzPCfaV=*7Jq z(qSuF)}JCP`qxA{OYoq#^%c6|H7(0=N|Zv^jLDdEQ8JxLPoKc~gM>!v=pTtby9a$f z<34459wzf6p)*EJ87wz0azL&PvTZoURQg?9=#21eh~vaHyT}x!)lJ>WuivKmjtvut*Ck)Sz4ii)2_9 z4_%s#o}Y=O&P38C!&j$cS5~k$+2G$7;SD{};vy=nu*QzJdWb4By0jMm<W%IXX+B`pR z+IYL)lR6i>$wAka;%TdRp%Rr-XT^`@>WL49_^W*Mya0c875~`+dTb87xq_czfzxZ? ziBJI_HcIejC8$v(3%MYFDV9DJq&}8$>hs(o=eJ>xl_(Q}%%#ZX>EJtc+Se-- z?=_j;Yh6!U!awMBz1!(J((8PxO!Ziq{;@LCZ%UOP^!svIAZLE(+VoD&a;#_#FXF~4 z1fX!4x)b_4l?mz-p4q%RX5Sz8?2l{^Jvy>MK$NT`ir3=TC%q>+jc?b>PIVb?Pq-@u z_=}~SuUuXD!ZjiDijdX}Orw?ADQY^9XcsW(96|w|8F-aXEg4q?G;UEFUlXNVr{Rh= z>V*_#(W>rj#-%lyudeV?s9n*NbZbJ2!IQN7#!d0RWJ#W>+jzU({(k5Bu@2L<317~vKWEBOFyk&~?c~q-Qri{TWA=JZ zq;z^ScX~5_){#54SvKp=9<=6;TAEqgQ##ZxhK&M{H51C73+2oPFZ5c@bXzZu1zu<| zekEfqB}YkXCuUH*C-}D<-m9JKsZ-8YZL*%T{d_6!p?vYbX_fN#LD@K;DdRbb~POe@Y=1 z-KsSC>Gpooivdd%sRK#jCc$1O7Ocq$0~}V9J#wr^iucKh0R#{qc`La<3n-GpwN?m

    H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..823fcf7c97fbcb9a5aae329aa3385f72d636fbfe GIT binary patch literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..40ec61e14638df8db0b58927cb7922568c2a38fd GIT binary patch literal 14438 zcmeHtbx>Si(?i$<)?(Q%IcXtc!?hZR4zwiCtmHM`} zYX8})y;TEe?i}gU-RJ42``%!ASurGdJa`BQ2qXz{VMPdtx3=K+0qk4wUlTcA9q_+5 z4vJ!e5M?6-d*CncOa){FARsCu5gxxlfxpAqifcGPKp=Pi`Ml}1DKG-xL~|5TcT}=5 zadi1&Zww)3Z*2V4!OX@{R|OV4glkzsSU~xk?opafiM5*3%E_YVd3MH6-aBuYE=Wb< zsAI@=DCOLu&++1l!3LN)sx-k7QSWR0lo!^~?3C~q=Rn)vNh^bOJ_O7lQBe`_)ad`Z zHBfU(Md0FeIzr<~)YsaToE1IBafo2q-qCbFZr#y*ICzf=_0r>m8URCyRa96!A2f*yi*GpdWaXN-1>*wp2O(-}_s6SV( zkbt0wfWW69`@zNyet^5D``zVmy$P1Qd=CN|9X$Mi0LDOcIWy#*>A&BiP>wD9kDvdv z2jvA@x05Y%RKNR$`1n-0gJ(D1SClD;mEoI^eO+L_)yFS{)rl6pXj4%n2UWa)hK8nD zElOS?k4Zx?j$!}2U@9av`~4VpzuW zWj@!E<=YPkRm2Z(hs70*@x==oM!%xX`)a&T&`0kh zlJ2i3cDs$>Z@oC*8U$qhc3+uoyWj`WAGd4wnH(aplS{-|lVq&}nk9@-Oa!!jWJugU zP|EQ?U7iu@@xI)m$I84M@0ou6bTdDz>n^k8+ZZ)GhixVrL$^4mF6eo?M6CT3TrP|h z8LUdiavvubG+g|$y3|Ql+@7zW`s1Md`E(gOM_}_vMchie;h_^SaUdsL#cERITM8j^ zpyB>IMB_5dW}J1d4qHrumsw7I5>z};ar8BmyIYiUQqS|c3I?|yYSCM4^m#2~$#$~1 z9CV+w2zcR=dn&y>e#0!-+j>%!2c>if8uO4frp9{zb%c=lsWKF(@>fJ@!8q5!l1`QG z^SA^u4oSv&+JsWEl5<)dQCU!0Zc8hC64KYEVmgT`dQ`%Pt8iS8v?d7hi?qzE{HHx< z8UJkMN;;;5{0&8u+aF`Y4Nwbq*@uqz4i!Zz^S+6fK1c2OfNxhPIxfe>y&26L{9fya zrR$B5ymmje_77_EaKU0#bbX2|#i7>DC&X>NRr5EYD69%cqEJp|lxa@p5yH}rN6ij( zj+ASEPdz(H8Zu(~Ti1U{)WD0dQ`qSHuyYe+VqpZQzeq|o!3K6rgLd+BHCEqg;0ee* z#EMU$&oWhR9@6m8M+b8tUk!Mw1iYBaSh;8f-jqLYwH?PQm@}Hwemaw}hn)d!OSzpq zEAA*?8>CL#Ty}=(Jr)bH#VF7B^yr=sGgE>p(GGNUrVkv(8B^riX*>WM)v@(zq*bVd zFSX?heGH45TmumJ$L4Zbga;C9oByz55(T+!9> z6WD6Y==&$0n?%2NZ9EUb@;pU)N_pJqA4xfU|Gl^Zyh-5Aufongt)pMA13s?nVJ1iC z3~<&_Wx36?{G#iWs98P10zhR8YYasH5u<%t7j9b1K^y26xF}&9Tko9#y%0m0sxp=QPYgn6q)r>?v!^jJIaWla{U) z@vqItQ%-TradLj(Nc1WDYDdjMdYgHcfrDLn}W%Bb&<}zZ&><`5)8kDF?YUF8{)FP zay|#+Zrj6~s%0Y;PJ=fsXX)vS{Pt(%@UKvWFIBJznen!Q^gp2mVI9rt?Yyt2_n(sh zJ_y=gDZ>B4#ebmgAAI>N*u7Q%Z>aQtYiRf|^;G!crqUR6Qk*8gb2k->LO~VM6HXN^ zlNuBcWo=v(pE&M9A;)}NT5<OeY9-bLgG zi7@~c=`e$;@=V?sAFC3S*C3r_rl_dZg^}Ea6+q`6C77(JCEUF2kAOWw2z38$e4Y}gA`$h9{C*uWpX*vwntdZKxZ!-fK z1bPH>UGT;}3mShS4vc+5N2|Wml%!dF&*C3N()cZWj-Qkzr99WK3JKNIALZrBC4&FO ze=vc0k}s{{q0M8fInqOKNsg1YP-KXT!sMb>{uY?we!Q(^^Kw-VJi>lq2A%y;HOG8n zEmyMoWXFJDaxxg^qvSP4sL709{>T@PHoz$?O-dooq)UD+CqA@oNtdq6f-pyRZ%9?uV52@ktII=pLj|m0*f{I&&&hW- zFHiVM(MQaaRA3T{5z9zRPcik{ZCh)UF;1S};kbI`p*{Ogmw(YsF7+t+;#Zb^Xw;9k z-|-mYw@}F-T~P0N?NIsl52J=3xW=NGLIQv2UPtk0M9KgAC;`D`eF4EzFvA5i=^s#V zPQFlZweYW8T=st$IN+y=wdWwuR{g!oz8{S)cl6u5=iU5hdfeAPv>7ATn#pl6zS#*s zCqv`2Mk9kqK(hCrS$(Qn|I2B=esYoiRMqNnzpcfFKtrFv{J5txe;$#*-}szI3~&ap zRXzO=>4SiPz@9vqcgz2|xG`Q=2d|I(Uv`T%N8jfnexwIW3hpaJ^MhJh5fYrnAisG% zWq&dnr&sj&lh#c|E6+ot(Scj?Vy|Qx-18>p`uk*1pV$jpTq!=~X z8;C=kS4e@h)7yX>Tc*JCp_fM#o1YPB z;svSCHZ9x3C)^+!utmTYs6L&z!(VagE}XP^;&S0TA7W;%+?-&}aD4<>t~hrWDw(n~ zrV+@*%4akmltrlOJ+49OwY{vg`93pM^u2-bdj*;|>fVFc5wuUKUcG1jgJdiX2Se7_ z9)>^t-0p&_ZT7xiZ9S|6`oVt=`KNb!Xs;=a0%+?HU4+|7n->so#U&x=xwpAnpD#X1 zzyKDD<)6)&d!3%q)5?MN4$&uwMA7!Qut5&Xi+B8`YAtsQKN4~x^*8{a?b2(MIm_cS zIhW;>q%zOZl=4iwQNXv-u;%SD>g9t0>=RFBV}y5V~s8qILq zHDr&fN+G^k;yVF&?hnbNQZu)mlJM_2&L5uBGe1A}a#aSd@HJiY&3f%Iznn`Qzf|SR zwmqcpEPW>ae2EyRXAIhhym{J;8#LM*uRiYH*Qi3q@-D6!C?)#-}iE|FV{|yjZJ3B60`Tq%xxr) z%z6#sY$X8d5w!immD^u?H_OCmTY5mh^hw>jGvbDTdPlu)n!Jd`WLa>+Y9^@sS0NK`!2-AjWO67#l2*ULh?1*3+efq~n z8XoqR1AMOBQVuh@)F(~b!)m%$qh-w}XFJ5=?1SvP6s+u01xp->tWr|GIqh#CqU7Hs zCMU>6-0Dam^;654DvUHe`W}>Vdu|01MI|^X4YMLu3BNpPN)*`KZ@PNw%%7ce9Y5al z+ve7=!~VO_s;jvVD=x`s+D8rrk6jn(JZ%Rrxk>reG^UO9@PWYcykrqPkMo{-KNk#R zxT}*BSFY~!nMk16%hr8Q?nMS~(_ou#VFkN11_8t`(!Y98T|f8d`RxR?RayMp9gf0x zwNB3zr{lGy@eJJMxSz)uuzV!aa(5Wty2$WAM{-?xdc-14z?5s-I3$0(UeV&eA1PM9 z0K3TP0m?X=R04G4#huin-i+7?XyX#|q*d+r=0TwDUDiW}>ptkkapwmC0&w^pQp5St z$;+-7|NV2lPGQpX#E;{rj_1~{jm`GAui6UTEcT#H)43YC0p5G(b2v5T6cD5}Fch4k z3rP0AECG8iBahwhCme1-Hz7)DEk{i!jW-)jm2D22{NNf=$co!eEeZgCt1&?qU_WjC zY+K~v7$@Yqy5RDR)m9yxbIvl=wXy3ks*EnD^hW+4N5iV>La2rKz8CcuskLCi7T5Cr zdw}P-H~BMeU8o>ZME|0<7534~-8%^B@V~!9Kz!%^>l|QQ-~W4_z^#IRoDBjZGvfd0 zj#rzzu{%R&BB;Xy-5YH9=R;-Yzs0C0q-_T$cq))aoXmT$Oy6tPQi^>?8aFSFG4wfF z5qnju2(+fUPQKxIBSzo^t@Aetl9Z>D=OL?qqaZaZI1aQRXa>0#xCk3i(r9`6Vf z7t#W|h+LAj4~E9aaa}2u-5V!w2s0WIfDN-QoJ%7{Ibk0iJPu3mF9s8e*repxrN`kk zzBuLk)vrJH*RG49PndWwNItY|RG^V}u|?VSVz=6e>J0lZrDh;D#(!joMUbNIe!DjX z*t4gai_s)^q~0fQ`l8?_whgFx9C_DsMHL!}Bo;b3J1Drmb>p;5haD191wg+wF3Qex zQd}}|s@{t#Bp%1iqfT#r90>GA2uI!!ymf*TQHinpz z>PEH@n>wQW)rG*05Q@g?rnr%Z#bF{;Qh8-qWDJicgFPmn(@(yT!p7)h^>f$U5MXyi zw=C&gcJidwyt%<=?ST&t*wW!;T{QEEJ`!lPVJAp;^~Uh@`BG~{o*AVP3=zPo+b6<- z%M$l*!fGAs;V06?x^j-|+dK>-VHksQkzUmdOu7)0xZD^VQ_kHn(n(%VFB=7R!Rp(IL*qR@pKHuutuvyt1GI(JR7BT9nk(Rw%ZMKM#Qx?3dbdpyX^g;F~l%oXD z*xw$$SBX&Ar5|1TxXn9(9f-Vt1D_kJl9pVjLLU5yI*CnX&+^P^zmWbKL1Tvl}L zZ9y^LH{l5T2LQhAt+f@OH^|+-%=j8o5AoISU-=z2sTAI)huYg?`8(NV>MCD{Lk~kX z)*DDzw#yf6>yi_NGi@(2@YrG7<`xJ)5b!Yo@r=UTrU zo{CctP=hUz1}q$BjP-pqnPS^ie4biOpQ_V9x};LOkK1ruNqIj4>b(8EN!9dcy*|rI zX^a?IT82ERBxYolLNwY6b(yfRT}iZ-hG_YpAm`SIM2%v$bVu~+8Fy#W)`+bav55&innzqFE*I2J4_WVpD z+857lDR?}dD5GKaeyME-&fR7F=Oh*RJf$9t>0>dY*O&o}7j^yE0p-sJndoc$n>a41(3 zTd5l%3qNvIdFZ4kYEN*2-of})7Cy1;uU}a-{U&Ddw<5}gxta!I6ysX%RpeFrxvWPe zrKPt-QG}CFSUE}R^zIWHyL>^->ixwh_^+V7jJGR%yyN|DRlZ%M_2E_TPL{uFVSc51 zhq~RoI`MvdW;yB=5EB`q0@YUG1oFQCdyCU%tOT#hW1}<_)Nhf84&(I;%?W5+*KLip zRG%Q5A|yHHDq88SFI5HEG>+vdlx`NA_>0Gp2BM|B{hE-q&O(V&48Pqsw|(%iF>k8A zl{+YvIPKZ99}l>0^FkPL);O#`Zt(Lr0YMc*UA}aM(lmD&RIO*8 z&yU!+-=55Hr!rt$eG4+CP5nAi^U?fZag#j9f@=&3^&)4-W^o&aj{StidWlu@4V#uI^UWCVrHIeMTdp+%659MDGtdbBZ<-tx2)OOd-eVYg+IwgRs%LfeB_@HYVhD z42J=(X)$n1uH9tg!2EV$&!oWO&e0+Ci$@u*29u|i)j0ci*1V4tMa4rzkQ8=4A0Vr_ zc@1cnG-rn7wOU1|NzeOLOE|=^@^Gm3kW}LZ9=Dzx3|R1(aC{$pB4#Ah3}mTj9n(IW zTJFb1)6p`7y)Ok~d~c|bElMmF!Gc2WpbyYIEBO@{A@!htCxZR zjprjBJhem+%2Zu641PWB*D|%d0eNx_R7#t`vraxtVgXh*EMrt9G{tMDjVs&6SuF$y zVqzBAN1#&WkCfmAB%<^F2z4#-#Gg>qwu4;sp$GWkH`nPoEUXgp5t-SwiutKOBqenM z80~;lT4Bl(%YtcUPlFI8Kj@-GEV_rejVOgNhu)bQWr5|R@a$e$eDMAwAYWF`&bZ31 z0&;-UUgMe)wdZxyzzoq(GWBHHL^;o*g;yZMz>-*9?BvTbITl)Jv5n#c27j(ke30Ix z&m)=%FH#Q1P%ohp6=l~qgu^@Ljg9Dpx2O?%=dO%jPj!SUK8^8HLN%e?VDNsY%K#Ch z8i`wV&fYp2OgOj1*DrqW#jSb{B{R6MNI!bNV-f#AV6oq>jp3af zKujfz<-RBbwz$JCTwJ8E{#s;aaF^zI zHUfi+?hcDIegS+A;_}i$%G}Gg5RROw*4E{DqCD1=4t^OReM7p*7Tr|&>jCT@w z=NW}~UD7$B`jv~PALUCehwL)Y5AnfZ^XbxW0cAk+!8Hd0qFCTA&oVE|sGdZ|2PB?u z1r1k=@NpO7I|0R%j@Y>o8#u#+`0%DXH2)yFZ3*7w^FOyBK0|>|>)$88n13AJPqVkJ zWnHfr_d!hjfM3GxnXS7uhGHi9D4v<$$xFauFqq3R2`ECjft4kNw_CTTZydkSLA&dE zRxazY2vPdFvQrf0ag&2k7N%Oj%e&o=$H^g7-5E1c`>8d43&f!EvZ}1XaH+cO)#ERr z0L4a9)#ZCAt34|i4YtaY1;=I**D73!DFJ8tEKVH;>fU2WOU}|^iYbor0~L*{vZkd5 z56h4FL_?ltTFgl*^^RmNrHs;f+_OHNTu8QKQRI{)tYG@5b_}e0W6A9(*ec^qugWbDwRh8x$~~*z zitac`56Cmlt-3EE>$AYLxPvX{)21;>mQ@CR+uxZsrjxaI(7j7hHhBe114Lx5RY^i} z1;=4$5}D{5BZ+_}-*pRyb8dm29Vz;6d;v#BKL~dMmiZGc{O6Ou< z^vyx)xd^3rKMO++3{_javUQ{3_Ch3l1+zqb-6>CHdO@kUDv+5|zy|Y-MBt)Jb>%OW z#&t`BdBi~+LOi;F#%Or+pto=>OloM=_v+Qfo@f%Azs8u@ls<}!q9i2|MGSu0+SBOn z&bAYotnF+3`7|RCNmdE6uM3qoWJ2Z_JQ9@!0h4ETKJVdfCpB>B9*9 zm2Ke#UM8>p1QB7p7^r!oR9XvTbwk}g>%`D0D>q}x^uQn-{*<-bLjI%8H|$G?ZVFAv z6a7WdPDnt0IwT}g)OO{dSzgV2iGh&a)4A^_lBc95+wd?5!_pz$TkESu0JjbT@$`3U zJ%m=S9dlJS?-eh}`#|N1L-TC(S$ft9F>`%1xz!;oJ~`Zr;!KL({#ndK!}2L+@D@8! zyz@it)XD%v4~)$yVbkuvyZNc?ls2=IscOaW(}0}jtRkBHlR>G8i{I`6>YdLg2gglx zI+$PC(@Kx^{A3pQ6o=g`#%^5o^O8(L)pKGxe~=tXHr zg{N=MsD0mM4Td(bp_}_R)dViI!#gzqi?ATIhmml-h{(d!5jYez^#g*?inxkV{mctV z=5BO^u0vNt_Au~dvaSO+DjIL`R9Yx9(UBF3Ir)2*{P?wq|UoG61e-2*6d%3eJ+ULJSH49tt#I7*?5cgac0M*mgKA*zum|ei8fF-o&m5V3MD{(cf&r^Nsm^8inyEUM%g1;wcW;bOj0}m{@rW6Q zMJsI+OV+jsUp!7D?TF=-0snawitcY9cyr9$`Z&6Lt)^7enUL)pd^OJh4KnaF|D!8CDtB<;TGl0P}&c1`HeLS@jaaU zH8}W_WVzLmhj@*7aK_4~@IpdxM*N`~yjc^a;dVFDYA75XD_2W=9M6(_nFUDZS}-e? zP9Nb!)Kn5cDbVOiNGD^StV6VB%r5t!IFNcXa`=t!l@xTB5UY-warrslJG|(o>FX+~ zu{Xq&s8~XH94&8wCUWdCYjjcOIi4V6J>v9ex0&drD7*81Q#{%cijMbw@N`|=UI7%S##n`<#hae0g$C&xAr74z zseLNyM!KouhW$+iRGm&G3D{FsK}8Xg)>9rq-|6VUPjFX6SHEi$l#x|mdYgae#+?=7 zuZz}#iY57GA%W*DfLD2N}ZKyn+qVm)NR_0cT(e&TGk|@d3v`yiax&dr| zZL;S=937sx!Tw-)o#qyC^2u-*X4m1u;6A!f_LvUpa6JJ~31G?IIf%08Acel0iWXBA z{z#5xK~No8E1cgs09dDS9Ohw=j1yc5vhHvjMo}v?plURs^0nVqZ)W&T!_H5YU-3oA z+SVj{ojiP=J(c8O@f|mZT6N>6Xt)wIYjvDWOLAvH|2XZH|FB?`eA2GyFWX50)>1J& zTE-PQ!ZP7N;!*5G%R8I;2*=u9a%?k%^{nj?pC5A@x(CHxm7F*G1z1D&c;5gz_tnBn z!Dk_P-0kWPnFXGG1zPFZwNwMzfWqHT_ku|@vK8~wSbAy2}NZ)_s3HIu935{}aeuEmU60yd8whzvGVkR9KF-_L|DF&3J@m5)G3JP! zaV@EC@LS_yBf3^6!h|dFObhKX@~b#HeaWV#Renv?rfy2!k@q^sfQ9Jp2p8vUu9||_ z%?KLL9x3OuL^G}KT!Y`?rCBu5@@m51J;J2R@9lqCnzy}@Cx0Y$G&Ke3rJQL#(w;BH zuxl?CU8liEmvxOl3bAp2D1fRrkOH(5ANWOgjm0`PXw;zk3Q_rLH#ZCx-X^nKDRN63 z7;8^e2B;s~$P;&PsQ+DlufAgko~ zDz`+arh2!9cPkE_L+Ev$#3#>BIF&r_pwM6Ll&qQuSZWUMu_ZbF4Sb$=cNR7rl}u5?N1p0v`qD zZ0Dc)tapH7t;9R2=x?75U%>Pe5v?dKobk3cX(2c_WHR!eSKz&cMRRQI2D)TzcZ^-A z8<3u3NRw?Gwpg)yp0NZfFe^_oHwSHnhQleoyY1J6sCi-H z0E4)o@eM{~9eWdn*j`ynm)a(!7e zE!hqoS;hTLRFz<)Gy23?S4oqVpKu&x*Da;bShIH!BtvvW6xt6hWT58@K&K$sF8LY!}+?egjOon z#)0Z3Ks8Buo6{KI;!Ck>5ovmQ8O--Wk9A)MUHO&DV0P(;>s1@|PnnMOAXD72wL(p_ zU|boes-PmH_GklG4}euhM>3VtnL?Af(T}R=Fcj{YvHL#wDRDKC6}_0|%i|8W-0b+@ zyKe^ePR)=ERHSCK?Tu%I$SWYUZ|gE;Q$>>^f?}V#YMVibUo3r4ERurvd!i(kxoa(S zH_2$d>S)^qZTYl~I6c_{o^{u?iJ9#Q+Bbr(|90U5V`%66wG(~Y9ZCPD^ z5zIKF|J_kgEF%qseq=oz5)4;2uVe2+6^)MxwnKK=3R$LkMNez*krjgc$Z{2+%$c{| zrd?pnoU^yTR)j4>F3Uz5&>glos-(B5Ar?y`>EY>XnvMChL$7<#YedjWWX?)X5gCE17QWIX zy2?wdWo*O?8eDz2>AA zze2|^#jP%7K(GhODuGpGT?oAZk1n6*boq31dkezZ@x91R{05JWxUWIkXEo{WjQ z003u=pk8q5EwHrxt^Gi$s5&tXy%fkr8qMRT@)OY-o4$V0@Zl0xDg7iC9KVU-m?9Jf zE6f_!EwH#G*hfOCslVE_WTtAA);(H1ab5EujDRSV9kB0E@b`w55@vC`O5R^(jA>d4 zLw=BPo0>PzNaEP~=d7+B_V>e~@lZ_&38w)v0zd;FeR3QLjdpBEjoQn;5ixDH?W=2s z>PQ(?>K1Ty?fS^Ws|CB;Q5qU_CNHV5yY5!_65#elo)APai)lob5a_BNbc0cU11j}Yz zTL6$ew?4W#dM-qGs06>*NH+1(5Tn%=&rD$o!D~le3AU2<%&AJOrz;C}TB$C5D)~q5 z@Q`BU@QJr&=ICF)a|qF!#bHgT1mTXWOlI|}j0(%0YjmR!Uuf)Igqsnm__(6fw|Y+) z6)ozw@L+{R)ofj*EGPy^Ulay>#bc-t5D6bAl~EVG+87}qyz`U%($GEqzEFv*1d1X$gHMUErd{Ay6+7s=cw&%eo>v&=4PsGP*i)@o=B6AT~!40dcm&&DRH@_ zngQI*u7dHg6QyOfeYfTqHIxcFU+uod5)Uym%(W_clnDE0$+{tW?+R9KJazAeW6BYKWg+RInLijUPO_r+91 zSL*>iRBs=vB5}f+I0%qF>mawb($;1&UhVJ8u*BDq8B{N1s+&RgM;dKPNvPfSMVd*6 z1<)eoEA5C|rH8qHS)Qg_lw8=eaim~ODKD*X?D^?2IHaY*1t;T7gZxRjuFsSeSQS0u zn@uAaDw}~yZ%oA)>k+-(ZGg36z8KGARmLCM51%tgG%Ow1TWeJpoCQznlezIj6?Pi6 zOsvsjATw|cS6GshG=2{h{tmZW(89cLe*KnT6D#Sp@a^ljaJfS?XSoj4&qadx_2xCx zR;HNp4SZfj1`d#CyoGr8Ctv+0I6cdR1@d}(jq7d~`YS^X0^*OwVO|h1|GaDQH?)IW znLdAVMZT=2S&uChknwXGUgRS5X}Nv{-t*S6_lqmVi%$GYWKBl3j1Gmw)N-^jESr|I zj>os`gEDqnZ@52|iS(?AGu^#pJ*TB9WdLiFwUu?y`Mf`*@5w^w4k4hkv8z%~*4?zP z+%tK*1F9sIF+-!*e39S-=4-H6uJ&t!tgk3Vs@#IE4`g4iR$Htg{1{FjofaFw-(_K1 zyw$>Cjhu-18ow+Ia>U%{1LP`6Gjg|?m~VEpdi%vqMtn~M*KDX)sonA1gWS*MV8GwD-8KA8@Czv+sGp5%Tv~lfF&HZ&2x}7KqBN>85ib9S0N)pbDvqBzc3Vhj zZsFfTDTw&-4W`I~AC%XvQ$i-+EWd_TI>J6%C~yJou`-NOfc7ZcAvHW1@}-DYPe|iC z)<_P<4`(&DP%!%qfm&xe{?J|`9Id$v7*k(Yju}YKs=_w)F&)L!@n=9|F1oyLcFL(@ z>fRjMv6aKHDin#_6HI2h=_|m6Q%C_~*-`2YWhM$A8kKcaWyb20tE)hN<0y(P6Lc|( z;z>ir$^{Lz1k-u){_fYNYYy;fW4+!B zrqvt*)A@~?$?}VY}gfda5~*rr7U%WX?;LXSt&90w_-Jc ziWsQC3{k{gqw}dUZ@5XjI{i+5R)L*#LZbgwh@{U+v|WhjMO@q`t*|w$Nms!p%r*zO z*MqUG6Q})_o&)`rc6EG98^xgNsR5w~cF8SVl6*Az##_W2_q#q-zdmwuxSwkm<~hVl zc3Vau%>cEgax*PG+F%(UB5>&|0DT|d<`D=N_hW=-ihgRtA#(_ literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..1b09211ea8ac3023b50cfb2921444c927c49be4b GIT binary patch literal 11223 zcmcJ#bx<757cPti2=4Aqa0$A&y9Nsq+-+fj1p+~XyL)g5u(&$}cLEzMxH}u%F7L1E ztNQBxf4iz@x~ERhoHI4`oaa2#k(%lXm}q2ZaBy&#N{X`DaB%RuZ)0CngtsFW;VSXl z3Eo3nK^m@RisJBXf@CYDCItsq7mxmA{_bu5-c8ZaTK~fe&^S z%-7u9d{eA;>NxDJ-S&z=i2pM{{C{g8j`sST|9WZmdj6Uu^~(4;7acu62xQ9TPw?^_ z_zHQ2NxY(v{xhpzXsf*-HQ2xIS1`|oqEp8#!5)sGJ*+SH&%?&kC?B7%t#8mT_HQNl z``i^WUpYJiFN1n?sNM}S#l9Sa`IbQmpJG}V zS3cwwyXHdo-TaA%z|U_smhO+$67i2yjzG2@ys?9Pvz~*2WCp*K5VFT-#{4Rw%D&i= zjZ<2X%~KljblRMm*%P)HURNLWEsF#TgDr;I-TtlXiEK5a53aDWeXKn+1Bf2^^LGXT z%TNOsWnJDB&*xfTVol$`|P|M0^mze`lz(iB+JG-}v;3*B4lRi85JXbua7yaE?GZ}l82L@c<-&gF2>`L+Z9P!WLQ-3%abW426 zQ4FIDWM~`wiV$Ka6F?v`^SV?yx`&MYUg3FTv(po-n-2EowM%K&X)&k z@x1&D?m^w?uT_RbK_(V={Olbe`iI8oZKhwmM5~#SN}TFN@=`dJ;W=eHOH zmkk&&HA|RC|2CoQ7BEL~N4C3+fGmWXH!HY@bhO9$4>WiH>JTGyj2pZd;U8Avh&tsk zekeO3opHzh(=WF~bN_H;aY{MQ&SP8Pk0+Q5 z<^1IoS0RJ9x`Yxyu}5E+DYwQMZNNYRf!<(M?!rJY(7+?V6UBt@&DEPH6R(fZ)` z=5^VS)}LP!6|yt}_n~$;(Nv!cVp{F=@*~MK6|=y~{E~?sB5A`G?OA|QU^5CODL+d; z#i`Iy3w;RHX66w7wBr?^l}t`h*z(&JGT*aMzu;F2Et6QQ1U9>25&@6JVDV(XayAEG z)36`r3NErj2&3ex-HEjoUGi2Ij(hsNAFq=9v{-pqQpAHhWnFii={QKWtJM9zv)Lp0 zqq&sPCoA8`fYA47`2&9$T8)!6_ch;s+_yj)37FY`lPWDiGj(G`g*=}t;9#dn89I5`;h%7qgW2jPA%6c1@~?S8KZk!z9MJje z3rK!6?SwwQr5%*J)&H{48^Gs>{g(r{T|^<*^H~7}e;&PF!nyJ{J6m2=HUMJ{W*kMBkeZUgjYG>Wsc&{SZ@hO zo#3@FE_s`T9le^`f%To^^fCS8&9p1R%S6Zp$NqJgwaI>yi0iNI(NdVv2{UB!_owbg zMz2!wfsWkA5P`XpFkdqD9B5-{R43!T$)Ky40mGEe$ANBX&ZP)L!ocj+7eWuC$YzRb zu>SH4x3MmB0|FV*GR=iB2JL#*mht)K{>LNX0>szP@8}v2kei^v^TlYzOtv&fhu`D| z&tYf+&g!b5Q@U9c0r_5A%lB!=739fLgG@U1yYaLPeMJ<%Ge$#@adHPsV9PsUzttO= z#AZeuNk(u~D8+YjI&fC1ntxi}z|U$OTjm^JNbF1FP}P3jBsXj{j8EVoXx;=pX*D zmXHy!yn#e@#b%(K2aGt(efkLeP)?`JX8410f#|NqxMIZTU#A!R#s-pmWS@AW%SMTl z0o6Z)crP!v#u1%_eG*Trr{x48wuiROAorSZ9Q$uZPop0je5+x>L!YmHBK@+{%^Cc4 z3!PCUfgHj|icp5^YNtYSA%$8kl&zs=$5k) zf{`)|yU;zTEv)`bSk0(^>6PLf{mwjVi`pQACn-?4CjayaK}Y-i35Ii8NMUuX>RU%h zK>P_!T{4eUl$26iuw$SqrY|vwf_HGC`cA#3Hx#o3$$oH>xbfuuZxS?}2Vr9Xq@naO z>tWEVS7o6F-^NbUl<7z$Vj#K0uE%c0aZg%%$OgD|9Vx@Tga?D>tVSwQCUBYN^&$3E zXsvY4Av<7%t%&ia*k_;ySGZJgyc?B81E7?|@&uYT_`BFjCsAdT{w!zK366Mgmokcn zOp!Qf-R&#pH6q`*G7=~^#1S}Krt~v47X{0cB65<%laN<_e1nAVJ;3n1R@{T;I|fJQ zh_y^r&B#Wiu)4of*}dmNNE+)iMNJ-5v$m-;<3u2$@N?PVfH{>xSvO)x=Qd+J;gzP3 zQENg1S0mQ*>V_#C_5H6ttzgJm#*Sj($kn>)~;! z8O2;`luu%Z!l6Yp_!bIhK9t?YRW135!%eM2J;PjeHl`Ud_M?Zt?Z0T`ek@~l)|9AK z=WFXNtpT~3k*HZ-d~&WVUy-gat2@n-h!=(64_jDvUO;-|JcJzs_b+gmO&vsUPV>FI&$U<)7>m=TLyb3I@bBva8A|2aCzKvjD zFWPP3>@THACc(HL1TEQ&kp-Gvhn8|AqQM>^rET$@ObWQ<&J6bASzIJYxkMT)Yt&xH z%fInapm%6g;-05S-^QV@eY2r{~)2Om&`t$;NzkQ-|5KTZXhIk?EZ_4m(C(Kn9AKZn?h zNiPb%#GNdIHe)5s0t(6k56`>YuFF}ow?r>jVeLJw8Lc_R5FwVD(?^ty6%?*J6o(%h zN8sn!)@IjykZI2r_0psJJ;vSJg0}tZjjg>@zsXC`z0v8HxW`OoqVQIrX}Scpd3xus z85I_$*QS&%>O=~a@$JiNJ-S%r3cpwxujs1?W>CB_l>(gdM=6iQqh;h7ihCRX0i9Ch z%75NS2QG3b)bxASiAZ#f=N^Sg1@n%x^LA~^X#}+lkICP7@4w(Ncf=@102wXB1Bq?l zIQmJ^I6?Zfqkb`hbzFPAnvgVdw%$k>eYHm6>@Fu;)Ccm<@+PcB*1r{BZ>45$evh zN|s;lU=u9M^PNGYQ2lQ;FmG%%*kw-h+eD4?@P_Q>rO`(`Khn|OO|=&IGpk53hZLaC zl~ZYEpKKafND#-#QqhZ$^MkY&7d!<1rcs(oa+##9pXFD&5R2BtKe8_xJJS7zt1#Fx zrWAY5bM=^IC5KA{9Q<_9{3B=lsAQFR`Q>kr2jo??s) zDX4+7Qmr)wKE-qULQGJb80>IC{;t2MWz zL8;PKmYs?kCEPX>J0ih+C;{x3w#k5POp~PmG7jETUz<*}5_0lE2D^30&q?d=F+~mg zdlvJ*>7s(u+1=%0R3G8O+#6U}(8O4~5OoBVOowPM{|Va-m6CFZWX`_?@ZaJP` z#R?(ha9&eqE3p+RS`YbT#nz^N0N)sSik>~AM{i{bKN#($M}_pqIV0NkWFy*08MtUc z^8xrr`vaj~WXXO`YafhzJ5|hE`He=u=)1D1n@m$Cnj_%fth_52O>26p`{2HK&exu!s?wD2kFL{m8NuaG=AksbR8>dlg%c*N#?sXpy zGVDmm{qXq(PBs`Q;-zo1Bi`sBWp^k zk<$fk71qTII^^N#9&%Px)&7l$_edgA6Kwt#5fJ=oTC854=;(8Z$9ms(CE0*Y8sdth z#%P9TRY)=U^tTauCpX3QHXg(tc?pP9X732&KnyN0m0|uTBXhi$eEB#$I%ygJE`sH} zgZe}sHN5*&Msc)ZO0KUBW<;YV7eA_-Fl>#R1jcC#c5+D|W-pZEl`3a>5kD> zfzC6u+Kj8S%_kXME4fZ?mvMwjuwRjf*K4tqc~_W3R2MynwCATK;ut&hGhY$ zR@cXpR1&eX%5;fYn}>+%*h@kSu2wNpo$;KxJ11w8ifi9@zrKd7ktkAYo^CDe7jFGN zCpYPujy0QP&M&uA9i4A44EGrvK_@zO9=pMlA9D$dgwX(XJVA0h8$3W3&dKaMj83_F z-=rFIt9dpGhl!$8Y{mo8Aa$HSbUU5@j(DC_ZQ6fqT!AN#?uJjEw<`-Oa^D<7Qm;&& zx>iGB&cTtA!-Q>be4KA6h1JtM7cKi0Si z63*`eOo`X7U5!9!AlNj?d~gjq67(BH^^H2rnCF&IOe(D zG4N2G39GUj_MKtful4}zd}U=SkbAbvI&YZc9HNv2!ge(O_LTd8E!}oB@O&>~ECwm- zDSI9IBl@xC877&%@i#X>ZOVG2)WznXToTsgmHO#%X8^6s`Y#Ej(@*mmn5D$_daX6sN)3%0=EJ<(t>rWlzTL$-jn@e2P{#R{HeTt ze7X51{)pEBN!wT8dOe1Vr4CxW_x`J6Nt<{GOj-ZR`0Cy&&+&VAK8UNtM$;C(9yxjm zdfQc|Z(E~d)(4TbmFjmCo0d)evIv%fk(K3m`76(-!pMFm{$4I%u{9?nh$K?+n*;1} z;?8?(#!uQPp+C5w9&T1C&jm9qe130&%!9qsdLS7-rH?lHPJ~^iVp$(j5kMWCQ<}Nh zUZm+QeDG-p(D?!D0q4Ay}AN3E-_n}U4+iA&+l9^A;vHoHqf1W)?8dLL4>sad4N8E9j^GrX|(ejv2 z1dSC(k!Yx*&}12%Z4K*da~#Jm>TQ>pPi)rQLaRB!*SoG>we7N1W)TK>6Afnt2tZeU z*i|!Wwgvwhnk0G>8f^j`W3QqK5W|XM^P5$~_~CQY@2pxp%Y2fp=wh^~i{A3gUkQu5 zwTNnt%vLAHsYtH_KGP5M@oa9aRt9jYnMuxS#Rw#im@V9arr(bk1UY05aB`X4GU1;>#S0q*v)}mt$lU4CR7XtSel0EjMnnLmC z;Uj*e@i88bRJJL+SA-hGMbS^j2noutU!P0z*ieGh ztzEF%Gwu!OcS4tTF#v6!q;AeXT4slYD zK8s+raDzO)a^+>7&+=3{SSwm4PO;6`jDE;kD9XHegs~RB%tk`aTsUt&`Ulj*t28-} zrtl#aCao=_XCZ*NcKL~f4GEjRbYz?T?4+FD8iKVS9i%Yp5B}NNpvjgBnH>_Ii-~C_ zwWtUTYB|0mtcXz^CGo5?7{(i7v`LtKAR?TUS53w7?=4$Tm=AyF zTmRe@j#{#9_-ILOpJ40ipJoDcym2q6@#9aQus!Yr@y&cn9zy^%lZ3Hg= z>|d&m8)U~7UCL$sbVI-IkT%yZkkuavdsB}*B=}};- zUG%m3n~s0)yS6vE@Cb~#zkT|4O+S5n&4y91Hu``#F#fZ_BgRBz^Q`;Q#V1e=1|BnX zJ34MbcMaJ$UcY{M_|)s2)I)yzp*v_-a4dX zsuLEb+5tw*(7lsmZ2sj>eZgGySLr?)xo!ke2AD7|Op$2p4!-^hS0oq`Lx64#R=BAzJ&fq>Imu1tlyNCvnWBfQh|zwl~tE6bk2u?0YUv=jkyM zivdcUoj4Sa(I4jb#I}<}maUweD$g5wQ>3lGT5XiK(~#8^8`{?Ch`s;N=wf#)9#E$; zeqeo_Ckv#QL)p0EV^@-MC8^S3Hi~z2Vaxk1&c?c+LxR)6rKIa2!MrjxHpFU(Ih6xd z(@*~`CoLd-CXzs&*JUv5FIWy=$}A5FQghcD(fO2OS#ZnA&~Hi_Y}IOj5PNljCA3?L zj14z3g8O;&KX+h8GwR4BRqVz}4O13nzIeKJx{-X(h$HUTxAndnTqkh8r?v(py3B6v z6B9gCNG%G_t$PU~gIpFTdD&IUM4R}1bw>X5 zj--n!8BrL2^MF5fgjU7wlw?sc7hr}N`Mc`Gp7Lr~LSm|v27TRBWUSveduNA(MI=(i z_h8)Yp(fb!yMqVMtgoc=p|q*VU3&HH4#iW2MOf)(3S`Hc__LzQqxEMq;)oxvK0IOA z0cuy^>A01Vq3q&;H6gx5IzyGvaT#P?o0sI9a+HoZUXiUewPi3BgJfTijunh+TUZM(pMI}CS~4_etVmF-iahNq9y%s(iz zL|ws6dv_yfo(DbqyOlPU?r=MNLLR1E+y{8-XOXrc0(})?7h0`ere?h=Hv=nX7QST^ zj=IR`3U9Qr;SICm2Sp%(+(%^9+rCuCo#H4jk|7#`67ZgE5e3vYt|Q}@YWvr0Hv`PZ z7G}&tz8*aB{{ye?)BkE|*#A#F)t_>_cYQuHk}d0c7*UXDFO=O}9|*JQ4+(vZ#D; zeb&04>G7=tb+A>my0*VD7h{jtPt}SQIYlnw6UNqumxqX(k<2zl6v6SI7ps1^w%y5D z-EMqPZ{)Ju{?ED4M&E1XhrQ1m2mh3ApU%E6>Maejrpj0yu6^|5JrjkrG%2W01$-l3 zXT!eK6>H>#bRH=1eBETKImeiSJfDEo@C)KmUjQ73D*$hG-i?{3Y6>D}(idW)Bs!a0 zZni0k69h&#rH$s_JPRbI4r;myQcyu_Sc^fYFP+Tc|^asSbg#c`8L64B#2-Jag5QKAi+! zV(Dugd!FSbP*lwSGc4nJDpH;D>V{m?t6q28;;UMjys_M9U78R9L8r*F<#|MBV1Ab_ z#Ls+#s~N!v1%Q@D>_NY@Jz+E_#h<>%Ad7ZRmez5Nv~D9#^z`g`37|NiKB%_*kJ8Bi z*JyeOX+yj@NhkoetWJr%qq>gy4sg1_`q4R;8p!y!ZTQ|$gmT9;gf4kK(YL6u9>y(| z2hBgswoQv8)1k81+K|i?mW<%chpBCa!$daN@RtV>n`+y00;q)Fbf0u=ShL&w)Cjr^ z{ELw>-4{N*6ku>2(+ROkFTIhtw&X}^STJnBjgyd$bJWHc(_U8EqTdeQq7jJ;u(0cY zB&FVGvs}Y#)et|o;x1I`e$*)ssdc6TFA6}V)Qg(NH}pGzq$j62FtB zp&fO(mvFin1Pq`xZMVucIyTmbh+-m&IBdW@ub?N~c4T(Gb+!fjWN zR|2!ko7@x5(I}o7&MaUTgTxb3iXh)vm+vN`p^?!Pc^dC&B4AnDKe>FNF~SZ$Tki2416Rp~E0 z?MF0$`GW-jqP3MTbx*%_jt8^*(QPbJ8fpgsHr~aQ-4J`7W%*JlGG7eTF zFdr!F_URfo*@Q+u3@{F%2^vVcys{Q910{u_%ZO8FfxDx6j&VYc@KQ!6H*jWX# zq)2D5x$wpCLwE1}d^+#LPAYp_f-cQ$PPOE1ugvcv)tpocedNefrH~9+doO*si9!ofbcMCcFb7;8Ofi zThZ4mS~K{*#!qGW@_cO;awU{??UW_hw{Q!UK=stgZ!KCU_BVxeI8h&W{*_z<9JdA# zzY$O8Hvk@f197Gc-0%ziH9^-{4PnSL{+*de@cn7COOx1tHGa{B)PJ<|t)hM#|FV+HJ^IF z`@v^usLe|z*RXe=ijetY?iPA!J^SKV#8+_4^wa0j;V6IG^qni)?)zi7Gy4Fl`uyZj ziA#x+7p$DlR)`n`a=NWF69stO5R0#0fKXQXwR(;xSIwjQoUeg>*E_E|<96HY-9lHU z?FZC4>p%m(F}7+)+}#1=g1WSC5(c)rJGDlz-j3RoBSL(B!Offra1*%Z=bcB)8)ym( zD`4Byz%PnqaT3AvN??hccf5NRy)@pM&GW{$V*#m?3mhvpvgU6D))!j*h}2261<4pR zePvtcYd|HJ53w;38a6o5(0SOy%tzYJw9ixhU{{gzQ@!0>2S@Ru+z+Lm;5)-hxf=SI}%FUOJt zMsnP^Rl>f`t7uykYv$s~y7qwpLY{5z{zh`l9DTrv;#Vni%(=bWli60F@@>}~Pn$#9 zN}6%n{3Q2+qv|Le2`SV3fLvshS;`r{ZzVS}r`-Z{A-8iKCe{oPTNnG0k1 z%Q}y($oAVuCbiX>Qz#CTl(t*yA9}g$pR>rfk9iYQi?~>E2TB}jE8qV1;l+p$-$c@O zD*_oR1HXQ?cBui%sU>=o?9%MjREt)r6zjv>nhnpYI(XpTeVe@|u!xZ3IWHI1v*aQ{ zp-Q_Ueff}B+vs5I%EK93E{bVF%bXnK6;vhZfGmvip9He6)6}4OE2X4(bj8YKLksVur%@1J0shjaOs+7twcYMY#6eMj z?lFUIZH3W{_{k0%{(FeP_znQ5;+sla>-LQ@MX(?OnaCBVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/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 Kezigq4g3RhOc*Ty literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..c21d5b60eeb1950e6afc9fbfece9110e91a77bda GIT binary patch literal 3667 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0a886b53349f29d51a06b1ecca4c4375ab59e8 GIT binary patch literal 7207 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 H?mqh;&&ztQ literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..4ace1703dab0619b578fbc8e10b3a203695dd9af GIT binary patch literal 7602 zcmcJUXH-*Nm&Y%nU`0^`l&bj95mBU*prC+CcmP8Q1QbL%NUx!&Ac9gvKtXzm1Od@N zAT$L-e2CIQ5_*(8)CiFhS_sVLoi%ICnt9iJn0Mv_aBmj()smH@CP4ZP;==L3HqGBD)~9Huccf-F@Kw zfd?jbfdC-TzWc*-QvOCP07w{{8eO>^<~Tp*^H!X~<^SDSn;E;@vewzdpP(H%b=S>JZiuCS$?g6fV%i=6z^hlB<^>FF z_L=~|hyCD;?g>is0AJ4<>;clQ#qI^9lYs+(fiTZ;AXa(LIRLQx-~VIECBN2<`)U_1 z{3&3;2Z;K0`oubXyl-}@SOBvAV`9jypvu#j`0e#2Qg8ukbqM}_eQ{&Dz^1GwJF+O7 zBMJ;g21`hnT>h0H<|}V#<9X)hPe%J8Rpo`Yoo#0(wTdzt=}W=DC)YE~AqwLW%&HH1 zryWsj%0$cBxDrXV`S(@r?eaMagb!HtmErrkKisYI`LNM%j-J(#ON3tzhbO`dc}SXrJ(zuhuS1U`-X zfRV&BC+|<~n^^A@^Ltq%Y7b0b;RNer9UuMI6Uz=F1 zO^PQ8H8ET!W?;xXdMRT`Jv5Pd)?SxlByT3+cQxo+MQGPkn2xC??qm24ca6lnWK}a4 z((y(+5c5Y!5}9d156a=D=q{`eV^<_=zgraO90|q~V9F<$PkX3%9}5xk^^YAE$i3W^ zjk%GLARkXOO1wbZ%uDl&-u#!4fwmFRiQoZV;Dp1QcHiR}&ac#5uEWWBgk+JUs+@0^ zdT!V09uW`_Fdun;wb`9qa3dUOVl9R8yaCTfen9lrv>+ zs7zZK;)#7)RJ-pY;$X(dZkmvSj1#(GGB{lU&BQ+ql<1c_Yb7eC!*SIutHVo| zZ~|ErN7`6@)~~Q4w*~WNJw(<3meC9SGZzQFp~-|TPU;swpo?BdK;UV08W@b z*&tF(P#=4&KlZqJA+(Ky)K2N4Rj;jwPv_ZWCQbCjYzM;k0J1Lx{mzXmX^w}vz)!d3 zw7Y1{y)D65T12f5xxp(Ut;%mz+$fpGl3_|j!E-K6B{DtkNiYqXQw++^5g#;ro=0t5 zHJ;>>s$VazslD`7rm}xwUKhCY>oVV0$Gva*R$5r78pZj;=c^ne=j$-Hg`P-+*uqci zvyTnH9MG>LjBu-8U{}1=37pcb?=w77G`;I%?)s-@K9J5U5o^c2svFCdX%zbi#xe!! z$4qP9S|Y&@0Iy6=^Zxy7=wqd2w33D1YuQ=&u{>zZ_5@_c>9#u`}r_rmMDuFG+also)lTJ;U{i!iqjEkQZOw*o?2$YfML&t(`h@7}7t>tf* zDvtvf($)FCMpTX^tG3!^;;q^Wems@Sx6Qongnb;pUt{s_tO0yxe!>Y&Xw3T0C!_#q z-RiMa0~^*;3Bv*Q4F{Xkv@4zLT){%ay@UH-G@UqG62F$+w&iM<@;gJ&L^db-uPE`rc5kJ zh3JeHO^!#hR1EuV_4?IdPDF^PxVX4)dh^CqF3CTo!7l7z$D%wbMAkgtArpvgL5{%G zq1;*X%KmQHiLr*+^4x?DE7V3`R&}24&ek$1R(LJ^Ru#e`1z)>AwJ5p^dUez`x%<3_ zZa^f8I0?-9XDzyS!8qzy0}f)qkV%o$fcK%EV$$|fHwR~HgU^(s#q5lg?kLlhz_sP8 zolT`d%cB@cyZu09O+C*= zL~cG<*mH1;gpQeKf)a{nMa#}O8lw)T3hGFO{fNu22dJzP(W1BG9h&)(66S_a4Mv21 zM5rJ`MXOsk=YIMmk~y_C{p|D-mHcptg2w1Pmx!KqUg^KF2Y2Rd+D?ym-#p*=w--J9 zG@_sY#jL^!?DPprBu=z2myP6~&nM5{>M`U8WD6x^66LB6$76q@p9GywXtyGwlmFJ+ zxK|p^Xz5>p8S0T6;Rub+sw`Um%YM@wxhcQP{eh)Svi;<*5`57Qjb;b(1BZ@}INcT- z90v!-5pQ~{0vFWkeBy3R4A*P9inm0ROxCc~-QQHFxTzl9m-c~t9X&ENpo@4mFk4J+ z_K#4n{+>*&rb>4AF|_jS^o3%(!b@DS?4Y?T{1Pj5{zyFgPft@XIWs>z+#)EyV(pc1IJofx7dB-bV&Bnar{{6>>Kjc--D0x`E*ug$uS^76UgH4~X=YW5h*Ok* zILd`<4Y5e!h+OxZK1Q3(3mp%4Jq5(-YyPZ`J1lsbp`j-86egCczdHCz?*Jcg$M5nP z-g}8zonfVS^(vdjOEeMUsnG59C2TNOZ*?j9B>>QkPH2F-=z@mq=w(nTJ=^WY|4kLm z;zd^R!Av}U?d&I`wSt{3^!h5U4H?C>r(-+|*Cy0jo=8Q9)%uLoWB4Ncz+O#wxbIMs zu@nl6nT64KmNIP|6$%ytC~%vTyStxf5pE*=CHNv?{>$GrZ7%ml?iRY5mX@tU#B3S- z$cp1AISiCPld0M(9i^rjN$7%T{44#)klKLBE=;}d5KjQ3^EqKlCPo?XJ6o@oK&cQRMg@BIDlH+B>Q z7HV@AO@MHIS>4LlYXqmj`SIvzk`+w5%(gMW71SHmynlm9N&4evmXKUtkYz1Bngg%v zwHK78gZ*e?g=}84o12}cqtLDQT5F?$$#HRU7~u$JS+=8My&v82TLH8U95xbEfJt^A z@1OLdzN_%WXPg8@TW1W0Ty9ngCd#@B0pHEawd^Mf&ywtY8_U9ef96kqE~aS>=4~-% ztlTU&sm_bGd*>e#zPU0xq>@%0_kSv~|3}$=kN>M_#y!}k8y&S)b)y%$UBElz{qI3H zJgR?N8G(KK>XI95SE5s{`k@vHB7{vgGr2KvdiRyV8Vy<;4eU8-Ebeav=WWr9T>Z7Q z)5LpJ?>!irTu|68f+|#4$)@_9C!QP}8#VD%E{RfUBf>BKzyQw6U0ftei9C^vaAzOf zltG-qfnjZVxSi+%JEX-0s}Jiu^ud)la#9EQ=1+gg*0GzV#meUz{Xr0nnN~9#d!^&*duB7IA0ZB zdc26EZM|>l15LN?Hxr;%mq&*N^j#A}PzyVL;vMa9R(9> zm%>D&oj~0d05)j3Y)0v}ivV|Np^24M^@9zK0%DPM`tcHX{kfZLf)8%Ynh!5p-L!yr zo*%BGi0j(Rl+*=;f@M`9E)_C(cTyCHU93?vxPIu?W5O<5VK%zdh~id`J+GSCRC`d> z#ri$0S4qpeRRC#GoPUkY|DLOv&FDK$v#t->eoCv72tyE7W(4yi7@fzMiLN7TX(>~# zFci#H47{l_EOjN?tY4=;7+tI1SEN8Ob}OY)e}o|mZ zj;d|KDS9Gfyl)QEY8OH{T62tLLX<}$O$H@5%eggDkma?eU&@m9aXQY*$nw(+itw}~ zFAn;+VP8ou*F~qwphAF|3W=t>Uws97RV&X(L>wRsaQeXv_ z6GG^wBRKY*78K7pQJ=ectYhH={u4dF& z4XN@dIOhTV(tFPAX3_b2g@PRpR)-X^#Zlk z*du1dYuw1E0mCV_PEo3CA8$*jY_T{?gf+5>Eaw3>|KQljMeijawYEx3lxlb-3=OC% zZe9gj6_CegL2=NR1|0op4w+3#TLeH+sH zWiB(uA=%x0E)~&{MH|c0Hf6{%j)kmh>$0A_f6IJS>+*-34YA-_fM|bN2 zy-G;_uQTCI?tR4{#G#&G^M7C`soH<^H@GE@B%oy#-UfZV^?2&oTHBkqtLhK1e7_yv zu63oNCCkQ%W`;{kBvqTTypaZHLed9uI%Tvm@JZzP)B$Fr7^pR;fBP?g;ywD3VeJvI z^_hYl^Dv1?tAjw)BwY5K1sE1KJQv#;&Ed;k0ei7T$w+0TQa0H{1u~C?Xg_&c#^yAE zteNbVAAY}qaCwiNUd|=SzEe2D5V9{PoHLKho-DhWUGF3DEpuB7v^DO00baMe=nY?J zcX^{ISta$|F_G9epAvD1YT^v-l_F)UrY3W)i|4>(h_3wpdf@&qK;MF-Fx)B4KNG~d zXpOrp6CnP1CC95;fs|)-!Fza|`k8Tp=aq>L-&d_M&GdE`6SP2JaG>Xo>N*p{RIr8M^fV@N2*;`t8_^$2CNJh89P2#cMC)~Zu8d6Gn}r1_BcS)D5AVIL zhE6Npvw8_~1yKPGPl%fe-(cpmi2|pCMI0Vn(N4M3t5a3Iy*E4lkcf3zI`;=Z^z98N zeNGenm)Dh_O8#%kfK?)NyH-3kp+RG58oCqC#>j7PueI5frC+-lg>^{Kx~~)5aL_F; z*jhUUsuS?Y)8vZgRlg=izd!FMTaUwO3VP+#EO1XuU4Nuaouj4gwzcQbVSg@S>jEuu zGCy*m5$@r3!5wjauDW@t>x1~`aw}Dqb>EH5_CKxUQm{3lxXB>D%!oLmnpRHgeB~My z^6PyErvGcPW@sX7349)m-au+)t}nhqF}S8R%E4<$@oE`^FSfQ{RGRryty+Qunj!WH z)ggvfGjllix*Jtb7fT}A56Hd5NhHlDQ#-i1aqxESYNMEGRkArk~Cy z(fp&XnKR2L$sWIqCBsXjBnmXAl2L+0Z*MD|5T3%C5bRsJbmPdGwS;~UPJ>dYMeN$p zqTESm_t0hLCL}qaGMy@=`MjEbugNrrI?FdY_U)38XIHrMsAs8<2|m0)cB~ruRLuQo z{M(r4Qhm$i16m#I<~?c7HEc-$G<$SUu*jzcMXV zAKYP(2x$h^(bsG6rGgcve=vzm@aLVVB3G27T3$x|d`{=<7Y{nsb)xAR>xb0Nx-o;@Jils& zEBMH6GN(t1+tgOEdn6_YTL<%t3I`j&NffB0w3RbtQzlpP#}=#r(IdR+XDcs)DEXG* z69oW;ng3^I`#<3TUfqP-lhyC+an%ho#mN{O;FJ62-x=mf9Y>+fgY`c4prpsSlCqpX zKio$EtsVp=C`&@xDSR^1dAvEC0JlNHZ@s=)2EtebNTSI^shH*lP}^3Xj%^`}`88X3 zkKyaK)Sg7YQunZ21c^%Iqg&5;>uLu(N=W_4f2Giq*^Ut&>ER9Sj~D4X+c>S?pLi>6 zn&wvget_Ss2y&8ji*s=@D;y*%!f>5eB}jZf+xuquI7$##W?*R_UsH zc&x*obDu=}_q^X4eo1B2EsJU#HF-pAq3X ze&?`JZ}KP2;m0P0QhQBeAxwDKE%2JQdyRQQbV<=J*P2L_=~^$z#KYRq87lH`qV9Pyfy^k}6&c-?I=Ux69d} z4d7-sZq>Kv6!TDCyCNf(V{lP;l>hjhH?u-h0y;B=80_>Mv;R0azA*TxO4_a4VjAA^ z(VP)_)}%Rk)TP8N?S+v`(E73{3V`Pt(}3nC4wS*YAxmNw!_4_voH;22yniU;FU!=83@v zQVpQssS(QhXnKpZ-kug&gFVmU9OF%X3eNC@A%6BOBvDB6-;>bm{*RC4c0a!M+aBv~ z!B%uqR?^$UJqJF-yUWlwzE8Bq`jhfyWmFDb82-me)34PGcbMMd7iaKnq6TDa2lmXMJ81!r7Vn9!1e;TWK8Ricf2sW30e?Pvn77d!JgvRN7`@@G1->&=h z+z~{2XU^(8VQXV~w-C|!5tvt(y{v2Rf6u{`e;hlQCMd~(UZjons^-Uk*F@?uHg|m$ z4c}2)%6r_BvUlf0x4XPRuhqYJe)dn6^gkQ%1Gw1w&kbd44~5cEmB*tlZ9qjt&G|wO zS9Br6XNsOAT}u`|894P#fsc=GcmALrE4FQmMyZ7^jP3?B1q|^7IDMrQu>3IzEfmn{ zChf2U^nQQZb*y%wG21EH?wv#92h6Opt^owJX$W(a%4A*vtwK!P_WC*_H5s%Muo3&X zf+{g1IKLXlD=}Zx(3IEFxf(u*TJNC`b8xqzUGvOOBW4`<7Y`awB~9$`tous`{3Oo$ Rfak1$={1;9_0>BM{|$LPjf?;Q literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e708853ddf2c4c69dd045b5af61dd524d40ce5bc GIT binary patch literal 7203 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..dee167c5ccf7c3b2b22b3c6a75527871aa7c202b GIT binary patch literal 18600 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..f84f46638756cbcf1bd4def00427914253e6af03 GIT binary patch literal 19421 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

    $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e16bcd3e31bf20ce8ec65fd4e2c2135016d519 GIT binary patch literal 37054 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 WJX+4~X1*5!*XdK|&5ALuQU3yB)tYwz literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..6f56866e06cff7a0781bd3d7fab75acd081e36a6 GIT binary patch literal 12782 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b933e6253bd512ad167e65f14308fdff73b3d0 GIT binary patch literal 725 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 ShzGrYF_ab5xw6Q+6q literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..f21fa89866c9efee489e900062ad470f67493bea GIT binary patch literal 5840 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b82029e3bdaa9dad773b35ad28459bbe786929 GIT binary patch literal 7016 zcmb_>cQl;e_pTBV1koZvz{(_mA_w>y-EGv!DI!XP>p+Sbd-dIVl4v9v&X~Gfg$a>o@MY z_1w9A{S=c9P`G~K`xt7d;8l$lGdz!^JZ-W#d5W&0IGmb9Yeh=oCA`{HXw)0bS46guFL{b?~5)JAL*8?54Z1dAiBUvi(n3 zrEt5vzdYZr$2+~C<7rp7>fcePoROxBrVFJX-9mWFmAKmUiZxw>KuC6`2`4eRlo}06 ziZ$K}HFMkJ$9HRL9kSqW+~7vmLHMa2MO376V->0f;1i&PR?vAM#nOT!!jQRQzkKau zrhf){%JXitBYpkOaY_P`U0)Dur;)u299v1FVu-wLQ7-DBG0z8=;d&hO>%5l3||9ma9iwuAF8r~DpKUg zfqbbm4ZQDl)5}K#$mQ5~J@&|}jV{n^Z z`7!AWKI@0&lRkIjX5^|wb47FfKcJk1>D)&Rztwr=y;A~&Of<>M+{0oOpB>weQjFteXOHc(QAp zihfmQ(GqN52QPo795)l&7+povY&c3<<1EsZPwjc%&arjkhfPr>fcp;0)%d7SF~+k6>d~YwN_nD9G154l)SB;89?uB?2s)+E-3Ki zwQjtZKJTD`T$JJF98ul{TXNpYOo0YvSAJyZ{=;vCO-784FU^Nz4pz4FjCxP&D0Ar; zm+!nBZj_kn&V89WkUYOwTE$ck@LXtkC~yD~y8apYR{s!Qd>PH5 z9(9v>V*T!b6?M5EBX_D1E5U9|cq^MBcCX$6+JMU>TfgFuP0cq*i%?>|oW3#vsF1q^ zD16Z4ZdF~)RdjCHEZB;C2@{KNXMr3qb$Vdle~{Fxl!^g{ z=f6=#OEkFjtL1oE=_%M={KW541dQPoNQ9yYXV|1}bw(rbwEz=5YucU`G9cB2QhGCg z`JpZmyb!oVj%VH>jd6D8ZvC?ZUyP=7Dey*Zoz1;wFGh2tl26`5f|au$m>>_M#+SLe zU5-jrKByt>Eo&^1y-6(9bX#h8>$b+IEJm$fcdLL1^GtAmyzLXv7^gZ_Wn;lUizFoi7XcZE=ZME2T#&Yj!|3frJl@h@4_0H-}?&#ZX_powWV$=4e zjoF~X#?@}_mW$1H?v;g?$NC*@Wn-qc&YJ>%ed)y*T^)Xu z4*AuXuin!Q#%LYpolwSH)+6-ENk}TRLNo~UCD^f>VLq+Y8-$cw^m>niorAAeT~eNx zP`hgCnWErc%6>M5R7 zPjG-lsW&=$FJ-tZD*9x7z$nAhM6l)Ztm<3lkEGN%MCgk7&Iz+zck9tSAQ!?hdw#i4 zW>RAY?TJY(jRq@=h_QicWr?!=Uc8>BsE!HB+Ty+6U7_WImV>|?y1#AlSH0N7`v5J$ zXo1pg>qdrXD(MBQjaE%5pj~koidXh4nA4TDx=(i`aYIZfnIc{mnI|A&CK@Wft8t0j z!Q6#?i7Z!6%WsBd>ok$#2M3+kv+V3xJwYph%iZcr^N_|Px&vFx>*z-$&i0n}kEEEe zf=$2Ell4vxXIubCYe`zc&O%78<3ho|@GvPrvF~N&!O=`DeC%D+r z1|%{xuXrJXzoH(&?d zY25sGFhry~h73aV-z6en`kd*v4;QBge+N6L(xkt)Sl)TzB_Y|}Gr0EQ)?ecWM(o^z zpxhD5(MQ&q>1*@SeBMyr;XORJe`mWeDQ4`$aXv7?@VGI0djlp%#(OU8bFmDjI^vL$ zxc4aO7&rErcDz3mWS{+`8hWvY})Su{#v+3{l>{_gm3o0 z&f@=v>88LWn#D#NVa}Ul2=vcr`IC&ZyGD9Y5`DKL;`!G*g+f^s=7%wK?{5t94z#3a z#kXwDO2$4mJtkWt;$yh~3)P@m3H%|DXGU}bqcSURi{gQL|KwBC6!rMX>lLf-s!ndb zpt^~4cmBJ{hg38vN^!T=x>H98hgknb2!9IM2zdlTI_%=r-TCWGA&1!=fe@*TTXb0! z6i=|@L9fhi0`a8-QL&2y1KfXzOVd9jp0*sl(dU-4V?YlLz?H^HX%CVx9r5=|GN)Q%`*WS?n6+u3AW^1CN9~B!n`Ot($ z^1yLUCt=(ZKYMc}HnpBjFU0a|Fbh)a&cN6m)al~BTQFwbrY@N61Dz;6pEjWqJ`FXF z)9&Ee#1G&Od1*No@2i^O>d|JbE@9hCj_~XH__^<2(h5_d zX0};};S?8DzYos}D?6RkQW0=sPJ4UmDv>14@oee8Wsrv1Y?DzkQ-h)r+*tf`pOywg zI)ky-0EroDp_(Z7R+EtDR8OxfUu`{q!T3iV=Z_x{_-m#V}N zA^`_h$R{K7y(rx;;u*J`#{*s#a=ivCGiJts;a6-Hb(r;bKe0v9dzXVaws5JC66PCX zCJ05TwYV~u^b??fa{qGj)q@;5R!(w^?0+Oh1!Ak+Jcg#O&gAr=s!N~XkX0BJI%&z; z(sQDy9;=86&em&;0~tnuOX+X69Da-n-l>d>{p_2yaqvM1#3NrPu2XxQHLu|ot?mh+ zjPc8Q{a5b3MqrdwbUJekQWJt3jh0yp$ftX>-indjqygvS+kzN*gG37?5Vm1YRl${Yyr~aay zQ%*L(DR7INGu!41`hNQW86VFG?eM+ItCVCj)Iv~gtXj_d0xrZBhR-|SN=FSj0*};+ zkm1|6K%G+VyZnvjHM5z&e4!Qu;$`2qKn)1*A%(?m!Vx2JQcVsa%BO|XS5kA8bl}~E zutE;R)9?89G3tmufDpMA;O!%SwIaP1&SD(8gKwH0v<a^WAPp-Ds?fS6sD>1391RCwLS#56cD|L!%im8cVcoS|pmwcYL)=TC# zCJ~Qa^7z%){&(91DwlW(ZRE$tX2G3L##70m`1}o$PB(HXVGSLz;%IkDp?iXn{m&2# znwK_0jslYXE1lJ1d);Uf=&-HWBIjAkc?VC}yq&@@7I#a|XlqDi;RQ?B`_kQs^C8)u zNPuhidX`lNlktCIKDRR=ZQ9pV#C4W(+QE~HeVbg3)>{Jyu}kI(R?pd6{4DNI*jpbM z9Ni$UxT%~5U9#x)K3Cd3b&T;)n?5P}LY||FJF_gjh*wBzn9ZVuUB<~#$5PVDT=738 zH(@r@iPuE~^=eGzjMkn0t%N|eWg}Cy4ir(yf+p2zS1$gyj=qi1KoDOXf6aHxji!qh zQkwy_yLEMEnhN&v!PO^!7*7pWevQS8hjXJ2n=?5=qD9U+b=zm@6i$n!CFTqLULTx( z4$f9+wAWEcb6m_m#3oFwajdHwd{6P6cJkz;tmi)qH@*~?0t?2aPcv%qRvkxwxKBTk zZS%kc$3cg4_qyor7fF7gP;O(T)0qN0wG_fvNUcc>YLf~@>YKBwy}X~#mEK}RP`s)< zOwETk3Bfdl7O+*#Jy*wu_wVgq`s~kWe$I=J66NvzunSACoac+j;L;)LSazmsUaG|T zWrMTCii+i&v)-i+zOYAeUPaSaqJ9P0{bjZ>(r59M@MH>kD)aI~aerLuU61)!X$9RC zr5(9^N3`E#O$+HRx*&+ zqct55^CMLH^d6FMp655_Dq(w%505II9~-l6`2>W=`oIiHbsI(SKWS}81ZJT9vjnAj zgU$Mk#gK1vBeZRrV<^2z*W#`C8Fo0(_C&TCY4Xg(4ZrAGc*k8lw~iD}CmY1$6`Yhu z@#}~_4=)+*xBEfJdrXxr29W8{ydZT;uWq`_nWF2Zf3kFgaETTQq^BDrpe+l+*ZGStT!PtVk}Mkti#yx21h26Kp99vswEtbUK< zkl|DLweqveS~C4N{Q$hh2PArT%3{071~}z5G zV?qEV6!L>KylE*5SenkU?By;yi<)GGwy3TycYI-1uw==suUm%%Cwoma9`vs)m-6w# zr@qXhVS57wO)^|>)_zn}R#8t``sfM^CdI~>#C^#jCtk26jrDV`GRyt)q=PDhMDMV8 zU!9#a&*MAPqgj|Ts$%vr)orxu0Y&P&sWwrEl~aKn!H{G}&Z9Y>r0JHRx~3@d?p2W| zsKnk94dm;QwTKDFE?FOVcb2I~7^3hnm8Z^kUOf14?A*x{sZVmFTe=N2YkxjxBGj4L zxFPc_wc~$3OxUsvnRy|XxQ^rp z>aO~hn#_*yzM+;3WeN=MUz>B-{o{rEKxCZ~VBLBVN;*T&KVjow5JhyclG-)%u&v7d zzEJzQw{Xkd8~sVp@H<@zu-Cu)w~Rn04A|1HZbH8uY?L}r>!(3E_RqrzkXY6*mK`e6%A3A*8}?fylxPbne7Iz|HUZvY7+$$q8MJP0ewR zS(t)RSnXkryw3%5pTfU#_<>0`^y(IeeGu08;wp@8df zdqD_`-TDV&bw4Q=P<^T}_3BElrznF7bx_kDu)jUF>To&%n)TJj$py8_zb6`V7%7u0_zi34)JUeSO|3OLv-B%-+XKK-H~RTp_u-SU zOgAFH?ONvAVNP;DqK~n9vMHzhG)3$OT+Z>*ci3co60;m3yk$xpyWX@LW z(i8$6$uXe+{x##%CyAX-GNG~)g&2pVhFYKE>8?%+%P`dGvYV9E-n38gW#k`y%gKL| z1lul^gxzV&^o$lt6oH`^osneEMyq>x>2N_Z0{QAW@G~w-Ps~8Kt(UHC(5u zP%h6k__v`>34Ssv`+O#O`BC?LT^QqgW(3lw z*Y11u3%GRn>Ms2#m0dIU` zPAL>EzVmHI zDXHRTztiWYPF@Q%A{gE!Z`u;qQogmETlU5$9F{vR= zgA%>Eh?rn>0`15wW__6d*I7Km*AYD`z1--=olaaVcChNVe1@4^bfr-hx|8_R`1#&EZ#u)7-=r5Y!(UkNV?Tx)$c~<50)Iqi20s(K`~mX{ zO~I;u%C7G!*MNKlr3K79ni`j0I>K!1jBRQiLEZig=;E@cfTVh% z*vYyUN&V24;N!E(rl8cFuJI;==0JtLP>>?!TkWKPn$UOm@AKh=XXdoz=xP%EC<$_( z?eb~`{n^;`U-?nIoa}Sn%OVExlZEk8Ket4-Fx5Z*0z-Bs?-*cg2givs0$^6A^aFtU z`8iUI)+{V9(?2><1A@+NLk#=7%hfsjNn~`6#u?>BEqCLTgKE9~8UpysU>)d^l|vG@ zOks;FeS}w1tCPlwe4zP5XsC2k0zcMQ&cbQFv36vSvTA-r8X#br&3AX|HS8oMt+&pt zI>!()>=$Ur1=4FTViJM(UUe&w~la=9YbNRyr8-bOCyidx(! zl6ET^d2wjxwm-A&N*ua*l6LMcMpi#4knPT$CC)Dd5+iB%Y7*dyT f2{WY1IpC`NMVv|UUitOkF}!C_fofGMwr~Cy!FaJK literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..8a546866502013d4ce2f8add46dc18cabd9924c4 GIT binary patch literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..bcbe548297f87da4c1ef3f00d03a054133e7c8ee GIT binary patch literal 9184 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 G4E$fwgRB_< literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..6eba7f2baedff6cb50411dd190879363a5bc26bf GIT binary patch literal 9681 zcmXY%1yCJL)2NYyyA#|kSa1#Q?gTx!Yk-5hySqyu!QGvM1&847?yi^j`)}3m&i3@~ z*38swcRyVnp{yu{f=GY}0Re#`BQ3590Re^bd2a*{^?6;Mh57s0K>k#f5{0OmAUgUK z02U$&A`lR@aY(O5FrPAlqx6rT5D=*S|DBLS4rQhg5Y*-};v(wq24^|?mik)0hs}wD zm{-FsGOi93cv_%XiNsvJDtJl;#<(r`QjRncw6lh(dyzs)5hM?uFx{42k=@=Y3p!qvoexiQ zPm5B|AL#eXCthz0em>_u^N83ID%jKs85tRILhmhb@*5vve!%knoA&OfEQRQ^@PfW0 z?6t2?CWY+F9IAge{4Ts4x}Ns2u8Zj+3+ZGIc?v#Tb3qDo+D>qB>h>e8sp#-Pm#WX;#GXd1*HnVlW8r1#BzRAV877 zueZ}p$p0cz)9n+5V|6g-wXohP=bMS-LQM(nb3H{5^e6h_Z9D4wu~gm72hb5|foTpJ zsx^1qrKT)L3rdrORSNfs-jd6yUecWQc~L}j0|mX4=Uj6P^eAui^G}iA3uW<~wEEmE z=jeaa#bkzEzM8cb?4!ev}3QnZpmmvz^*j6X!KXm zx~C=kIs#6;MmElgb&NLkcoy4g9|V@gR@^U=3Zf{3HeqNIXB2_<;4_iHhS&)|s_(4M zM`N@XzRs|}8oYGZy?=-|ch|qUZ)OOd{>5aP-k;ln6ZtqYNcRkSHJRCYx@I1J-DPjK zUmN7)hxdM%sO(fLby#y$wWa+>rIZoOTXe>!@-_D(8#`L#P?0q_ib1_VcV&BsRp9=P zT*on_N|TY1n&Zb`IDUQ~Xdm6GmY#V0pI==DFLvVYEzZ*0P4$hMd?oc~0J(QsJ`;{Hx zLj0?`V@3C>aKTW5e>cN@w!UH87VIejlZ6R^k27+;AK)5R(E($7jMA6UigUcmK@_xRA-_L8$48Z=D$gZpva#g*tqkd}Ny^A-I99?Ysi&ESK?UXz1QTh6>l z-%QB{fA1X4y5&VzR1O|KiFX(2Z4Qw?J;Vv$KS=HSb02G37+OV5hnq6o zB#=ogBD7eq55xP!ycp=jYV-Bx4efi00q|fx)%F|pkM+)otj8C$X6?|CnG@1L+1^Uz zOe2x*TLI()WzNc_b0LAc9jaDp>Gok$jc_)=ZD>73@rCvM4QiUZ-fwyk<-Yw7?5HgNG z`(iOeiKOS=WSJzU+NHk0{;7YXYvX-GJ|A{R&UG<#ITt8Kw|sh3G1Wz2%E3EwpgrT~ z%!Bjt61kY&T9>lxVcQMaouJ)LlZ%2G)gPe`&Jh zA)9We7`K74A=bc0XGi2e=uNW1-r@1CYkpysAK%^!QvRZx_&a%hAO6~VI=JL1d&*;d zsIWb=GdTl7n9*nE@+r$pmcqv|4I?sjeLQ5g7%a^}5 zlibG8P^Hphu-;8$$`!^M*24^b=gKUty`TY^te&eqU&8G_t$M5AIthmT#sQ>gSa zK{mIjtkZZsv2(Joog26MAX~hNUR3?J!#QgIscq z2(8ab^3_YWrd~mZM<&fj03HWsr)r$94YCeux`r<84YS<0-p|}Q{`Sx7Bfi5IK7QS_=cb3ay;M6{c1RadR@bDzbT}~Qm~fx>%D3QBJyne_`eC1Q#ZQ-+lYMQ9OtOaBzHS9!}qq zeV0~!kS_yNssSaBiY9#1PNFKKbv`G8?*fcljRUn?_X^LFRbu=OQW)>>HCf5B|8xGI z{$E1n*uva=e2vRhe9y?Wl{c z`iB&U3k9EB@C&Knd#$$4`&p&Kh0or8_lVkfhac9q_iL8`udPsM!)5h5&kAZ3d$D3K zK_m=<5_Y6<4*XN)X$c0IPWT*CToNpQ=m&^8;?IRPO>)i&7*-~_0Fq}pUdK#!tHL6p z#1kl#o`@RV2A-q;@i!k+0Vfs3O0SRsv+|W-Fk)=%ZXE37QI>GV()ILJ$@em*i#y1V zh00s;VUDnxvo8MWcrmG)QZla>i&QvxiB<^TOV)MIMmsjipNUfLcuGydQ$+XZiHIkBp~8_7*kkkV3*B)1Edy8QnMM7QA8B0EXu_Y#B?j<|Wj~uSh#jz*sP) zTW~UQ=8r|MYP(e|wHxj9o`!%Fnd6f+KIX`-#mMb8#tLO=cRud+P#uetB)tNBz19$@ zR~y%HShbn3QuBy`%uOBVn;=N4?4oP=`Z1k)&K+@dfu|S4lb6lLTnArLuLIJ4#GRtI z5<}nPAcxy=3qPkEuh$rss?Q*1JtUXE-EgyxlCWd(V^?da2bv&IO|aW_>o+%Sp63ps z4|-&$N{!*`#b(;~$3Zn#)TIQ<3^m$R`cvR8+AA%;5-1~x;oO8`>yl@DrJzrvgv z_@6j*I1#T3FSv6iaiE0$;w9PCgqH(l&!)?{23~4^h}L=SN1KZ zyJn^0jHm;uQS!ymP<=01A9oGWY959_$UY92OlV8Ay_b9MBp?%1{ilWUrEye({iHz}k5$bEY&TSPlT&Z6Z z$WM<~@qrQid|ohmz3Q!$4gKO*$AR>)*gbh}q>y#Ij5N}dKbTwk#p$-hE@(6%nn_Nv zr+=I1A^C4kH`Mjq$7^`I`7QToOwb<2lWx!^R^| zasi*o3CJ6)1)VO(Nj+agEqq(ULIbXm?_VbddtYkA@x}T}CTmLn|vydiElmw! zVpIb0cJ{5lXxDL9%}&MSQo|w~33?VqH=ckTyahN#SPRC}KNVb}Hx_wxbHFL!KQ))r|^bb&BpBD7{_<|JJxUwZ8 zs)8M7T%cFa99BgO&{rZdYSX$N61QluDo(}Cg{DJ`jQe!?hdc?+pFOxFw7Vkzg$ERe zZ&+uNA+z)@g8!%RiL3lCeIWJ!(+9*Pw1=~D2mYn@!W0}=j*&*&+TP`Vn

    Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..25b899cdd7ca87b2273d2cf09b77d1a97265d352 GIT binary patch literal 5454 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 Ru|xyYZs=J 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..f338bd44caeb38e792bc801aca30c11b60411cb3 GIT binary patch literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) z6JbaLkTp73wkz|T-f{kSfT5DghK4KBW_aAIdbEJ0%;{~I#XPXry z8|hag4vW}FW8^3Uq!c4HfB{mMnET;x9Dl>jcVmpORiqe<%Q;+mG+SzhC)BN&|hB9l51jNtZE}Qq!~0)Xv=l-KJE2>`ex?B2xTVr@##>s; zs=Ipd;PUT#5P>JyW)zT{4K39rYF;hy}Iy1a|9f__oqfC!aiVzYg}a-aJJEWI1dgXYjrO zelLG!7-Fz0`r-cv29Q=IUVS!oY^=zT6Q&#Xj7vak-$TIK@hQb$sgvxqBa%)q^`2Jz zs$OIsw3A~C3ZjH_vMqylF1>d{^Yh`i!5|Aam(+!yk98T#^y7Ohy@{U`q;L$BN>8!x z*r>d896;UsBy)Nk`$H>?K&B1I%9|aNQW7ii+`sKAgo?kDD!cvx_jipP==5ji?z{7Y z8|USg+A}*8U;pHKr^0C@gQq8RFstM#jt*abc?3EVv@XptTpQ zmjht26!xK~@pYzgV6Sd-N_5Gno4~R!7Ko zJeXB8T~BcYyaBsTr1Mfg;7~=$f>Fo!0>2%suza0##zIsE_Hz}DItVE-0tM%D+4C}!*kBZ{RJ9{;?p}?G8 zON$atSq%->>xy6q2YS4_JrL`P7)!mx8S{DJ3Ce;vm7*{L2QR*3mwoskJxbm-(SvVR z_FfVfNAKncG7O*e*Y1WF^)xwLxO~@|K2P*a%=^+%=tiYZ8$xuizkum6Iw>JLZBTHg zlY{8$Dv<4&xC!2j^b$>uX+bYRf5Z`-cI?$9eOkfNQ}shwYrK(O;p5iK(iNJWI5wbr zL~OLiE4tjdvyxw@8p;^n+;!Uj`m)jSh(3nI_jR)q?7LckF0Vsw$F}o|vjDtpF=)yG zj?L8{edQW$_t<~sgCI%VP18#P<*{=^fO@)6`5o!Le^3c8WX{}FMEPyoYL4j!|1M!5 z7z6FupE^o0QVq%Y_aS?di4NE!3Y|F=fgK!>>DS9>D1JuHj}! zsdtE#Oee(4{$02pzClSPCj(cpS@Mk8gBNN@nj+8SbFs5JG{sgBV&BVOwYQoE%qz}o zk+gMx5oU_pg$}&&)q9b-`W95t0C$4>oN1Wn##;g3i%~|;@;i&xvq7$E*kXrhjJ>3O zRM-EXfWSr(J!r8OH$c$`e;&AsSSLuLf9SHoqUf{Fps3Q0BIfHT4S(Dc@1MR-r$lHqCgh8T>7HwR0<{_t|- z_CTcW{=z@glM2P8beH0||8&BACL{G@D0^_lazr24vTxWUZxnqU6!O#~N8wAzD>#4K zX<(NXjd{|JyQS=ph3i8nQ!mY!-+G(J9W&6-j!)3`9Xkc+hm9$C_*p*kuND>e@0h^g zKbSz;?SEnd_P*j090GOu9m`QzxyzBjua|S!WK&dMq)9KcuK3S=>zbY4%+2lt8?yNg zZCS3L!&ujs!+R~hRGY5}J$Mvf-XT0g4&iaaicJJ`;q>!|BwwJjO7tIS8_%1=yj^In zzn3RwX?dmYHUGCyyQJvi;6#IRg@MENn&L}sbMDX!QgrRUUF z^fjU>HM?mT9`SQDCcq14x(pHdLym6*Yt>SyCSuzsl_NyK-{inLJfkK_+dY^f(22Mm z5*w0X4#>S}J7lxc5Pfcyl1lP=$0apSF0eMpOShSb9MUEGyJ8MH`3xI+Cl09jO8fY~ zt``BGoTuqyo;-!WWd{&>?;}u$vk&e0ZH;<9kRNj1Qi1KJu_9k7;i39-XRYsC-}}0} zCBr>5ssX(93F0MrW7qN$u21o3m|zr!og1{joZz4VJ(7bzo5-Y5mq_=>i04f=j)^x%CoB;Tesgd@lK zt11Bg9VU?ecbGuQsVv!;__66>s#3P%h_eIFe5_0NT}RG|xb+1-BaY72x3ZsbfR4za zvLnT_b`jnJ6P;(12DGml^~CWvB;T1X$J^hF8k^8p$ZIM0E@tMGCZ6YIUqSpCIC?2gq855V+9M<>4Se}vV!OCedg zHW9>TAjx?{M0EL_$mVB7&?|hLu*$7#$tEzeuIxOBCQLz5fP(hWB6#Uv+G*kVx7MdL zAE#UY((Di$1hKZ0M@!8xZmrN29s81Xg)JdF9H`*3L0?oXA21c~=NC2~c^@;6=ItFg z|7O9G>iD*Ru&zkJ<2_3_;rK+nJuJFKaV;vbX&t%kN0BtZ1On(=KTU zuqN)HwpM;Z#FFzuRyo$VC`pen@9@IFttbi&W);qcw6!;ozC6E_cyLJGkXh=dT{^Xz z%XtFj8{gm-^s=x*UegO-@wA{o%*Sy-bKf(FZ+YJv{dePGkMI9of-n_t_qIk9^EZ2! z{VMWFdH%B}qI7qCAMx>Nf|9K+(eMar4-ow?YU%&WqDWNzw}SfBd^Kj(hbGmM;8XbW zO7On!MkL{?B29_^|J+wT+dh&0X{)l#`b;lZA8B`!t|$!+^m%AwK#_lUy=zOK_PfF= zwBm(vdG(jbr5QlJ=jWnVV#$|uPMqeDa$@8hBOMhfQsk_$=!(s@(UV1UV^X|ZoBr!> z20iQDyeSWi2>}LKX5$HeZpxmuJRryVcLP$Xa-ZLP+Zj7}40H%++Dmcj zfC($J_5|M@`iV?D;>Hg=uUw2su|izp8glJmp~S#p$y2{8?|1)#hU9+_Gc{nc4xu*( z;4j`y3W6)Zr zaOAv4?*~WXdILif0VfhiSMsFKR3BOhe8XSb>_sOU77Po*_2!?>SD72PZ{+Vrd}6r; z{WF54y-TtsAtG{K-fwx594OH0S^I?BLLi5zBj2{3-X=W_JIJ+npj$CL5GG!egoOIv z0tBFC_XLTzJ|t8eCC2Ap4;LnGzCZ&E*o-IH-X-G~y@x3MAeR)591t6nnA&CbUr*f^ z^@Y_vxp_SB53kJZ<%mEZ{bPD%M_^o4-Blk(5+^~+W$c6YQBxrOXow5fYo3bI08;$k_0@ua|~62Q2B4RX8oG}fA&X77y#lc&eo?w9?J zQ-M~Gu7bv!JiON16ZppBgnO;9u;49w(Y-yW@nqv3d$URaDos5s>g^h+w*}*IYcH1d zvoq#O2hxO|C*3Jn+V+8>?%;xfwofm}2oT-NryKKuv%KHZtpmO9`_<8sq$yh@rLySOXk9ew< z8(f?n9F4|`n%eY7fT7ux;pK_T-N?>9I=b%o&w3YByF|GA?FJm@gAteekLPM4U19v~ z+;;nl#slSfcgz8_hBd1_zQ|i?iSwJam@>5&ADdgtp3dkz-0k6o+&cWhtl&z<)7CId zKfRy$5&}%rCDrWdFD_QPV*Xgt6uUm`(Wkkb4tt0(ufO#*UR^h$qzZn*x0R2UNc*3Q zo*ohLZfnJT@(K?8Kvp;3sc(`q@BOa7tYiA3f_2L@X0QC&VV+?%CZ9B&8!5h@n?^^r zizsdw&>F@6v@?b+AZ(p3{W1(XudJip52}%bl(WJuFjOW)PUr;T8+3%ZrB&2FPhF+Y zsV<+}EFX~O_-Lc+N{V^@m0y9EQ^KAlH<=&xD8srikgdgoDz#pLx3`M;Kr^kUIxts# zZ(frJXR5V_T>%e|c{4m-e}1Oa7u5Ew>T3~Z#2rNud|q0(z{3J&lCL+i&vBy6lJC+gd4Y4onaC$j4m=jfL{9s25Y!;H$-(tF6ZN->4`hr8(6riME`)MSwVP{+wK4b(g%KZ?t5g( zqB^9+Y}av@>oZ?0yF0JI3_ctk!)?X}qxV?r(c^tV8ua>#Wu{=ZXZ~7MYy1?$eX&*% z3qJjhJ+4_g3bWo!13OTZ*TqfGVR1f$UhC#g8q^y2OtlP6<9gk=E z;E;{-xR=m{(>7$i)AVTkpK*`ZiBl%MUbR4FF-mi{RBrsuMybh>71p94_+{M9nKNGy;luhq#Le;*+W>? zTi=?qL8$!Px&bC8h2s`5pCrC)*IJ%G@H*P>`~0jm@`ZsowrA-_XjR{CzDc2=<9*FB zf;pMW<#pgIPvv4F+w>fM7p(n!zQ@pNjvlAc9v1$M={8pIfWznE2Hj(;`+;6k|ALm@ zUZ*mR+)IE*yg2j?iItJ(M{AAWKP24ys~Ca(bK{YCuNUiH9A}k9OH2;^V$9#w4NJO@ zngpfcNOaSnr#a0wwf_LTzgUaOG1)l18F;u5hS6y9#r*#Mf#O!DAw_cEuqYx~iC(7*`eCj__p zF{AS7oF8BBXS_Y)Dd1Y>`l&q5E2nl)WR3q6fozu%;acatG2?#LLzU>B32uhK`eP*f zCy_LHZJ9z~yr20NYXJ+b95}H`?JUhtMAxVd>hwFht-{q9IJb7)kBY(}G3L-N)HS57 zsH`(X$nl(J1EZ!xSmR4JC2CpWsO?__b!6M7r-Iop_&3Bg@J$#<8wH=Bo3O_AdoNu3 zE`F{yzn8f)`dg@BcRu7Wcqe7tquoVUn?<| z*jnX4eHS*4y=b_3y!UJc_fBG8HNLNgp)4iz&N!*uoObP2Um$91U)yV1QwQtEO)Ocq z%OS)<_c{5y9|#-%&pAkbUVHp$>(-Qh4hXqEIC%FJ1w&7K@hU$Bl`3@*6|a zP6F+#kj)K8nVGwsVrBdK3Awi48J-EXKA1Ef)U!N9k%q#a-?#p%eUg@UWO-hz0rH&b z*k*8(#@)hc00}G20z($(HS{7&wD|4}vFDSN*|diaj{jH_;N@XmGH!oVvhVztyEcAS(N3!)1LaQq)Rvk9dqq z_|GkQceDj&Wq+m3Ck6~4vJ(i0kOb#ct&|9lv_5#2wWj56I9p4AX}9>Y&}g zY*Q-*Du~g9vi7_@re#u%71#d6{Fy#7ckQJ!KAejJK;zRJ#vMqMZFeQuZPw76My3hV6sA^dQa`Ln21?~-MGLXA586o70$d`vTWVS{g z)M=<+fPJ>F5i>)?&`JgM8w2icd>7W{R$#m5nVCxuLzD*}d?^5J%*|#=7a#wiYll(x zP5VvN?8dg07v{AiU6N0#&Oh>Fl#o5w-q)6FHuHMgA)&q$R z{6E76z?p;oV|H7J35S?%AVZ1}#I&ZZ^Rc=5&HU2GeUK*fna|}zZe6N@ zuLsRC;@>QWkX66@4nuDr*>@jg(%sJ*Jb)WF4~y8+>k3^t&riWmmlzYhVSclp8Qc47 zcW5W$@(FM6tp`)>UfY{KzP-CVx~Rly1sJvuq|{f7|3fUxbQ&y9#K|^oS)ee!c4jko z_blA@psv|{8StZ;y2@xc??0wY^LW-f?|;$sv|T&8~+qL`HZKp0eP(T zwJM9?+&eK4szoTWfHb*&zBs93(J8pSu{b2=Me?KF@U8DhKy%HrYA_sbk3H?Fj?EBX z=>k*o-W&V8=!4!+bY-y+(IP?sy zvI|5MP6z!L3{NB<;xy$exR;@HJ50ZTS$588KX9K^t7!hwdc2-P6}?oP@GVSQOc`|v z6m0$wrD{KM?fanhbla1<*dLkDK@#Jbn09P$#XvJq+=udrO~sfFl#q1*cARjTx_zxt z)g9*d*yYKf-!<~%3GK~%dDr4z9i%jmXFTrWXHv}2e1o>08w*T4XSl;BhX~iH)A7t& z_S&ne^}(O{6yC00y@=oTYlPEZiD>@->9>;?#A=55l9r40xA;y9e|^J&9*rgNdz%?m zehEig`xaoFI?ya+$a-7oYcjIQ*Y47NVbT5fWq<&|{yHPFuJwuW0%7*u&8|4!KRdE0 zYGI^G^CXA{y=ri4>{mLYze>f7yETECc_-Mvi_s?dz?U&7w*PUS-9|GOahHvN z%eu?0hUp3F9xJsNaFf)h-hhcw#ygb#kp=t4dXnlW>g*TxG}}7HZG_co_8QZex|#tQ4HOIsulB)B40Rb2{*%jCoE@D zdy+vGX0o)v8(Mnf!?YjuOld672Io589|1;$1&?ick6uH4+ z_ZgH!5BX2)(otVs_O?&P z6tWTjIld6*3O;mvb}Xz`qH}?p3^hXND%8aR?IE4)BgsGu~9{Iut}TJ3tdCprrQ{k$RRI zU~mZs`r!#mV`UR%ej`G>HYbr?3N%sByqM8m%${uL214#FcV*u{RstoDxOjYEb;UWg z>jl|)m}uFj9{_~{>zuByY5@yJhrjg)gmUSot2-ffjG~k99NQT;C<7 zo8lZkRD|B&z_)Tt0Bi1R{5z=?8stq>S$jlMV9!Uxedq$KQCcPwqE`{S$XHgc0_Ykl zYweGV-Y?JYkIJo=!aV~XreiF-hF}h*&mAr-kHQm0iV|?cXQATp@%C4(mVF78k?Pt09wF)r; zCh;>tNGw@o2H;(9cpJDAOS-^hdXRGsvGd!UfhfA}LMZK()&#|Kf9!?G+}xvm^y@oX z{>?JNnM;~#BzcYbMl!1ExB+j1a_4BzXi=%Q^$$PNCTy`^lO&1PnFSARV93rH)e`3? zI2>)rx_QysWx?hj^pGu(W z7H!w8H1Dzq(S?W=rL18qipQ;Md;GBvstVmKLVhLD-Th{6YD7<2aa&4VjuaC`BvSK$;Bqk?d=QK5}5BD zOl~b$8cU_s{I2ePc^}%%>2U#h(1aa~ywVI`-+6o@j<)lC=P%cU+i;~FGP*Mu@tc6M zN(?ya>yPq4S255__Y$1J+a6TKsQ4LHkkLO~blE1!>y|Ww`uANY;0M#ZkiEETkx%yzD^^Hh-Fpq75QfP0t{YX2hPI4YyBvc~yx8;@ z9en{ps^z||0zgq3{EMt7J>rt{g*}gLniIu1`ZD4YE!jb0RVv;_s>U9{)q~r%Lksi6 z!`rC+MlA9|H*ZWumY9L22CMtC_n*U}@#cfuLLG$-n zDQ9(~lqx(kg*`vWO>#7obqARNOfT5{Y%_QhWQYy@3kCJfkQ!GG_EQ|bc5QxFHQy@# z0`;v?1)e_lG94dyV2Hqs`5x|XJndVT@0P$~YpFgJ!qN7p{P;;CKbM1+Z3P_q!V1`r zVt&}N%lzca!2j3F_3?KwU9)eL8E7?He@=e#%MWm|Y41hpzw(h#?AGLMCb{A%9A>O+ zLsgvrNR1FSKUR{0{hM*%$xcHy{yK#M{uklNe+OG2L>iC%ml#C~{&&h;1pezp+ywrQ zWRkaHJ@-YDfh1h(KdFlU6Wsg17`*-?XMA-k{V&OjrXZ>>d^Yrm#wJO(yqW{T2dBB=xgA+!+LUO46{OQ6b#Xf8@y0Q4@z4E(9=yBIL=}MK& z`otZS&bn$QXytBtB>;-#6SSaek((9*psW2-d{2PJOCIUhqeBk+S<2>mCU3fcD&5Fa zy81>#-k;G)H6FON?b~gd*$^R|%KvjuAgpE37N7&rZ;C4fY^I?ro0_y-GS@p+YKw0NZ?uE;M-xQab`h+r*C=)#8cT3%@QlOF;@oa(Yy^h(W{ilXg&yzQaBO`b2SYYu zG&8SjNhnhIMLw4EviGmV8l*G1487w(Mns3kjFpAuOTQ>Oph09&7`}H zXelmSp&7N31xRKgrZI}53zEBwk-4U`=3Qa*i}72Z2lhSloHRcTpGR0YY8ztvc`&W))p$`_nwqKJRUIX79uAV6C)|@rw^FHl=oGOH0ChiI= zTCPPb7ZJAw;MeIu!UtIT()ErqW2gw(cZOB;=DR!>3?g{Xgb@!v(1bZzJWnuQ?EX@j z{KWqSUGg26Tsqvsn*h3rK2=kX8I$m^#@d?-6CqE`r6GC+9SQKaaDPqj;zd0{>j=M@ zJ^vYTLtOW)#2vTMokNj~I(wkXXnprAt6YyJ?*PSJFy@M8rki&`pbD9ZkxDlkbKDDD zFrE#blk-4OO2N_}3;2CcX7W$8Oen7Hcwb8(F-16L!_y^Vxvyn9CRVNvmXC{`u$LP+ zR@i$ai&9>Oc+W4&57$W^!Jk3jk6(np11TowE}6VNLa?0&NbjN4`YtvtIn3kbVL{(! zTswTofVme-w!WlbBO-jx(QAOGar>CoLSHRb(*JZdh!^zo?#xcv;5kflM&;h4)_wtL zL2vrqSn<9Kdd)7RxPahZxM@Jnxz-h4{tqGLY=jmR?hR5Jr7K@$#xsa}AL+iuC z-f8;X$zHI>*^$jCjC?_Xf3^^evc}5yAu(MWJ$zT%$9o=b^3Ru4<~t=X&vNh%F7$$#0nAx+PYx>SA*f-(}L(jrqGBzy(p;H zoH}&qrPVd*`q2IEI96{_s0pDHm&7Hwg*pZD&D$a zm202lX81qyKGjDq-_NQz+Mmty@rV0e?F67aB-% z3H>N~_0e~Rmkl0JKy39+MfV`=kv1wp;1_}}bmMPh{qORHlM?@)kuAW-z(+S`@#*f&qssCiYWPfpF!-z<@?<2$0+VFJ026%AhdbLmrT(=QI z-RA;kLH8vWv+y(LVn6ultc>zSt)qz6uq~~Aj1I(mg9jo#ALwY!x~G9E7jeR!cjBPp$B|utoHlmS&gQ* zA!}DyX$1&H9hKiV8}@;2-!*4`^>Z{3Xz==R_28OJPbHY<1c3K8AA2zye{rLEYBgS+ z+V`L#hN|*alZjjsC`xtg!5D&4B4r(tfh>tB(XACmYzm3?wg)8(N}G!L;RJX-?|}EdM=uhS9%-82!)?D3|u47oKye7rM`!sa}!fUUYG>UQLBF|ccuWWFjXPiiX zVQ|Yiov$EE6}BB2-gpLp!W*y|2zEc(GKrPCvU@nstZ_#dd4Za?o_qg((XXN%@1RB6 ziTtCT=pv;^L-;n>8n6{p(2XKFT3$!^yy%`32Lt%>6L2rP^!wUgD}EPkFys4;K*fVt zG4zBV=RczH{8swLaqPgyA?eSbOa!V7IoMs7tjB6tc=E1au@b(e8)>~|u=;B+9n&4l zS2p8$-=??3v)@RF>MwXkJ^#3%DX`NH3o`ZD2Of49t31_NFb;aF<|eBJ$q@|8c$XW!lEJuIBl=^Lau^Yhzqw6PKqB$+Ow=a`P#pOBS!rvxFEmt5mT*KcAa!<0m`Xuv{}{$955+ud`hk1*rwbIP>{Y z&qEX91UMN&V14wm?cyL6R=&KbdGfzKb9xFt{zTu}^*w!{cJ^;0JJMpI%F5hH{_d)W zVV#jL-}uc}zjYNsa*UmCT)X9ajc*0cRX|ZK0MXOC(%Sy*{0mXHi$$5yazlehTe@s0 zHPz>*VD66RL*~zHz->`*_BRv*eC;iL8o6JFajDVf@N&VWb%$$|-z;TdtCd6*<&#-o zj-OE*Fuf1~tCs=~t?{;Sk$b&CPW1Gvu|W6J&TclMMO*KvPPb!rJ5nSSj6gdp)cTJE zU^*F3w+!&v~qWaE^1Dx_r?CYz>; z;oz`vY;XU*S{o`-HJR>%lk3edUDHa(TB*Sc+3W|*Plz2UwB?J1sO8Z=CyB(TE%(>I zHb67#O3qm{RMr)fssR=-84l)r?!^{OJg@u^2t zo(s-H1qRxK;OMi~(*ek(9wwDU|DDws8jEiadC&;lym-F105?+x)wc>TyeJh5SKg%0 z{*Jv;iCMUC-`k?|u593vNt?%WCj2zAXVXXE>caFVHNPkaN2LY#p`NY#_mm`wmDx5Q ztLZ?F!j&OKU1{N5bqf3Q8)9{@@ouBRz6O5D>UVk4Of+@lC81tcyY$`D}BeqQ&ke^r|VcSlGkoe@qypzXyMVUQyctX^7LMfdE)Ba-P$5zCc z?eY;7rzzncBoBhxiJQ6I6=IcGyY8qiS*s*F&df1p08k#ac?$6)ZocH&< zx`LsNedDK|)3{wAR7U2louVbgv*~&#`)2W~kHK9}wTz$uLjJ(Ed)~d`jNF=%jt@WW8JOtyykXpUBP>4ZX^(b#H+b|{)Ze3`$`bcs zv+helrphy4aiTD_s(g<;HgiaW=DtNOL#9y)oAs(f1tLug`v93(RnIp}4TC8{SH2em z!SgMt7yBR0@xXo*xL4uj7G9LsgYxQP7QrEP{LG15N3q7epiB3aqCr%NY@_@ai{dO; zX1*0W4|?8+-_s{e@4m<>(?@}aM@sE9tJh8mwr+ek2DPrCTg|2Xw?qtx zBbZE}@5x@6sW3d4b(89fk9lB1LmPXB+Wh$8a^LVL|ha z!@Km7nzS9QrE*Ui!yZR0xX zonM3n-4n%@HwuYMtyf{L-z^ zXzc>+@mMeUu49Q^92dCrnB{u)Cy-^#w7&|MBDur$P_$%6~HC)(;J%Vp1R*IQV0S4vUj+A|d zTXQ2K-kb4+;o*O5`tHRp)l;nQ?Zb6MaB>q-c{|j2)wF($e)XJ~j10eYt$6X&W_2|L za!!D7rU3PcD`)!mOP0E{$W%MxkCix)lvjI?F0;oyJrRvaJdb44t^T7zdSSbLR2u=9)YB95oHFd}pIO0K7&Ar~<*D-_3a1?2Fb=MT#kO)`1789R zM-GYRdb_DaO49oW&OmZahqMaH#@d?!J>SzxJ0K1b}KO3zA zUg^GdJ_+;qQN)e3%EcpG&3iEfiTI?|Gn6^&=(<~?nftNn9CuvI4?0fu&(F+v4SH*uPX z*N2C^>QB=slCfjG*`07|7SVJS_Me~cS#7kQs4}8F#O9~}DaRm5*f!qvdbaWwJuz)N zuNEazP^H2-W4;n3zpL{3lEG7;`c+h?PEkodO;=3u%=1Wta`0$w`ecwdbU=f#YdOAl zORr`%<3uNL2CJ_eHWjz;O~@gyD7sTT-vvBtYBaS&9sZ?_!Em%N7k-jDa@j`c@Am?# z$@@Z5oM;%CS5L=h*7Q861Lz}G=~KEm4zYlIjpR;+AYySI)S{ZjiSIh-BNgZkGIITd!5{pNtC77QYf&WJ9ezgogZa=2* z=#1x32m(X1-DHJs?t;zspdCt;UhJorI8pnjEvKjTW+ubjgv2KT<;wqP#Yyr*66o^K53|_8RpX3LKbdqRxvlieek`|QD+jA`edCzWFV#A}@N>{7s2(!}w4S$k zSf&3#X_H$r5mrHX{vp_vQUZ(gf$W6$u}w$*hT@hG!=g`Th5?a}o0yZP-RXeIAf>zQjej;x}p;APuc zB!R8AARU09yT_3~X?1g~LSaUMULHbZV=X!r+sLO*Cy*7r7Ij;q z_?Fb?U$?uP<`Wo_Jdmp$!CD991BB~Fp%hnyXorzclJ>Q{fEp3j@bgUGxU>>C*WI_3 z*mmth)@R9LKk5>(&@R~+qjUn2Y9PE!LvyZweoezY=djDy9YiTe!Z(=T$h49!pW=`v z#4Q1NnFj)6eWO-H{n~r|c|Vj%iP~N_PFg!&Y>u^e1n9}>avTfzT>JR@Tuk>hb_aPX zpK7`rM;B?uIT{R35_fu;oP?cySHLp8k+k6$9=4LE3u=R{CL-1YCM|GDmjnG&w#3R% zl2t^yepE5mYF)DZ!^`s7+>|kc!U`7wbwaj!J?j6DYxF*87M*5!JbV+w+0E=MZHefBHA%pbJYX5)HL-p)-< zE&ZCsf%98w!b1H!oRelVCxG6Q;LFfoYvOn-8kFjlr2nyvlkzY)o$sX3B|Mv|{0H!=5a!pOqxP*6ax;0nqH#=D=8ot=iHgN6Q z#W1qDd0lIZ4w}3u&1U9>0XeaI*1eecj`NxNje%gYEc@f!%N<9fhHK`GV9xVlW%G1- zn%cHvZ@F0rO#p8vu^T=TBT!YmOR^Oznb{ItZ9cI8hHT9(bBp=}suQ}}x11B7tJy_7 zN~RU1{i*)k@O{(f3{$CfV5KS+Jp04K*Ki za=%dM@udhle@Fxcb1F;@q{1|h6>3L1VB|auo5gV2>0nZ3wL&01u}l93Pkwp5eW!U= zLlCARf3WlUH^s7AAnjSImw{zFTNsP(okDl|>`#&96}@qnuCv)pcEYwXtm5Ex zg7#4K4PzT*9I*bm*rnFur-;0#*;1(M6+x&i)|ft1N@}2tWf5PMHh(YOT%YFw9VA}c zpVEH@(`K>nq06c8TL-GwwFrFA16XSUnzNo@$Ws=z!95)od>Qn?3ReDA$Y@2GTq;B9x zJt;Zs38}lkGng`%9XNtqz6ETQk4qQ&L=ilJ$m`x)$FC(1j(pMY!JSHe7;yZ1;J2>{ z?_ahOR9g0UZoaeidwok+$j2A$(0QuyOzwfi-m=95;VBr5IolUpR+4QTTx_u>^6^9; zuu(N~m?gl?zGpqFa^-W6mT3#E=S#Jx_G;9=yigvEF_CSdoNg$^X{#S%^}ujrB?JXZ zFX;D-{yl|zW+wV!H2BZt&Da{;8&rOOVN|X8qCF~AI#{i)dcti(YX&RlePU;uo}7#K z(~-YUO4z&ADnS3?bOd6efbM&nM~Na`S0ggj3B&LiLbH%>>adP*Y;0@SS0ZT+uo1&) z)#cHIf^oKT_3Z9(zE=0GbnBIOYW?vSaiR|0@iYf`V3_FC`0&!cU%-RQ)ICul-~If% zx$o;?)P-W*?Cww-tfw~%#9$k00EwH)_`{rdQb;FkSok_8>!8Oti<5fy%kv zq^S;uaHw7wadhU!&T%uvYLhv-(Z{pX|M`u|4B?D>`_}#s1wf%^&V)2t%{t1fh-$jq zQaCUSLKY5bf7qQ%odv(ARD9nT9q{U=Q1%8<0<@)Un3J zeG%O}6&_q`#02|Zn53=2@G50Co+AieyJO|CbmWb-vfKv+AJN%Ev63V3SIdQ1I^Et4pRETW+q{>daT`zdBfz{+j{* zf7TNH!zBN|(zUnzI6-f^Po3jCNUjKMJMFIKvXs}F!&WNadP;xdt5K^)#mB_F*A%hG z<~c48YAzGZ)XGNX*=BmdT=M*^Je*9gHM4Da;l4B|hNC=ggJ`*y^L8fxyGO?^D=1Wg z*llKUl86*e@Vm5QKS;)Ps#%P)mwqlVpd4%8yVj7sJtwt#8)|wzDDql)AF{nikfnXZ z>1cM;T-Xago9vSoAi$kU(PT%X8X?QZPU->42;I5gEm1b+h?*MG{&`9S|K-Vu4h+i~m_*hD|U7k!K!Q!VPML&&cBx#$F z{IoMGZWC(4s$Y#sFRb1;sdHHak$k<*{c&+>Yw<=mi781aQuoOp2JarOekdX(n2)Os zM5?ET1#DEhvim{&IGowTv8pJ{f1Y}OUjpN#)=j5`2T&fzMDoI`!r|=y2nawH&1e)v zu;#=>H#9zN^NthkAwdJ=f^ijEr16Gq|e-a#6sIQ5e zdl)}qSj^X{Mdcc7ehmt?D(Hw$nWGM~FABaUO1+pVk5|t75dIqaL^PpTOGoMlHzEZ| z9-=qJ#nL<>jU`cEBgXgm$$s{6QfRAiI8J#|z>bOle=e(wvnwfL-(3Khx6ETYlb9Qi z_i+W>yOk78pRKI5Fgkbmlp8-Ew$g|q;hN@*G7^`EBicH06^PGpY2%JCb%J@`W!`+0kJ&s)tb}>U#y2m|I7aLCOWLBs@e{c|5Y6 z6(ZNJzPshQ)B?PP!p9ssHeMfMX6Ey;!$1JmOB1C1#AM_s2NM08~JZaWuFrJKDq17GB1DLTd_UPwU_&q z;7Qdq$>Gg+W4N5ByoRT`k|1xnwD)^sXut(f!qRiE?5LBYFhyw-#hGtb0&AwFQtp>}Jg?lgm|O&zgVNG@aGTNA1img@mrq zU(@#J$?WginJ#{K<+99P*++5z-8as58_#k^sH(U47R4j|9eZ>sUb8n@E4^DHQP`oK zrRun2U)dnlcz6UK%d3;)i&e8K)9J-sXKN9u^1T?-+z`+u`O$ZqUumN^)OReyqud7F zTMGsS12dslPt2v-5PTYhHfS#LL7{SCnwnt}IkZ4592VJk`VJ!y++<$a!xV z;iP6^>exciiVV29arq~B`h5U^Skt^eNSD=GZv=5aaf$A#(5b=`rAE_7WgF|TJeNag zDawCQDiM|asnZHW=JC!nix!np#*VKGM`9Fiq{-Gw7dW)kz}Q|X{xoBBWOZ(7W-+a@ zE6#nPQ~1Rt^|dIlH>>bR`R~#(y}?bNRO!D+665wVe~QGoe~B*0r}N>wf&4NYMHaG{ z{vL4HgUz>3EfeYVMKq?vcz`|l9wEneuJGxwx%o8U(hShgBCEm>IrYZDw?@flH~G`o z>MLnqW5mNumf+vlVLruFYskkw^|aU)#D(Fbbq5@N&%srXVe9~>4+5_U2;Ml$9Eg!H zS?CZcTWHyKEoyn%9P|2+F~&2H!}zkoc{AIuAeYxh^`>G%Cvqn^O+}CHzG+1hF;F~C zotuGk;ajNL@~j-42^G}Zm*eup$60uHr)BF?1Ml7heiYmz8uq~V95%(S!D|hkoLxt% zRBy)eFa#=@$d;fOn_9waZ{$-IiC`JVKdTIgu5h&+Zf$enRP2EqkfgAPuWZALxf~w7 z^3)d;N-O)Tsk3s2+R{wANf#egn^cAQpvcd!cEoWM$!5ide1U~!>JBd9$581w$9~fB zD9Y=*?G`|tA>J(LEmTANH)L-Z)y|rr>~3QI%yd5MBKcS2ob3IIA|kNHH%ta))z_+l)mr zhW#yz_KEHa-9De$hwnJ6G8p^)bC!I2rnW;8>Xuj5hh5xnr`$z$tq+?i(k_+!{8A1; zbab&*o$@NljdE@0?0Zv5Z9cBJx&~>y4dZ(iU-ZY7(|LJe3f{Q+s~@Nhm!I>t9sD>g z2^l&c)ZU)hUKU>s-Sjz{DB0gPaZ%ru1bGH5rc1>k0F%E&!^t>Qs%;FF;ru=;ayK)I zL=qMd))H3RnVi|Mv(daJZ8u5&VU9*Ny7qGxd)xvCLZ?o3eqM)1l4xa0+~?B2l=eia zh${*=wj+VaHA&E)9R54jGimtCcnDuE;oGp8`9OO4#cR5Op79*op=S9T?l_$T)R-|n zE`9=vg!OK>IcOLKu} zqYUxetkG0X)By5o{VsZpPnWxj3gbwzEaDxt8{iRYWw8G7m$pq+JOU!!Wtg zt894}yj5f-P~N5S;@G+1RwYZ&RLrc})_zm>M?Iz@VI7y#Uqx!+#iN+2ZAh0=BalL= zUS2lGd^e|2Xjf<#3Aqc;7{)d|+z`6TEvo3*>+9qFT;oxU>?+LCF*Cr=Qm67Q`%^_s z1)Z8}HBO~kF#ogojT-z-a<9(-$^M)MeG;wJX=>M+VuRRPeshOY6SuCNOo*t~R~Dw} zfbheTn2kS#v3yqOe|CxtipI|ZSJJqD6n}nbS8*LVk%7h6b9A9-`#Ih>lO09R`j!SG zD&!2-dN(>PL8UP9CD+J(6npaszsNNFZrAX!3^^nhc_P2;j#g~!kAmdL@W*j~99 zP+=VG=>=W8UC$b57dMEm5mCdYxfil&^0b0!Wq6LhJ)96{P3@pFahDxNQ z^Lm?TkC+vgmnnUAjnfFMNDiT%>38#;%X=utGYGz1|Fc|AtITho`BZbDI%gg*|Gvtw z_T9B$p2SH!VA4P)#13~ZR@Hk#!VhPTIdP!Y*2%=`aadKWq;X8vz~0Kx6^T1A1L68} zFMLu4({)g9V1z!rsG=nGyHRwKw{r**xWBN)XMY%HP)?Mp1mWX>+s(#}{fu*m5N|(^ zq=2Yrv)&bkCnB+daSMgn5LIe_BlV{2`i*A!X~x;VF<5>QAKxu#L?CMQSo=vdsDV(% zI*D7r@Uuna3&w8DdlMwbXP04GU^y-(r)LgFWrSW{76Os8Z|s9ZMW5opl3DkLY~%i0 zO?d?~*%P@w(-^OFXio!eI^kXvj*~A zz;FdR3p%K$dDCJ_G?`)G3TGW07JxmD`Q^fr9pXE}$p(tD8x^>k2FDmblc6rO)`#^w zQoTPB&k~%P=~XwWQS?@}a{BglVbhw&aAx?>rWCC9V!u}e3-ecB9?Q+-|d}z-gPgXIj zEtYhwPJ+aqQ3_OMo!u{3A<(!NbkqGHX#Pc7;zQmDqr}!$4p)X)PyaW0_4c`v9rNjJ z%?;-B)&2gkMrUyP5R=_)f9Jgd*y&YO+W1bJAa>`;aqkLdc5;(6UBNBVoj{l zL7%%2!r$u0^|w3Zf?|eF!Gtby-!94}v%e6XM3?a<`GI*+i|RP1%&fr;$y5ruQf`le zhN@}q*Bm}CVj01W{0}@l^h;LX`5r&7PZ(S}{R zlZM^>Dspk;HlO02uz|WW06L`tf;CM>g@jYg@mFIN_4CI3%SO)Q`|TOs^|t-BoUEge zmK+)q`sY-E2#*)$l3Xuc;U8!fucFdXw*V7WiS;fZr}23LkD}BZ3lL3GumAIb`Z=zyD`3G%=cTq*O< z+P+;TLY;VM_>a8X1dkn6aHX*K&uL=&pVq?C`YG@_RC3mFTGi|~g-3Hkf`xfY4Wys< zj)0|Jg)Md2F3~E+H*Hz%t`41{5gc~{qQaENLdLx^Y{~+%~zCK%M+K+13*iD<@ zO=l~K+#CP;h-sQ0jxp!ji0p_asb!j=i&>dINs5FS9%{`QtFinu=}}ui-B(-ltJaJr*Qye*36b-r zw|px-EY_Xfpaoqst>87&){Av`)|i66ckzLiMZUyajhK-ODU_B(rq%)?nXeL%F~5ISCXs(qqx}GcM6JEa*D%8J*7Czz8G$#hOhPAl5NVqkR=MoAhm*{ z0uCC{9YvP!!$LU}?2=w@1grlh9J(P>zq@}% zZKp8_%!Iglj(zf=RN|Hj0v_RAf8cDpr1W{#NcP-P=I&y-b6Q-fYR!%sEwWG@*K)(R zeBNl_L96wbV3!PV6wBp05}jBjFC?d0vu)qC{Z$g9Iy}1yzN{uQpoBVl zM>IJWa4pm6zG-wBzwa0XeO-bsR!prZT_X0cvQcPIG)zGecu$^#;6HEK(fo&fXz>!_ zKtl-W885=T!`2(J$TDa7m(sKUF7_fi^d~HrxhkI7tPw++Mmj@+GNfMCnilMQ?(d2D zS`nQ(`Y?cKR0K=7IVbr{tQ9XwB43lL{)uu6B>8KfAR1iTcGNS9{hG%?HJ65;S6w1c zwfiQgR2Rfq{tXi`gNf|Ip*KBaTjYk|5Z_N4jMQ^Gzf;oqfDdgI!Brt>x9%`}weH0( zx4HB9m@&KZ5dQkW(q81j#!DN*ga)_!Z712^_x!)y1{{3};8b$*FesFlJFo zyug)c%@#}ZA%Qjk^im}6FTfT67*~*N^38uP|Ks%PeY1O?e5k}WKa^7Hf?Q0`!<2l+ zTh33TOcV;8W&uz)d`%ShThq}XT)068R|0T@%wN^a>kn1uiQN6yTOX48IE+1>mNr>A zOY2eS4kD*P_2Yu8#>-4OnMKX@7owKEvnT6kXH{;hM!~8ULmwQN`(bXW&mS%ob`^Z4 z+k_L^w*2G`hwh(M?K;hokLmJ!CLYQrm#JuGs~IwmpgiOE^;@^w3?J*(SoX4^VU5jB z3)TKle!teZ)qg0EFrSF(PaJ%}+DsSnxwvkMF%;cvSz3))f69D`R>m%C^c8?+J|*>q z{QIf4;&({w$Pxb+RXbou~<0wFCF=IWjBSSA2<2R1Ha2s zC$5S!dq7(#ukjd{hEYKK>HJR~UB*%GO-dnxB);`5V?PuP^U2<{?I)qDGdnu9I-ert zZEi-CMrO=~XCY{7$H?n{9k-T)Ip;o~t$g z%DWwsK6SnD8nP1`9OWuXtW_xRi;=6ZQqk2;M*2l}1quS{w(0 z{RgQo)w@;k_)SKJi+L{h6HX!W1jDmY*kvyTBCP|cZ&cN zYk4(OFvkdML3964nXTog$HS|ms`e+o#8^(Zj=$CshmlvgE5K?R`j6qh3FZ0@ZeJze z8|aCY+}3WDDPZPqIGxIKzS*cUBU8qF?>ZUryu*r;^Wi82+SsXuc{jDchb?YFP%b^< z-$nTN)+3WY3_CZWAiTij&zNSdwn~Di*0Z!&O(O#n_ZKb}%|}?EY8cRtG`r?Wrn{OTQ`Yx&IC7tTgyI+}rzkz)#oB_TQc!qpF_Um^OS_f&3ptd7dIs86%;^)IL z@YMwO!^PF`t{V#7>7S2ttJ(&s&AXtQr@&JL9+cu!*@)GRdhRz3i+Q~(_>Vh0ks-*6 ze)_EmwV`WF`2QZ5!Pa!2i>RF2DfvI*H1X1f`n%`e=&t>_%Gd9BxZGkAoBStEwe4}x zGOExYQ^m;`3T4qefi9_`BoEnce<`rxvP`c~7vOu2a3Y0}1K99(zjq7_2gUuH{`A@E zJ(DY8(7$EtaXGGnL#fIu{v?6*Y2s88r-X#h`8`q)3=!a0R2HP@) zIeTtQHzkq{9ygE-SBr(Jvsa2WSe9wc`_*oALnam0<~N@5c~3Nz{8Uh^4_ENBpZIc- z=;_7}8E!n-vXHdOVd7tLcz)@dL@X&2+ta;K59~N&iES6j8~P{}6Pm^{;zPWhFF#AS z@)Wb)#p}R}hSU`N{abhMczq4(uVR&D&eBp&b! z`ckBVDesBHAV?=7K2uOivqLflL+kF!{dB7iFgaLr=KkXC|*iC|DB zmLp@3)orO`Hc0%y0>4jJHb@uWc#}sTH_vUwk4EZ8z7Fp5RM|lSp4J@=y6c~qGG@bK z3sur7>o2o3^O0V%!Oz9mG=fgcV<_D=?#Ise&wo7)yJIrM9;V%J-w!+FEvF(=;y5pO4hC1y#asc`(-&zas&xVI==`Zi{)yRm+L*!#$m8!$g^nJL zSwEDJE0vMZkoYS`Gm4*sUUmyc6}J;Pkxgel#Xqi20fXN|RZ%u2*hCat#E(JUHY9>; zI;Y1w`Xt$QcKMXD{Kk#%->39maNwkJ33{7v6oUl)bm?=QUttpZ*^YajL5;R)AFNlX zLfSoaOzdP*QteyaID^~qEz9eeoAt933@d%CUP>P>3D)V5Zo(sR}}X zTSG_kD(geD25J(%hsK`q(v~-eXg+B>W!2DH!F9a(91~Eze_7SmI;l8A(?83*+-b2B zxke*s@S#S@g2R|VUEO?{LY6%4pkF;^A8o-t+eFHt)F$rD)K8p69aNiRI6f}JNQdNy z`^m!1;m&ngCmn=qSbq?C;M!s@t?dCeV1d6CD@$T<(=&wa%+n2|BxgyQr#l7Zj#88o zFr=8HnspdTkB&BF;=C2YiJ!dFmwKQg4PwOr&71F>4Ld0v6|9t?BE|0V%{8YU9q4yA zypJYw`Pv^l@kW4b673I(!2up^8W~z)WiEqpE+eMXgD&MQK%Wqh^eW4hR@Hu5ci6^M z{MG_wA6ifmDKDLw00iMP1(`Z*4d%}yhj*Cli-E((7I&dq59g{}buV?;eH}^UJ?AVh zOC`&sX^o`MZZz1nPw+(u=1=K-aevYN^d=VF5eQTa%^i`|<&aY?&UdQaFQvW2gGNGljQg-X8 zYRh5$xFe$T}1oHxOPb0oRL$ErccoMXi?Q4CCt3E%vSH{k9Qmy zUtjAh9zos{G#h!S^J(g55`kS^33m{mt^^z}>X%G6VIMK1(F&HW@W^S`M?B0ft{g*M zmv5y4wFl1=0xg;CUHz`KPxRYWpK;!E0}NmFz0_0t~I)-F}9Qq~KHS8z4>!+Ad#M z10cnvEw+j%E{jTs9~W)gCtm9os5Fbb4mEwJm&F$=q6Z|r=drNHG9$ap(w~`ezX6i; zIy5VGtn_gOt_q`=Q^kNpcj9_L#u|0p_jM58zz|mOt))JVWp>Wtkmtp&x4ganK zn2@_o(yx6zyqhYQ3+Uf4Etb2j!PT?iMcFDJxlmh!pgO~PzQKet+}gA}CZ^s8zkDA3 zYIKgJgUhPQOz_cMDHG>(rA)46;^;fxq{6F(j!ac1VJ){&Pe(n+1-GNM)kJ&eAM8^3 zd}%%!;DP9p-C4hTyzxq~)Cb&q-E93EkTos8# z*cALu>*;r7dZkAva~0#=)Mq60Zv3zHRsd*O$vVOp7;e0cCaYzd|NLPp@XLzf=2N9B z;q}Kw8Pi()3g`~wrO8`lC0zZPX3}q9{!Mjgeh8-SCCm zC(4w3QtP!e@C>dny12dp!>&CQ_$|r%C$H7&gRptr0sJ??*a9Mt=2wj&1SyY77%viT z4SZ%hLE*A+d>u#IW>xu4Eze*5$a2O2)M6y2N73Uw5VOWAa3-J za8)lG9F_>RZ=cO0+GB?=eRq1#TX!QH2)I2=15#(&%Ozf^GER>z`YSXgc?@X(G* z+Q%=RBu{fbozy9m25xJ3;Tl0s!ci0}p79%%KtZ;^^jwYe^2640_A?va-v z?l~lD?FxW$O|rCCujGr|xrYr&tJ?H@)FM&Sh}?JciQ88R5MevQAt)x1c+M7&q`Csu zVh1ML$n*73e>ik9KMU-%TIwkGUHUbKU%&Pful+JnD9=z@`BZpIjJbL{_qTa?6JA;l zN`dx}W>BuF7B2%xTR9VdnI_g@%9w+{Ww!b%L9gUUes6S0^p|I!8~q_S^3D-%s`FQ{ zsQQ=#Qs$~gxo!|jv#^gjn_K13C>&qj?wlCiSVv1vLIUS(i*uRu&aW&c)jb^WmP(SK zL;qjsByE2YUm4H!4WRhV3ZYDcuvi~JVXF)D-c?k!xPP>5Y+W2ZE!a4*O3ZatiL-+c z1-n4~#}X=AkDh{IgPe`cL~`7c+iMsMk|l|ut$b}y9P^`n+$;79K0kSo?Nv~gG!CDn zA;m6!rSJgy#4CNn{AQn8cm)Sf)1Fqo)3?3{@Y1S=pwpAtd1JTTMr84L;pfYz(_tD+ z52hf{;n8*z&C8izZ2Hsq*(+Krn#|$#+;g92EfKzI2G7I!Y$y+@P0YLgT8ek{=MV4b zlEbn(|9<`Ii(ut@!dHwKkIR$3J;1=s3|JLzPR3&xoeBy|IN zVK=HQ4S6q*V*OQVTl?c-a7*SxlK|1;GEko_aDgB33rz|Ja_P}$E#29#$Tt@2BU(fau+7< zI~;7mf2CFVg9^5D!f6AMp8;scVf6~XN=J_b5Y-((db2bi>Y^2L$`8&av{n-HG9Qu| zSTJI=wmOT_zc}>Q9`7d+g_mj0?wRm+?Apso#tim53E6C=rg@{vM@v&XcB#z|ie*FJ z#kH3oEjYQo;_Pmlyf{cOBaaY#+;RBRO5le#Rx_5v!k_m1MB^;a6GN`sPl2PwxFlEX zcU8F6bK_ERxIJEQk~~PqFuY+aHA9&>Mj18(cTlBk;KBgr?cixRWSN-Ri!45xqibix z-En~+xnCVzzcm1YkyB5Zy4clA5qbo4ga_-&5)>2db_o3kj48!w=MkhE;Sd_Bi`t zIljn|_vx=rNwG9B!;J5(x+XCJd$DineAvq0cxJ>lIJc^kHyas|x^l;0&2HC29#X-; z7~01tBxU1FnZJ)d4O{ey!=1rwr+kU!sHz~ZF13WB1pAV|546gA@hf!jP57h>ZE(C# zW?WKZw)RkpL{<6hYEi(R85bVSA$&R?{Z;;vRx+iPKKqHYa1$faq@PE?tUY1tA-S0D zbPbxq@V&)!mX;!q9u85bpo8xMs%TRcaGq6zM7 zvFG`MZ~JwC##p7SW-vt~UvumMC(Wuh%;cfLpoC`vtWeS`wQvqtgRJvqz;tq1t7X2X z@OoTKAi+ty+&lqMVL;4(_=-|>hpAp9^POk4s^M6mLtDJ_^cEilmNVUb7-U*E=V2aS zG(2w1dpH#jQIhW>2sS&|eY5tuld&qq1GxFIO(fGr4-jLLT z1*VP-3K5Rhp3^Z&%w-E4C5;O4YGa193f> zd-;l?_n4i!-jcRs`fQQH6J|62XXSx_ud}LiFerAf4Z6sHEMepBFovN1S9kZ_Uh5B0 zWHFuO3wdTfEdVO*>@O)r9zt<>C@m`reT<8mKmvk4Ss6m}(ut`(3VtM_*U(Vxou7=# z2L_Z(i|^Mh0{s59(8XDqi`?P-xC~rFJ>Nsi8v#X}_Gc%Iiq~7f)3!hBVsjC##{>mI z7?^}V?Hk`!cc_Awng;QND0h-tLJM0-nKQRye?_~ca8EmBVK4qK>de(L?^KUY+wRZy z2+gzi&|ze^jQdYc?W>YhsWl~ z$bUuCq1kSP8+|Oz;hU=026e&KqDcC}wGPgbzLb5olS>Up&<7O)K}>z_y*#>jOFdC) zJ1J+`HjB{ld2}_8OlMIHT8CqW9v17x{ux2500tG}JxwxqTqGWz1tYy+thuQKj}m9` z4K0qkEnTm;h^pXe8(gJ!?T;%MC{pW=9B#(dE7ex_UOa2ZEfv)hh+?3u1fjWKK~##W z1!cNpfgs%9wKmaC(U(n^)iiSu-&$ zwDEBRq~3C)3VRi!;gV(OzZOs;8C`z4tp5HJ^wCSiyg%F(VuX-H*t-`sy#$~|d;e_I zi&^Po3+}Xe6u)NQkNSgZBUHyhD6p4*eO?k|2O4Uc!*|VU-QLDJD`B5lv?Sv9YM$Tj zl;7t_`W1XuBgMJ5St9DY=aHEIt z!Ee<4T?RKBD|5H52N^RDf0cRKP&TY)Qcw*WXp)o_VM(1-OQ=5~P2%o?IqO9+2Wx#l zmI59TQ~almg@xo_L0Py*^r-=j4yu4ZF6}^fjMI$Fk87UxEzVgJkZ#z5Ue@LXXE{!M z|CIGyp9vLD2>S$c{4FBkj&Wl6<8(N@6*@(^81Pje_;Dww)(TU#xIv*!d27McN|@WS z-CS;wH(OojYxXh2NkD!ZOQdhoZ4dW%NaR@x2v#j{)(7JK?8c7(cL-5u$Pj^agEYl< z-1!D^@#MD5#ey+#MdYyN_}{FaMyE9%Rdd-{5VhuZjQS!?WtQgBMJ32c*G2Uc&Tpl{ z@klec26YR}KXOJ2x?268QnFDj}%K^6i7JoLd4N^M|0=xw*bL&SNr zW#hTud#% zg2@g5QCCVQah$4^F4AD-Y3@QdSf8kCUAKTvU!{nY(jd|^UnIT616pU@ZPGy@5g1L# zn~70BfJiykXPacB&5GK(q zF1C>Tsg74A?^XUcFzbpqCY7p_@Phdpi!G;$1AX}P(tr}oV9eFBElG*>KhpE}WPn8Q zRJFyl#|X5dyJ;H7I(jrh#bzni2*zbHpPLvK(m>OH&Ty;qTP>v1V7eB3KNW>dn8z@} zE~lEX%awy7jIdBDD$}dxzt?ce{FfsUL-C&h5?t8sf5~S1BL9(;)$0(1=Mbs$a)nU- z*6?Nb-AXnHXs;#kU^>juXZI-Og(K4ah72*_YZNTtNJ(Xeu?=yR5L|F>GWw6-c?hwM z7rZK4a7-ls={H{2h1sz(!N3l&XIJ@m#L#4N9qvud=7&nEDz0?C4e_qlkdnj}3WV;e zp`(VsW_Yi>#tvqC@@nbGAYJsy^3G=+(0#VXu^VzGkrUFYX^#V1Vc@$nwk_LD%_54+ zxpD;Ybu8GbHxLb7wmUi$JTe;@ZdSSBo^BJeD*N5jFV77zE$_pr!Nf&SyD3XsQ~Q(`RpTy=F?q~SvmX`_lc{ct7IVe*=CyR zF3r$YNA36Q_8RRX*_4P~%HyOHga_ea?#>ztD(*Xt|ptn@za*qOSP$JXoq5~Ih zDU_*ElrZad*A^E`(W4fY^9cv={S0N!5nX3=zJyydB)Mq8ILH0edL(>`gmWRZa^NDn z#>jSQ_0`%RjEJaDbkyU0H1>KMDxc?#gONvK7Cx81TK%mm&a9nMZFcUFL0g~~qF5R; z*QTCuN;p{9Q%V`a(F!p+x;Ntqz3lW|jao(2=X-Sk<6}Z|6ng2S_v=N6xa4kC7kUoJE zv--F?K#=oeah7l?1JZyPQ#&FW0?!~^a(Y)#P0Vr=2=PgyGeosa~?2`MUU)XzT zLW^K~A|Cb!C)EUznzl$gtentkI?5gV^@**Y#@crm-wP&J1$%iwNCBv4 z8EKvCv23_7*lQdXL|n?81%(r`(vI5*Avm$)&p1OYm7oma4>d9^9>>pgcLXuyi~sms z1QwfYyk+Y?&0-^c3FeqWH?$(`gx(Zi4*JQbA9n@)CyQeR3;bT170KSA4BD~|ZSFLu zu8%>QCoBoVMhmSrKy?{a+)z3dms(dn)xC#aAX&vpOt0gdtZO8VdyJr!Jy{XXed4CL zJp|G#_4QoXA{J+m5-~R`X!(o@`6xfH$+!?XGgA3?Hew)wdSvV@0n1+wn5Ub-No&~R z$NIXw{xjA}DFye?!TgSVX;4^NjupEWqrZZY>AJ^n=#PcTBF6laJpHscEhE+#5j(AY zYw}M}KUFmX>2sLJgiAu^Ns--ip%V? z32>DjK>3VGNUnA#db64eOQe3GU`0 z?7riAl68rKEtTC{Ru234dT2$@?VPg~BSN9g3M&Zp%2uHeBrSsVxP`srxkI2Xs(XKJ zXg1+V64u~@WNf~4gWPTlEH~8Df5d^IJ1Xfi^Ptdol&M6;+xaGs< zs4OL`vHDie=xR;pZMX3lf}P`R0Mw&KB>MD@9y~S-1_b{U@zuQw!7rDU5D^do zjd35HpEnWaE;j}0DNwDCyz}CiwBM@U`E$(sPALc0Zxt^Xu$a53`~{x@8G03+U|Owq zAs}i@Nbv@_{{V*^adpwbSKbQjJJSDw*qZ`964uzs@1w<;d9#w{<3R8m zjjw%+^)i3?zJ6MXxpd%oVlu)1U`ZR4bl%A3%uUV%8pawtbK7!c9q0NL~o1Y~@MO())HBtZElP09ZmWdf^X ztKawh0Cw2%tiV_7ta)gf*DA)v=weE9jGT^TcZIE*DLvto2lEww$wYPFZj#H0btRt7 z<%u(xt9mnRomn zQZ1C?oX^GQgllwok8qwP4zC(eFoe)yF)lC>)xq6{UbrO~JB|8p=x4?~$LVga4Y_1H zXA05m3cFAHL!BVkDVoBvj9LeEMSp&<94hzzXWc3F1a~CWg^c8q1SD%B zdeX=r%%HM)YTfoY=4{{MW7(yj&%}z)VQ%5mVg7tATjVoVle>*5;qSX}-4}i8=8n%r z8BI+j^V5Ap;j`KFk0d%ZB3{o}rhhsZ5&E5BT+Ripb;g<)#}YlMXVt;Mdm%Qa@_jK& z^zBOh>H*5tethZ%hiJpnsiuCQix${1JWGC!Kn1H~#B><@to-n4YbD#~C>nz$yCi@!dHqbp=c#C|*YVJg(}A*rFhP2Cl6A)|A7XlhgdwcaWQJ z^{SqT0n>m8-=E zxA$r{UMSC52G~E#>srpK(Gr93)W3BZ&~t8avhSt)xw^d?N1?nmz;~l!H*a4;@^kpcN?Q zW>P02u+imCY#1po0iM_h#<17Y%Du)>@`Z^vKF~8*pf{-#Z`~&ykqWw$vWjzlH0*^60zRD@(or!ggz|ae@26o+!21tATsomQ21Czzjg2WrWM-r1g>8D_CB4?SEqbZ(r~ z#<9gaLL?u_X&hu&9gCznNr48&#xo1qze%u zN&EM^?td-gCgLJ#%Y+pTjE?Mz51NCT<*!p?Mg3PW!rtXbBJchHU9Bm$+J?HkQAw0`ike#(IHj{h~WsQ%gv zxJ|(p4W^*xAzs!ir>l^XGz$O&B!0du_>cuO)#3$SmHFc-UwhR2p9^t*Tu-*ZrZWAWCF_DQ$nRM14ZX0OUj=44c&#G;t)Q3vP(bj?wwt*v<>wMsGN znW4$fRHprETYK9xYsx^IDGjro^V1dUf2{5GPVZ#}c`d&6qXS3fp?aw^db~{xa-cC% znG8cP!4{!<3(w>eLQTFJXr!ErlYJ-enLEZPi?3%61(URRQO?j zI~5ZI06F^9n69iGpG6-nk7XPUByX177O|!|Kk*(gpg>cytK|g+j=n zBIwtoP0YB=Ii)kHwy2MQ983+4$y#lRGz6Nn4CnZg%{j4Wux*mWkwoX1wQQ8rYMH!H z#lr*?r`N}HwOV9OZb%z6LS91g?8=!1$&${hx zlvg#YtsUD_48$}1JlDKQ%jFQ0VgBqorK{tbu@In~8>oK*pGFJBZt%1{{Lk;4+bcZH zvEbSDp^{|slxAVWiY?v9xb>p@maY#|H+r=99x?LM7GnUoG&A$>2Q3iVAI{7I?`om^ zpvDl2FIG9W(Bf2(`)?a~V$M5iZpO1syC$v+7X@9NGPOTmi_-69;5MVr2l}nV<}X~~ zhr3ii%U{;$R2BLR&jR!0GY3!Va6*SWcrCeptNAeWg)ofu#Zu^10}{JGm!his9Pp^Q zbuseMOV%G>iZvmT3MaYG+`3N5_80cvm|N}W<)pS z#g42qo%)2;DbpK%I>Y)v{U2eT%g7Bb1qv%vPEhcY51hXmJTZC*mDaGdKj#6rzG5d~(owWf4X?QSoum7e*U zm&Wwul}bw#Fg^L?*Cp;vR1I5sZb9%Z^~{=~qlSTvsUGPLB0FrTj(%)V&O+^4Xt%S@ z(f_Fp`hfLXLW^-}J9`8578tGu00oq}U!Ji2;KomD7eDBLh|mJIkcE}cSF&}7U4b6c z$wo)9O&+Gz1MV&k!Jc>8aSX5>;!1idDw4;p_pFgHXM`ll)8~1StYgB63A@cC0%rdo z^bUrZB?i6dY8b7yK4{f@A=hJ{6vsJ-m1}&6PH&J5MU_|1&x~=Oxw@jlyLq8y7uZ78 zgU$sZb&>w30{D)Iko2O(;lfJUdV`&eJu8vn@^dTa?U~BQYipSkqFi@O*UDkcY5_L! zmxe(_aIk;k|9wXPkiP9Ho}Vg;OY!chWX9uLir7WO-MmoUQ?j8J>-*3^`%Kn{OyXZ z#$FcvmP8j${it4OueN2Ypy%a&>uCOBc1)vjBVzjNzP(D`i1O0J?sLq)-;4Kl-KfVe z<%F9y>>{CldcQz!3@yvA3k?P84mio+rP9m9 znF8{$rd$+S`j=0Juc^Td;!nz88K1giXU^svGiiHqAd5pEJ-tB_;F_Zqk-c189gL!N zKI*Q8cf#>84-d6To1sZR9jeZAAcYm>@i%txRoD-6#D32Pm>>9S)xRZm{?c=!jhh1p z6@$P}JLcv_CyxzDLhFjCNN%_%rxZ8$?ZkaOCIkG>T77=&Davy|6p*>lgnd|P7-Ptp zp1{8tZ2oP!#@j)^?r<6VB%Nwwp_Tsmy!VS)8lEeu_uDCNYCSiale~iXJXqh!CIM#J z`ubtj@8_rIN_PdXn~5SIRh@K9e|-gPSU(W${1q)jsnVRv)oz|J{Atd3qwa09IBU1= zrJQ-IEtUni$f>3_zaOOG7TcR_ZZIDfggDeY@BQ@h=5TiGR}MbqeyuN$T2eV6SF&OF zs6oeSm6{Z471|ROI%2mOpm1RvNjdyCHCV8RWW)r=RN{HGH*LgL)-mIErKw8f6pjv1 zGq;dI+-vE*Pa}4-Mb0>2?`Ox}t-u6S7TdeyxAV`AJMZ!CJA>1^71*V#z7C%J0qr)V zr8dsD>-hx4W{CllxEBsd8e1`(Xb-Y(&+h@$*?GDQ{Cdf@thiHn$ZPD+$A{ME^3fe5 zd;W0%wvg3GQR=E?BQoK=*Pl4uJG#}D{rL3L)csRQ_ovyG7sD@T_`_sawnF9)U;lha zOYG$ssaW=>LOT@|_2I|ACF)s~zqBSM`1fF-Yf^DQo=F(7-oC=LzTW<6rp1}*bmf=# z!${8kLJGRC&r;1%c&JhaS`?~6-fqp_d47o34A*hDV!hfswhxW_i9_o(e);Cyxauf^ z-L*w10QWZ+53h_wSsPQv5o0})9HAvxyiI7{}YcVPfRUX$)9d2lrqOKt{hmfhPI|hmRyDDY)dPHTJ$r@WgJhsWwy&ug_MQ+r?0Lg5!Tg zEA+$`lUd33Vb7S7shl=ODp)^N@*8NYo;kVpK5arrTzy)d(ttpjhn?f5+MMG4^6{jb zs+P+B**s|$aHY2Q9O?qRGS&cfaCaqOtO-9Ak#Lt2$yiF&b3pZTK4AD@`X z?RH~wL|j~4p7*xZ-3&5?*Mb=t@Th9q3$@66gp7a8sfS*veWa6BqTU-D*{>yay&HDd zef6^S{&yzLC_~bUc9bkdz<+WTvu#Fjt!u$C0IWC^R6{0#ScQF8{I`=<}?t% zJ(Xc?blZd;zu;lTTGm(C_fDW)! z<`vb@lVP8dm;Po$Yqz^^?}Ad0wg2NmN9c;lo)YPKgRn76-S+WO-Nza>1J!lT-jnc#m_~BIIfBV8CTNg z6yJ%HaBQh!AvJ0!nzcHW`4-(dKe7zdir9uYj=;~A@IwvuLORpiVCKAz&6Q@Q3!!R! z^i)XED{=+dOu}enfEB>fE8UF!@NQCW6rOA!qbPtng^Q@fK(7~)-H<9U6ur1$+EegG zCL%(sty0vrBFF%uQ+>{-Q>i&WrqlZe%XEd7o)*>T+Y zK*#KyUlLxkDP_ETXsh}?0O;a>J=$tGH%&i5EB=7q#Ob9Qcjqettqo0>d@W?Hl%JIl z(LQ=ec4~|FbofxkeRdV+7HBGx_+D*r&#Ahq8}ZNKS%vuEIu-Y24sn#?2i2UMu6R?T zR0GxMr@DJBgvU=XC(!ud7C&X8Y;IS?P?Z=ktgQByG`~F-uukMea ztjYffE-KbozL&^1CgEV6BF6opGbYwlC$}8O`IX#Dt*@Y^hF0CEk>y)W9@n89(9oOQ zppCJcT4nDixq#ZT_Jx)HLFGOzD&c)_Q^r;qTxC>;8RluH_0KE!`C&2XOy!EX$vt?H z$5J8Tae3oqd_?}X>l}uqUyXC+h|AUmEex`XidXTpdWWk{AHHM^W@L? z@@eCKD6^7sAj8h-HdAo4hOsMR;8oUqI-94(BU%d6RsjE3R-ccUm;Gp`&B$q6hF683 z#e1E3o1H&SF3SE@XphwNd;0m@HqB3EhOSl3&5HiPblVFFJr z9qa6VcGrc}H4F4|$=e|W*d4A$bA>q|H9tVfy36Di#9j~YPj<9$nVt6w00hSyfO z++Fkln&41k;6da9&+jM`QdI@5y6dmbe2!jVe17fV(Z5~%J~XV{q;1jHiUckPQZ?b>NlO)H2vU0HRTm;gcx2*{FcCV7{Q&{XFd`|UQw)OPGWw?~oUp+)w zXaytAOOEHY)RLsQlwZ7jpEMhK^t$NWaGwa^;k&rfzuYU!zxzPwTl_It+KygW`$S?U zc_qB2UD2s|kJUov@O;Y>M0%oR(ZGA=6l@ohZ7tp(OoL_TNjQEsv)cR`JH(AP$Sp4( zw2TK0_3lm8SIOe+;y9xrtktc2`J`N0MKJcRp4{{jN5tOLS^4E$)#GB_U}pC=|Dmnn zeD|no*wgpK;=qgAd^6nHr^-#x=>3t;8zF~dmtLL-rXmWxgYf&*5y3?GhH0~ zS82!BM1nSpvl&^NlUs8kTBo1dSr*;m_&tGH2k`>7L{QAOv0XPDpJ@;}X(R%72OiiWu-t zlRN&}WbaVvPy4;y`^<}NbM(1XXD{*1yr27Uf8~p5{|fUm z)msFdE=~BGxmCJqHSf(kHt%lsUU+l5xG14~XaA+*$7RQxS$doDxcP%Pbi{VG+Mn26 z61*|9i$k$RU{aHg?ul!e8on>K`>?Ram}T!g`FdK}-JMhS^Hd58uDQ0PWtK+JxeG1z zQO9mLyFA@FWoA!^YEJ$3^}5ckf0b8A7MF5nNeih|gfv;LaXn_HlWpHM&2F~ittq-0 z&cRN*3;u3>yC~wf^|RcC*FR>|Ez>$O>vrxTud`iizaINz_bOyg_1>bOTW2=!Y`oMX zeXH!B<%Pj6_aL5@YVdOc~CIX^?fqWiZf6wZIY z^x5O;C6b9tIC-|-y=Bzna{k!zH95P(B+h<|G!|U1aB{I)xXH{l*ONB?n(XW2rP-U5 zd*oNp{{B3zbrKfqD|;Uu(x|+%+SNp_w{wQ!zM^*}``5^9p1FIi!KEjYZ|&#eNzT~8 zWBN*bdFq_?w}W^VY0jGdz*KzEUq9s@mdQF3!Lb^-!@}$J+GT>gvrk+&-(hR=$jEZ} z=Nq3su2Gw`=Soc#Q@_dVvpb#ET0JSyVA@l5`Nx{pGU2FWH>b={XYF`$T;Q^)RhCTj zgd6U&&sGT?&68Pq{OzVfXJO~8W3QfMr|9@^S#$D8?SA2gTlTdjf4iS9{PD2ph}$tk zrN<%urrGXEr&kI(`7ni*UCV&ai6Ii>Il^K}$SF_}sKDWJAe8;Eo=8K-F zjvZe;GHtfiJi4YBbUa7jbp8e9v)SQC!l!Gj?8>sdpKbnTz1yA=uQPJyO^Rk2EG?SN z-Y<-@XPgq~e6hGkf0s_?FR!x!%#D*T)E(MUDmzWM>EphZ)X)PjzAWrIyrI4-c1iux z&}F`F=l@zODJ}N=Bb%s?Tg_7U>p7D1w^pcl{?b_#k{bg~pl6zn24>}(_HMJV*N=5q ze(Lt?RzY0evt!Xd+b1pma^q9^($;<1u}Ts`d#}{g^qZW&?0Yuu?kwrvT`X_YzC;S2 z3<`c!voonuqnn%KtLN?~i=5@$zWkUt`^#fK7oQ8$Ki@Nb<HAw4;=?b}!LgvYA4q(XxN^Wu@ d`02ui|IB{B-)8Q!{u;>u1fH&bF6*2UngC*iGh6@w literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..a00a64fa003fe5ccace0398f0ecf125d87964042 GIT binary patch literal 8309 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bbdb0445e7dc8fa31f07d8c862b18fdb853922 GIT binary patch literal 9040 zcmd6McT`i`x^KXZD2QxPM2dhEMOu(5T?Ivu-fI9Q^bVnfs)!t^(xr>Egg}Bo=*>z8 z#Xu-h6_5bZTM&3N?tS*zxJLmrOGRDeUYt}Wt`IX=In@@GM)fnj5=pYaXgZf=n zeF%ga51zMA90&g$8)2p3M&+Zgb_;^-<5&PMzd790x(R{2N}&H~O9S3ddfqkjfk4jl zQ!XlXeZEyt7!5a7x7X5w2!iJmkl(1-Ae5$5;8LPu|Lgep?}uX1V#B+3c$+n;T; z!JYDZ1};jUKkmnpo-F@T&6nTEN zkOR+@Vki&yuO_}Oiae%Ty4)%r-f(VdQ87_59wj<%Zf*r{J9{~O)jNN72XBfzj=sL0 za!{zhzrU!zgs6wN1N54#tSnSa94am@0$Pap1iJg$28g)(@cuE#KgUsp`#kV=^7M7` zaOb9sYkS`V;j75QLz(EW-yh!z4{-X|Ozu8^E(whwF=;t*G45;E<-{cA#HG1}=e!{h z?(^!ZHw^<|%j1ETMuUe(YdSZt=ffU&pHMl=kJHF}U@onjreg23q0@^kc8af^CRdb| zg=VP0;rtW&61XBWS-WJX_^Wp^u3ktHD83pk%fy`vb$NA~nwmDExqoB}sl+*-+dmrg z^=z7a?StnPRQE~H` zVX0xKE0D~D;pT>dgpff}a#Amdl)sgVWwh=Zcps=WjQzv?Lpsn|GF( zRTWydhT023AgjeM^XAcLw0P*x0JCbxL=IW+cdm*SH*SPidrZO_d>42kjx!`pP1#h@ zqD+-ooM}&8;Pz-esHt`zH=miA=`jXt(c%xuT^YsSA*o(Pk$=r^sfd3cKBy4X?lk96zMt3)gR9PGpBnX5jd z$O2PWSJ%)NM$!9>z>n^x2^y6?FAWGGZzdic?zGyc$S8%*)Ui@+SBMaDl|symb@D`a z#{KiY1bmG{j)5l1vMHf=DKpm-QX-x&KJX3MU9}B#=#y_azI5LLb+G!D5#FDxC?34) z$tvfInkdGO9{SH^c=%De+==6W3nte4%xBV7M7ibrjaEB(4;q(tJHU~Y)F6qe4F5@n|>HO(s}{cz_% z6chz-;$f3cS;RGBKavqNX!dqOw#C+|h35TjjX^=9UQP(aCVfDuA7g?OZBO8Wu1(Xs zyN%WKhM5a6+T6IkL3+zV5Qm`~{bnb*jk9gvK3VYJI+x@>--2-gx+N^((AUFQ?LXl~ z`|x~Cl_WuF=O`~3$V|i6w|d08MyYl(H>~6veKPE$i9Z!2e5IqKL(FK6P?_^X>U)-? z6OTc$_Mnu_mF`>1G0+x)waE{Q_0>gavw|m&BO@2&WUrcih-1HEHsZip1YAgy+IY`$ z%idx;S6IsX7?$p#atk=vKjhX+7hJRPo!ATc39RydWv+X+F@$mp6E4Q#&LmlUZ>E%x zq*;^K*AMGM79Q&D@fUm36fnl+NfXUM-T5k!T&b8jqWeUX8Jm=|T@A2zA?5=G6AaUM z=>GEhxc_8^NF>ei^^LrlWfHL>B&C3SolyKsM)qw&* z+MFMogWGk^{PW-zuZ9A6BK+$aXW#>-0{)*>x%>&8T3TAEV46%l+rz^{CN?%fyz`*A z1sJ7v?YZTyoQ|TiIw~$MZV*>jcfE=~Aulg46b^?k>^xy$@3QhA=jT<6=leztnY#Vh zd{++l*t|CMfZUla>*L#uSTuGTD$Bs`{1_JkJC`z_7X}j-7x%5RdUZciRaN!-0r-9x zr5l)JA$t^s5-@lQb|OQg(0#mN{oPrejyI9?Tf4xz6Q|#D4M>3%dSZnc@To#3(nf0y ze#?U8q8>$yI!b1uBPEpx22h_(kHdv}K0Kl+X6o$ekz@u%x_&SQe53zLS{%C!iTr`R z@vaU2h7|>0&A+M9weY-;D>W%M=f5cD`|)dA+YMG(?-VQ$U$_t40>!|{NW>wxNa{c+ z-!fgWpD^608|++M&}-MO&D{ke|}zoS3U8bL9Pp zz&a}!7YT2OfruP)o#Ur2yvVyeCmlleHK4>i`23(Q#?pTr@u%MaMPP-Dcqb>PVy2Ld z3*h~ikXTt+iv?l8=vkFRn^>Q2E_`mM#Qz&3X6Ky~E-GIZGAWnjP2Ag4ax;Xiru zWTkyCTZSB>RI<4mU07In7r6bNTt$n~S`UwS3h3?XOB!V44EyO7xKNb7>239XZDS)D zXz|_UQGAhAqaQNz@mz0KRx{XC_p(rk^*mZl#A*N-()D9`^Q(wlBwH#-b(e58t-hi6Ud9u=hBgF)rgf}3Br^L!r7sPH5yVFFHu~v@WKFUlDbn}c>luYD90?9tA?o+yL|^4m2KrpJ3Utv#``v-^(hcy@{0Ea^WP zQoFmimvIKv>-wc>DWj|!YnCQktxFBjJgr=NR@9;=#DX-^($X$px^&4NWE4wpHje>= z)l}YHuATIKVZ?S@TF~Hy(TQrx3=+a8DJCPGde>980u4$aE~ZS*Rh5;R{7D%ZPL%Ye zjV-MQZSz(0qqj)Z5EHR&w<&@nYNrEW` zZA+$h06oz%Y6#iizGg*Hi20sMU3q{x44%evDw@*{4RB~E7jl(!8(D$MY@zO3ZgzHs zvFtM1#Gvh^#2< zQdPf(rDb-DSJ{j2-yQe*!wz}N2=wC83Hg}z!rr*8y5<2bjU42&$ zd9J0;AVC~>&i{?KXS5!!^~j?rWugO%rRPIQ_b^3 z>CTP4obET;^>O`QK-^1nyO{`NvjLs-{80|F_C?T}d zlwtTYuu3CUaG=6g#cBnp-)T+-)Z$ALp`4dxsNo}+Yt5Gv&qrw4nFwNHXBQGOE)%m@ zrzoxl-<2!vhCDzyy{Fo!B&fS^j@G5mR=@c4cMcTY+e#O$O+tz*C|J_cy?7ZQ$0{^d z>ydu#!H15LywKA2UJJ?ex!%l0*w4fL6~wc;^)4a!-ukTf`Zx8EQ@VQ5+m6o8r3xE8 z66B_O{}ou3QK3PJ_CRxxf8gdPwXNNP1f`^rDu?bQ{(I~F1*Ik)^|R+$B^{qxhHMQY z*>z!@{RQ>%-9^=5_m_rWAzP9BmoI0Q2UhC98@+W1SoxK@x6Hr)Zc{_eTu|7esjc0& z()nf8re;oEN5?-cZic2R;%#HDL1g$tl*C?I4DbFIJczkhl1`xo;5bt;t(KUUb^Lv9Ym| z%r;#2RLb|29}N&tFqI?W;8CFGigent0@|O8wPw*Jx#GNS=4uHSQ-k)m2k~UHorRLT zA%uFdW(E&PJox);e=D0(@&GA^Q7cRPo`M{@H?cVr%U}f_0>^?Q8}_Iw zK7$xgJ~;@rAbrTJym0OQV^uY^tTT`suS5v;4i5LW(M{=@GR4?`1d=ltDh9a1e&&af zjc|`2|8@}b8aQVAZR(-@Eu!^CdZx?A7Y|#iSRkwOrj>>1Sq+7;qi{5zX?|UNIDPmA#-Aa5|J^ig@Gp)p9lF zF)X1}%4N_zhP3rrN4az6ear@n`|+mfAB`(%ySo7g`UkR}Q#Yz;E7XjQ)6lBQcKLh& zOb@nRj%Ab5przl^H((|}VZWIVFRXV%)1!_KJYV5*6@xMhAS)pA8N!(8K&Ojf&gcYA zMPx^zdU6k}EtDi^0;1E_;;0KQl~uz2uA?Jrgx(Y?DA;8fNIxF*5dPd zxAyGL{nuH(5Ra3mPp1*B!>n)y7=xJBQSzD7zQ}4+QC5{plhu@i2yzJQC(njmPAVhNa5xK2r0uXTKAtUPtumg(IT3 z?Y!bS6ld5#;)w~2nIku$$Q#i@SWhXZ0o8=T)=vd${zTx(ECHo9hXbCZS}i##$x_6k zrbpSj!5Ww%_Te$w%mPcS%tV07j`OFlnNluuW_=E~js_h07vShR+Qpu@aE(8l;oS!$GNw#@XR!j?e(`7rfO{$K{hlh$epzd%x+ z>96=C!1x~$GJ@ZxLC}PR4{F4eE9jm2ufzWD=#eTgDA|H_EYFz^(b4?26VPTd@74Qm}iK9Nf(-MC7L zDBsc929>;CQLH(=;|1YX3W~uumxa@34xi3;r#B*Zek{|SIPr0R9QXYB1>%*w;QR5^ zWd`~#D_`nAO97iT$&o|QZP^1@vlz(&6H}vN#?|F!UwiOmk-Uh55@IO3wEv^AKlRzO z7YTavpS5%3nB|H?qPDRBkS-qFxUJW0^zpR{?be?Dmfh<^mvbW>hQGR~@qtYcQq9w0&$W|(r3X?LFe6YWh z4r1UUaLey67BfAKjuvO03ORG;%*_0J$s&k>-~HPx=yHVsh2UDM z;M~vy6nZPY0yr{i5m$fPa(e#j*G-ANSyER%zHu;Pb3QmY(Bjue>+>5>wY^5P-h5DEkGdlj5fHgRH4Nk4Js<~#nsy&{eUQa2PiKs-UN1a zWMo9{;}Fhza)}CZE(+i>CHwvD<$+fZ)U0r@W^!IhIIPCOgL z7@u*ZdJzi{+mwoX-SlzU;N1$COuhNTJv=0Q0A$#0QPmAisiBjv9z?<1wH14gL#9|k z79QL&z<&=QggeBs8nNiX3n6Vr(r&&RxK30)wP_nxR=p)?eBWV9}P zw5-Mz#s_k*!LRS$sa|y5Ssp8C4~HVRGaSC{Ooqwuw!zY#jK;>EGI(kShiA~O##^{A zpt;n@UlWu`4r-YB=R&~25m&-%&&iqC+h=MhHlve*cRxk#nYbENG|xl}@m;;DoBh8`6301)M`O8nTbhb5lMHcoiCdi277u z2O^0aLFwn}+sNET#^L36oo6Ha5^ndWQnCEj(Gz5DQiv~aCE9onym3l;X6>q&eaL3?k$FNdNgqcv`r1RB?Q!4hC`Uyl0^ z0s>}5Xg4}K+PgPbag2k;w4|=&+gd~JMFVU14S?a{I%k(i{xL}Hc4q_0C zLs*J`f1qz*UVI;calJXYI32-37FB(|Cu!KmbT$c73iZP)P0 zCFgyKIFv-p2LS%|#hX+@Iw_F6wzf6^zW!-^ytDYAw#HIj+34)U;In;kld*9=1d6tED*m6;2<<_6A^e0bx#j#0s zEzxw{+0wqrdneZO_U+rVJ4S%1aQXTn&fddze`m#?;euFOYEWgLa*I}$G!~e_BnMS? z<4Z-eY~abh?KlCai?OK1VnJpXqHU-sAGmJk!>79je5Qs*GzLIDY+GB~PaoS)6en%@ zpgkS|hdX4nQkNAVv68v{m7FQtVIKj#`}2dzmAOjY>9+?m)6>(~o-)lUT7kwS@;U{d ztUwXs6OI135uX~6<}Q4_6VKsP0||qvD=y3_?LH=Tx#a@re6XzM22Z<#vabl z7*;1CC1qvJRt#`T%|VNy6inGN^=)E;v~G-)w<$_O5_*AuC0&uI1@XKCI5_t^@8yAG z>UnW+;?8K(7)(kVPx+PX1yhwEw5u4P3ao89E9{ zq(J^&fD8iZwYXi!?^eeq?mMB%&8mt4rv-Q;m{`c+-uzaOIxOq}(b?6NR8b+O=y!Bc zH<7^MRtspjt|{8%S)WD(O|Y6=Z}gofmR6_VBF1Yyte?il5)gXMO6Br5g2@Xd;{HD@ zt&aH#EGS$Dw3@+FVe1x4z#xL~oi~f&B47XrV4W)haFG47(gwDJjs?coRHX1;?J5N^*2lt$^~DV4jlSr{sx z|JgGELOpP0Bb9|FuRXk>n%Rz}Z{}JgOpe-DSHh0QT&c>=f;1TT=TD#MQ}hb%bW-rX zOPe-{NPTIukLHsKC38iQ8 znT;r6)4Gab{#%qIobg8g&%h1(IRe_WCrhS3R+SQfm5+W_u~H2g?3_XI|DIa;THIBDeGWp=9OuSAMyQ9s zrdhZrf_&MWs20zWNWuKCzP4{(sK_*r84_soEoRBkumgdsn0hH+2{YIm3xF-r zr)j+PU1^L7PCHDC7+wn)PkG<(+`u{pwk$lFjT|T98Z^eRR`T_vQVf9IN(st`b(;(0 z7DT`*dao$%d}pi33?j#PufJ0_NX6Kz=p%ac!u^NI@~?RlzF9prQZ_hgK1Z|fl$gI+KG2=Qy6oG+zIlHfk+R$s)V0Rl1OduDXSW~gzQb%L6}FZb#g!OI&qDGDBn7sF%b?j2=S9p5S=vkp z{Vt?CoNXF_Ixc3~bAE3E=-F+w>)!TQfEC92JXl$Y3nZN7)^hXF%EZqoAykyeZ!|P( zz8t%!q*g4pir(}pz;NS(LbK!y;$`RthIle9NC-!3#97korQ17?$SWeg6V&nb-An7Ie-0(kSmop3yXfu|?W6>Ca14LG zu}Gp}t+v&HspZzP_V|fU0HlUQYEn*b6js}gc^@6@%tNVOYEO|a;D>Vd+4GV2wH@!G zd>4nb5*{iq+I>)`_&7dln&8^Hs>CcNkJI=uNTqGRN ziTr+P59DuK=boS8z4JYb#i(@%a31ar3ztJUjr?;k7<{QR6$X7}2n{s=HY;PH+Oq#c z{^ZHi6pWH3625Z1Ked|>7Txd~lYR7??zCVjbP#unM9LsPy&#a_v!ISZNZSTII)vX0 zdF6a&{FWe1wprf!3hF=D!W7+@Rz5OQ%ah!HVhGeShH^9vVUDA)ivRxEb`xFTF6F@A z20w7$rCx<{JU->7`JbVW|CW9KpHG%Nd5&m5I;q@qyY6KNrh};8)>g&dvU&7>05~*x A761SM literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..b1da7d4f717589dd40d8c1da4fffbcbb5906c9de GIT binary patch literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

    3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e19848f65d29511a6ad659cb48439912fdee2d77 GIT binary patch literal 9254 zcmdsdXIN8B*KTNnAP6d;fb^ntK{^4X_m1?0j&vc^&=o~QL8K{F1nCe!sZtbFgn$Sp zbSX*=Qlt|goQco#mg_q|&i9`4{W|-)Hhb@xSyR@mb+3C(NH8|kqNQe`hCm>+I@;={ z5C|y>0wE!xIt5B@=IiHy2MNMdOBGW6g>4ypkh|Y7xB-FGCes`_Qh@K%x3#Si5C{_= z@g~tR<=p^<4_&Qv+zbpLg5aGBLQcX0AvPrew-O2KKi@S;u0Y8Cl#@ar@g5NJzuOps zC-Hg$ZlcUzPqL@?A(Y_j9JoVYkp83fX{#4x|9GeT1nM9+%+z#rz|+h*z}3|kamz0- zk&!C|bT#T>ZWU-{pfB(2=OgOq;^*Wl8tQYKC<0Lol?Sgru7Qr6p+4Te2>DPb_n#K> z;GI}3#?ASsNuU>$+seS0Q_U~Hl~Y<&TvVJ}iJFs>Q!&8BP2N;p^KWtR1?9dK7nf9{$Rb+HO+4{Rixhq{qDcmj(eUSvPPpDTYo z!8=7!=%^=u3Mk_W)UXOv3vhM(qhxcS3W$WbgrvNI zUpneH%tK+T-@`&LShSz~_DlWB%SA7KnqJ)doJza~y*kNbS$}85U4OQ=2VXQyj8!y_ ze!q}-31e2#P^ZxPa4(-mp8AUD-AeB4(kpR%c6T@#xEwfni(X?^5%@rD)fOH8@4408 zdn;i`e0aIw{y<2%vV9~jtt;R>nCZJyxM#q6!7LbHz#AM`<1E3~=&4yo@MyRZ3Op;u zhyMS!s@a-J{YV?S_%7mRs%-2(EXC5HG8o-8fkKkllGti*dW-XL9?6=9P|aslrX1EKa*{)Jm@KhFX~=DsPOM zJhLPI0=ZOc)Lvv!;ChA#s)Jpqaq^sF11ThC-27VWn!-kfqT(Lo!R-Uno}K|2Tci0$ zw|gma3A~wmO)6^_BXW7Kd%EmGVlBL8cN%P+UDj5thYGcFyl1WkLLhMz@Z|XKTV5G& z+8t}EQSu#)ipYu8q2e$axrpu3i2PbLC9B`*t#5znwJ9q}--KOK)~W888$g~RH?2}+ z-!*P9o65_7wepx1F*z%xI|3|5vEDO-mw_PeWZ&%6+>4dh*s#$Sp3TTxXalAcU~j$NW$ccvp=`{UZ~9|JrIS9u>p`Wv+^Gpt%(a zjo{Ut3YFCR@iSLq=ec$muI$QjmZWWw&Uqu`@lm38&*;ZSNeJYZ_Xq*5&$n69Q1#Iy z-XoUkaZK=d1wzr%cH)hHZ%aMjJj`A`KceY<<@3h|V6b1e^cGICdN0Flb6vsmNts|f zn^uyD`GxGKb6wHRhGCJLWqK{azxyI1ebz{N(C%wO00msEH$O}u`c+)^EyxTg$l>og zD{R=k2Bsp~6f?vM*LPbN=PsZp{0^dmCBT-z5lqp-tc|Z$@b{xKd-B6`P+puDz(^;H zr!xZ;WDG&~k!r(VJ21=xkqO)biuRSLVPN4KDf#P*Kc2ewJldO185~e5i@*HTw&!(W z_c9ArdQ9Aid;a4zKbiTZ=4!%q@0q8?I(g2)ZgXh0)SMrJE_mRfvol*k(+}K_At@qn zLwY)~LUY~rmo|46I9wJe*L6Cs@woQ&dHfI*%}9_ro7s=*&nzMzNWC6w>~G~+l_(e> z%eE$FFW}c|Djy`6Az~ZQuU!;*Xce|ve`=`2=wOje49?D@cHc!WIQYPW!rz~v?ze5p z8-+xA8i>jjSvEPRs!<0`92Z&myjUtn+IsMsxNUFZxC9tF_2`M^2hu*;i?^|+C?$e-1>;*wUfKc&w0<}ZD?`{x@(*$QL2siJf zsX$Xm4ekH2s_+x=^S4HGOD2+~oDxHP23a3;e`<=p2HTI3Wh& z#!%fnheRd9vA}tuV9s?tyQrfv3gbsH{RCKNOU(n8)u8q;9o@ z7qdmQ%)Pk4q=91rU6qzUsg|a<=0`DI_!E$fpoCr>V!?1M?24T!VZvZtgKwl-Tqi&V8a4n$%=4m;1yWZOJq7Y#~P%L-$6e; zwidl?Clkrc<>3+b_v`^ez@yu0TaSZV6%V~5o7ZD`n}2MEwn1eYt&qV&88XutHR3XD zK*MjMiD`*qUs5}cUa1%B_oNOei9L-bNZwSgduC`KEax-+P;9}TX^YpfaRl14L znd{ycx%#s-^-wU{xv4`V?L|WY4ksX`ik|(<;Pvs8Bxz?dFlYtDO?DG6Hoz5P+UQ{n zYe)A+o=nvMvx8vB{|D%VtT6m+QdL~nEIs<6B+p4hF*CZ6m4{bSQWu9Q2{BViA_x)Xsr#WnV>#f=D1mK8q)U%AUU*Ms%OK)OJ z@`HO{WxDmqOtYm}!V*%Uhb*7FY3w%%ch1+jdc{Tj)_AJ$VWF30kI<#ngag80W2{1R z6&kJh^<_&}?$M;q?M`UmG?|ubM_y$v^en1lGv_xoCW%l&5en(l!_0+lt$Q} zZEi2yUSAKFSIHh`*u`g<;A2bsR`s`&)abWYb-B6wK_#U0 zB}=>|x}0Zg!EHre-lk|>qa>e>{&J9NJM6p{pg9l~EJn7KeZMNnp`QA%FC&%?@}`ML?=JUNV?p#NmO+?jdrL7(f=~xNsLm5I}-+SLye7kQ;{;JQ3@BY zR;!j&TA$}JQo6*qn41k;fL>&8DjXkw2@C^ql@pdR%g^}B$O?N!>{)n{m4j8Ky%o#- zW&|s|GOZ4x&#&~*%Fx@9KuSgEw34iZq@OX+N3oSbzdwJy`G93(17`tHXLW*lzMEr3 z_vfdL@+98IKz%|sP>KY zvy`fL+SQv11Q^zqOyU%xp}l`x`ah=dQc>DBZr;pbQ;HaUWQg+p-ZIo487@icS?vU8 zx^O{TQ}h0%Tv!`&r^x0+tJLz(2TpaoG*y|Fz(Aj(V z>F08Y;z#VzaW-1=PgfTWG7npuUvF-?1qQx(<1=w{gp!W!iCR3}a?8u21)TuRpOSr4 zrI(@?2U+4rLZ%}v7y6#_=w*sZ*(!2#a|0l^v-1{A`S3ygV6|}?v}}GDS=RaPypbYT zBD2^qyt*}F$0Z=3j*d>{#lFHa(&u}N#oF6-rGsCu2ez9KnO}yQ&D_5yPDh`#(Vbzo z4@?oZu2bLK+}ysV^1}SrU|aZJuX8fAcp&?5Z(YV#1HZcp5P&Z2^m+cJ-&!1zyju(X zsTzq)>3LcfC>Ww&D&TOn5zUur_p*^hYJN`sJMO*HsO+Cr%lsYUiq zkKtEnWvmQKzIjuSc3HyRTwKz2ixhaDRk6pPANU})-0%s!#-{h8oryho2$^2RaKHD;i|jr zk7~!4gD#R#>=wj$8?-W9EN|hWUew;Q)0;Dfv@HKS(gdAw5y7-D;9c zHHkynw}JG1W5B#_^IFRaud*_n9l68>6?t*Po9y)n58+X0WYEeNg>}r&yOd{fA)KQ& z4c=D`OUy>r#P;xQ60RjDuZoJEQ3Kw2&(iPp;kTL_YR3rQ1dULQTWPt1#?KL7D>g{o-w(}4oQZYV$dhq)a@r1e<>uirm_L!_ zyr|kR{;qb?xh`zW4ce_|pFrW6orNe>+@HCNzf9HeT&ypxEqr$gKNY@?T_=<_$Ki0l zmfPb<-f`%B?p!HPuh@QUuhL{J!v!h09p(4V< zX`S2ydi^V=mQ99xTNml|1q^e(Dvy<0B9ScwikT63v{ZQP%;9_{TsQN!*SF%w?Ws%< z<47r(AX@Lcop{9lZOQT+n~IHl%rKBLiXZK~%F46|wyvzh7}W{ih;t~d6zCw}y`TdY zI(mAkVjV}OBaBt>4w!HAJkwaCAG~?WKv(za4(sqrc5_VDX2_H|!U}s&AjsJ(yTPY# zc(d-TE1F%B!maB*ElB3h+LOipKxy3#n761pC?6IyM_pD3{@i(wMvqzclxNp8VOM7C zjYn!!8G-GZQ`{I?+Blb%N;AL_4K&aiAMBqMW*{& zt1OD4HDxhhn+_JT4frIY2@xRvl=HaEV)eeyR#kT{u%o4HAv4L2n{z#{Ea4?a`7mS` z4Uu~?!O&ANGb?Mp^GOQ6nWFYB+Q8=enK)%1K1|dNul?08q2i;Xt^FhuhSWiAmHU1$ zl{rVq+j=`j6Gw^7e%P_)HkNK9+rfPLh|9HZ56r8N&T>~=xKW{-dys{8$2%K5gvDM=pA zK#*p*38v7p$}H`S3z<$3;XspnI%4Z_Sqyz`c|lzlScq@4Q6~~^0b^ibxVby)y)~lJ zU)C<@wK7~a+`O0PLHZl$Be7OxhKsV1+eLr+f~bTJ`>VVfd*G}#!#JwUKxkk zG#d#y)1m<}4(W#8TOG`#lG*0%ybOJKdl99j*8YdmZsc?ShbhhY*{dMtLGJWhs?VRc zt%2gt&EC&bZz|LREOY0|A6EPypIl+~xhN>lvZqZ)9ri!!^#aDs%g>+1K+o3BBq4g` z%9BTr&PWQ1@$+krzwvO^RB^BvP7U8%OE1()&N2zBns}3ezqT{~wLmRk<{ioF9o`^z zi$ya|W5L~9CjKej(+%Gr8P2boaGD=Mi&R!i>w4+nbuI}~E}!Yq%YnG#DN7rhtexeO z{H(&5ncvt?Z$s7_G#_1balz@ZyH9LzoZIG_yhD;3}#;TaKSqvBaQo~1-A?v(P>h(O_zXyIZ7;f;H z=u1(#1wvgN>2ByKGc5GRTJs{iy-~iBJrNPSI7g476cFgXKH;|BaTHwn09Szuq$N-6 z$OC+!sV`f`Xat=pmWjcb+lPx-)u`O3yDaGM@4vY_;fIbPA?su3ydAN#G|LnJO2_H^ zRZ&rT%TyflDu@W5-Q* z?ZyD#Fbga75C!Ipfj3C|jH}<)_?$bqe+GEy*Puni+|$)mdLZ{nNl7U_M?5nti`kf= zMQ!tY+KwSy^^a2#RM?zRq3R}8Cuip!#xbyJ5HD|OXlN|&Aq`8SC_8B@Xdx;h6ZKx1 z+s#YdSA~T!@9Tl>x}Al*;0B2`=4F*_qi()ZWMCVJh|qot$P6pUTs(X5K`TXm)9pV3 zPl2P@C9%o99JyQ#cOwWv-pTwaURw+rSqFPFf^I5{Z-+pRcv?wS zM66qH)fT;awTwh(hy?WTW$s5faY5eQ-FT>cp?>Kay(q@i8jzU`wCG#?WNg2!;Jcf< z53C?Dl(US{S43>yh%?f&W5&CH13wi)wVEb>`}Xa0P0hWWLaq6-k~|53Cse3?HOJYI zI37j^W&A$R@^nWByWd2E0p)0Ar7-kV=itv|D1XNZ;q4`og7Y;SS^4>Xf()5xSHTy- zc8Go~{#uUm@pfvIbRE*Lai|&LeoTkS2w3dBLuyu5atWIn9l4Df5~>k=x4ZV;Hh68a ztXrjYZhn4wk1T2dULlo`A592r-W~S>@ES;Z4yLE8yKUy!3gFLKkaHU|P{k45YOE{} zHQDxaE}kRm>uk``{_pubp|f%0zgvIKe@SK>NdMAe_*^-<{ZfL9o15<5+ILqVjnon0 z90k^5*@F8xUhn1lB}WcvgMP}VH@S#So_{Pe^(2KyOV`u0oR^pP^TA?1Dw#sHxBPxD zU5HE_wlxgVhWb_E+?_Ps8n)GEqOxH=oC!jy&`9#};a(%P9fg}1y=^W zKx7#VirlUtf_pN+P87D>qQWfccRRoSvlq!^p1M0`*5JB{g0&eg%SEH!uC<_#r07G- zyCeKdPy9KI`EZ7-o@{h+aj16lfy8MLi{JQ7!&-t@Jps?^Zaz1g#IDh_HBuO7Im#ZH za9hoYdvdT4oUkC%u*BT{zmH-jt3kw5`51>SMw2jY67S^yp&a1-R9pD`(qN(6oIeQS zdb#oz=#Q5!T{1N`cF^Poo;OsWMkz^Zh;o9jjn=AB)6jr}G7wmX>Rk0C1yMDn#=+jx zj+z1>n&`cD>jzXluUr&@N*ZfMlz30IT6f5JVziOlOI-FX!70cuNWcv?1b0jEY&Y|} z(-RUB2HVD({GDG@P$_jRn(QSBR{YxV_*QHU@{XayR@A}PVs;y0b*gRR;e!WPj^BcW zz-zL}-%ZR|syw8ZMbhmNw${0Os69YFceo{JrEhAJj!o9#d+>x$#$k~iGGZVPS_P85 z0X7nI_{Y4;KCrpEhu8V|KC+0v=)l%{Sw<_KQ;P{#1j&!mBf}Z_S!u=MH^%yAFW3`G*$Yco1b}JnHf*cnpd~&+W1G`82b4Tb0HR> z^YUnI;TS1-cLl0l5TtRf>gwvBfmVt@WN=H?s<>I@vNKY#BlmmygwQw{fEIB(OCRB$ z8tzV1934eSlBx>5sGz;B=gHp{e|BW2 z&K2$Q^V8#&YHj=DtZUBq+h2YKK=7K8DhXJJF5o*s$3T^6!~hgTJ`C7VD}3z9%w3S+ z!0%7X+rjCL&Ch10r7f|Pij;Gpque-TZ@)8FxkV9CR#`XQmluV*YL>n?ob9(<4AArt z;9cmsbLU(JUuqz2VkCSgWe+ydVnMWVPh0S)QkeI2ds}s+$+yy$ya|huv9Ynb$irZJ zvieu0P1+9RF8v6jT`8Aw|Z6FoIxVo!<2 zpYjFi*;PUmwjR4`jXY6F}i-!Yt zbbX(D3!Z#Y+|oBo@E)uC2-aUZ;2C5#nR)OQj_F0SJSW0PcoJIjkQLw!_ zVL5^V2G$&Q4Oi|3FmeuuQiTpW+Vj#?c!x&<2XWEvNFNy#Hn1VEBa_zD?yoOij5);_O<#zc_U`Aw;Z2v z<9p7lN{~n0thTdW>lLQ=M0H#3l2;(SnC91X2YmV{Kt6nr;4KJf zKqy5}L;W6gMHYPj-9Dwu`#ThP+iWCE#5fy6E6EYHUjVxTGf_?~WA%)2(ACqEO#f`D z*8$GH!O6k=grCf^&9Uj%ml`zoWbZiajk{L*Pl6E3YE&4t(?5Rx46`}Yc|R+&3UBII z>l1ee8JdWEktpHXd*OHuo$c3JhWaXqSm+yEhr~eckDLb??Kudh^R^0SLykBdCe-u#pC-Wd7R&PYZJ~~6jw=(Ju!zx zhZZzzQN#_1pD!+x8PeI5fz$ z@7XmxzbY0*%X&SnqPj&lUkhtLg~L_gj5tRz=O;0l#j#|R;8&9A$h}-%e%{{CDLeos z6lMRMF18Gov&55eF_gBOcd(RJIO0m|U+|ZIOT~G5;fDi{^QB^00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D2a-udK~!i%?V5jR z)MXsUznkut)sg~P%p{#nyPK4yg&5KVP1g^mcxMbz!C45EVi~eQy9q|1DXA6cpv;+V zUolY`7OB%ehUg})?rvi+=Pb8^rFq)C?bP*tp3ig7J>MU<-7Sm7-3$Eqc|OnQdG33k z_dTEQ_dHVu1_rcvkon{cZVA;-l9G}lys$rnjjMbzS(O3S>PTzrBp_67t0S$|5yQBu zrj}k>!qzt>CoxxFae&olHul=dOj&eWOjBw;Y$9W*yMk$`!lq&`oT=P{aPQtda%84l zn8=8V%hGdFQ&Y)_O6-MG3k^$1F#!3nGAJ`m%M%UMS+%Mo6@sJs47|? z5G-_oLpr636qR6C^Y>MoSH3)z@xtP=s``!~G@wZ?3Pbgw4S-0LlO$gH`};$o(49MX zsFD<<+L{y!b{sF8HQ|}H2mYE^QeJcX@ZKG3XZ-x}f=T)7PhAr!VX&Aipna1H4V%8c zK2k`EMCApFLP7ujr3Lej%>26jYW-JhT~GDZyj8rSK4;z0mY?=a{-UU~=Bh{pB#a8} zE2fjg3FJ}Fkfmi2!$@5 zsxB^`oh<^a#noO~St!L}v>)BowDFDE)B>Yo+}-DKS2}A4YF%QiIXxcfCoy6YMjfVV z?QIQxk3L`!sAtVWRiLXi@2{Wq**nhyz5tJ$6hGIyN zT?SEs*odcjM3kqoox-nT)1oXpL@v*eXcJ_6x!nl!m610^8=1!DX)D&#BN+JY+hT2D z^{+_aV5p1+2L8CPr7&;Z$sYc72hSUL>cH2lU@+L*+k5NQtw11f{rYu$CGPI-?(FOo zi-5Pn;i&M6feJfRu3GLQN24Tu(k!l$t3)HKB$!neM^(;ehyL$88sO7Le|wy6jhEh3Arr2O3ZKX0V}D#OrwDRl-60kt zA3LTUx*`77SPx}w%`~)ND4lW0p0=~+Y;HWi?XlhSbF)&i$4?!fosyoru(D-lmA7So z>2&#}2+M3YQmq1eFhHx0To5Y6uGQ(pGaUt4B+9+Y2EVRzW#kLm z(e%nnT{8(}vjZ;A&oWtzUoXQpsKVbAJ^*4E2D(7`@CV8~G!dnYTp>+M8#kl$OK;%z zweGgY`o{J^f53aFY>{)^&}U~bk@#WvMQ+6?5Rb}Wf$s7~y39~GoPNHn0FQ`#70!lM zS%8S!?;QLD;M3yNb!J6CV6%e@d(-2CxZbEi751iRC!VCsClFjLdsWlW0;Wt>66>!I zl*Z36yC+GDn-krl*uN`C1m!k*qoE-LVcS+*K>-D0`0omo~_f`lr{4U4j4a0x2 zWr(>XaYEG-)ik!ESZgYm(H6ioq}QNel6ax#0y;N9)RaJ{5?Mn*nXJJn$X-WX4($$K zgXM3!7y``7<%tZcO;$pxKpue3h89OpacFcAsbVi2WlBp(g#f7nAQCww4-!nv6Ajc^ zT5=>%2tX1E33lHUl0XTP1VABj0L{vUi43Z(S^_eVNOW|_ffe$A*b65!WyMwaDPj+G z1o^NuD_12lsJ3beepCdc4aoyA%QE9CoLXyXC0ru|6qm_KMA5k=hm;^mfZ_B+RVdii ze7f$~0e#=uPEC8*v3T{ntCzhrF%vT~S*<%PIV6d+fTdbiB_>pEtHX2%D?|=OfS5H_ zE!c54OQt*X#|7IioY?u{repnUPF~#3|L>2f+$Kv7X=7C=382zThpbf? bVKwbPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0rE*iK~z{r?Uyfa z!ax+jZ+r_nK^+!TLp>HnNa_%$F=V!>UCy8pI1*AdTi-L7+9eZ3tb7c1@4Y)(C~Y^g z3|ROX-u1n{d;hLEp7#4ayJuSZ_ilM4aBV8jz;3tG(hbmVx3yH_|Bg`XTf}gc7T11^ z>fZoeYWEjYnSdK)nG}vA=AKRKkn=Fh0vFX)#Qyg)bOW`4mM^AuglumCaGy_$-+w6MRYu;j9K#Rf6p%t*y zesV9);zLJOrZE9<;W!+(QBXc4&}OiNElpqt^^sj}LLSi{JTpqv6*a~<3}vQcI!6nW zt;6n*8SD1(Ah2|su*C=t^Ju{~@1N|sn~bdCc5-q!N_GGrph+s%Y>fWgi7vc4aDl7N zbbq$NHE5DonB7!uL0ebQoWLnmB1FY(dv94bXVdcM>DaEGbTzcBXpm15mTfK5#`u4l zfZgeBW=jecKRB_kzJn?YDUzs=LCLN_u2a3hibGF?JWkX0UV5|XvMK(?Lkwd|=$Xu` zMAIuc$2Aq4lqeVNjBL81y*l`=dYJD5n4Lmy>~&1%xaF%v8pq6ap#%4Mm5AlGaei(z r0lKzC9l8V5^Y}-0Z5|0+7skE-vU?EkomkQN00000NkvXXu0mjfHX{$3 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..199e62f81ef736ef096bc820feecccbfae30051f GIT binary patch literal 9401 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 AmjD0& literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..480da0bfc5f80fbd72ca7dec264fa8b957907603 GIT binary patch literal 7206 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdcce4bd30899266ca206efd533c13584d4d9f0 GIT binary patch literal 4332 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 ajQ<0`RGtE97NSQ00000RXl2q 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png deleted file mode 100644 index c5b95111dd2fc2ee0c6516d01da9539e9e6593d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2321c8b19748b36195f47aef623451e796f86a GIT binary patch literal 872923 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≷~|ab|IUUdttWs`*XSq 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

    yGx|=*%Z2 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˽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

    Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh zm+9-fFY7<~`}|FQ;LqRX_@Q51~Z8hnL!c$s|19yd>9D5uYf zp67hdOy;}iJX#}bUu0-btam18VQeehkxsLlxkX4AUQS%OYfJxP+%bDF)DoyITN9fy zQeyO9Pxfm>&T9z-pST`C9;~Gm+9*dc40G3%Tlf0C+F5V3I4F6f(i{m65sbZxctO8!#k!;i=>m^|;qa40+(ObM6 z_64CxnBHS&v1nnhJ)c@I}7`rB_qK)fYjM15t%k7f~dVyx(x4~cMi|L9G`SP ziM2qie+#;(gz>Sh-L_AfM<231@~>R*owQ~sE0VIrT>)BJy1X8q9MQ$vyDvnZy!&@( zO$mVEXir%Z_SJw}G#=P#&g@D%66~S7Zfr}-{AY@vFK(@fS+&q+fSccUzHSm&$oB?Y zy0L$_0f~@l>xPHQtblc)v|C}*ZRoxdZHbK>$4`)!x|l-W2xQeYuk3Z0XMIbVt)w8ea6<4OS8t6_m9n zT>xK+5by}OqC+0@w&X5VqM9Nuquc^p0E%7;C+v3uX`q_RM>48hSmOTd)%{tb@*av_ zBFBAB=yk=*`75>qPEZiVCl*}~P-InbC)2q+qeCLficBg(^$IQkxZpiqPTf`1^Ikpp zwd@?z`Gg47@>HvCZdgd3msPmFH+T8R?8UuV&Mi;Vk~ugh07Fc77a~BNVHC!QL@a|` zJwg+sup#tidA5=~mtpEEh|%oWb}CgCaa%2?eH6GCap`5_m6fly>nD%_4QK^Qm4U7x zsGPfq^G`IwQ%I1PdD70n8in;`H%oZAo(|Qh^exH)v1$z$zrC5-XlU&6c%`u`kp^6# z1O?c$O!M4~RHehbqHK(!2(|v2m4i$iqL=*FvsYp*!I)IW;%>}5wu+mS8wEMG$yRCvh>yA4L*z05T*h#Xl2X2^^Z-Vou;7#_1`&D#4eNa3kz&Fzor-f?^XpP#aosYaxngYslfCIwRVdk#KM!UltwBkE@vAo&y<+Elo1Bm`$Dk`0(^H@5uc{90{jBnH@47W^CZ8DEMvYrgCHQubI z)Ql;oJ(cDQk+!p;dS#UXTHFZ|3^~wC##_sbE#!uaWY>jh*H>*zA``?D%1kj!JQ6-VVOJ&k`z2p|CwUoyCpXfu@7}0Vhu7WKuV+$>osXtP!9OS@y>BnE9x%hJPA8{c+?ZgevX!ZjpuM5J9i!#Px&SR=0?ymyQ_p zM%N59J4rtMSKr6~w?B7e1!cv5V`0+bs{YQU)U&`vOG<#trJ(YE6CmGU%YSa<)z&WNSY;@a~ zG2CeAaYz8hqW(3#fuRXsh1+U9!xG(gMO3j?*Ucr+3d#x*mVi~jRR&YpuGJB=r^Ygl znTPly`bHCxP=t}qgdD2K-!A?e zU*Wd?o`zIg=WX)-U8GwEdSqnj{KFC*t=5T#m$7cq#!12;alVaKJNA%>h4Q2+%D8)! z)VI(OiQvuGvOTbxX(PXdD@NXyxL{e;uOqTzsO{H(YdL6Xy9Zgwjgz^(w)%nu=;z)x zePx0l@Zi~V<;*2%5q)>*V9G$@_vkF{w+h?%^cD$HCyi~Eep4XFB!sCWQ1Rc~f_G?o zw>d|XkXGpcLx26l7iTB84y5@$x|ZN^=kVlp;;nDOPMJtS6D0Zp=)-#(L(BoUQ+t>psZ--OChPfi~=4+ z$jCAPFLgIgy1pMjVwdgtnYwr^z5-U^dF@GUkGLy*>A2N7juf!(4Mf*dH@2P#-MzZi zy^)s!s%ZB86=E$2Y=}PPek%||s4L%+^|L$=a~N+d0E}=#<6ni+M??h)$JwqSLMb_@mQILu)V9zo^tvM z<2xcVsTnBl?IVCNjBIMV4-iF`SrJfiZm3ottX>bVT@wwlMn=})dfK;XU_+KY zj;vZEnh{f1odzw8GvP#9I>?p}8q51>Fop)q+S@PGDRl!qW^F_}M;b^;ky?M(s=amV zDjY%0^4oMpK(d>yxZZ4$7Q@+`Ydp+5g-PRymISa!o497Lv`q0Z=p`wFTU6I5?x*%; zk(#x7)YLde2y~u^MWYS}ENCTXDs2qURaZbPEnUF9wR;l17TXdK3(C^|I&22Qd5~N^ zN~v4OaN6}{;X@-1A|EhyRtITmpVN~RV8Z6?ZaO11=j>&P6o&*o=m>~g%S6z{+%f5J zWGjq1FHSPNkqoal-mD9r>u<^=J-%F~APO_x%h~IdR?l+lRk_)-BHT(}E#bh_Ey3it z{h8s;>hFS5OXCD<}MvAe5q&3d0BqC zXD%fVr!VeLoW|Mb5XME$>x68wkJD~e&< zF120%{Z3hb{qOHfS$Ym%tu|j1U4XnPgIn+w@xGY`_ZLfz7ka$OV&o}`W^=DsvNw9z z$}RG1SMiO|{=kVC7m$v|;p~qp__Rjs3FJz*)za^@=)1>F@?JRAYp5iyc)6czJhaaKAd@}A=iC)X1V{rrghg2c*W z)<+!+_rI5pv@eB?tnZPaMX03ga^~~cL2x34tsjwVB?aT?b7DfIR!P%pm7GQ_O_Si(p)>E27J7=f8q$T;Ux>)H~!vz@t3C!v@wJ7E#`9<-PDNTyn)Fd#M7 zWfKUZ1YIswPYeuwgk8K*){kEDmB~6FAq_7U%|rE-MT7bU`E-8}DTuS%nLbyddw}WZ zE$30#!|W&{>T}Xxp+@JHC_OylRy@>8s3f}Obf>+c;|f8l`55$V{=QSzw~&#V#toVB zb(wUpWb*|<73)um_-ew0qUA2GA>2oLnHyCOzyo!hgQP8zs4B)}_Wad@S<*1>0asUl zOtZW{g9+v7>Z|+HlDvZR!`X|6IFT;z2Sj?74s~u#L(Y4*wI(2(Dbv z%=M$0S(nY%H3UtA+Gxku&0~tT2cc0yFy!9+=SM~?Tx~kHS$)ujSW9w0Pt&(Aj<~^# zhYJ_EBWv;cDb?F=EaZme#AW)@$pm^iV$e_;We>k9ONiOJ+@L>Lnb52kE6K~1`pa^o zr;_5-s$>L}Xs9oz{mV|ug0gTpNHzCU`JG8mnb$)!lg&YEWbGz@Fstd%dV63!9qguN zN#pPcW92h%;t)ZGK5>o)!zBmKl@FU0c%xGdR}wQdEe);kmBjh3juFr}(^{ujgwg9g zHC;twBs*!SA-0e1jTqi5JEMG!a1R2rE znp%|E3(8T7vK)d`A(ror;YyU%zt--{16Ulo!c?q`ha9nDmR4kikD4$-8*i(&<;+?V zwz%R&|4P=kL{7eLv)A+>#-B#qV1xuyONMC+ouM6E6#RTy6o4hq78*~B$>YV;Nsk&U z$WDBu2W{^1;rumejq$|IT|Lwa53=Vhj93q6&-2n3v!C5BOQXcOLs)hE{a^gsQ_|NZ9U zKL$^tD#m{e9Dk>*|LE`UOIgGLx>l@KdRLkuMBI{ki|84CP6Z?7=V&bv zS&h~jlU344h*qzr6QU-GM?)RZg$lGT@NiXDq8&KC%u2mCC`)Gup2c|Db$nS!SL?20 zl*=54vZ^VCo~pSoYn%%2;MVXOJ>AK_Vi^Hfgi{a8a+S?0#pz3p;L9TJQED|n*W3m4 zhG>hIWIQvZcEdXn4ZiC-6WParA6c+EJ-cYe*D_#Fz(4^>F0Xzs0TtSDKc*Yow)=@# zGf;t8b6c74z=3TUS~J`@yPfzcr%Ye)#x7J)I+F7C1mTC24CW7=%`N>2wYelC-oda`a;nuCY(@94i+qP}n z#@=x{wr$(CZQDu5wr$(FId$utuWJ2-RkP+h<`~aNP&rgmcv*a%t@cS$W^|p++KX_V zuK81-+L%D8#XAtFG5~VCJPc1Y%L*fW52Gul%GoCJkF^SggsKqd%i&khG3`Qi^_q~* zme!IqAVF}Fiuv@Q!YbD)p(1*Urm{Ri?$QkpeDN^h07}`F1)+1km0?e+8YM}7kvEf{ zB+6(eFw)N#cH1>vM`}nwU3^?rDkFS>#V{kLX)DeCP$i&y61uiWkf%x7I$pIl)#a8Y z?NnF>nrxa05Yq-qFB06SKcFv*!=U+aSo&i6KW>6SNm5$^$Or+?v$i<79XSs1ojiAa z&%T2XjCSUrIRTVOZvl%BLP~CA0VRemC>dPIn1`+Pqv9A}5#JZ@$IIpX%heoOx17!= zucMyc-c=QiXdpxW{Krc;-{Is{eBaH>&VA}1x{DqwrVbHg;UQ#g3evHWI6J3Br9S9E zpfU$i|9&E+F2TFj{_ffOAuaCY->(sTBPE`>-dL;S?ao$vJ@jI|#aXgL z4xoX@&Pw=nZ*c2z9sVjgI+BiQFhr9Fs>

    *1T)6!Yva<^;l%`7#qPm~I=9AP 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

    O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC 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%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a 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

    H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..823fcf7c97fbcb9a5aae329aa3385f72d636fbfe GIT binary patch literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..84c289b866e8e651e297905deb9c3bb03ee3c887 GIT binary patch literal 4621 zcmd^DX*iT^-zOtuCXBU+vc_1akfp>BVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/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 Kezigq4g3RhOc*Ty literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..c21d5b60eeb1950e6afc9fbfece9110e91a77bda GIT binary patch literal 3667 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..dee167c5ccf7c3b2b22b3c6a75527871aa7c202b GIT binary patch literal 18600 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..f84f46638756cbcf1bd4def00427914253e6af03 GIT binary patch literal 19421 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

    $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..8a546866502013d4ce2f8add46dc18cabd9924c4 GIT binary patch literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e233c502a77cb25165e8e73017821dd9b043d034 GIT binary patch literal 68519 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 G4E$fwgRB_< literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..6eba7f2baedff6cb50411dd190879363a5bc26bf GIT binary patch literal 9681 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

    H4J1$OST)I&8P34}J=V>j+h)iz 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..1454f02b49f34cce7b6cd8a93a4401025dd388fb GIT binary patch literal 115615 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 L*qxGFkAwdQvv)d> literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..5430cc882d6f13b376f8cca1664488371934fcd4 GIT binary patch literal 43182 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 YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..12cb8442c5f68c3030ce4112aaae370b839bef1a GIT binary patch literal 3132 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 _I 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

    Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..f338bd44caeb38e792bc801aca30c11b60411cb3 GIT binary patch literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..a00a64fa003fe5ccace0398f0ecf125d87964042 GIT binary patch literal 8309 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bbdb0445e7dc8fa31f07d8c862b18fdb853922 GIT binary patch literal 9040 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 A761SM literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..b1da7d4f717589dd40d8c1da4fffbcbb5906c9de GIT binary patch literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

    3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e19848f65d29511a6ad659cb48439912fdee2d77 GIT binary patch literal 9254 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..199e62f81ef736ef096bc820feecccbfae30051f GIT binary patch literal 9401 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 AmjD0& literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..480da0bfc5f80fbd72ca7dec264fa8b957907603 GIT binary patch literal 7206 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b76b3b6906644c9063b5c5805597875d38661d GIT binary patch literal 6080 zcmds5X*`=*+Yee=ON^qrDAR?i*ovaH#EiCTS6ZRXl2q zmLNzg_O+rKTWG9BZ4n7UytlqHpWgYsAKu^de0e`4=RUd5$+i8j|8<>%v9&f86Fw#k z0)fQLu3feRf%c^W&zT1Vfp6`1A7g=mFWAoXS5Rq>>>M!J=ktrzFCY*BE3)mmADABu zy5a^~HB$0#1}mc&*sG0U3Yqsf-~ISsBt3X@V^Dg*zA^CB z?3vi^`QLi5g0j}%OS7-)eI6aE7|vpv+VqXBbw$n6mb#VQLB8k?y)c$%3w?ftWb8j z$O;_buZQ}yx~Q9dOyf}(A*Cd0DThsO*A#KaZJnJ(^t7BNwn$y zNtU>^RDo6YK_rrT&ZUv@tD&@_;FbtF<=7ESui-mgL|#_X68Lyoh1eRd-skzIzQo(R zh#`M0Ul)u3H{-5jKH4t13tmm=&j+9Ni+xUwJUJIHC`h@?;N8%(cfB8S^*BwE>yv{# zYU|!ry2O`wsWX4te@ry``ouF`&~TBD%b=6+<)^Ywplb7f8XWB@8%o>F;RmUD86(b< zYK2skJMXS*hF>|qaYg7rs+|isUTe`Ap?Z1P%->RSeBQ(aRBKgnJv@hH;;mwUs^H!2 zooZk6?5@&bb#${z=oL7?(K-@Jp&0}MAwoPSFwyLYSNp&$|R;5AAATNJXDn~nTKL9=3Gp{;Q|l&W98nc2&r6kJE~;$6dXq%ID2!X zT3q1q#P~qU_;Qeoi@5v?eQ!kx`vnFcgf{$-WDg#$ z8vk=lUSvy{!f2M{?}_xP;(gT6ydH%wEKFveJmz@|IUtRB35V4}yaGrqDe_0e<5w43 z6MD^tHN$Ru4Bni*_#)*v_)+qPTqQ|c5gHXqe2h|G7Hu`h+Pn#nvv3by=rRP&c(#~* z5r*AU&b~#6Y-ojOohZdwfNuI)_hhsBRs#>rF#< z+Wci~J?@&2d?c|!HY{yx7gN4AUGj>kSl$N}PXw8Pe(X8M|3{bR|P)=O%ij<8c9!%;T6u$SffiS_E#2FsU~?quH&%% zW8`91^Z*t%tPwm0lglhwd`HX+lasa-wHE7Q8VaO-UgV_k?nL69N?2LLMgg~dbF9$= zU6*bxHB`RM?%$$NgNr;g<^;BU>TtZH)g7r@uV>&%TwX|K-9|*-?pv~&k}_vUzzm;h zP+$jJ{~*R)ZyZc+4^Fs>(j z$8Oy*R^9i^rfaCtFDINv49Eyrl!}u~8W|trbgk!>WTD?;%4jig}OcxvaVN`hs zz59|ikc(@u9h6XR@JR+d7O4Pb_y6*}mN;b^v|S`9Jo43yJP!TSUkk=9!_~J6BX8%M zLbXRRCl_C*%(6<&#&e;f+U_+s=EP%L+4(k*BlP;p70q__hZ=VEOh;Q14m?Yg2O}rf zBDunTNrEzke_FtmqUs21p0D*zB0lP=t}-JaY>3%Sw^!?JA2X0#OK_Y|rV)q1KRo)q z&Y}U|*r(nOFA11lE;#FSCD6v*dnwn;w|i%(HKo_RKEw*VC>%$WuOrr}tV^j~dtRIw zeqk`z*S*tE(wyuq1WuiGsr|)vFzfA*N!{^ug-a!g{CSw5h79zUI+nI8bje~+i`Z9A zdah`-b@I7A>Fw@GA8n`Mn}l);Z}=;%PLs{;v!+!JB^ss_%Bw1q{r8HwQ=|8fXdlCg zRmMxv-m+>c<89M*Hd-4uBeQ3J|H7A~J-?e6-#$R1|IzpRXa(M8Q=}aWTbYGC1p+OwN}y^Vd?ivCyC@dWx_1u~qjh`g=g8zCcI! zJRlQMSyPD6J!X!uGi)||Sm9d^v#QnYe$pGbQgl?1Tq^1&rF0=fk;s+zq9kLUgDZ=k zQcGXVnJ;&ZslGb9tZSL7|9j&dvMHtglWr#_gl}F6%T;h|A503KGJD}xreC&M^$pKg zo5(jU=&X6GZ$^h`o?V|xtxvf-lG*Z=rXm{cCQ<7vp2t)Q%Y6?W3X$`t^KvmQrzLYq z5E$YfnlzvJuj5eNi@$4n44nA*CHADhOBclT)`R(jBj)MI%&`648OmsV2cHP_`b%w3 zyjO#@U@pqAV1S~!;`yd)LM9(x;RWDO9}0MvYL51^?T(!go($#WpWhfziS?kDk-&(N z->M@f8XEawo6WY)8$wr~R)+8uLp77#c@Ml13ih8$!`4gB@nS{P<0mfmC8WQWO=x#O zaJpGjzImT6u^&#_n?Sl`ec6DI;p;`_2A@TT3`*nA7 zmtGtFa68P$vizgl^U?M-g|)J`=q_{5F)u76zSIxYd}lPZef?}a;K$*>)LI?w8vG|% zF7+0ttx3}A`WH<}^R5+yjIf((n~uoiNA9mg_p9YO)*9SjO>^hga>b~fmJV{u>TZFA zsDld~3Kx!d<5{aia(-t}*0DuK{Mrg53SKF^z@VH_qBNKCF`2oR=^}JPd&$Me#pZ^k zrJn_wY1GgAbyw8Y?QIoec0Sh}P5W1w@{Uz~=Nc_gL?-Do={r|@nv>0T$=x1(8L$(Q zox(#cveBKx7e*8qoeLN$ykLT>?ldi(3N_`9QYYu~Rwv=lc_H*ad8nF;YxSSEwDZEc zz4xcocduoJH_zU1%ZJwQi)L>5m$P`msFte}$et=!*vy^9I-B&|kmIkMwL1L}(YlUc zyQH+a8wmH*^v;Zcxt2Sap3d{O6TX_7dcEMI4_)W*G3-LFgcIkkaSbkN zddY|1pj+-14?#_8vwB?*-&KBWG|jOgleAOM84iDDI(x1pHs3Sj;-^F&?>{1DlIzmw zj#T1T(d7DonCCBPOGR>e>dcSazT-6SP7ehu9L{U+Tm3ZKD*WMfE?V$s`CQLB8;~)? zF|9Vk7_9ChX zymtgVR|Xm7Fu@N|PHCk|fAz-?+JL72KiED0bK{+&V2_D_>UwNX;Nv(RL<0xV`;pAu zt@RZeddI_i;G!v3E{OyB_NW)N6uc@2Qn7U5&+{uI8GScgxmFCiM|>r;bP(>!Yjq6m z;X=QOBgy`#XYrG!@?svtoLR!_7wqMFh{5Jm3gMKvkhq+v5LosPX~fVwADf8PW*P4R z1aUkXStn$yZ^#)9UL9+EuVBl~7H2<#KiO8=Qzd&OP)r7`BT>{-^J>|I(WX`4bp>L` z!tZ)VY{PMXNSC~y}nCgDcKhw*dTo zvB+Wkh@8A!qI3!C11dc3EY_Je!$=d~3Eb!jZ;%8m`rAp#>Dl_>k1-gGW9V4LozBKq zBR0XY&m79_!#1iCM-M@qr<*X640}BHMsXWOJbERzJbH)gm>j>1T1GOM)13t8KiT`t zJ7JH=QQyc-!nKs5GRrfaOY01`<;d_Xe)+PT+e9%Vj0|P$e4xhB8o4;*JipIp9}4Qc!crVaVyQ_2n`32^j27a7Ck(8JL@@v@e;!TZcNC6uOT zIq-&)S^D8>4pWRC{bkYdjTT+6EAB?jWb7k6k5xdJH;A!|-e+!n+D%4@UjA0MZe=Ik zdq17w(#vz(SdnMNPt(f&u+KrFLMT>@7wxN#p-+E6VB7x(PQGuS%!O5)&<}gWU@#n$ z(<}XGkKg(9w!B^YA)hbly{7GNc7c1j|8F=W|BZtG^>}@|{l=-W-frds5S&Xa$Ko9Q z?cUwHn^*Rn}IT0|1j_##1e(o`^fvX zT(hI<9*w+!z#gAQuU#&_mxte>^fr>Y-Q$)stK_Hl_g?g?X9@d#iBfXi;`vQVF;_mB zh{tU$lc5e%cQ_yLk7@2mRfp`;wjDOdlorQ1d4Osp-Uha@t?e2BMu1Bs;tI}YireP=jY}QLV2rL?<kcshE&s-wm48Of zU$p^+LU~3-82~Y#>o1^C^DHRb^@T|(=jn~rNzeX#E6?eU7Y~FHjs&kO)gg0sfbH`G zMU*%Z86dI$2i+J+L!9qZYH>lU6U_iw{8L(ttv(HZ^IC==RyE3TbyO_c<>1zdKLad6+xTKX+Rs&a)Z7B_ggMdtcdh5mk8eG ztaqhGz`@k9tufBy-e~qafOx3#6L9p_2ql!}CR6Z9IVB~<6WGn5FYDB%6ae)g&W#k- zoKP3FmN_m8uU~g4z61nN9#HSgIO}6tK*aTNoFTH&8*6wN!eqAFME`bOR4o-?KLE|~ z#^=xgT0-4&Qh7?~uQ5VEvB^V5=aEFvUj^j<005Kj9(j(%W*_Fi&h(BgFl^YKR*$E7 zpbdW{0~VkiFrpK0GB)f@IKfo3?Z7S;{auJ?`^|xOSd%g4 zT=wdg?r4xn1S3uc2s&zaYg~LeYF3}ptvfCYplqD`h1eJm-DZ?WZ8G)Z41V-Cz}yqa zHdCM`uXI4l0K#yOU^K7b{KjM;&U3pwCZ2*ETf+gW!5dc5jeCHFFju~~z~g>o*VJ^9 z?wFEj8lN#_ukG5Ng~}TNT-ci6V6H1V#;zg`9q9b%S5|+xw4Ocu>n+o0Yn;K+s(_I_ z+|rk$bq!XVBnk6b9=lu`U`h6~KwbVH|8yyQ$rWhn3PwZvt$-Jx4|`qR-Uad3j@9F< pyTAkJlhl9ss`#G?E%qlKG<{Yxb)mmZWKRvVE7q4wf4%kle*s~}R-pg@ literal 0 HcmV?d00001 From ce8fdbbb37413f32ea3513ddf133b00a924930df Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 18 Sep 2025 12:00:31 +0200 Subject: [PATCH 047/119] New/homepage (#2914) * first try * first steps * Update homepageTiles.js * work on components * components * final page * sidebar in progress * sidebar edited * merged with main * fixes * language as single * R10 home final * fix * Update version-20-R10-sidebars.json * components * Update version-20-R10-sidebars.json * Extensions ok * final version * Update homepageTiles.js * ide * final * edits * after LE * final new homepage r10 * fix side bar * final version * fixes --- docs/Extensions/develop-components.md | 34 ++-- docs/Extensions/overview.md | 6 + sidebars.js | 2 +- .../Extensions/_overview-old.md | 41 ++++ .../version-21/settings/overview.md | 187 ------------------ .../version-20-R10-sidebars.json | 2 +- 6 files changed, 66 insertions(+), 206 deletions(-) create mode 100644 versioned_docs/version-20-R10/Extensions/_overview-old.md delete mode 100644 versioned_docs/version-21/settings/overview.md diff --git a/docs/Extensions/develop-components.md b/docs/Extensions/develop-components.md index f777b12d03c500..e579d4ef83e37b 100644 --- a/docs/Extensions/develop-components.md +++ b/docs/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Components +title: Developing Extensions --- ## Components @@ -10,7 +10,7 @@ A 4D component is a set of 4D functions, methods, and forms representing one or You can develop 4D components for your own needs and keep them private. You can also [share your components with the 4D community](https://github.com/topics/4d-component). -## Definitions +### Definitions - **Matrix Project**: 4D project used for developing the component. The matrix project is a standard project with no specific attributes. A matrix project forms a single component. - **Host Project**: Application project in which a component is installed and used. @@ -23,7 +23,7 @@ You can [create a component directly from the host](#creating-components) projec ::: -## Basics +### Basics Creating and installing 4D components is carried out directly from 4D: @@ -116,7 +116,7 @@ Standard 4D IDE features are available for the component. You can execute the fo - run methods, - restore from trash or empty trash. -## Scope of language commands +### Scope of language commands Except for [Unusable commands](#unusable-commands), a component can use any command of the 4D language. @@ -158,7 +158,7 @@ The following commands are not compatible for use within a component because the -## Sharing of project methods +### Sharing of project methods All the project methods of a matrix project are by definition included in the component (the project is the component), which means that they can be called and executed within the component. @@ -190,11 +190,11 @@ EXECUTE METHOD($param) > Keep in mind that an interpreted method can call a compiled method, but not the reverse, except via the use of the `EXECUTE METHOD` and `EXECUTE FORMULA` commands. -## Sharing of classes +### Sharing of classes By default, component classes cannot be called from the 4D Code Editor of the host project. If you want your component classes to be exposed in the host project and its loaded components, you need to **declare a component namespace**. Additionally, you can control how component classes are suggested in the host Code Editor. -### Declaring the component namespace +#### Declaring the component namespace To allow classes of your component to be exposed in the host projects and their loaded components, enter a value in the [**Component namespace in the class store** option in the General page](../settings/general.md#component-namespace-in-the-class-store) of the matrix project Settings. By default, the area is empty: component classes are not available outside of the component context. @@ -227,7 +227,7 @@ Of course, it is recommended to use a distinguished name to avoid any conflict. A component's ORDA classes are not available in its host project. For example, if there is a dataclass called Employees in your component, you will not be able to use a "cs.Mycomponent.Employee" class in the host project. -### Hidden classes +#### Hidden classes Just like in any project, you can create hidden classes and functions in the component by prefixing names with an underscore ("_"). When a [component namespace is defined](#declaring-the-component-namespace), hidden classes and functions of the component will not appear as suggestions when using code completion. @@ -311,14 +311,14 @@ In this case, it is necessary to use the comparison of pointers: If(myptr1=myptr2) //This test returns False ``` -## Error handling +### Error handling An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. In the case of an error generated by a component, the `ON ERR CALL` error-handling method of the host project is not called, and vice versa. However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -## Access to tables of the host project +### Access to tables of the host project Although components cannot use tables, pointers can allow host projects and components to communicate with each other. For example, here is a method that could be called from a component: @@ -344,7 +344,7 @@ SAVE RECORD($tablepointer->) > In the context of a component, 4D assumes that a reference to a table form is a reference to the host table form (as components can't have tables.) -## Use of tables and fields +### Use of tables and fields A component cannot use the tables and fields defined in the 4D structure of the matrix project. However, you can create and use external databases, and then use their tables and fields according to your needs. You can create and manage external databases using SQL. An external database is a 4D project that is independent from the main 4D project, but that you can work with from the main 4D project. Using an external database means temporarily designating this database as the current database, in other words, as the target database for the SQL queries executed by 4D. You create external databases using the SQL `CREATE DATABASE` command. @@ -425,7 +425,7 @@ Reading from an external database: ``` -## Use of forms +### Use of forms - Only “project forms” (forms that are not associated with any specific table) can be used in a component. Any project forms present in the matrix project can be used by the component. - A component can call table forms of the host project. Note that in this case it is necessary to use pointers rather than table names between brackets [] to specify the forms in the code of the component. @@ -437,7 +437,7 @@ Reading from an external database: > In the context of a component, any referenced project form must belong to the component. For example, inside a component, referencing a host project form using `DIALOG` or `Open form window` will throw an error. -## Use of resources +### Use of resources Components can use resources located in the Resources folder of the component. @@ -446,7 +446,7 @@ Automatic mechanisms are operational: the XLIFF files found in the Resources fol In a host project containing one or more components, each component as well as the host projects has its own “resources string.” Resources are partitioned between the different projects: it is not possible to access the resources of component A from component B or the host project. -## Executing initialization code +### Executing initialization code A component can execute 4D code automatically when opening or closing the host database, for example in order to load and/or save the preferences or user states related to the operation of the host database. @@ -455,7 +455,7 @@ Executing initialization or closing code is done by means of the `On Host Databa > For security reasons, you must explicitly authorize the execution of the `On Host Database Event` database method in the host database in order to be able to call it. To do this, you must check the [**Execute "On Host Database Event" method of the components** option](../settings/security.md#options) in the Security page of the Settings. -## Info.plist +### Info.plist Components can have an `Info.plist` file at their [root folder](../Project/architecture.md) to provide extra information readable by the system (macOS only) and the [Dependency manager](../Project/components.md#loading-components). @@ -508,7 +508,7 @@ On macOS, information is available from the finder: -## Protection of components: compilation +### Protection of components: compilation By default, all the code of a matrix project installed as a component is potentially visible from the host project. In particular: @@ -522,7 +522,7 @@ To protect the code of a component effectively, simply [compile and build](Deskt - The other project methods of the matrix project will never appear. -## Sharing your components on GitHub +### Sharing your components on GitHub We encourage you to support the 4D developer community by sharing your components, preferably on the [GitHub platform](https://github.com/topics/4d-component). We recommend that you use the **`4d-component`** topic to be correctly referenced. diff --git a/docs/Extensions/overview.md b/docs/Extensions/overview.md index 6f74a3a5cb9786..a8dcae45fd611e 100644 --- a/docs/Extensions/overview.md +++ b/docs/Extensions/overview.md @@ -119,3 +119,9 @@ A subset of these components is listed by default in the [Dependency Manager](.. +- [**System workers**](../API/SystemWorkerClass.md) allow the 4D code to call any external process (a shell command, PHP, any script, etc.) and monitor its execution. +- [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources. +- The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data. +- [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms. +- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes [a set of utility components](../Project/components.md#components-made-by-4d) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic). +- [**Plug-ins**](../Concepts/plug-ins.md). Plug-ins can be built using any language. Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. diff --git a/sidebars.js b/sidebars.js index 7dc6e69e1a5534..a58eeafd8306fc 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1356,7 +1356,7 @@ module.exports = label: "Go Mobile with 4D", href: "https://developer.4d.com/go-mobile/" }, - { + { type: "link", label: "4D Mobile App Server", href: "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md" diff --git a/versioned_docs/version-20-R10/Extensions/_overview-old.md b/versioned_docs/version-20-R10/Extensions/_overview-old.md new file mode 100644 index 00000000000000..bb550385074f30 --- /dev/null +++ b/versioned_docs/version-20-R10/Extensions/_overview-old.md @@ -0,0 +1,41 @@ +--- +id: overview-old +title: Extensions +--- + +The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language. + + +## Preinstalled 4D components + +4D includes by default a set of built-in 4D components, that you can see in the **Component Methods** theme of the Explorer's Methods page. All these components can also be found on the [4D github repository](https://github.com/4d). + + +|Component|Description|Main Features| +|---|---|---| +|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...| +|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates|| +|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +|[4D SVG](https://github.com/4d/4D-SVG)|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods | +|[4D ViewPro](ViewPro/getting-started.md)|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)| +|[4D Widgets](https://github.com/4d/4D-Widgets)|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...| +|[4D WritePro Interface](https://github.com/4d/4D-WritePro-Interface)|Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html and [table wizard](../WritePro/writeprointerface.md#table-wizard)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`| + + +## Third-party components + +You can develop and install your own 4D components. See [this page](develop-components.md) for more information. + +Many developers from the 4D community have shared 4D components that you can install and use in you projects. + +Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic. + + +## Plugins + +Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. + +A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. + + diff --git a/versioned_docs/version-21/settings/overview.md b/versioned_docs/version-21/settings/overview.md deleted file mode 100644 index ede138092298e2..00000000000000 --- a/versioned_docs/version-21/settings/overview.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -id: overview -title: Settings ---- - -The Settings configure how the current project functions. These parameters may be different for each project. They include the listening ports, backup configurations, security options, Web parameters, etc. - -![](../assets/en/settings/main.png) - - -:::info - -4D provides another set of parameters, called **Preferences**, that apply to the 4D IDE application. For more information, refer to [Preferences](../Preferences/general.md). - -::: - -## Accessing the settings - -You can access the Settings dialog box: - -- using the **Design > Settings...** menu option -- by clicking **Settings** on the 4D toolbar -- on 4D Server, using the **Edit > Settings...** menu option - -When [**User settings** mode is enabled](#user-settings), **Settings...** is renamed **Structure Settings...** and two additional menu commands are available at each location: - -- **User Settings...** gives you access to settings that can be stored externally in a user file. If these are modified, they are used instead of structure settings. -- **User Settings for Data File...** gives you access to settings that can be stored externally in a user file attached to the current data file. If they are modified, they are used instead of user or structure settings. - -### Locking information - -Locking can occur in both Project and Client/server modes when: - -- The *settings.4DSettings* file is 'Read-only' (Projects only). Modifying a setting will display an alert to unlock it, if possible. -- Two or more users attempt to modify the same settings at the same time. The settings cannot be used until the first user frees it by closing the window. (Client/server only) - -In both cases, the settings can be opened in 'Read-only', but cannot be used until the lock is removed. - - - -## Customizing parameters - -In the Settings dialog boxes, parameters whose values have been modified appear **in bold**: - -![](../assets/en/settings/customize-settings.png) - -Parameters indicated as customized may have been modified directly in the dialog box, or may have been modified previously in the case of a converted project. - -A parameter still appears in bold even when its value is replaced manually with its default values. This way it is always possible to visually identify any parameters that have been customized. - -Most of the settings are applied immediately. However, a few of them (such as the Startup environment setting) only take effect when the database is restarted. In this case, a dialog box appears to inform you that the change will take effect at the next startup. - - -### Resetting the settings - -To reset the parameters to their default values and remove the bold style indicating that they have been customized, click **Reset to factory settings**. - -This button resets all the parameters of the current page. It becomes active when at least one parameter has been modified on the current page. - - -## User Settings - -4D provides two modes of operation for project Settings: - -* **Standard** mode: all settings are stored in the [*settings.4DSettings* file at the project level](../Project/architecture.md#sources) and are applied in all cases. This is the default mode, suitable for development phase (all applications). - -* **User settings** mode: part of the custom settings are stored in a *settings.4DSettings* file [in the Settings folder](../Project/architecture.md#settings-user) (for all data files) or [in the Data folder](../Project/architecture.md#settings-user-data) (for this data file) and are used instead of the structure settings. This mode is suitable for deployment phase for Desktop applications. You enable this mode using an option located on the [Security page](./security.md) of the Settings. - -By defining user settings, you can keep custom settings between updates of your 4D applications, or manage different settings for the same 4D application deployed on several different sites. It also makes it possible to use programming to manage setting files using XML. - -4D can generate and use two types of user settings: - -- **User Settings**: They are used instead of structure settings for any data file opened with the application. -- **User Settings for Data file**: They can be defined specifically for each data file used with your application, configuring for example the port ID or the server cache. - -With this option, you can easily deploy and update several copies of the same desktop application with several data files, each containing different settings. - -Consider for example the following configuration, where an application is duplicated and each copy uses a different Port ID setting. If this user setting is linked to the data file, you will be able to update the application without having to manually change the Port ID: - -![](../assets/en/settings/user-settings-config.png) - -### Enabling User settings - -To enable user settings, you need to check the **Settings** > **Security** > **Enable User Settings** option: - -![](../assets/en/settings/user-settings-enable.png) - -When you check this option, the settings are separated into three dialog boxes: - -* **Structure Settings** -* **User Settings** -* **User Settings for Data file** - -You can access these dialog boxes using the **Design > Settings...** menu or the **Settings** button in the toolbar: - -![](../assets/en/settings/user-settings-dialog.png) - -You can also access these dialog boxes using the [OPEN SETTINGS WINDOW](../commands-legacy/open-settings-window.md) command with the appropriate *settingsType* selector. - -The Structure Settings dialog box is identical to the standard Settings, and provides access to all its properties (which can be overriden by user settings). - -### User Settings and User Settings for Data file - -The **User Settings** and **User Settings for Data File** dialog boxes contain a selection of relevant properties that can be defined for all data files or a single data file: - -![](../assets/en/settings/user-settings-2.png) - -The following table lists the pages of settings found in the **User Settings** and **User Settings for Data File** dialog boxes and describes their main differences with respect to standard settings: - -| **Page of Structure Settings** | **Page of User Settings** | **Page of User Settings for Data File**| -| --- | --- | --- | -| [General page](./general.md) | N/a | N/a | -| [Interface page](./interface.md) | Identical to standard settings | Identical to standard settings | -| [Compiler page](./compiler.md) | N/a | N/a | -| [Database/Data storage page](./database.md#data-storage-page) | N/a | N/a | -| [Database/Memory page](./database.md#memory-page) | Identical to standard settings | Identical to standard settings | -| [Backup/Scheduler page](./../Backup/settings.md#scheduler) | N/a | Identical to standard settings | -| [Backup/Configuration page](./../Backup/settings.md#configuration) | N/a | Identical to standard settings | -| [Backup/Backup & Restore page](./../Backup/settings.md#backup--restore) | N/a | Identical to standard settings | -| [Client-server/Network options page](./client-server.md#network-options-page) | Identical to standard settings | Identical to standard settings | -| [Client-server/IP configuration page](./client-server.md#ip-configuration-page) | Identical to standard settings | Identical to standard settings | -| [Web/Configuration page](./web.md#configuration) | Identical to standard settings | Identical to standard settings | -| [Web/Options (I) page](./web.md#options-i) | Identical to standard settings | Identical to standard settings | -| [Web/Options (II) page](./web.md#options-ii) | Identical to standard settings | Identical to standard settings | -| [Web/Log (type) page](./web.md#log-type) | Identical to standard settings | Identical to standard settings | -| [Web/Log (backup) page](./web.md#log-backup) | Identical to standard settings | Identical to standard settings | -| [Web/Web Services page](./web.md#web-services) | Method prefixing option not available | Method prefixing option not available | -| [SQL page](./sql.md) | Identical to standard settings | Identical to standard settings | -| [PHP page](./php.md) | Identical to standard settings | Identical to standard settings | -| [Security page](./security.md) | N/a | N/a | -| [Compatibility page](./compatibility.md) | N/a | N/a | - -When you edit settings in this dialog box, they are automatically stored in the corresponding *settings.4DSettings* file (see below) or the *Backup.4DSettings* file (check the [Backup settings](../Backup/settings.md) page for more information). - -### `SET DATABASE PARAMETER` and user settings - -Some of the user settings are also available through the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. User settings are parameters with the **Kept between two sessions** property set to **Yes**. - -When the **User Settings** feature is enabled, user settings edited by the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command are automatically saved in the user settings for the data file. - -> `Table sequence number` is an exception; this setting value is always saved in the data file itself. - -### settings.4DSettings files - -When you [check the **Enable User Settings** option](#enabling-user-settings), user settings files are automatically created. Their location depends on the type of user settings defined. - -#### User Settings - -The standard user settings file is automatically created and placed in a settings folder at the following location: - -[`ProjectFolder/Settings/settings.4DSettings`](../Project/architecture.md#settings-user) - -... where *ProjectFolder* is the name of the folder containing the project structure file. - -In merged applications, the user settings file is placed at the following location: - -* In single-user versions: ProjectFolder/Database/Settings/settings.4DSettings -* In client/server versions: ProjectFolder/Server Database/Settings/settings.4DSettings - -#### User Settings for Data File - -The user settings file linked to the data file is automatically created and placed in a settings folder at the following location: - -[`Data/Settings/settings.4DSettings`](../Project/architecture.md#settings-user-data) - -... where *Data* is the name of the folder containing the current data file of the application. - -> When the data file is located at the same level as the project structure file, structure-based and data-based user settings files share the same location and file. The **User Settings for Data File...** menu command is not proposed. - -:::note - -Settings files are XML files; they can be read and modified using integrated 4D XML commands or using an XML editor. This means that you can manage settings by programming, particularly in the context of applications compiled and merged with 4D Volume Desktop. When you modify this file by programming, the changes are only taken into account the next time the database is opened. - -::: - - -### Priority of settings - -Settings can be stored at three levels. Each setting defined at one level overrides the same setting defined at a previous level, if any: - -| **Priority level** | **Name** | **Location** | **Comments** | -|---|---|---|---| -| 3 (lowest) | Structure settings (or Settings when "User settings" feature not enabled) | ***settings.4DSettings*** file in the Sources folder (project databases) or in the Settings folder as the same level as the structure file (binary databases) | Unique location when user settings are not enabled. Applied to all copies of the application. | -| 2 | User settings (all data files) | ***settings.4DSettings*** file in the Settings folder at the same level as the Project folder | Overrides Structure settings. Stored within the application package. | -| 1 (highest) | User settings (current data file) | ***settings.4DSettings*** file in the Settings folder at the same level as the data file | Overrides Structure settings and User settings. Applied only when the linked data file is used with the application. | - -Keep in mind that user settings files only contain a subset of relevant settings, while the structure file contains all custom settings, including core settings. diff --git a/versioned_sidebars/version-20-R10-sidebars.json b/versioned_sidebars/version-20-R10-sidebars.json index 21ce0e323cd78a..7fe91809eecd67 100644 --- a/versioned_sidebars/version-20-R10-sidebars.json +++ b/versioned_sidebars/version-20-R10-sidebars.json @@ -3347,7 +3347,7 @@ "label": "Go Mobile with 4D", "href": "https://developer.4d.com/go-mobile/" }, - { + { "type": "link", "label": "4D Mobile App Server", "href": "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md" From 074da6555e95cf33a01f803c9b05bad33bf2d2a1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 22 Sep 2025 10:14:07 +0200 Subject: [PATCH 048/119] New Crowdin updates (#2924) * New translations wp-add-picture.md (Spanish) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations create-deployment-license.md (French) * New translations create-deployment-license.md (Spanish) * New translations create-deployment-license.md (Japanese) * New translations create-deployment-license.md (Portuguese, Brazilian) * New translations database.md (French) * New translations string.md (French) * New translations pict2584929.en.png (French) * New translations pict2584929.en.png (Spanish) * New translations pict2584929.en.png (Japanese) * New translations pict2584929.en.png (Portuguese, Brazilian) * New translations pict2584938.en.png (French) * New translations pict2584938.en.png (Spanish) * New translations pict2584938.en.png (Japanese) * New translations pict2584938.en.png (Portuguese, Brazilian) * New translations pict2646292.en.png (Spanish) * New translations pict2646294.en.png (Spanish) * New translations pict2994900.en.png (French) * New translations pict2994900.en.png (Spanish) * New translations pict2994900.en.png (Portuguese, Brazilian) * New translations pict2994904.en.png (French) * New translations pict2994904.en.png (Spanish) * New translations pict2994904.en.png (Portuguese, Brazilian) * New translations pict2994907.en.png (French) * New translations pict2994907.en.png (Spanish) * New translations pict2994907.en.png (Portuguese, Brazilian) * New translations pict2994910.en.png (French) * New translations pict2994910.en.png (Spanish) * New translations pict2994910.en.png (Portuguese, Brazilian) * New translations pict2994913.en.png (French) * New translations pict2994913.en.png (Spanish) * New translations pict2994913.en.png (Portuguese, Brazilian) * New translations pict2994942.en.png (French) * New translations pict2994942.en.png (Spanish) * New translations pict2994942.en.png (Portuguese, Brazilian) * New translations pict2994945.en.png (French) * New translations pict2994945.en.png (Spanish) * New translations pict2994945.en.png (Portuguese, Brazilian) * New translations pict2994956.en.png (French) * New translations pict2994956.en.png (Spanish) * New translations pict2994956.en.png (Portuguese, Brazilian) * New translations pict2994958.en.png (French) * New translations pict2994958.en.png (Spanish) * New translations pict2994958.en.png (Portuguese, Brazilian) * New translations pict2994965.en.png (French) * New translations pict2994965.en.png (Spanish) * New translations pict2994965.en.png (Portuguese, Brazilian) * New translations pict2995027.en.png (French) * New translations pict2995027.en.png (Spanish) * New translations pict2995027.en.png (Portuguese, Brazilian) * New translations pict3033006.en.png (Spanish) * New translations pict3033006.en.png (Portuguese, Brazilian) * New translations pict3033008.en.png (Spanish) * New translations pict3033008.en.png (Portuguese, Brazilian) * New translations pict3053372.en.png (French) * New translations pict3053372.en.png (Spanish) * New translations pict3053372.en.png (Japanese) * New translations pict3053372.en.png (Portuguese, Brazilian) * New translations pict3071271.en.png (Spanish) * New translations pict3307937.en.png (Spanish) * New translations pict3307937.en.png (Portuguese, Brazilian) * New translations pict3307941.en.png (Spanish) * New translations pict3307941.en.png (Portuguese, Brazilian) * New translations pict3308424.en.png (Spanish) * New translations pict3513503.en.png (Spanish) * New translations pict3513503.en.png (Portuguese, Brazilian) * New translations pict3513505.en.png (Spanish) * New translations pict3514201.en.png (French) * New translations pict3514201.en.png (Spanish) * New translations pict3514201.en.png (Portuguese, Brazilian) * New translations pict3541581.en.png (Spanish) * New translations pict3541581.en.png (Portuguese, Brazilian) * New translations pict3626363.en.png (French) * New translations pict3626363.en.png (Spanish) * New translations pict3626363.en.png (Portuguese, Brazilian) * New translations pict3751849.en.png (French) * New translations pict3751849.en.png (Spanish) * New translations pict3751849.en.png (Portuguese, Brazilian) * New translations pict3752166.en.png (Spanish) * New translations pict3752176.en.png (Spanish) * New translations pict3893246.en.png (Spanish) * New translations pict3893246.en.png (Portuguese, Brazilian) * New translations pict3893248.en.png (Spanish) * New translations pict3893248.en.png (Portuguese, Brazilian) * New translations pict4101161.en.png (French) * New translations pict4101161.en.png (Spanish) * New translations pict4101161.en.png (Portuguese, Brazilian) * New translations pict4101210.en.png (French) * New translations pict4101210.en.png (Spanish) * New translations pict4101210.en.png (Portuguese, Brazilian) * New translations pict4101242.en.png (French) * New translations pict4101242.en.png (Spanish) * New translations pict4101242.en.png (Portuguese, Brazilian) * New translations pict4101252.en.png (French) * New translations pict4101252.en.png (Spanish) * New translations pict4101252.en.png (Japanese) * New translations pict4101252.en.png (Portuguese, Brazilian) * New translations pict4101267.en.png (French) * New translations pict4101267.en.png (Spanish) * New translations pict4101267.en.png (Portuguese, Brazilian) * New translations pict4619596.en.png (Spanish) * New translations pict4619694.en.png (French) * New translations pict4619694.en.png (Spanish) * New translations pict4619865.en.png (French) * New translations pict4619865.en.png (Spanish) * New translations pict4687892.en.png (French) * New translations pict4687892.en.png (Spanish) * New translations pict4687892.en.png (Portuguese, Brazilian) * New translations pict5562054.en.png (Spanish) * New translations pict5562054.en.png (Portuguese, Brazilian) * New translations pict5562058.en.png (Spanish) * New translations pict5562058.en.png (Portuguese, Brazilian) * New translations pict5761667.en.png (French) * New translations pict5761667.en.png (Spanish) * New translations pict5761669.en.png (French) * New translations pict5761669.en.png (Spanish) * New translations pict5761671.en.png (French) * New translations pict5761671.en.png (Spanish) * New translations pict5761673.en.png (French) * New translations pict5761673.en.png (Spanish) * New translations pict5761673.en.png (Portuguese, Brazilian) * New translations pict5761675.en.png (French) * New translations pict5761675.en.png (Spanish) * New translations pict5761677.en.png (French) * New translations pict5761677.en.png (Spanish) * New translations pict5859437.en.png (Spanish) * New translations pict5859437.en.png (Portuguese, Brazilian) * New translations pict5907013.en.png (Portuguese, Brazilian) * New translations pict5907021.en.png (Spanish) * New translations pict5907021.en.png (Portuguese, Brazilian) * New translations pict5907023.en.png (Spanish) * New translations pict5907023.en.png (Portuguese, Brazilian) * New translations pict5907026.en.png (Spanish) * New translations pict5907026.en.png (Portuguese, Brazilian) * New translations pict5907030.en.png (Spanish) * New translations pict5907030.en.png (Portuguese, Brazilian) * New translations pict5941073.en.png (French) * New translations pict5941073.en.png (Spanish) * New translations pict5941073.en.png (Portuguese, Brazilian) * New translations pict6014414.en.png (Spanish) * New translations pict6014414.en.png (Portuguese, Brazilian) * New translations pict6014426.en.png (Spanish) * New translations pict6014426.en.png (Portuguese, Brazilian) * New translations pict6014429.en.png (Spanish) * New translations pict6014429.en.png (Portuguese, Brazilian) * New translations pict6022144.en.png (Spanish) * New translations pict6022144.en.png (Portuguese, Brazilian) * New translations pict6131919.en.png (Spanish) * New translations pict6131919.en.png (Portuguese, Brazilian) * New translations pict6236360.en.png (Spanish) * New translations pict6236360.en.png (Portuguese, Brazilian) * New translations pict6260026.en.png (Spanish) * New translations pict6260026.en.png (Portuguese, Brazilian) * New translations pict6260033.en.png (Spanish) * New translations pict6260033.en.png (Portuguese, Brazilian) * New translations pict6260036.en.png (Spanish) * New translations pict6260036.en.png (Portuguese, Brazilian) * New translations pict6421031.en.png (Spanish) * New translations pict6421031.en.png (Portuguese, Brazilian) * New translations pict6421340.en.png (Spanish) * New translations pict6421340.en.png (Portuguese, Brazilian) * New translations pict6421342.en.png (Spanish) * New translations pict6421342.en.png (Portuguese, Brazilian) * New translations pict6421344.en.png (Spanish) * New translations pict6421344.en.png (Portuguese, Brazilian) * New translations pict6421356.en.png (Spanish) * New translations pict6421356.en.png (Portuguese, Brazilian) * New translations pict6434575.en.png (Spanish) * New translations pict6434579.en.png (Spanish) * New translations pict6434579.en.png (Portuguese, Brazilian) * New translations pict6434721.en.png (Spanish) * New translations pict6434721.en.png (Portuguese, Brazilian) * New translations pict6434723.en.png (Spanish) * New translations pict6434723.en.png (Portuguese, Brazilian) * New translations pict6434756.en.png (Spanish) * New translations pict6441966.en.png (French) * New translations pict6441966.en.png (Spanish) * New translations pict6441966.en.png (Portuguese, Brazilian) * New translations pict6013182.en.png (Spanish) * New translations pict6013182.en.png (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations code.json (French) * New translations current.json (French) * New translations code.json (Spanish) * New translations current.json (Spanish) * New translations code.json (Japanese) * New translations current.json (Japanese) * New translations code.json (Portuguese, Brazilian) * New translations current.json (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations httprequestclass.md (French) * New translations sessionclass.md (French) * New translations data-collect.md (French) * New translations dt_boolean.md (French) * New translations updates.md (Spanish) * New translations $filter.md (French) * New translations database.md (French) * New translations httpagentclass.md (French) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaiparameters.md (French) * New translations collectionclass.md (French) * New translations openaiparameters.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations database.md (French) * New translations create-deployment-license.md (French) * New translations version-20-r10.json (French) * New translations dataclassclass.md (French) * New translations version-20-r10.json (Spanish) * New translations dataclassclass.md (Spanish) * New translations version-20-r10.json (Japanese) * New translations dataclassclass.md (Japanese) * New translations version-20-r10.json (Portuguese, Brazilian) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations sessionclass.md (French) * New translations cli.md (Spanish) * New translations updates.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-insert-picture.md (Spanish) --- .../current/aikit/Classes/OpenAIParameters.md | 2 +- .../en/WritePro/commands/pict6013182.en.png | Bin 0 -> 510 bytes .../current/API/SessionClass.md | 2 +- .../current/aikit/Classes/OpenAIParameters.md | 2 +- .../en/WritePro/commands/pict6013182.en.png | Bin 0 -> 510 bytes 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index be800095bcd212..36cac09cb412e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -68,7 +68,7 @@ Use these callback properties for more granular control over success and error h | `onResponse` | 4D.Function | A function to be called synchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | | `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | -> The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. +> The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. See [documentation about asynchronous code for examples](../asynchronous-call.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b95111dd2fc2ee0c6516d01da9539e9e6593d1 GIT binary patch literal 510 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0h38YK~y+TV|@1P z83S>E2}%k zNF}Ve24X&Yc5#M>-`r~tA3g+euB}d$(yZMJW`j(4P(yc)W}xz)}nk4lmjJ=-k@bo34C-2=LnahwM6k2griB zRa-_HOfxX3`(y zcM#UeT6**rI9x#B{)wfz#=<(qo1uaD3=y%v-&|bXTF|imjfkuOGsD-HFZpeA8k;li zq`)Qu0Y)PH{pIcZZ-1G&1ciBEYM@|%(<=i50F_L=(LGd2eE The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. +> The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. See [documentation about asynchronous code for examples](../asynchronous-call.md) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/commands/pict6013182.en.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b95111dd2fc2ee0c6516d01da9539e9e6593d1 GIT binary patch literal 510 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0h38YK~y+TV|@1P z83S>E2}%k zNF}Ve24X&Yc5#M>-`r~tA3g+euB}d$(yZMJW`j(4P(yc)W}xz)}nk4lmjJ=-k@bo34C-2=LnahwM6k2griB zRa-_HOfxX3`(y zcM#UeT6**rI9x#B{)wfz#=<(qo1uaD3=y%v-&|bXTF|imjfkuOGsD-HFZpeA8k;li zq`)Qu0Y)PH{pIcZZ-1G&1ciBEYM@|%(<=i50F_L=(LGd2eE Date: Tue, 23 Sep 2025 10:07:35 +0200 Subject: [PATCH 049/119] New Crowdin updates (#2925) * New translations code.json (French) * New translations current.json (French) * New translations code.json (Spanish) * New translations code.json (Japanese) * New translations code.json (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations data-collect.md (Japanese) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-run-offscreen-area.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (French) * New translations wp-get-attributes.md (French) * New translations wp-set-attributes.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-set-attributes.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations openaiparameters.md (French) * New translations openaiparameters.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations overview.md (French) * New translations vp-find.md (French) * New translations vp-run-offscreen-area.md (French) * New translations wp-get-attributes.md (French) * New translations wp-get-attributes.md (Spanish) * New translations wp-get-attributes.md (Japanese) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations entityclass.md (French) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-move-cells.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-workbook-options.md (French) * New translations wp-get-attributes.md (French) * New translations wp-get-attributes.md (Spanish) * New translations wp-get-attributes.md (Japanese) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) --- .../current/aikit/Classes/OpenAIParameters.md | 8 ++++---- .../current/aikit/Classes/OpenAIParameters.md | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 36cac09cb412e5..868a7bafc7a500 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -63,10 +63,10 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md Use these callback properties for more granular control over success and error handling: -| Propiedad | Tipo | Descripción | -| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called synchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | +| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | > The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 10fe3d9944a1ea..afe16eb8ff9177 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -61,18 +61,18 @@ title: OpenAIParameters 詳細な情報については [非同期コードに関するドキュメンテーション](../asynchronous-call.md) を参照してください。 -Use these callback properties for more granular control over success and error handling: +成功とエラー処理をより細やかに管理するためにはこれらのコールバックプロパティを使用します: -| プロパティ | 型 | 説明 | -| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called synchronously when the request finishes **successfully**. カレントプロセスが終了しないように注意してください。 | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. カレントプロセスが終了しないように注意してください。 | +| プロパティ | 型 | 説明 | +| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. カレントプロセスが終了しないように注意してください。 | +| `onError` | 4D.Function | リクエストが**エラーで**終了した場合に非同期で呼び出される関数。 カレントプロセスが終了しないように注意してください。 | -> The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. +> これらのコールバック関数は、同期コード内での関数によって返される結果のオブジェクト型([OpenAIResult](./OpenAIResult.md) 子クラスのうちのいずれか)と同じものを受け取ります。 -See [documentation about asynchronous code for examples](../asynchronous-call.md) +詳細な情報については [非同期コードに関するドキュメンテーション](../asynchronous-call.md) を参照してください。 -### Network Properties +### ネットワークプロパティ | プロパティ | 型 | 説明 | | -------------- | --------- | --------------------------------------------------------------------------- | @@ -81,7 +81,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md | `maxRetries` | Integer | リクエストのリトライの最大回数。 (コードが非同期でない場合、つまり関数が提供されていない場合のみ) | | `extraHeaders` | Object | リクエストに付随して送信する追加のヘッダー。 | -### OpenAPI Properties +### OpenAPIプロパティ | プロパティ | 型 | 説明 | | ------ | ---- | -------------------------------------------------- | From 99a6445dc8822f43c470c545595c9daecef2a263 Mon Sep 17 00:00:00 2001 From: sandritica <136651682+sandritica@users.noreply.github.com> Date: Tue, 23 Sep 2025 03:11:18 -0500 Subject: [PATCH 050/119] Update delay-process.md (#2920) --- .../version-21/commands-legacy/delay-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md index 9ed72c2d3d968a..6968bb5de37310 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md @@ -32,7 +32,7 @@ Ver los ejemplos en *Record Locking*. ## Ejemplo 2 -Ver el ejemplo del comando [Process Number](process-number.md "Process Number"). +Ver el ejemplo del comando [Process Number](../commands/process-number.md). ## Ver también From 32bf92de990666c1300e705d4ab1cf92fa0fc7c5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 24 Sep 2025 09:49:25 +0200 Subject: [PATCH 051/119] New Crowdin updates (#2928) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_object.md (French) * New translations properties_object.md (Spanish) * New translations properties_object.md (Japanese) * New translations properties_object.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Spanish) * New translations creating.md (Japanese) * New translations creating.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations projectcreate-1.png (French) * New translations projectcreate-1.png (Spanish) * New translations projectcreate-1.png (Japanese) * New translations projectcreate-1.png (Portuguese, Brazilian) * New translations projectcreate-2.png (French) * New translations projectcreate-2.png (Spanish) * New translations projectcreate-2.png (Japanese) * New translations projectcreate-2.png (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations asynchronous-call.md (Japanese) --- .../current/Extensions/develop-components.md | 32 +++++++++---------- .../current/Extensions/develop-components.md | 32 +++++++++---------- .../current/Extensions/develop-components.md | 32 +++++++++---------- .../current/Extensions/develop-components.md | 32 +++++++++---------- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index 41b86456ab8d1e..7e0d5001eb5827 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Componentes de desarrollo +title: Developing Extensions --- ## Componentes @@ -9,7 +9,7 @@ Un componente 4D es un conjunto de funciones, métodos y formularios 4D que repr Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. También puede [compartir sus componentes con la comunidad 4D](https://github.com/topics/4d-component). -## Definiciones +### Definiciones - **Base proyecto**: proyecto 4D utilizado para desarrollar el componente. El proyecto matriz es una base estándar sin atributos específicos. Un proyecto matricial forma un único componente. - **Proyecto local**: proyecto aplicación en la que se instala y utiliza un componente. @@ -153,7 +153,7 @@ Los siguientes comandos no son compatibles para su uso dentro de un componente p - El comando `Current form table` devuelve `Nil` cuando se llama en el contexto de un formulario proyecto. Por consiguiente, no puede utilizarse en un componente. - Comandos del lenguaje de definición de datos SQL (`CREATE TABLE`, `DROP TABLE`, etc.) no se puede utilizar en el proyecto del componente. Sin embargo, se soportan con bases de datos externas (ver el comando SQL `CREATE DATABASE`). -## Compartir métodos proyecto +### Compartir métodos proyecto Todos los métodos proyecto de un proyecto matricial son por definición incluidos en el componente (el proyecto es el componente), lo que significa que pueden ser llamados y ejecutados dentro del componente. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Una base local interpretada que contenga componentes interpretados puede ser compilada o verificada sintácticamente si no llama a métodos del componente interpretado. De lo contrario, aparecerá una caja de diálogo de advertencia cuando intente iniciar la compilación o una comprobación de sintaxis y no será posible realizar la operación. > Tenga en cuenta que un método interpretado puede llamar a un método compilado, pero no a la inversa, excepto mediante el uso de los comandos `EXECUTE METHOD` y `EXECUTE FORMULA`. -## Compartir clases +### Compartir clases Por defecto, las clases de los componentes no pueden ser llamadas desde el editor de código 4D del proyecto local. Si desea exponer la clase del componente al proyecto principal y a los componentes que se están cargando, debe **declarar un espacio de nombres de componente**. Además, puede controlar cómo se sugieren las clases de los componentes en el Editor de código local. -### Declaración del namespace +#### Declaración del namespace Para permitir que las clases de su componente se expongan en los proyectos locales y sus componentes cargados, introduzca un valor en la opción [**namespace del componente en la class store** en la página General](../settings/general.md#component-namespace-in-the-class-store) de las Propiedades del proyecto matriz. Por defecto, el área está vacía: las clases de componentes no están disponibles fuera del contexto de los componentes. @@ -220,7 +220,7 @@ Por supuesto, se recomienda utilizar un nombre distintivo para evitar cualquier Las clases ORDA de un componente no están disponibles en el proyecto local. Por ejemplo, si hay una dataclass llamada Employees en su componente, no podrá utilizar una clase "cs.Mycomponent.Employee" en el proyecto local. -### Clases ocultas +#### Clases ocultas Como en todo proyecto, puede crear clases y funciones ocultas en el componente anteponiendo a los nombres un guión bajo ("_"). Cuando se define un [namespace de componente](#declaring-the-component-namespace), las clases y funciones ocultas del componente no aparecerán como sugerencias al utilizar completar el código. @@ -243,7 +243,7 @@ Un archivo de sintaxis (formato JSON) se crea automáticamente durante la fase d Si no ingresa un [namespace](#declaring-the-component-namespace), los recursos de las clases y de los métodos exposed no se generan incluso si la opción de archivo de sintaxis está marcada. -## Paso de variables +### Paso de variables Las variables locales, proceso e interproceso no se comparten entre los componentes y los proyectos locales. La única forma de modificar las variables del componente desde el proyecto local y viceversa es utilizando punteros. @@ -305,7 +305,7 @@ En este caso, es necesario utilizar la comparación de punteros: If(myptr1=myptr2) //Esta prueba devuelve False ``` -## Gestión de errores +### Gestión de errores An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En el caso de un error generado por un componente, no se llama al método de gestión de errores `ON ERR CALL` del proyecto local, y viceversa. @@ -315,7 +315,7 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -## Acceso a las tablas del proyecto local +### Acceso a las tablas del proyecto local Aunque los componentes no pueden utilizar tablas, los punteros pueden permitir que los proyectos locales y los componentes se comuniquen entre sí. Por ejemplo, este es un método que podría ser llamado desde un componente: @@ -341,7 +341,7 @@ SAVE RECORD($tablepointer- > En el contexto de un componente, 4D asume que una referencia a un formulario tabla es una referencia al formulario tabla local (ya que los componentes no pueden tener tablas.) -## Uso de tablas y campos +### Uso de tablas y campos Un componente no puede utilizar las tablas y campos definidos en la estructura 4D del proyecto matriz. Sin embargo, puede crear y utilizar bases externas, y luego utilizar sus tablas y campos según sus necesidades. Puede crear y gestionar bases externas utilizando SQL. Sin embargo, puede crear y utilizar bases externas, y luego utilizar sus tablas y campos según sus necesidades. Utilizar una base externa significa designar temporalmente esta base como base actual, es decir, como la base de destino para las consultas SQL ejecutadas por 4D. Las bases externas se crean con el comando SQL `CREATE DATABASE`. @@ -421,7 +421,7 @@ Lectura en una base de datos externa: End SQL ``` -## Utilización de formularios +### Utilización de formularios - Sólo los "formularios de proyecto" (formularios que no están asociados a ninguna tabla específica) pueden utilizarse en un componente. Sólo los "formularios de proyecto" (formularios que no están asociados a ninguna tabla específica) pueden utilizarse en un componente. - Un componente puede llamar a formularios tabla del proyecto local. Tenga en cuenta que en este caso es necesario utilizar punteros en lugar de nombres de tablas entre paréntesis [] para especificar los formularios en el código del componente. @@ -432,7 +432,7 @@ Lectura en una base de datos externa: > En el contexto de un componente, cualquier formulario de proyecto referenciado debe pertenecer al componente. Por ejemplo, dentro de un componente, hacer referencia a un formulario proyecto local utilizando `DIALOG` u `Open form window` arrojará un error. -## Utilización de recursos +### Utilización de recursos Los componentes pueden utilizar recursos situados en la carpeta Resources del componente. @@ -440,7 +440,7 @@ Los mecanismos automáticos son operacionales: los archivos XLIFF encontrados en En un proyecto local que contiene uno o más componentes, cada componente, así como los proyectos locales, tiene su propia "cadena de recursos." Los recursos están divididos entre las diferentes proyectos: no es posible acceder a los recursos del componente A desde el componente B o desde el proyecto local. -## Ejecución del código de inicialización +### Ejecución del código de inicialización Un componente puede ejecutar automáticamente código 4D al abrir o cerrar la base local, por ejemplo para cargar y/o guardar las preferencias o los estados usuario relacionados con el funcionamiento de la base local. @@ -448,7 +448,7 @@ La ejecución del código de inicialización o cierre se realiza mediante el mé > Por razones de seguridad, debe autorizar explícitamente la ejecución del método base `On Host Database Event` en la base local para poder llamarlo. Para ello, debe marcar la opción [**Ejecutar el método "On Host Database Event" de los componentes**](../settings/security.md#options) en la página Seguridad de la Configuración. -## Info.plist +### Info.plist Los componentes pueden tener un archivo `Info.plist` en su [carpeta raíz](../Project/architecture.md) para ofrecer información extra legible por el sistema (sólo macOS) y el [Gestor de dependencias](../Project/components.md#loading-components). @@ -497,7 +497,7 @@ En macOS, la información está disponible en el Finder: ![](../assets/en/Develop/infoplist-component.png) -## Protección de los componentes: compilación +### Protección de los componentes: compilación Por defecto, todo el código de un proyecto matriz instalado como componente es potencialmente visible desde el proyecto local. En particular: @@ -510,7 +510,7 @@ Para proteger eficazmente el código de un componente, basta con [compilar y gen - Los métodos, clases y funciones del proyecto compartido pueden ser llamados desde los métodos proyecto locales y también se muestran en la página de métodos del Explorador. Sin embargo, su contenido no aparecerá en el área de vista previa ni en el depurador. - Los otros métodos proyecto del proyecto matriz nunca aparecerán. -## Compartiendo sus componentes en GitHub +### Compartiendo sus componentes en GitHub Lo animamos a que apoye a la comunidad de desarrolladores 4D compartiendo sus componentes, preferiblemente en la plataforma [GitHub](https://github.com/topics/4d-component). Recomendamos que utilice el tema **`4d-component`** para ser referenciado correctamente. 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 1ff76440a11965..f3413bd8478651 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 @@ -1,6 +1,6 @@ --- id: develop-components -title: Développement de composants +title: Developing Extensions --- ## Composants @@ -9,7 +9,7 @@ Un composant 4D est un ensemble de fonctions, méthodes et de formulaires 4D rep Vous pouvez développer des composants 4D pour vos propres besoins et les garder privés. Nous vous encourageons à soutenir la communauté des développeurs 4D en partageant vos composants, de préférence sur la [plateforme GitHub](https://github.com/topics/4d-component). -## Définitions +### Définitions - **Projet utilisé comme matrice** : Projet 4D utilisé pour le développement du composant. C'est un projet standard, sans attribut spécifique. Il constitue un seul composant. - **Projet hôte :** projet dans lequel un composant est installé et utilisé. @@ -153,7 +153,7 @@ Les commandes suivantes ne sont pas compatibles avec une utilisation dans le cad - La commande `Current form table` retourne `Nil` lorsqu’elle est appelée dans le contexte d’un formulaire projet. Par conséquent, elle ne peut pas être utilisée dans un composant. - Les commandes de langage de définition de données SQL (`CREATE TABLE`, `DROP TABLE`, etc.) ne peuvent pas être utilisées dans le projet de composant. Elles sont néanmoins prises en charge avec des bases de données externes (voir la commande SQL `CREATE DATABASE`). -## Partage des méthodes projet +### Partage des méthodes projet Toutes les méthodes projet d’un projet utilisé comme matrice sont par définition incluses dans le composant (le projet est le composant), ce qui signifie qu’elles peuvent être appelées et exécutées dans le composant. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Vous pouvez compiler ou effectuer une vérification syntaxique dans une base hôte interprétée qui contient des composants interprétés si elle n'appelle pas de méthodes du composant interprété. Dans le cas contraire, une boîte de dialogue d'avertissement apparaît lorsque vous tentez de lancer la compilation ou un contrôle syntaxique et il n'est pas possible d'effectuer l'opération. > N'oubliez pas qu'une méthode interprétée peut appeler une méthode compilée, mais pas l'inverse, sauf via l'utilisation des commandes `EXECUTE METHOD` et `EXECUTE FORMULA`. -## Partage des classes +### Partage des classes Par défaut, les classes de composants ne peuvent pas être appelées à partir de l'éditeur de code 4D du projet hôte. Si vous voulez que vos classes de composants soient exposées dans le projet hôte et ses composants chargés, vous devez **déclarer un namespace de composant**. En outre, vous pouvez contrôler la manière dont les classes de composants sont suggérées dans l'éditeur de code de l'hôte. -### Déclaration du namespace +#### Déclaration du namespace Pour permettre aux classes de votre composant d'être exposées dans les projets hôtes et leurs composants chargés, saisissez une valeur dans l'option [**namespace du composant dans le class store** de la page Général](../settings/general.md#component-namespace-in-the-class-store) des paramètres du projet matrice. Par défaut, l'espace est vide : les classes du composant ne sont pas disponibles en dehors du contexte du composant. @@ -220,7 +220,7 @@ Bien entendu, il est recommandé d'utiliser un nom distinctif pour éviter tout Les classes ORDA d'un composant ne sont pas disponibles dans le projet hôte. Par exemple, s'il existe une dataclass nommée Employees dans votre composant, vous ne pourrez pas utiliser une classe "cs.Mycomponent.Employee" dans le projet hôte. -### Classes cachées +#### Classes cachées Comme dans tout projet, vous pouvez créer des classes et des fonctions cachées dans le composant en préfixant les noms par un caractère de soulignement ou ("_"). Lorsqu'un [namespace est défini](#declaring-the-component-namespace), les classes et fonctions cachées du composant n'apparaîtront pas comme des suggestions lors de l'utilisation de la complétion de code. @@ -243,7 +243,7 @@ Un fichier de syntaxe (format JSON) est alors automatiquement créé lors de la Si vous ne saisissez pas de [namespace](#declaring-the-component-namespace), les ressources des classes et des méthodes 'exposed' ne sont pas générées, même si l'option de fichier de syntaxe est cochée. -## Passage de variables +### Passage de variables Les composants et les projets hôtes ne partagent pas de variables locales, process ou interprocess. La seule façon de modifier les variables de composants du projet hôte et vice versa est d'utiliser des pointeurs. @@ -306,7 +306,7 @@ Dans ce cas, il est nécessaire d’utiliser la comparaison de pointeurs : If(monptr1=monptr2) //Ce test retourne Faux ``` -## Gestion des erreurs +### Gestion des erreurs An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En cas d'erreur générée par un composant, la méthode d'appel sur erreur `ON ERR CALL` du projet hôte n'est pas appelée, et inversement. @@ -316,7 +316,7 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -## Accès aux tables du projet hôte +### Accès aux tables du projet hôte Bien que les composants ne puissent pas utiliser de tables, les pointeurs permettent au projet hôte et au composant de communiquer. Par exemple, voici une méthode pouvant être appelée depuis un composant : @@ -342,7 +342,7 @@ SAVE RECORD($tablepointer- > Dans le contexte d'un composant, 4D suppose qu'une référence à un formulaire table est une référence au formulaire table hôte (car les composants ne peuvent pas avoir de tables) -## Utilisation de tables et de champs +### Utilisation de tables et de champs Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. @@ -422,7 +422,7 @@ Lecture dans une base de données externe : End SQL ``` -## Utilisation de formulaires +### Utilisation de formulaires - Seuls les "formulaires projet" (formulaires non associés à une table en particulier) peuvent être exploités directement dans un composant. Tous les formulaires projet présents dans le projet matrice peuvent être utilisés par le composant. - Un composant peut faire appel à des formulaires table du projet hôte. A noter qu’il est nécessaire dans ce cas d’utiliser des pointeurs plutôt que des noms de table entre [] pour désigner les formulaires dans le code du composant. @@ -433,7 +433,7 @@ Lecture dans une base de données externe : > Dans le contexte d'un composant, tout formulaire projet référencé doit appartenir au composant. Par exemple, à l'intérieur d'un composant, le fait de référencer un formulaire projet hôte à l'aide de `DIALOG` ou de `Open form window` déclenchera une erreur. -## Utilisation de ressources +### Utilisation de ressources Les composants peuvent utiliser des ressources situées dans le dossier Ressources du composant. @@ -441,7 +441,7 @@ Les mécanismes automatiques sont opérationnels : les fichiers XLIFF présents Dans un projet hôte contenant un ou plusieurs composants, chaque composant ainsi que les projets hôtes ont leur propre «chaîne de ressources» Les ressources sont réparties entre les différents projets : il n'est pas possible d'accéder aux ressources du composant A à partir du composant B ou du projet hôte. -## Exécution du code d'initialisation +### Exécution du code d'initialisation Un composant peut exécuter automatiquement du code 4D lors de l'ouverture ou de la fermeture de la base hôte, par exemple pour charger et/ou sauvegarder les préférences ou les états utilisateur liés au fonctionnement de la base hôte. @@ -449,7 +449,7 @@ L'exécution du code d'initialisation ou de fermeture se fait au moyen de la mé > Pour des raisons de sécurité, vous devez autoriser explicitement l'exécution de la méthode base `On Host Database Event` dans la base hôte afin de pouvoir l'appeler. Pour ce faire, vous devez cocher l'option [**Exécuter la méthode "Sur événement base hôte" des composants**](../settings/security.md#options) dans la page Sécurité des Propriétés du projet. -## Info.plist +### Info.plist Les composants peuvent avoir un fichier `Info.plist` dans leur [dossier racine](../Project/architecture.md) pour fournir des informations supplémentaires lisibles par le système (macOS uniquement) et le [Gestionnaire de dépendances](../Project/components.md#loading-components). @@ -498,7 +498,7 @@ Sous macOS, les informations sont disponibles dans le Finder : ![](../assets/en/Develop/infoplist-component.png) -## Protection des composants : la compilation +### Protection des composants : la compilation Par défaut, tout le code d’un projet utilisé comme matrice installé comme composant est virtuellement visible depuis le projet hôte. En particulier : @@ -511,7 +511,7 @@ Pour assurer la protection du code d'un composant, [compilez et générerez](Des - Les méthodes projet, classes et fonctions partagées peuvent être appelées dans les méthodes du projet hôte et sont également visibles dans la page Méthodes de l'explorateur. En revanche, leur contenu n’apparaît pas dans la zone de prévisualisation ni dans le débogueur. - Les autres méthodes projet du projet utilisé comme matrice n’apparaissent jamais. -## Partager vos composants sur GitHub +### Partager vos composants sur GitHub Vous pouvez également [partager vos composants avec la communauté 4D](https://github.com/topics/4d-component). Afin d'être correctement référencé, nous vous recommandons d'utiliser le "topic" **`4d-component`**. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index fe8feb36c11799..af2096569d6ba5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: コンポーネントの開発 +title: Developing Extensions --- ## コンポーネント @@ -9,7 +9,7 @@ title: コンポーネントの開発 ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 また、作成した [コンポーネントを4Dコミュニティで共有](https://github.com/topics/4d-component) することもできます。 -## 定義 +### 定義 - **マトリクスプロジェクト**: コンポーネント開発に使用する4D プロジェクト。 マトリクスプロジェクトは特別な属性を持たない標準のプロジェクトです。 マトリクスプロジェクトはひとつのコンポーネントを構成します。 - **ホストプロジェクト**: コンポーネントがインストールされ、それを使用するアプリケーションプロジェクト。 @@ -153,7 +153,7 @@ title: コンポーネントの開発 - `Current form table` コマンドは、プロジェクトフォームのコンテキストで呼び出されると `Nil` を返します。 ゆえにこのコマンドをコンポーネントで使用することはできません。 - SQLデータ定義言語のコマンド (`CREATE TABLE`、`DROP TABLE`等) をコンポーネントのフレームワークで使用することはできません。 ただし、外部データベースの場合は使用することができます (`CREATE DATABASE` SQL コマンド参照)。 -## プロジェクトメソッドの共有 +### プロジェクトメソッドの共有 マトリクスプロジェクトのすべてのプロジェクトメソッドは 、コンポーネントに含まれます。 つまり、マトリクスプロジェクトをコンポーネント化した後、これらのプロジェクトメソッドは同コンポーネント内で呼び出して実行することができます。 @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > インタープリターコンポーネントがインストールされたインタープリターホストデータベースは、それがインタープリターコンポーネントのメソッドを呼び出さなければ、コンパイル/シンタックスチェックができます。 そうでない場合、コンパイルまたはシンタックスチェックを実行しようとすると警告ダイアログが表示され、操作を実行することはできません。 > 一般的に、インタープリターメソッドはコンパイル済みメソッドを呼び出せますが、逆はできません。これをおこなうには `EXECUTE METHOD` や `EXECUTE FORMULA` コマンドを使用します。 -## クラスの共有 +### クラスの共有 デフォルトでは、ホストプロジェクトの 4Dコードエディターからコンポーネントのクラスを呼び出すことはできません。 ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開したい場合は、**コンポーネント名前空間を宣言** する必要があります。 また、コンポーネントのクラスがホストコードエディターでどのように提案されるかをコントロールすることもできます。 -### コンポーネント名前空間の宣言 +#### コンポーネント名前空間の宣言 ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 デフォルトでは、このエリアは空です。つまり、コンポーネントのクラスはコンポーネント外で利用できません。 @@ -220,7 +220,7 @@ $area:=$rect.getArea() コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。 たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 -### 非表示クラス +#### 非表示クラス アンダースコア ("_") を名前の前に付けることで、コンポーネントのクラスや関数を非表示にすることができます。 [コンポーネント名前空間が定義されている](#コンポーネント名前空間の宣言) 場合、非表示のクラスや関数はコード補完の際に提案されません。 @@ -243,7 +243,7 @@ $rect:=cs.eGeometry._Rectangle.new(10;20) [コンポーネント名前空間](#コンポーネント名前空間の宣言) を入力しない場合、シンタックスファイル生成のオプションがチェックされていても、クラスや公開メソッド用のリソースは生成されませ ん。 -## 変数の渡し方 +### 変数の渡し方 ローカル、プロセス、インタープロセス変数は、コンポーネントとホストプロジェクト間で共有されません。 ホストプロジェクトからコンポーネントの変数を編集、またはその逆をおこなう唯一の方法はポインターを使用することです。 @@ -306,7 +306,7 @@ component_method($input_t) If(myptr1=myptr2) // このテストはFalse を返します ``` -## エラー処理 +### エラー処理 [`ON ERR CALL`](../commands-legacy/on-err-call.md) コマンドを使用して実装された[エラー処理メソッド](Concepts/error-handling.md) は実行中のアプリケーションに対してのみ適用されます。 コンポーネントによって生成されたエラーの場合、ホストプロジェクトの `ON ERR CALL` エラー処理メソッドは呼び出されず、その逆もまた然りです。 @@ -316,7 +316,7 @@ component_method($input_t) しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。 -## ホストプロジェクトのテーブルへのアクセス +### ホストプロジェクトのテーブルへのアクセス コンポーネントでテーブルを使用することはできませんが、ホストプロジェクトとコンポーネントはポインターを使用して通信をおこなうことができます。 たとえば、以下はコンポーネントで実行可能なメソッドです: @@ -342,7 +342,7 @@ SAVE RECORD($tablepointer->) > コンポーネントのコンテキストにおいて、テーブルフォームへの参照はすべてホスト側のテーブルフォームへの参照だと 4D はみなします (コンポーネントはテーブルを持つことができないからです)。 -## テーブルやフィールドの利用 +### テーブルやフィールドの利用 コンポーネントは、マトリクスプロジェクトのストラクチャーで定義されたテーブルやフィールドを使用することはできません。 しかし外部データベースを作成し、そのテーブルやフィールドを必要に応じ利用することはできます。 外部データベースの作成と管理は SQL を用いておこないます。 外部データベースは、メインの4Dプロジェクトから独立している別の 4Dプロジェクトですが、メインプロジェクトから操作が可能です。 外部データベースの利用は、そのデータベースを一時的にカレントデータベースに指定することです。言い換えれば、4Dが実行する SQL クエリのターゲットデータベースとして外部データベースを指定します。 外部データベースの作成は SQL の `CREATE DATABASE` コマンドを使用します。 @@ -425,7 +425,7 @@ SAVE RECORD($tablepointer->) ``` -## フォームの使用 +### フォームの使用 - 特定のテーブルに属さない" プロジェクトフォーム" のみが、コンポーネント内で利用できます。 マトリクスプロジェクトのすべてのプロジェクトフォームをコンポーネントで使用することができます。 - コンポーネントはホストプロジェクトのテーブルフォームを使用できます。 この場合、コンポーネントのコードでフォームを指定するにあたっては、テーブル名ではなく、テーブルへのポインターを使用しなければならないことに注意してください。 @@ -436,7 +436,7 @@ SAVE RECORD($tablepointer->) > コンポーネントのコンテキストにおいては、参照されるプロジェクトフォームはすべてコンポーネント内に存在している必要があります。 たとえば、コンポーネント内において、`DIALOG` または `Open form window` コマンドを使用してホスト側のプロジェクトフォームを参照しようとした場合にはエラーが生成されます。 -## リソースの使用 +### リソースの使用 コンポーネントは、自身の Resourcesフォルダーにあるリソースを使用することができます。 @@ -444,7 +444,7 @@ SAVE RECORD($tablepointer->) 1つ以上のコンポーネントを含むホストプロジェクトでは、ホストプロジェクトと同様にそれぞれのコンポーネントも固有のリソースチェーンを持っています。 リソースは異なるプロジェクト間で分離されます。コンポーネントA のリソースにコンポーネントB やホストプロジェクトからアクセスすることはできません。 -## 初期化のコードの実行 +### 初期化のコードの実行 コンポーネントは、ホストデータベースを開いたときまたは閉じたときに、自動的に 4Dコードを実行することができます。これによってたとえば、ホストデータベースに関連する設定やユーザーの状態などを読み込み・保存することができます。 @@ -452,7 +452,7 @@ SAVE RECORD($tablepointer->) > セキュリティ上の理由から、`On Host Database Event` データベースメソッドを使用可能にするためには、その実行をホストデータベースで明示的に許可する必要があります。 このためには、ストラクチャー設定画面のセキュリティページ内の、[**コンポーネントの "On Host Database Event" メソッドを実行**](../settings/security.md#オプション) オプションにチェックを入れます: -## Info.plist +### Info.plist コンポーネントは、その[root フォルダ](../Project/architecture.md) にシステム(macOS のみ)と[依存関係マネージャ](../Project/components.md#コンポーネントのロード)が読み取り可能な追加の情報を提供する、 `Info.plist` ファイルを持っています。 @@ -501,7 +501,7 @@ macOS 上では、Finder からこの情報を見ることができます: ![](../assets/en/Develop/infoplist-component.png) -## コンポーネントの保護: コンパイル +### コンポーネントの保護: コンパイル コンポーネントとしてインストールされたマトリクスプロジェクトのコードは、ホストプロジェクトからデフォルトでアクセス可能です。 特に: @@ -514,7 +514,7 @@ macOS 上では、Finder からこの情報を見ることができます: - 共有のプロジェクトメソッド、クラス、および関数は、ホストプロジェクトのメソッドから呼び出し可能です。共有のプロジェクトメソッドは、エクスプローラーのメソッドページにも表示されます。 しかし、その内容はプレビューエリアにもデバッガーにも表示されません。 - マトリクスプロジェクトの他のプロジェクトメソッドは一切表示されません。 -## GitHub上でコンポーネントを共有する +### GitHub上でコンポーネントを共有する 開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-component`** トピックをご利用ください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index a051325df053db..1ebef506067400 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Componentes de desenvolvimento +title: Developing Extensions --- ## Componentes @@ -9,7 +9,7 @@ Um componente 4D é um conjunto de funções, métodos e formulários 4D que rep Você pode desenvolver componentes 4D para suas próprias necessidades e mantê-los privados. Você também pode [compartilhar seus componentes com a comunidade 4D](https://github.com/topics/4d-component). -## Definições +### Definições - **Projeto Matrix**: ´projeto 4D usado para desenvolver o componente. O projeto matriz é um projeto standard sem atributos específicos. Um projeto matricial forma um componente único. - **Projeto Host**: projeto aplicação onde um componente é instalado e usado. @@ -153,7 +153,7 @@ Os comandos abaixo não são compatíveis para seu uso dentro de um componente p - O comando `Current form table` retorna `Nil` quando é chamado no contexto de um formulário de projeto. Por isso não pode ser usado em um componente. - Os comandos da linguagem de definição de dados SQL (`CREATE TABLE`, `DROP TABLE`, etc.) não pode ser usado no projeto do componente. No entanto, eles são compatíveis com bancos de dados externos (consulte o comando SQL `CREATE DATABASE`). -## Partilhar os métodos projeto +### Partilhar os métodos projeto Todos os métodos de projeto de um projeto de matriz são, por definição, incluídos no componente (o projeto é o componente), o que significa que eles podem ser chamados e executados dentro do componente. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Um banco de dados de host interpretado que contém componentes interpretados pode ser compilado ou verificado quanto à sintaxe se não chamar métodos do componente interpretado. Caso contrário, uma caixa de diálogo de aviso será exibida quando você tentar iniciar a compilação ou uma verificação de sintaxe, e não será possível executar a operação. > Lembre-se de que um método interpretado pode chamar um método compilado, mas não o contrário, exceto pelo uso dos comandos `EXECUTE METHOD` e `EXECUTE FORMULA`. -## Compartilhamento de classes +### Compartilhamento de classes By default, component classes cannot be called from the 4D Code Editor of the host project. Se quiser que suas classes de componentes sejam expostas no projeto host e em seus componentes carregados, você precisará **declarar um namespace de componente**. Additionally, you can control how component classes are suggested in the host Code Editor. -### Declaração do namespace +#### Declaração do namespace Para permitir que as classes de seu componente sejam expostas nos projetos host e em seus componentes carregados, insira um valor na opção [**Namespace do componente na class store** na página General](../settings/general.md#component-namespace-in-the-class-store) das Configurações do projeto da matriz. Por padrão, a área está vazia: as classes de componentes não estão disponíveis fora do contexto do componente. @@ -220,7 +220,7 @@ Obviamente, é recomendável usar um nome distinto para evitar qualquer conflito As classes ORDA de um componente não estão disponíveis no seu projeto host. Por exemplo, se houver uma classe de dados chamada Employees em seu componente, você não poderá usar uma classe "cs. Mycomponent. Employee" no projeto host. -### Classes ocultas +#### Classes ocultas Assim como em qualquer projeto, você pode criar classes e funções ocultas no componente prefixando os nomes com um sublinhado ("_"). Quando um [componente namespace for definido](#declaring-the-component-namespace), classes ocultas e funções do componente não aparecerão como sugestões ao usar a conclusão do código. @@ -243,7 +243,7 @@ Um arquivo de sintaxe (formato JSON) é criado automaticamente durante a fase de Se você não inserir um [component namespace](#declaring-the-component-namespace), os recursos para as classes e os métodos expostos não serão gerados, mesmo que a opção de arquivo de sintaxe esteja marcada. -## Passar variáveis +### Passar variáveis As variáveis locais, de processo e interprocessos não são compartilhadas entre componentes e projetos de host. A única maneira de modificar variáveis de componentes do projeto host e vice-versa é usando ponteiros. @@ -306,7 +306,7 @@ Neste caso é preciso usar a comparação de ponteiros: If(myptr1=myptr2) //Este teste retorna False ``` -## Gestão de erros +### Gestão de erros An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. No caso de um erro gerado por um componente, o método de tratamento de erros `ON ERR CALL` do projeto host não é chamado, e vice-versa. @@ -316,7 +316,7 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -## Acesso às tabelas do projeto local +### Acesso às tabelas do projeto local Apesar de os componentes não poderem usar tabelas, ponteiros podem permitir que projetos locais e componentes se comuniquem entre si. Por exemplo, aqui está um método que pode ser chamado a partir de um componente: @@ -342,7 +342,7 @@ SAVE RECORD($tablepointer->) > No contexto de um componente, 4D assume que uma referência a um formulário de tabela é uma referência ao formulário de tabela do host (já que os componentes não podem ter tabelas). -## Uso de tabelas e campos +### Uso de tabelas e campos Um componente não pode usar as tabelas e os campos definidos na estrutura 4D do projeto de matriz. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Pode criar e gerenciar bancos de dados externos usando SQL. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Usar um banco externo significa designar temporariamente esse banco de dados como o banco atual, em outras palavras, o banco alvo para as pesquisas SQL executadas por 4D. Você cria bancos de dados externos usando o comando SQL `CREATE DATABASE`. @@ -422,7 +422,7 @@ Lendo de um banco externo: End SQL ``` -## Uso de formulários +### Uso de formulários - Só os "formulários projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. Só os "formulários de projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. - Um componente pode chamar formulários tabela do projeto host. Note que nesse caso é necessário usar ponteiros ao invés de nomes de tabelas entre colchetes [] para especificar os formulários no código do componente. @@ -433,7 +433,7 @@ Lendo de um banco externo: > No contexto de um componente, qualquer formulário projeto referenciado deve pertencer a esse componente. Por exemplo, dentro de um componente, a referência a um formulário do projeto host usando `DIALOG` ou `Open form window` gerará um erro. -## Uso de recursos +### Uso de recursos Os componentes podem usar recursos localizados na pasta Resources do componente. @@ -441,7 +441,7 @@ Os mecanismos automáticos estão operacionais: os arquivos XLIFF encontrados na Em um projeto host contendo um ou mais componentes, cada componente, bem como os projetos de host tem sua própria "string de recursos." Os recursos são particionados entre os diferentes projetos: não é possível acessar os recursos do componente A do componente B ou do projeto de host. -## Execução de código de inicialização +### Execução de código de inicialização Um componente pode executar o código 4D automaticamente ao abrir ou fechar o banco de dados do host, por exemplo, para carregar e/ou salvar as preferências ou os estados do usuário relacionados à operação do banco de dados do host. @@ -449,7 +449,7 @@ A execução do código de inicialização ou fechamento é feita por meio do m > Por motivos de segurança, você deve autorizar explicitamente a execução do método de banco de dados `On Host Database Event` no banco de dados do host para poder chamá-lo. Para fazer isso, você deve marcar a opção [**Executar o método "On Host Database Event" dos componentes**](../settings/security.md#options) na página Segurança das Configurações. -## Info.plist +### Info.plist Components can have an `Info.plist` file at their [root folder](../Project/architecture.md) to provide extra information readable by the system (macOS only) and the [Dependency manager](../Project/components.md#loading-components). @@ -498,7 +498,7 @@ On macOS, information is available from the finder: ![](../assets/en/Develop/infoplist-component.png) -## Proteção dos componentes: compilação +### Proteção dos componentes: compilação Por padrão, todo o código de um projeto de matriz instalado como um componente é potencialmente visível no projeto host. Em particular: @@ -511,7 +511,7 @@ Para proteger o código de um componente de forma eficaz, basta [compilar e cons - Os métodos, as classes e as funções do projeto compartilhado podem ser chamados nos métodos do projeto host e também ficam visíveis na página Métodos do Explorer. No entanto, seu conteúdo não aparecerá na área de visualização e no depurador. - Os outros métodos projeto do projeto matriz nunca aparecerão. -## Sharing your components on GitHub +### Sharing your components on GitHub Nós encorajamos você a apoiar a comunidade de desenvolvedores 4D compartilhando seus componentes, de preferência na [plataforma GitHub](https://github.com/topics/4d-component). Recomendamos que você use o tópico **`4d-component`** para ser referenciado corretamente. From 7959533a845c5e2bc78ed7cc1c2647110993a825 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 25 Sep 2025 18:12:56 +0200 Subject: [PATCH 052/119] Feature/published components (#2932) * first draft * Update components.md * after closure * Update getting-started.md --- docs/Extensions/overview-old.md | 42 +++++++++++++++++++++++++++++++++ docs/Notes/updates.md | 11 +++++++++ 2 files changed, 53 insertions(+) create mode 100644 docs/Extensions/overview-old.md diff --git a/docs/Extensions/overview-old.md b/docs/Extensions/overview-old.md new file mode 100644 index 00000000000000..3ef89294007150 --- /dev/null +++ b/docs/Extensions/overview-old.md @@ -0,0 +1,42 @@ +--- +id: overview +title: Extensions +--- + +The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language. + + +## Components developed by 4D + +4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d). + +A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including: + + +|Component|Github repository|Description|Main Features| +|---|---|---|---| +|4D AIKit|https://github.com/4d/4D-AIKit|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...| +|4D NetKit|https://github.com/4d/4D-NetKit|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +|4D Progress|https://github.com/4d/4D-Progress|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +|4D SVG|https://github.com/4d/4D-SVG|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods | +|4D ViewPro|https://github.com/4d/4d-view-pro|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)| +|4D Widgets|https://github.com/4d/4D-Widgets|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...| +|4D WritePro Interface|https://github.com/4d/4D-WritePro-Interface|Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`| + + +## Third-party components + +You can develop and install your own 4D components. See [this page](develop-components.md) for more information. + +Many developers from the 4D community have shared 4D components that you can install and use in you projects. + +Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic. + + +## Plugins + +Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. + +A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. + + diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 5ed2286118e91c..c6dcc535e548a8 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -127,6 +127,17 @@ In binary databases, you need to select the required components in the 4D instal - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    +![alt-text](../assets/en/getStart/convert.png)
    + - **Import**: import automatically 4D components as dependencies to the project
    + - **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
    + - **Ask later**: do not import components and display the dialog at the next project opening. + +:::note + +In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). + +::: ## 4D 20 R10 From 88db85e99c17e8e67c9f7158262331564e18569b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 25 Sep 2025 18:55:39 +0200 Subject: [PATCH 053/119] after closure dependencies --- docs/Extensions/overview.md | 24 +++++++++++++++++++++++- docs/Project/image.png | Bin 0 -> 14867 bytes 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 docs/Project/image.png diff --git a/docs/Extensions/overview.md b/docs/Extensions/overview.md index a8dcae45fd611e..ec72c63dc68945 100644 --- a/docs/Extensions/overview.md +++ b/docs/Extensions/overview.md @@ -123,5 +123,27 @@ A subset of these components is listed by default in the [Dependency Manager](.. - [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources. - The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data. - [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms. -- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes [a set of utility components](../Project/components.md#components-made-by-4d) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic). +- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes a set of utility components (see below) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic). - [**Plug-ins**](../Concepts/plug-ins.md). Plug-ins can be built using any language. Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. + + +## Components developed by 4D + +4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d). + +A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including: + +|Component|Github repository|Description|Main Features| +|---|---|---|---| +|4D AIKit|https://github.com/4d/4D-AIKit|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...| +|4D NetKit|https://github.com/4d/4D-NetKit|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +|4D Progress|https://github.com/4d/4D-Progress|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +|4D QPDF|https://github.com/4d/4D-QPDF|Extract attachments from PDF/A-3 files|`PDF Get attachments` | +|4D SVG|https://github.com/4d/4D-SVG|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods | +|4D ViewPro|https://github.com/4d/4d-view-pro|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)| +|4D Widgets|https://github.com/4d/4D-Widgets|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...| +|4D WritePro Interface|https://github.com/4d/4D-WritePro-Interface|Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`| +|Build4D|https://github.com/4d-depot/Build4D|Compile, build, and sign projects|CI/CD | + + + diff --git a/docs/Project/image.png b/docs/Project/image.png new file mode 100644 index 0000000000000000000000000000000000000000..be5f4801e6da3456edd9d35e3af33f0d408d8575 GIT binary patch literal 14867 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 s!h}8EFdUP~lpPSgk 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 literal 0 HcmV?d00001 From 973cb579cd71c8a254a68f7e67afe7044cccdf9a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 29 Sep 2025 11:21:11 +0200 Subject: [PATCH 054/119] New Crowdin updates (#2934) * New translations web.md (French) * New translations web.md (Spanish) * New translations web.md (Japanese) * New translations web.md (Portuguese, Brazilian) * New translations log.md (French) * New translations log.md (Spanish) * New translations log.md (Japanese) * New translations log.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations quick-tour.md (French) * New translations quick-tour.md (Spanish) * New translations quick-tour.md (Japanese) * New translations quick-tour.md (Portuguese, Brazilian) * New translations building.md (French) * New translations building.md (Spanish) * New translations building.md (Japanese) * New translations building.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Spanish) * New translations creating.md (Japanese) * New translations creating.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations privileges.md (French) * New translations privileges.md (Spanish) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (French) * New translations code-overview.md (Spanish) * New translations code-overview.md (Japanese) * New translations code-overview.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations getting-started.md (French) * New translations getting-started.md (Spanish) * New translations getting-started.md (Japanese) * New translations getting-started.md (Portuguese, Brazilian) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations gettingstarted.md (French) * New translations gettingstarted.md (Spanish) * New translations gettingstarted.md (Japanese) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations webserverconfig.md (French) * New translations webserverconfig.md (Spanish) * New translations webserverconfig.md (Japanese) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (French) * New translations webserverobject.md (Spanish) * New translations webserverobject.md (Japanese) * New translations webserverobject.md (Portuguese, Brazilian) * New translations write-class-method.md (French) * New translations write-class-method.md (Spanish) * New translations write-class-method.md (Japanese) * New translations write-class-method.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations security.md (French) * New translations security.md (Spanish) * New translations security.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (French) * New translations web.md (Spanish) * New translations web.md (Japanese) * New translations web.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations command-index.md (Spanish) * New translations command-index.md (Japanese) * New translations command-index.md (Portuguese, Brazilian) * New translations authentication.md (Spanish) * New translations log.md (French) * New translations log.md (Spanish) * New translations log.md (Japanese) * New translations log.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations privileges.md (French) * New translations privileges.md (Spanish) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (French) * New translations code-overview.md (Spanish) * New translations code-overview.md (Japanese) * New translations code-overview.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (French) * New translations documentation.md (Spanish) * New translations documentation.md (Japanese) * New translations documentation.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations authentication.md (Spanish) * New translations gettingstarted.md (French) * New translations gettingstarted.md (Spanish) * New translations gettingstarted.md (Japanese) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations webserverobject.md (French) * New translations webserverobject.md (Spanish) * New translations webserverobject.md (Japanese) * New translations webserverobject.md (Portuguese, Brazilian) * New translations write-class-method.md (French) * New translations write-class-method.md (Spanish) * New translations write-class-method.md (Japanese) * New translations write-class-method.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations command-index.md (Spanish) * New translations command-index.md (Japanese) * New translations command-index.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations security.md (French) * New translations security.md (Spanish) * New translations security.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations overview-old.md (French) * New translations overview-old.md (Spanish) * New translations overview-old.md (Japanese) * New translations overview-old.md (Portuguese, Brazilian) * New translations image.png (French) * New translations image.png (Spanish) * New translations image.png (Japanese) * New translations image.png (Portuguese, Brazilian) * New translations project-method-properties.md (French) * New translations project-method-properties.md (Spanish) * New translations project-method-properties.md (Japanese) * New translations project-method-properties.md (Portuguese, Brazilian) * New translations dependency-default.png (French) * New translations dependency-default.png (Spanish) * New translations dependency-default.png (Japanese) * New translations dependency-default.png (Portuguese, Brazilian) * New translations install.png (French) * New translations install.png (Spanish) * New translations install.png (Japanese) * New translations install.png (Portuguese, Brazilian) * New translations convert.png (French) * New translations convert.png (Spanish) * New translations convert.png (Japanese) * New translations convert.png (Portuguese, Brazilian) * New translations _overview-old.md (French) * New translations _overview-old.md (Spanish) * New translations _overview-old.md (Japanese) * New translations _overview-old.md (Portuguese, Brazilian) * New translations project-method-properties.md (French) * New translations project-method-properties.md (Spanish) * New translations project-method-properties.md (Japanese) * New translations project-method-properties.md (Portuguese, Brazilian) * New translations dataclassclass.md (Japanese) * New translations $filter.md (Japanese) --- .../current/Notes/updates.md | 11 +++++++++++ .../current/Notes/updates.md | 11 +++++++++++ .../current/Notes/updates.md | 11 +++++++++++ .../current/Notes/updates.md | 11 +++++++++++ 4 files changed, 44 insertions(+) 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 a8506312f9bf45..c384aa62b7576a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -181,6 +181,17 @@ In binary databases, you need to select the required components in the 4D instal - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    + ![alt-text](../assets/en/getStart/convert.png)
    + \- **Import**: import automatically 4D components as dependencies to the project
    + \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
    + \- **Ask later**: do not import components and display the dialog at the next project opening. + +:::note + +In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). + +::: ## 4D 20 R10 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 37f2e19f75c9b1..6a9fe062d0af73 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -170,6 +170,17 @@ In binary databases, you need to select the required components in the 4D instal - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    + ![alt-text](../assets/en/getStart/convert.png)
    + \- **Import**: import automatically 4D components as dependencies to the project
    + \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
    + \- **Ask later**: do not import components and display the dialog at the next project opening. + +:::note + +In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). + +::: ## 4D 20 R10 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 5470f7d864a470..86c6b310d4e076 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -171,6 +171,17 @@ In binary databases, you need to select the required components in the 4D instal - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    + ![alt-text](../assets/en/getStart/convert.png)
    + \- **Import**: import automatically 4D components as dependencies to the project
    + \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
    + \- **Ask later**: do not import components and display the dialog at the next project opening. + +:::note + +In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). + +::: ## 4D 20 R10 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 e7ad7e9f9ee497..74a8babc56f6f9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -170,6 +170,17 @@ In binary databases, you need to select the required components in the 4D instal - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    + ![alt-text](../assets/en/getStart/convert.png)
    + \- **Import**: import automatically 4D components as dependencies to the project
    + \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
    + \- **Ask later**: do not import components and display the dialog at the next project opening. + +:::note + +In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). + +::: ## 4D 20 R10 From 8ac54d9727edffcebbc25d58506fef285d85dbf3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 29 Sep 2025 15:45:33 +0200 Subject: [PATCH 055/119] fix links components --- sidebars.js | 7 ++++++- versioned_sidebars/version-20-R10-sidebars.json | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sidebars.js b/sidebars.js index a58eeafd8306fc..ffd92fc776cadb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1356,7 +1356,12 @@ module.exports = label: "Go Mobile with 4D", href: "https://developer.4d.com/go-mobile/" }, - { + { + type: "link", + label: "4D Mobile App Server", + href: "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md" + }, + { type: "link", label: "4D Mobile App Server", href: "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md" diff --git a/versioned_sidebars/version-20-R10-sidebars.json b/versioned_sidebars/version-20-R10-sidebars.json index 7fe91809eecd67..acfb0b7c20d3d2 100644 --- a/versioned_sidebars/version-20-R10-sidebars.json +++ b/versioned_sidebars/version-20-R10-sidebars.json @@ -3347,6 +3347,11 @@ "label": "Go Mobile with 4D", "href": "https://developer.4d.com/go-mobile/" }, + { + "type": "link", + "label": "4D Mobile App Server", + "href": "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md" + }, { "type": "link", "label": "4D Mobile App Server", From 4af671fd15dbd8f452f1db31db317f70a44d2d60 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 1 Oct 2025 10:11:04 +0200 Subject: [PATCH 056/119] New Crowdin updates (#2942) * New translations interruptions.md (French) * New translations json.md (French) * New translations ldap.md (French) * New translations language.md (French) * New translations licenses.md (French) * New translations list_box.md (French) * New translations mail.md (French) * New translations math.md (French) * New translations menus.md (French) * New translations messages.md (French) * New translations http.md (Japanese) * New translations http.md (Portuguese, Brazilian) * New translations hierarchical_lists.md (Spanish) * New translations hierarchical_lists.md (Japanese) * New translations hierarchical_lists.md (Portuguese, Brazilian) * New translations import_and_export.md (Spanish) * New translations import_and_export.md (Japanese) * New translations import_and_export.md (Portuguese, Brazilian) * New translations interruptions.md (Spanish) * New translations interruptions.md (Japanese) * New translations interruptions.md (Portuguese, Brazilian) * New translations json.md (Spanish) * New translations json.md (Japanese) * New translations json.md (Portuguese, Brazilian) * New translations ldap.md (Spanish) * New translations ldap.md (Japanese) * New translations ldap.md (Portuguese, Brazilian) * New translations language.md (Spanish) * New translations language.md (Japanese) * New translations language.md (Portuguese, Brazilian) * New translations licenses.md (Spanish) * New translations licenses.md (Japanese) * New translations licenses.md (Portuguese, Brazilian) * New translations list_box.md (Spanish) * New translations list_box.md (Japanese) * New translations list_box.md (Portuguese, Brazilian) * New translations mail.md (Spanish) * New translations mail.md (Japanese) * New translations mail.md (Portuguese, Brazilian) * New translations math.md (Spanish) * New translations math.md (Japanese) * New translations math.md (Portuguese, Brazilian) * New translations menus.md (Spanish) * New translations menus.md (Japanese) * New translations menus.md (Portuguese, Brazilian) * New translations messages.md (Spanish) * New translations messages.md (Japanese) * New translations messages.md (Portuguese, Brazilian) * New translations named_selections.md (French) * New translations objects_forms.md (French) * New translations objects_language.md (French) * New translations on_a_series.md (French) * New translations php.md (French) * New translations pasteboard.md (French) * New translations pictures.md (French) * New translations printing.md (French) * New translations process_communications.md (French) * New translations process_user_interface.md (French) * New translations processes.md (French) * New translations queries.md (French) * New translations quick_report.md (French) * New translations named_selections.md (Spanish) * New translations named_selections.md (Japanese) * New translations named_selections.md (Portuguese, Brazilian) * New translations objects_forms.md (Spanish) * New translations objects_forms.md (Japanese) * New translations objects_forms.md (Portuguese, Brazilian) * New translations objects_language.md (Spanish) * New translations objects_language.md (Japanese) * New translations objects_language.md (Portuguese, Brazilian) * New translations on_a_series.md (Spanish) * New translations on_a_series.md (Japanese) * New translations on_a_series.md (Portuguese, Brazilian) * New translations php.md (Spanish) * New translations php.md (Japanese) * New translations php.md (Portuguese, Brazilian) * New translations pasteboard.md (Spanish) * New translations pasteboard.md (Japanese) * New translations pasteboard.md (Portuguese, Brazilian) * New translations pictures.md (Spanish) * New translations pictures.md (Japanese) * New translations pictures.md (Portuguese, Brazilian) * New translations printing.md (Spanish) * New translations printing.md (Japanese) * New translations printing.md (Portuguese, Brazilian) * New translations process_communications.md (Spanish) * New translations process_communications.md (Japanese) * New translations process_communications.md (Portuguese, Brazilian) * New translations process_user_interface.md (Spanish) * New translations process_user_interface.md (Japanese) * New translations process_user_interface.md (Portuguese, Brazilian) * New translations processes.md (Spanish) * New translations processes.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations queries.md (Spanish) * New translations queries.md (Japanese) * New translations queries.md (Portuguese, Brazilian) * New translations quick_report.md (Spanish) * New translations record_locking.md (French) * New translations records.md (French) * New translations relations.md (French) * New translations resources.md (French) * New translations sql.md (French) * New translations svg.md (French) * New translations secured_protocol.md (French) * New translations selection.md (French) * New translations sets.md (French) * New translations spell_checker.md (French) * New translations string.md (French) * New translations structure_access.md (French) * New translations quick_report.md (Japanese) * New translations quick_report.md (Portuguese, Brazilian) * New translations record_locking.md (Spanish) * New translations record_locking.md (Japanese) * New translations record_locking.md (Portuguese, Brazilian) * New translations records.md (Spanish) * New translations records.md (Japanese) * New translations records.md (Portuguese, Brazilian) * New translations relations.md (Spanish) * New translations relations.md (Japanese) * New translations relations.md (Portuguese, Brazilian) * New translations resources.md (Spanish) * New translations resources.md (Japanese) * New translations resources.md (Portuguese, Brazilian) * New translations sql.md (Spanish) * New translations sql.md (Japanese) * New translations sql.md (Portuguese, Brazilian) * New translations svg.md (Spanish) * New translations svg.md (Japanese) * New translations svg.md (Portuguese, Brazilian) * New translations secured_protocol.md (Spanish) * New translations secured_protocol.md (Japanese) * New translations secured_protocol.md (Portuguese, Brazilian) * New translations selection.md (Spanish) * New translations selection.md (Japanese) * New translations selection.md (Portuguese, Brazilian) * New translations sets.md (Spanish) * New translations sets.md (Japanese) * New translations sets.md (Portuguese, Brazilian) * New translations spell_checker.md (Spanish) * New translations spell_checker.md (Japanese) * New translations spell_checker.md (Portuguese, Brazilian) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) * New translations structure_access.md (Spanish) * New translations structure_access.md (Japanese) * New translations structure_access.md (Portuguese, Brazilian) * New translations styled_text.md (French) * New translations subrecords.md (French) * New translations system_documents.md (French) * New translations system_environment.md (French) * New translations table.md (French) * New translations tools.md (French) * New translations transactions.md (French) * New translations triggers.md (French) * New translations user_interface.md (French) * New translations users_and_groups.md (French) * New translations variables.md (French) * New translations web_area.md (French) * New translations web_server.md (French) * New translations styled_text.md (Spanish) * New translations styled_text.md (Japanese) * New translations styled_text.md (Portuguese, Brazilian) * New translations subrecords.md (Spanish) * New translations subrecords.md (Japanese) * New translations subrecords.md (Portuguese, Brazilian) * New translations system_documents.md (Spanish) * New translations system_documents.md (Japanese) * New translations system_documents.md (Portuguese, Brazilian) * New translations system_environment.md (Spanish) * New translations system_environment.md (Japanese) * New translations system_environment.md (Portuguese, Brazilian) * New translations table.md (Spanish) * New translations table.md (Japanese) * New translations table.md (Portuguese, Brazilian) * New translations tools.md (Spanish) * New translations tools.md (Japanese) * New translations tools.md (Portuguese, Brazilian) * New translations transactions.md (Spanish) * New translations transactions.md (Japanese) * New translations transactions.md (Portuguese, Brazilian) * New translations triggers.md (Spanish) * New translations triggers.md (Japanese) * New translations triggers.md (Portuguese, Brazilian) * New translations user_interface.md (Spanish) * New translations user_interface.md (Japanese) * New translations user_interface.md (Portuguese, Brazilian) * New translations users_and_groups.md (Spanish) * New translations users_and_groups.md (Japanese) * New translations users_and_groups.md (Portuguese, Brazilian) * New translations variables.md (Spanish) * New translations variables.md (Japanese) * New translations variables.md (Portuguese, Brazilian) * New translations web_area.md (Spanish) * New translations web_area.md (Japanese) * New translations web_area.md (Portuguese, Brazilian) * New translations web_server.md (Spanish) * New translations web_services_client.md (French) * New translations web_services_server.md (French) * New translations windows.md (French) * New translations xml.md (French) * New translations xml_dom.md (French) * New translations xml_sax.md (French) * New translations dt_object.md (French) * New translations operators.md (French) * New translations dt_object.md (French) * New translations operators.md (French) * New translations web_server.md (Japanese) * New translations web_server.md (Portuguese, Brazilian) * New translations web_services_client.md (Spanish) * New translations web_services_client.md (Japanese) * New translations web_services_client.md (Portuguese, Brazilian) * New translations web_services_server.md (Spanish) * New translations web_services_server.md (Japanese) * New translations web_services_server.md (Portuguese, Brazilian) * New translations windows.md (Spanish) * New translations windows.md (Japanese) * New translations windows.md (Portuguese, Brazilian) * New translations xml.md (Spanish) * New translations xml.md (Japanese) * New translations xml.md (Portuguese, Brazilian) * New translations xml_dom.md (Spanish) * New translations xml_dom.md (Japanese) * New translations xml_dom.md (Portuguese, Brazilian) * New translations xml_sax.md (Spanish) * New translations xml_sax.md (Japanese) * New translations xml_sax.md (Portuguese, Brazilian) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations develop-components.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations architecture.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations version-20-r10.json (Spanish) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations develop-components.md (Spanish) * New translations overview.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations privileges.md (Spanish) * New translations overview.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations components.md (Spanish) * New translations vp-export-document.md (Spanish) --- .../current/Extensions/develop-components.md | 4 ++-- .../version-20-R10/Extensions/develop-components.md | 2 +- .../version-21/Extensions/develop-components.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index 7e0d5001eb5827..d96d80140f3e3c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Extensions +title: Desarrollo de extensiones --- ## Componentes @@ -460,7 +460,7 @@ Este archivo no es obligatorio pero es necesario para construir componentes [not Las llaves soportadas en los archivos `Info.plist` de los componentes son en su mayoría [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) que se ignoran en Windows. Sin embargo, son usados por el [Gestor de dependencias](../Project/components.md#loading-components) en todas las plataformas. -The following keys can be defined: +Se pueden definir las siguientes teclas: | tecla | descripción | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md index da5069eefdb5c3..d0f1ad03afe652 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md @@ -383,7 +383,7 @@ Este archivo no es obligatorio pero es necesario para construir componentes [not Las llaves soportadas en los archivos `Info.plist` de los componentes son en su mayoría [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) que se ignoran en Windows. Sin embargo, son usados por el [Gestor de dependencias](../Project/components.md#loading-components) en todas las plataformas. -The following keys can be defined: +Se pueden definir las siguientes teclas: | key | description | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md index 23ee6c43af00d4..b2bd470b087778 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md @@ -456,7 +456,7 @@ Este archivo no es obligatorio pero es necesario para construir componentes [not Las llaves soportadas en los archivos `Info.plist` de los componentes son en su mayoría [Apple bundle keys](https://developer.apple.com/documentation/bundleresources/information-property-list) que se ignoran en Windows. Sin embargo, son usados por el [Gestor de dependencias](../Project/components.md#loading-components) en todas las plataformas. -The following keys can be defined: +Se pueden definir las siguientes teclas: | key | description | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | From d159414514f3695808dd347adf3caaf423fe2181 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 2 Oct 2025 10:08:09 +0200 Subject: [PATCH 057/119] New Crowdin updates (#2943) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-export-variable.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-export-variable.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Japanese) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations _openaiasyncoptions.md (Spanish) * New translations dialog.md (French) * New translations command-name.md (Spanish) * New translations dialog.md (Spanish) * New translations command-name.md (Japanese) * New translations dialog.md (Japanese) * New translations command-name.md (Portuguese, Brazilian) * New translations dialog.md (Portuguese, Brazilian) * New translations form.md (French) * New translations file.md (Spanish) * New translations folder.md (Spanish) * New translations form.md (Spanish) * New translations file.md (Japanese) * New translations folder.md (Japanese) * New translations form.md (Japanese) * New translations file.md (Portuguese, Brazilian) * New translations folder.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations process-activity.md (French) * New translations process-activity.md (Spanish) * New translations process-activity.md (Japanese) * New translations process-activity.md (Portuguese, Brazilian) * New translations session.md (French) * New translations select-log-file.md (Spanish) * New translations session.md (Spanish) * New translations select-log-file.md (Japanese) * New translations session.md (Japanese) * New translations select-log-file.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations compatibility.md (French) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations compatibility.md (Japanese) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (French) * New translations last-errors.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations last-errors.md (Japanese) * New translations listbox-get-property.md (Japanese) * New translations listbox-set-property.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations last-errors.md (Portuguese, Brazilian) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations version-20-r10.json (Spanish) * New translations udpeventclass.md (Japanese) * New translations version-20-r10.json (Japanese) * New translations version-20-r10.json (Portuguese, Brazilian) * New translations imaptransporterclass.md (French) * New translations imaptransporterclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations imaptransporterclass.md (Japanese) * New translations imaptransporterclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Japanese) * New translations udpeventclass.md (Japanese) * New translations restore.md (French) * New translations restore.md (Spanish) * New translations restore.md (Japanese) * New translations backup.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations building.md (French) * New translations building.md (Spanish) * New translations building.md (Japanese) * New translations building.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseleave.md (French) * New translations onmousemove.md (French) * New translations onload.md (Japanese) * New translations onscroll.md (French) * New translations develop-components.md (French) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations objectlibrary.md (French) * New translations properties_action.md (French) * New translations objectlibrary.md (Spanish) * New translations properties_action.md (Spanish) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_action.md (Portuguese, Brazilian) * New translations list_overview.md (French) * New translations listbox_overview.md (French) * New translations picturebutton_overview.md (French) * New translations list_overview.md (Spanish) * New translations picturebutton_overview.md (Spanish) * New translations list_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations picturebutton_overview.md (Japanese) * New translations list_overview.md (Portuguese, Brazilian) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations picturebutton_overview.md (Portuguese, Brazilian) * New translations properties_action.md (French) * New translations properties_datasource.md (French) * New translations properties_action.md (Spanish) * New translations properties_datasource.md (Spanish) * New translations properties_action.md (Japanese) * New translations properties_datasource.md (Japanese) * New translations properties_entry.md (Japanese) * New translations properties_action.md (Portuguese, Brazilian) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_subform.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_subform.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_subform.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations analysis.md (French) * New translations encrypt.md (French) * New translations analysis.md (Spanish) * New translations encrypt.md (Spanish) * New translations information.md (Spanish) * New translations overview.md (Spanish) * New translations analysis.md (Japanese) * New translations encrypt.md (Japanese) * New translations information.md (Japanese) * New translations overview.md (Japanese) * New translations analysis.md (Portuguese, Brazilian) * New translations encrypt.md (Portuguese, Brazilian) * New translations information.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Japanese) * New translations methods.md (Spanish) * New translations methods.md (Japanese) * New translations documentation.md (French) * New translations overview.md (French) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations documentation.md (Japanese) * New translations documentation.md (Portuguese, Brazilian) * New translations $filter.md (Spanish) * New translations $filter.md (Japanese) * New translations $filter.md (Portuguese, Brazilian) * New translations authusers.md (French) * New translations authusers.md (Spanish) * New translations authusers.md (Japanese) * New translations authusers.md (Portuguese, Brazilian) * New translations handling_users_groups.md (French) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations handling_users_groups.md (Japanese) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations getting-started.md (French) * New translations getting-started.md (Spanish) * New translations getting-started.md (Japanese) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverobject.md (Spanish) * New translations http-request-handler.md (Japanese) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-export-variable.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-export-variable.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations dialog.md (French) * New translations command-name.md (Spanish) * New translations dialog.md (Spanish) * New translations file.md (Spanish) * New translations command-name.md (Japanese) * New translations dialog.md (Japanese) * New translations command-name.md (Portuguese, Brazilian) * New translations dialog.md (Portuguese, Brazilian) * New translations form.md (French) * New translations folder.md (Spanish) * New translations form.md (Spanish) * New translations last-errors.md (Spanish) * New translations file.md (Japanese) * New translations folder.md (Japanese) * New translations form.md (Japanese) * New translations last-errors.md (Japanese) * New translations file.md (Portuguese, Brazilian) * New translations folder.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations last-errors.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (French) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations listbox-get-property.md (Japanese) * New translations listbox-set-property.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations process-activity.md (French) * New translations session.md (French) * New translations process-activity.md (Spanish) * New translations select-log-file.md (Spanish) * New translations session.md (Spanish) * New translations process-activity.md (Japanese) * New translations select-log-file.md (Japanese) * New translations session.md (Japanese) * New translations process-activity.md (Portuguese, Brazilian) * New translations select-log-file.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations compatibility.md (French) * New translations compatibility.md (Spanish) * New translations compatibility.md (Japanese) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations num.md (Spanish) * New translations trim-end.md (Spanish) * New translations trim-start.md (Spanish) * New translations trim.md (Spanish) * New translations string.md (Spanish) * New translations num.md (Japanese) * New translations trim-end.md (Japanese) * New translations trim-start.md (Japanese) * New translations trim.md (Japanese) * New translations string.md (Japanese) * New translations num.md (Portuguese, Brazilian) * New translations trim-end.md (Portuguese, Brazilian) * New translations trim-start.md (Portuguese, Brazilian) * New translations trim.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations overview-old.md (Spanish) --- .../current/aikit/Classes/OpenAIParameters.md | 4 ++-- .../version-21/aikit/Classes/_OpenAIAsyncOptions.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 868a7bafc7a500..385aec155367c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -72,7 +72,7 @@ Use these callback properties for more granular control over success and error h See [documentation about asynchronous code for examples](../asynchronous-call.md) -### Network Properties +### Propiedades de la red | Propiedad | Tipo | Descripción | | -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -81,7 +81,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md | `maxRetries` | Integer | El número máximo de reintentos para la petición. (Sólo si el código no es asíncrono, es decir, no se proporciona ninguna función) | | `extraHeaders` | Object | Encabezados adicionales para enviar con la petición. | -### OpenAPI Properties +### Propiedades OpenAPI | Propiedad | Tipo | Descripción | | --------- | ---- | ----------------------------------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md index dcbe0e908418fa..f89e9054e62c0d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md @@ -19,7 +19,7 @@ The `_OpenAIAsyncOptions` internal class provides function to handle asynchronou | `body` | Variant | | \`timeout | Integer | -### Class instances Properties +### Propiedades de instancias de clase | Propiedad | Tipo | | ------------ | --------------------------------------------------------------------- | From 0e477e2ae9eb3b90819d8549c564a477a6a906fa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 3 Oct 2025 09:51:53 +0200 Subject: [PATCH 058/119] New Crowdin updates (#2947) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations building.md (Spanish) * New translations installation.md (French) * New translations installation.md (Spanish) * New translations installation.md (Japanese) * New translations installation.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations authentication.md (French) * New translations gettingstarted.md (French) * New translations httprequests.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations logo4d.png (French) * New translations logo4d.png (Spanish) * New translations logo4d.png (Japanese) * New translations logo4d.png (Portuguese, Brazilian) * New translations welcome2.png (French) * New translations welcome2.png (Spanish) * New translations welcome2.png (Japanese) * New translations welcome2.png (Portuguese, Brazilian) * New translations httpagentclass.md (Spanish) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations labels.md (Spanish) * New translations select-log-file.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations operators.md (Spanish) * New translations labels.md (Spanish) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations httprequests.md (French) * New translations http-request-handler.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations select-log-file.md (Spanish) * New translations orda-events.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsparameters.md (Spanish) * New translations operators.md (Spanish) * New translations building.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations orda-events.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (French) * New translations gettingstarted.md (French) * New translations configuring.md (Spanish) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations httprequests.md (French) * New translations http-request-handler.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaiembeddingsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations select-log-file.md (Spanish) * New translations convert.png (French) * New translations convert.png (Spanish) * New translations convert.png (Japanese) * New translations convert.png (Portuguese, Brazilian) --- i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c384aa62b7576a..ac82e4a803158f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -178,7 +178,7 @@ In binary databases, you need to select the required components in the 4D instal ::: - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. +- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. - **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
    From 6da711ff7483c3017a84751fabfe9c6242ae6e71 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 3 Oct 2025 10:33:11 +0200 Subject: [PATCH 059/119] removed old files --- docs/Extensions/overview-old.md | 42 ------------------- .../Extensions/_overview-old.md | 41 ------------------ 2 files changed, 83 deletions(-) delete mode 100644 docs/Extensions/overview-old.md delete mode 100644 versioned_docs/version-20-R10/Extensions/_overview-old.md diff --git a/docs/Extensions/overview-old.md b/docs/Extensions/overview-old.md deleted file mode 100644 index 3ef89294007150..00000000000000 --- a/docs/Extensions/overview-old.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: overview -title: Extensions ---- - -The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language. - - -## Components developed by 4D - -4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d). - -A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including: - - -|Component|Github repository|Description|Main Features| -|---|---|---|---| -|4D AIKit|https://github.com/4d/4D-AIKit|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...| -|4D NetKit|https://github.com/4d/4D-NetKit|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | -|4D Progress|https://github.com/4d/4D-Progress|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | -|4D SVG|https://github.com/4d/4D-SVG|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods | -|4D ViewPro|https://github.com/4d/4d-view-pro|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)| -|4D Widgets|https://github.com/4d/4D-Widgets|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...| -|4D WritePro Interface|https://github.com/4d/4D-WritePro-Interface|Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`| - - -## Third-party components - -You can develop and install your own 4D components. See [this page](develop-components.md) for more information. - -Many developers from the 4D community have shared 4D components that you can install and use in you projects. - -Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic. - - -## Plugins - -Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. - -A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. - - diff --git a/versioned_docs/version-20-R10/Extensions/_overview-old.md b/versioned_docs/version-20-R10/Extensions/_overview-old.md deleted file mode 100644 index bb550385074f30..00000000000000 --- a/versioned_docs/version-20-R10/Extensions/_overview-old.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: overview-old -title: Extensions ---- - -The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be built using any language. - - -## Preinstalled 4D components - -4D includes by default a set of built-in 4D components, that you can see in the **Component Methods** theme of the Explorer's Methods page. All these components can also be found on the [4D github repository](https://github.com/4d). - - -|Component|Description|Main Features| -|---|---|---| -|[4D AiIKit](https://github.com/4d/4D-AIKit)|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...| -|[4D Labels](https://github.com/4d/4D-Labels)|Internal component required to build label templates|| -|[4D NetKit](https://developer.4d.com/4D-NetKit)|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | -|[4D Progress](https://github.com/4d/4D-Progress)|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | -|[4D SVG](https://github.com/4d/4D-SVG)|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods | -|[4D ViewPro](ViewPro/getting-started.md)|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)| -|[4D Widgets](https://github.com/4d/4D-Widgets)|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...| -|[4D WritePro Interface](https://github.com/4d/4D-WritePro-Interface)|Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html and [table wizard](../WritePro/writeprointerface.md#table-wizard)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`| - - -## Third-party components - -You can develop and install your own 4D components. See [this page](develop-components.md) for more information. - -Many developers from the 4D community have shared 4D components that you can install and use in you projects. - -Browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic. - - -## Plugins - -Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. - -A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic. - - From fee0943791cc83d71ca2e59f554a35b4de50d937 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 6 Oct 2025 10:02:59 +0200 Subject: [PATCH 060/119] New Crowdin updates (#2949) * New translations quick-tour.md (Japanese) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations openaichatapi.md (French) * New translations openaichatapi.md (Spanish) * New translations openaichatapi.md (Japanese) * New translations openaichatapi.md (Portuguese, Brazilian) * New translations openaichatcompletionsparameters.md (French) * New translations openaichathelper.md (French) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichatcompletionsparameters.md (Japanese) * New translations openaichathelper.md (Japanese) * New translations openaichatcompletionsparameters.md (Portuguese, Brazilian) * New translations openaichathelper.md (Portuguese, Brazilian) * New translations openaimessage.md (French) * New translations openaimessage.md (Spanish) * New translations openaimessage.md (Japanese) * New translations openaimessage.md (Portuguese, Brazilian) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations components.md (French) * New translations openaitool.md (French) * New translations openaitool.md (Spanish) * New translations openaitool.md (Japanese) * New translations openaitool.md (Portuguese, Brazilian) * New translations develop-components.md (Japanese) --- .../current/Extensions/develop-components.md | 2 +- .../current/aikit/Classes/OpenAIChatAPI.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index af2096569d6ba5..2e3d959f5813b5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Extensions +title: 拡張機能の開発 --- ## コンポーネント diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md index c5a5e4be2c6c42..097dd0e8b7c0ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md @@ -9,10 +9,10 @@ title: OpenAIChatAPI ## プロパティ -| プロパティ | 型 | 説明 | -| ------------- | ------------------------------------------------------- | ---------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | チャット補完リクエストを管理するインスタンス。 | -| `vision` | [OpenAIVision](OpenAIVision.md) | ビジョン関連のリクエストを管理するヘルパーインスタンス。 | +| プロパティ | 型 | 説明 | +| ------------- | ------------------------------------------------------- | ----------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | チャット補完リクエストを管理するインスタンス。 | +| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | ## 関数 From 17cb9d70e733ee1f1c02da29f4d554ab91ffff5d Mon Sep 17 00:00:00 2001 From: Guillaume Kotulski Date: Mon, 6 Oct 2025 14:20:55 +0200 Subject: [PATCH 061/119] delete --- .../assets/en/WritePro/pict2646292.EN.png | Bin 250329 -> 0 bytes .../assets/en/WritePro/pict2646294.EN.png | Bin 454077 -> 0 bytes .../assets/en/WritePro/pict3033006.EN.png | Bin 631 -> 0 bytes .../assets/en/WritePro/pict3033008.EN.png | Bin 1168 -> 0 bytes .../assets/en/WritePro/pict3071271.EN.png | Bin 9191 -> 0 bytes .../assets/en/WritePro/pict3307937.EN.png | Bin 12243 -> 0 bytes .../assets/en/WritePro/pict3307941.EN.png | Bin 8487 -> 0 bytes .../assets/en/WritePro/pict3308424.EN.png | Bin 4088 -> 0 bytes .../assets/en/WritePro/pict3513503.EN.png | Bin 27062 -> 0 bytes .../assets/en/WritePro/pict3513505.EN.png | Bin 921 -> 0 bytes .../assets/en/WritePro/pict3541581.EN.png | Bin 872923 -> 0 bytes .../assets/en/WritePro/pict3626363.EN.png | Bin 99975 -> 0 bytes .../assets/en/WritePro/pict3752166.EN.png | Bin 14438 -> 0 bytes .../assets/en/WritePro/pict3752176.EN.png | Bin 11223 -> 0 bytes .../assets/en/WritePro/pict3893246.EN.png | Bin 4621 -> 0 bytes .../assets/en/WritePro/pict3893248.EN.png | Bin 3667 -> 0 bytes .../assets/en/WritePro/pict4619596.EN.png | Bin 7207 -> 0 bytes .../assets/en/WritePro/pict4619694.EN.png | Bin 7602 -> 0 bytes .../assets/en/WritePro/pict4619865.EN.png | Bin 7203 -> 0 bytes .../assets/en/WritePro/pict5562054.EN.png | Bin 18600 -> 0 bytes .../assets/en/WritePro/pict5562058.EN.png | Bin 19421 -> 0 bytes .../assets/en/WritePro/pict5761667.EN.png | Bin 37054 -> 0 bytes .../assets/en/WritePro/pict5761669.EN.png | Bin 12782 -> 0 bytes .../assets/en/WritePro/pict5761671.EN.png | Bin 725 -> 0 bytes .../assets/en/WritePro/pict5761673.EN.png | Bin 8037 -> 0 bytes .../assets/en/WritePro/pict5761675.EN.png | Bin 5840 -> 0 bytes .../assets/en/WritePro/pict5761677.EN.png | Bin 7016 -> 0 bytes .../assets/en/WritePro/pict5859437.EN.png | Bin 12419 -> 0 bytes .../assets/en/WritePro/pict5907021.EN.png | Bin 9184 -> 0 bytes .../assets/en/WritePro/pict5907023.EN.png | Bin 9681 -> 0 bytes .../assets/en/WritePro/pict5907026.EN.png | Bin 10202 -> 0 bytes .../assets/en/WritePro/pict5907030.EN.png | Bin 4093 -> 0 bytes .../assets/en/WritePro/pict5941073.EN.png | Bin 20152 -> 0 bytes .../assets/en/WritePro/pict6014414.EN.png | Bin 115615 -> 0 bytes .../assets/en/WritePro/pict6014426.EN.png | Bin 43182 -> 0 bytes .../assets/en/WritePro/pict6014429.EN.png | Bin 3132 -> 0 bytes .../assets/en/WritePro/pict6022144.EN.png | Bin 116524 -> 0 bytes .../assets/en/WritePro/pict6131919.EN.png | Bin 46653 -> 0 bytes .../assets/en/WritePro/pict6260026.EN.png | Bin 5454 -> 0 bytes .../assets/en/WritePro/pict6260030.EN.png | Bin 4668 -> 0 bytes .../assets/en/WritePro/pict6260033.EN.png | Bin 6736 -> 0 bytes .../assets/en/WritePro/pict6260036.EN.png | Bin 3095 -> 0 bytes .../assets/en/WritePro/pict6421031.EN.png | Bin 103730 -> 0 bytes .../assets/en/WritePro/pict6421340.EN.png | Bin 8309 -> 0 bytes .../assets/en/WritePro/pict6421342.EN.png | Bin 9040 -> 0 bytes .../assets/en/WritePro/pict6421344.EN.png | Bin 9147 -> 0 bytes .../assets/en/WritePro/pict6421356.EN.png | Bin 9254 -> 0 bytes .../assets/en/WritePro/pict6434575.EN.png | Bin 2045 -> 0 bytes .../assets/en/WritePro/pict6434579.EN.png | Bin 605 -> 0 bytes .../assets/en/WritePro/pict6434721.EN.png | Bin 9401 -> 0 bytes .../assets/en/WritePro/pict6434723.EN.png | Bin 7206 -> 0 bytes .../assets/en/WritePro/pict6434756.EN.png | Bin 4332 -> 0 bytes .../assets/en/WritePro/pict6441966.EN.png | Bin 6080 -> 0 bytes .../assets/en/WritePro/pict3033006.EN.png | Bin 631 -> 0 bytes .../assets/en/WritePro/pict3033008.EN.png | Bin 1168 -> 0 bytes .../assets/en/WritePro/pict3307937.EN.png | Bin 12243 -> 0 bytes .../assets/en/WritePro/pict3307941.EN.png | Bin 8487 -> 0 bytes .../assets/en/WritePro/pict3513503.EN.png | Bin 27062 -> 0 bytes .../assets/en/WritePro/pict3541581.EN.png | Bin 872923 -> 0 bytes .../assets/en/WritePro/pict3626363.EN.png | Bin 99975 -> 0 bytes .../assets/en/WritePro/pict3893246.EN.png | Bin 4621 -> 0 bytes .../assets/en/WritePro/pict3893248.EN.png | Bin 3667 -> 0 bytes .../assets/en/WritePro/pict5562054.EN.png | Bin 18600 -> 0 bytes .../assets/en/WritePro/pict5562058.EN.png | Bin 19421 -> 0 bytes .../assets/en/WritePro/pict5859437.EN.png | Bin 12419 -> 0 bytes .../assets/en/WritePro/pict5907013.EN.png | Bin 68519 -> 0 bytes .../assets/en/WritePro/pict5907021.EN.png | Bin 9184 -> 0 bytes .../assets/en/WritePro/pict5907023.EN.png | Bin 9681 -> 0 bytes .../assets/en/WritePro/pict5907026.EN.png | Bin 10202 -> 0 bytes .../assets/en/WritePro/pict5907030.EN.png | Bin 4093 -> 0 bytes .../assets/en/WritePro/pict5941073.EN.png | Bin 20152 -> 0 bytes .../assets/en/WritePro/pict6014414.EN.png | Bin 115615 -> 0 bytes .../assets/en/WritePro/pict6014426.EN.png | Bin 43182 -> 0 bytes .../assets/en/WritePro/pict6014429.EN.png | Bin 3132 -> 0 bytes .../assets/en/WritePro/pict6021229.EN.png | Bin 130684 -> 0 bytes .../assets/en/WritePro/pict6022144.EN.png | Bin 116524 -> 0 bytes .../assets/en/WritePro/pict6131919.EN.png | Bin 46653 -> 0 bytes .../assets/en/WritePro/pict6421031.EN.png | Bin 103730 -> 0 bytes .../assets/en/WritePro/pict6421340.EN.png | Bin 8309 -> 0 bytes .../assets/en/WritePro/pict6421342.EN.png | Bin 9040 -> 0 bytes .../assets/en/WritePro/pict6421344.EN.png | Bin 9147 -> 0 bytes .../assets/en/WritePro/pict6421356.EN.png | Bin 9254 -> 0 bytes .../assets/en/WritePro/pict6434579.EN.png | Bin 605 -> 0 bytes .../assets/en/WritePro/pict6434721.EN.png | Bin 9401 -> 0 bytes .../assets/en/WritePro/pict6434723.EN.png | Bin 7206 -> 0 bytes .../assets/en/WritePro/pict6441966.EN.png | Bin 6080 -> 0 bytes 86 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3071271.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3308424.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761673.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260030.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260033.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260036.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434575.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6021229.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.EN.png deleted file mode 100644 index 2f6dd9ff7667f9e033a3d058e8a8b443269e31b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250329 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
      bZ!xLg#HCV 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.EN.png deleted file mode 100644 index c5706f5b23244e3f467bffbafebd2ab35f6f7e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454077 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

      uY;isboYEpx(2vzq{jsKOU4r8mu5&UKl| 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

      Y3m9DcKx z^nY4R9Im9#-lbAL$qD(9r9bFutQA~kcz3pB?vB1QVx=ES zAJdOj6-Q1{6V9Zbp+smVHDT4DbC-=&F*li2c})<}44O0`Kag%C?8hC@K7{Ek5dSCO z1S(*6UpO5)Vs#w?FgK>9TE zt+lnu#+{WhM~W`rnC+A_|J+0Wt7d6wX=G%C8REM&&q20*hQYoF*x!VTrPG*KW5}OB z|DgX>*WTVvS$1EZ(R7?KMB}w|21gea#RTlY5`q7XyMO2Nh*+=Oke0lQeC6YLP&TOf zTSI`9gFzf{Oozzf8#|$V7IP!bbK7a*x4$XVHf>qFe#eQB4in|mXLI*DRZpD^ua}1>!cgfTQ1=^6#q6dQ2M;Vos;Cj$UNW`9)$FB zQ9d@dTd#i#5UkjgSo&k5%4&-4b9~fmZMg92TIUz+8<6n&Gb;zrqJI6OWF|3*>ONK2 zwyh{%r0y?|NKhiq2lizqIH_A_nyS2U>b#Ptgc{80UIXfN>%xs{-ICi%>(9n}SrbEj zY(F(hv?hPh-~;>1B(u~CdDQiECbBm2|9zdahd$s^Zm$7={7&ZP-aWvyS_e$9s7lM@ zy!*ZAcTA5*IIM+w9Kmb-DZf?uT01jB`i%|ZiJGu}z_Vi3j|l=Zmgz!Q@0qi@*`=EX z;p^|Pb`~Vp#QF#|J|BzH+|`^H zAQoFm@OLPxlrKLx*IFPi8-cszuYW=ZX(pL+>NHcaTbROg5Q4{-AaN>qZJF%a;&@_; z_^qkUO#h#$B>dD9Ze6%q3j^xLPaU7xl*rXjFnF`*8#nWQ^!432>4E=q!j zOVtE?8F~x2t0Rjxb!t_{1Be7;Hojh8PKv@_hRHGr`0Lf%v>XRt&WzYkWZ*%3l;rYq zkjj8ZhEQ^x&T!FfXe*Y&x&IdtkVqsf?)~BZ76YO?WdyOlzqN4FWfaTvtDaJ~?d>rJ zD!})Jg+-zM8_Oe=R}kwz8yMCBM`hL3C+pKul*!Le4z{H&dLc5`gns-X>o&<@?#EwYU*mdS9|pAAM^2;i2wiq diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.EN.png deleted file mode 100644 index eddf97544e05758b3da1514cc27a43f739f424cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27062 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.EN.png deleted file mode 100644 index 5e8669f5c2aace698617cb118e0686d8012dcc92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 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≷~|ab|IUUdttWs`*XSq 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

      yGx|=*%Z2 zSSVTT8b3auf}HQ8*8Wq!0cDUmykRG$IbKUG2+5>r7*sqOKvoAe$zxDDJz}j zA{kn0H2o*-$6G;KkRO;4m(vMviBp zTFbSS_2u$zJ4&G`fR!br4(|zCDkXPTHV%TXtF7%mlu(2)Bbpdr>2@`4@7q6lzOX09 ziR#*0TOfQn?--P;0lvcYw^X|#5)sylTI6YIZgn(?I<*K)loFtoxKMUW#g+<8dZDN3 zwQNt2B2vf+rqzPOt%TK4*#0#xiWgj<)_&q?FQ_?5k+eug5hl9;q=mh?d9(g^%Zq2{ zsk3L>m&^CX#p!l)3GJol1>)WQgY;G4jleA4-=z0N-tXHY#WV(t^1=Y+ra!?ic%X8_ zh@xP{HIzxcGRB}XtnT{N?2o!5+E^6k=e?T~3jG=HzM`~IrR2wr>!|xRs@_4DSvDkV zpnVcd7931LYP%THyt)s1j7gKKY5MuF`uQBIJTtp#hbvwSc&p|fQB?Q~Kk`~Mv z7{gh-xheVh0&R5*0D|_~Y!a=UDgykwvbz9B4p_Y?0S6X0FAHHbm6a04(GC7zAz7xe z(rckMiNuh4EaI_ z;AZBZ9EP9BsR5EEAjG-7uz7JpFy5|}=_@;Y1RU=+11b+ou;M+21c(CHJ*NIaz}5k? z#f?Xo`4_J(H*Ct1h|n)lAZjvG*K=H*OSZ-Z(y~9X67o1Xb+K*eEIl&E`a_W?tT)5Z zAhMcq6b!lSTi6nv!54Uc)uv2=V>@6M zVrpB&Hj$q6Y@TOZ-UTMCRVnR6AA)0cfP=A6IZM0iYlU(~V(+PN*&xmVuN_siu4Lo? zK31IqamQBt){C)kBvV}r5M#=GcGg0)EW_WviAYlC5(|2sB4kQPa0CL!qPIHqeDiLnbSeE;lh{|SyzplT*Z=Srs@ zr_5jF2=&%;I-eReP2l7S`M{aIkIP)yyal15qA-`L7Hi_71?mwmHlf(PT;`?NIzyG|pxKmb^UmDN9 z%_HXc;Q)BqN*}eilMC?dYdro*6q;@>kvRBKrT9uo) z2Cf^-f$9v!cOs0gE&Ki~2zGa$!km7%<2^lO;>6PzuuH8CJA-8B2cnSEqNJ(QWYjys0~*>#yEiH8$YBa|Hd|4T+rrVf zP3X$cgoOp1#NI%X<~p+R$^SMhX0n@ ze1x{zCJHW;y0vxx%OYXh3Z9tbX4#4 z5Jmo=D^Tr9m}U;8N1dPCPASoXQ;mYI?%*8273Z+fhsa9LkKc#10yTcXl%(4ibX*Uf zOYQ4yIzd8)HSY#z^FAeMUXwobNY;Sj?2pGQSL|z(ALL`JFz+vt{11 z6!CeTZb3UM(U$pF*=LS?BgyQGqj&9}{{_CMC6^k#0$HH_1uKJ=@l_QeB7MYa6gqD>Ixuh+-k>2g7`M234(vE%oWYoyT& z3U)$N=x}G!NbYVUo1@$?`3J;Q0t~6t?s!Dqt-o6F5*C);M!1cM-!qAJNZq^~^0pa7qO!iyD53f2!S{gvc*+kwLc1e&wY!qKGx z9v_Q^(g%@eSCB~WJiv^%*$P>Z*rR~#`mS1o`eJl|##`Had3qS0X>1@%;dy)LJ!3_8FW<+>`_AAck49|`oIQFZ9KINgP)ca zcpVKQag9EU;{dg6wA$X?qa`QLC46Qqbi5?3gff3?eNJ-T6aiseWls2h@UDK-ey5&E zJiWZ8+!LC#^9(L(S0fU|QJ*E%uPO^vMO+{?5(Q2wyebf=?NV!1B#iJDs7arYKJpUO zz#>@CRXHpsHM|Bo9~xp^E(uT(Rufdt?TfzEo@=gs;#&3|V-R0Cire|0x_0?-jXRv~ z$Nb{FSeYo-SNZz}i(zVEuQ*20{ow3;U-7TePSIMWB*>&{VSAAK;m+Lf=OAE-WVM>M z`|iUm5~h={L#u{Sx0$R)4{06WNu0lS0h2RLs3ngKa$(8o81^5++6YhQCS_4^H5uM= z(7(&ZRr;f)M6Znc-;y=gSzQ#U=yi*)YP%s7-}v(E`F~?o&+jgQEzZX;`zzK6@%eIj zJ-B?KG`#rYRjoQkpCZMmb%B3olDQ?0bCVWvZ!4KK_LY#I0rh>;*x#G)v!+_U*3i^L zRYr+DTu?T6h287A8(PtWm37)62@*kH_QydWj?;#NzI@&dW;%=@h8rw)EWfkE8wuC<~aF$ng)`QJ`oaHd>ULp?jCnC76&5duCwCtCT;(Q`j6d0%18A5K&{-8Z%|u_GAg(z z1IEy$%(=jU6!!cb30wu;VYr)`#d@kZOvFJYRPY`h*D%#4liTaoD%$VXWWaseTn?1) z3a>}D$C^(DQ#u2`D}!UF|K!Py&5Qjc`@A>r79L@HMx3sBD*eAZw@D3?zX~-}mrp|4 zY9DWK1(j2Qwa#RBZ+_7Y7C=6gIMX`KvRZC5@$~k879tzyMb$Fn!9=!rIph<5r*^zB z6gA#2We#pxSbAtqsd-(|6rE21La85=akemPvo^}p z@|U8@oWdq)bYggndnzMh*8$r%=q-~Mv1ie1km(;ZTU6Rt!ZD)cW}E|E&g0sXf%=c^H?qIIVv>S0-^WOT2i3Av;3YN3b@NzB(y^@z{h)a@tSWcu?O`%=f^9D zP+vl2!kfstiZ$+*p{Mp>vNIls+F9qwH*escLvuhFJM_>RagJrq@dcH#f;5O<#x0u; zFbClm7|Ze)Nez;9sRchn326lFirgvqa@Fk8faHl)`Jw*?lvlYj!VN_(lqIM4Whaso zPJ}s)A0rXbBenB_n9a2->iq|-wBj)<7RTRG_XM~`{fVr?WmVe``tSJ$*3F2^Gxt15-x8AytINd^4^Sx&>VK+= z7)gmx5Zc6JDNm(OoU$n``k;enCaL4~Hx>oQf`{e{DdM5+xwC`wYY0>7vRaJ4qW#kp zNI?yeXbu&%4y<0^$qJJ>vMs}}vj;bACY1~0zzy2`Ur7|<`$=%p1^NpoYswVFzcQ4m z0!<;py7y{&Tv;7J^N)b*`-g9jNUNQ;(4Qg{K=Xy4vj`Mp(zu<$t^*xJy9>|1-x=`j z51Jof{+lqPITRCJN=RrP=ijgqwx=r?R96DAev0V~)u}+I(TN&$n9Av=iNdf-`lmwaARw;nA|9FpMqGktW3`Lg)k5Sp@adh*_NrMuYb z#B5zs|422MoOeTN;HNqefU+OAE&lE^B*4+lc}2H&ocHTeLe>(LyaRns(ah69x zQ9j^QpKn00;>-)Gja+zScd$tf2$f?LDS`HKt^&hw8>_;*7BNfnZq6N)F7zWC!jAC8 zVqvq;=aL{tX5{S?TgY}e!R9aPZ9-K+s5x6?vJ)Q^qUf)G$=gk;7%x~#5L$?QRU`ZX z5w?c{34!{h$EiI+1D*_0MEEarRh0gKugeKK`G7Z&>Pvv(L84!mHq9?7~z%yS{-mzRx`5VDG7tUz^se2ISH*JVp5vHp}9FhutE zxs`W81;?**`8#yS`LKSC9W$VI;$Z4@k2s!+y@$L)H6uUZ8f%~TPrEGL5eCQiJDvB& zon6{0zs_6sjjfZ$ZWwN#-zUy~FGgS5J^kBNul0(FKH%&WH;v`b?`ykTE)Uny`pfTY zKRedbgNM7a?EluxD#lcU@!hHy#enLdhHKJj15JZypVasyeg}fWl0UZl)h-Mn9Je!q zLMuXRjP3p$?e4oVBt;KT^RIZ_fKWXNzCblm-2rasucyj`$PaczAx9yxEQ8FkrQpo9YarZ05OBMZi1Liy&(;$R)CX`VAsq~L2#4F zLH}A%k_EE>7lBRyaY8{tAMM&ooGeorT5-D{80CY|WcveQx~D*>Z&)lqdrlSHZ!wMq zhcb!tZ4>A-P9S00&fsLl4Xg?N_YAnrnaNW74V$QH23;%lHJ7hF?GV5?>n(?NSzHH; zXwh6o5t&CZ-~I60!H-3Hr(FJJD7kztX38_`El@zpQ7etYJ>p~lgDwP8owX;>bJ;T` zCG{DWOx{rsvAYkwkNd`l*GNB7=8fxsW==^@DZ)>IIj)B-4cY0)d+|>!0-N8YMNT+% z7CIgF-0o!MXp9U!ME^0*gudQmsA6h@*$&%HjWgqDolBU#sjMts!i?>&iNHm31HckEf z;(K1#WA6TIv=(`@&O0oZKm*35WJ%L+8n2gsx1=ra@+Xk9I>s;#&H1LKEW(_x@cTv6 z56Fx$PdIHdc6U(a7%2_!9xY!SIfo`Kj$CVez}-NzJe6LQgJ>IHlWSu+my2JMlHb#@ z(pn|`iXZ85`WsI3t8bVfHG`O_Uqw&|J2-l#Axj%;2kZcfx|7+R?XEWmz|-t&Hh+LN zv%+$8Jm7?&G)3P(E4WS1_s!|e((mnemE}^DHp2;|4uXJm3hUZ_m<3rzP+c1sY06V( zKUop{bqD814u>AruOKMF8k!d6CN7vY(S&sH{?&iq$I!YQ+mYPl&nFZq?<3?3=cZK-;1ZreN z#d|(C=&Qx~db{^%lgj?fie?vijE9m=gF`v_fmfqGLY;kTF13(|!g^#p3cZ+fY6;Dx zDwTKx4C7~U74>2g9nz#XEN5{};;6enM->l7RheI}_8=8Ooz&R)VSn=L_2O&r$s9}m zVUBzfh<49faQbm1r-!HUp6eKc^!LUWO?ncyFR%BT+tX#Pr%|3?PHs=#Jv=D32m?NxGbB z77B@;&u4VE9|m>g6_iaQugLNU4#uBkptB*e@7DKYy6U_|RUcBh2WCTwBYF)7xv`(f$Mjk7u#)NPdDItE4(n6c(`z4S$Yjw$T&XHI=ztdn5EM3>GC+*5uiHVc5g1 z4r%ws@~NOKAYJ2LTxj<0Vkfb5p!tJAlIq_lBUF26#N4f-`U@ifuDI%dtuK*-n%-M< z$t1XAFHccG`@pjWg-TGwSxziWdEw9TeKmf0+nz8^7Pe#7(-qOnfO8r|t!I5peKtc$ z$~Ea)%kdKi8%Y081QP&E)%}NEMK~Zi5-i{E?f&>6y|ov#T&s9_5^=YR1J&>E$KfA8 z1q0>|yq=ur{8_}wKq>dpv+Lw`qB;`HnRT~e(aBAAT`ai~>v&ypKKz4&W@VB1&AN=d zWVQCaP21~sS_?)^9KAwHW#xY=uL6YYjU}6ww;+|VGu?E%Qe@e5M?7k;R>p-Ohy*N6 zd^sof!Cb6i=uLng*qJvN_#$=6BUEs_Ml55sPlG1OYw>&_W?bC&^ClHpx~(YK&D@D3 z%%`@LYQ#zOJhaC1&uaRF$o31mCfG;dKS8ZB9^TE4Ae&0;jLC}@cI&DAsd9FM6^Tn) zeOX?E&sgw7YrM4svvg5IMj`F3p>0m69}yo`lnfHs{oNCKS+7(}?ulkOq46a>&2IUy z`wfrtPzyRSoqUqLQa8|7##;*j)Q>g3k*T{^NwGaz5UI%0w}q>~Le19qWkSJgs1Ytm zp_Sczh#6_*=6s3Y9kxW~Vu{VO7?l#0TjuP3f8`&}d^4JZnTZAm+1xMfy@e#u?)p_ty;3j9DdtCKSEI=oGm z1uI6EC1vY3=dld2(cxuWp|@_FYuOMh5uvq2Nu_l`;Y$wRbf5IBu z(!dnXZdRsrO0Sn%9pqd4oLjtuC%b|DXLYF-T%*>iz6)RItQ{iVxKd2h_~i_V1*a82 z=t5;*-vgsLHnD0TvCAMkt`9v>PmeMfp5$toA+GF~8YON*dYS9Ss<6~O0&Hb23s;CS zk7#K-Qi6WfPTR)!MvYDM9kqp0;`#paG8Tfq!I%qL12YECk13G#g}!+d?6M#RM-Q(R zn?Qv-U04_cz3-oI>puXq{UdY888!#!q!dZC6k_ylqM%1H$r|d97LVgHN=YCsWy{uMaGq_-p7BKmJj8VS%1JW!qE!HSSVUGPCuh$Xm+CB%uO#X0FtH&L|Ro$9ng zNKaO@3zM?Mobvk9*wyylL^Y`O{g7)-eCT>)OMZy>BtH;Y-d}aUa@dE!%VL|QY{-2Y zbZ%^?(-jT8>)H{tKtoSx&`kcVH^7udHg8^}v1cMWfJ6xwyrdzRb@fF~S*~;HlYO>9 zV7_VI+{ZERoI2|_bCs8(CrL!g?_Labh5s>fo3N;`aEs=$^HJi!-}2YHY~18ZNCdp@ybItAnbQ$dUUm)Z6Bh`P zNQNS8rl&r}oYS?Tj9T*!>YqnOP*`~#mkd&Sf4YI)=Ju_4J~q4wGeW?TXJIel$kMEf}#NI*Jvd7$^lBLo{BPNzI-1+0a^g?HGj66RNukM+Z+NQ z6Hf0=P*#3BqYcFC-tFsQ%LmG2BFWKf$uEO{seak!_XzzLpRXzYjCC;9H{MnDU#bMC&y@X-=~~_l_h{wO)J~FI_oZWYsBeU;I_EhIv&fFV51uB zek@tcQa=G1Tr73}YJvgW;RhRQ z){$im1V0z?59mv!RmL)C45d*+dcbN$sB|Fq`6%H zOs9v!drVbsjs@ZA%3eO#k?tO5w*fkj)UYKuhB(kjYQ#c%c>nCPXl}U`CYFZmQ z7|-?FWc#O?D@!Y#z8G7tgFRZpIT-+EW!0ao@AbB`0z>h?2s@}_62N7@r8Twq>H)1P zyRqplwRgM>GU+vwB2sAMd-snB9S(a$dlTy~81sq7e9F8UEWNJx6&puvI%g`p=}{d) z?rVSfR1%+b*Q{I);2DQ39+3#P3un4H#Ozo_Xwh+LYX3J@ifOIY-^{FfY6F0Pu)8>e z{NLEaLx}|Rw&>oHE*N~d>A<^Pm$>uNGw77Zsh3zhMihaI*UR}IlE5u=R^e=*aGc(m zyUVSUR}K=DKwSG6TvirAR|jGkm$r&nAcjHpx6~stlM*b@(*SsMyq+9reSjphixkD>jt_7! zyq;Y6IPCY!)-(VSV4lAT(yHfYQNfVs$CUqmfCwlg`qCP~;y3qv33Ai}<&cGRqMp#= zx24ichOubiasfeTZ#=rpsPB}FEPfG|g6Si^*$pf?3g4=KJnL&alw%w(4n_s^JyWtr zuy)R(inz;jLAFSfK!$-WmXagGTn2>}Nny`zH$>_Hh=*a(0VA^9PfF8`_T&2X z?EfmS_H!MRhT0VJF=5=so;^*;(aZuvF;G8o^TgE_aVH1+fo#bSb;ISE##!U`~{@H*w>5Jpbn=TG-!X=c80q-C?f!6|DX~t@L)VuCK4MLD(0a3 z=F-ORXDX-}_$N#*kiWA%p2={FlWjhfonm3AfOfF8)cvh-qkvY+4XVcGpY(V~f4II` z)lVqu+qlU_4$ETABD4v4Ul{=M_&n!xMEuUnkFo(K%gdYDCGzTL@z=F8t(nu6&BxY0 z`EeG$w)nhAaYNw)4peELe=N^0Cj$f+oo?i}%M7IU3$Sl|#6+iAhJo#mp$i*sZ{{oMY zY6r@=Y7{N**VjT6V4Bu3y#=uys)tH zr3n7~3a*Ya!2lKY6KR-}CPU{XgvfCMFQ(;-jFu);Q`G{{c}gfOYnAgnSY20cY-qWi zf|uq{s75+ZCDR#kHQK{^X`u(gwPAs|V=-g2fX) z{|(2tsUL(tLn%4d>c5JfNg!ZdzL#cmixLg(&?39j>-LzDwWsP!bn_qTyn`yC& zFqVoAqo5gv9WJJVXO>A*1jUx^Zkmwh6K}dpwx;#F+|jGD2*tq=abMBZ{mu8wUFk*i>$ zefaBYr9p$mIe8B~+}Tl`+4hV@qXG)|zfn{PXL?6|_w*W>(h!4mtcIrEJU#v{E$hr? z=xVfOQFPINen@whR^$wzO+7fJaa1X5)By42!6So%dw++N2pZZSxvn{+>0Qz&RfJi& zZ+g!Zmkat^hl=;|NL9-y_blw%wyK_l-sIO|Z85LO8t2QcjGRjh{pml+9+GKIt)?(8 z$fB{VBhBg(H|xzVO9)*M>k~((MBdCRFjKOY36NUw|brj)-Y z)(iYwP=X4*yw2mf;ql2r2X{6% zN#Dq@d7vFStAGW0QDNY875WOyvmdT8L;Pvq-u!29pN={YxI_~LEPgDNtxd)&r${$V zQ4rYWb>&m^`1`$hdA&$oY}(JV9$oR|WjI){%s(+j>4N*N`~qG1*lH>;g}^?E$xDJ_ zgL)R$iDSl#q_*!D*U9qz#U2BKLy9q0?GDfSdMUQvuskT5>T6I~>^yfXiUXNxLA_A61@4MWHl1W%vsgJeAvsI~~iCvMs3P*WZAhNh)Y1 zBcUU~Ps7G|G30vUP4v5UVGG4la|GzV13g`kE2Y1*lu?)3%SGj7pdzn5(SS-5vcR;_53_J zJi19<@z?A9_&i^_X*_uqljEP3yTnLf^B*|@-0l32#tEkkLZn(>+!K(70K@~&3a+n; zhC%lTb>0$MQ7H?%_68xIidzW(;{D#YJ-2$@P{Q;9E`^~RF_8KqWhm1gkXDTmxe-!d zOr!D{s~26(Dgq2CpF?`b*WJYLeN|H%3(QlHQ?`_8h!Egjb+q{wP>boMOf1 zdEXG~DmMepm|~fclttXLptRVLPOm)^iRvvfUy{47?0RtusHJAHfWa3kxfw(y4d6zH z_qu&bO~rm$SxZl`6r8C0(D;X;h+e=zQ9P;NLE9<4R^4-_XsIGuw6DtV2thcr7I1vh z()w&Gm}nb&Ix#_%y6LGev?1O-)`+2%ep$AS{jds|lFPaI)U}ssu^WRt*mZj)YY-CD zEzo0y`rwK_E4BolI{)X#?o=1|E25*1S|qoi>QD``X*H;U@JXn{fUwEF$VTO zbKlD6JN=~E>Hw%Gj{{g(xOhR0WbwfnH2q3x z46qxRg12{N17bD5&TkBP;CQJotRpw`TKwYjX5Z?LM{lUVqDCOp@Om;%$xgex)6i!o z2Dp%x7Y6O^z3Q&qUfzxmhkag@sN?&;tmjqcjYy+=MZbKxxqb72Y7n_#dcF>hk8ap! z`DX~kf8%l8`8y+Nuh}#FFwSRxHrVVf@+S>*8d^vZ$7Clx@Z{V_cw4hkeaK=CTWPRT zQNw)90fv!`O=P>axL5#G(Y$!4n>52o;Q{9*gu@R@US z`}hu;FL}EvUtnMfzg!=`ZoEc6H=6h2>b>N&zWpf0<>|qm598MW{ACRO-ym6DUnd`r z`QWv7dVXK`Pw@LItcx z-i6w4kTtyi{(#Mx+_%l2)M)?j=UFk$qjidVOUf!kx?E^riA!)2K{1oN1qKDR69JAw zy&J)FvS}L;#?;#>yXjiT@F!c44UM{zTO6E=xGs(gfPkd5>dZsG*7F0p2xgbgKCYZt z|A1~4acvr+ad+2u>QQAe@@jAuZ=DqzT(sHTWQ=ZJptrd_3Jwdp>cS{J2 zGAB(MiUE3=+tGs6AWpR_G101NXd7Co?d)P|Z-R-;Zfpt01MYK$(Nw_@*5xi^SSij) zmNMLhPKq=lXEEw$FA!OkeMC0>qJ70q9jM^0wE_KFNeN;JB{TgY>A!C2+9j}fApMx22Oo%93}Ja)J{P&`+)xh$?go@*kSXX2Jx>lFT; z>cU-cUFfXuc@(t=A}|t;Jt@n6!&8CvM58P7{m(M^SoS#vbcZDcywsv~#f0kN|5Vm9 zasTwG0x5mE@-=)Be{&r*E2Jsrrc5qvOa7XeM&{QB*7%>Xc0VF+%vKOEtOWlAa zc}^b~kz%nrmL7cwMBg^QgYjS5D?VJ7SH@fg>8n_UIX>Qj$@x(;KK$)2_rs?BO zWa1l3`Q|l)HeU>Q3iXeCv4YE$buRe#MkRLFZ?TK<&ez6x=6}=b1m+AsnT#0b#m)#P z9Ws*Nn`qISF!iTE^juY4u()DR7!z4Rohj|P&*6Hw1++&6vuMkhXXNie1E71!nIl&C zVE1H+3rO3kLvoIIA@M}Nq6>k$r>^KNSAr~8ii^8r6^2}|XuyaM=)E5grQ|+CV zO3YU)KBTsngk6!*Z;$^m9_E{#jCa!g5V-rW(h)YQAK+RMqX{O6zA=degSfi%(kUH2 z;7e%R9MPrr(`C$a{HTzT{2X5~8j2fk_*b&ESLV>%HJ;xSP^*_E&Owpcn^jLmuwH!y zg&it__t1QdY8n#b!xEXP%ZPF&t?ka+aYHAfs&y0!X&=}}FfjX>Xt}SpWe1@%U$hrJ zd-1L3t=zLWz*Ekzah+3Vf&T{0O`H6g35K@9iFczA4mD@AeB4zdf%+R0MEDMx(j!6Kx_WV%}h_%tM$`$ z-NkcXW%Swm-Qo1w^hI=bYdX9AY$?GA;5lDZ$NuLPk0(HMY zl*CuYiT_W6(f?Q7L^bPKhcDzcz<1|u>(Y4Zw?i&3se_jubM2iCezi5I!RZK8(;%UB zsCY3aLZImnS$m?kMc>b}XiVbo+f9y|buIHIe>BiJgsz_~!1(Z}GA0dajMJ21k=UVE z6;%sV7tm5cQKPi(D(GY$34%~l;t0^Fcb zQ-NS%qbDd5Dh`Z-MC3pttn!||!6HyUMlF+7vtKhRc|e{x+yEiK0GcnuSw1qWzXH3= zo13QiV0@tt8{Y~9r-EN8R1p8}qMDe@s9!8yYT(Kr9Zd)>A(>1E$>awbot-cCC}Xeg zc!Km2DCq{9CJ_AFv{5IgP4Dm;y6?Ei=R=3DL2-9^K>GI3=LQW845KLgZX4PH62*6Z zX>h*zj6TWowjYQI7-CvL$;I zGX~vI)UKP=R#JOn&%Gq@lD1RE%qz-djQ>6>T_{fP@1og&1bj)eM-rDJ3PW7aVOe^^)N_aOFo%J6&?W2c>>QSVVF9I8s{L3( zJ0qRqU40#y^ZfdnaUFX2WIE!`kOTz~Rk6w>(K=BNCT2{nq_#U=zfw|JuIXbRS6R@# zXURMJ;4m?3c`gB;WsRVxYY)4eFVyYy0#dWhe2*wFAdgMtTWuY2W|WE;a~8J{AE5Zz zIBt(NZ?~^aL3MF@zGuBTYUF*3?f?q=lQQUj97PG*o>T%m{6=4YW*>g@mAehe@7P2w z;#zj{LCRedqZq6<1%XhF-Estd#e&iTbwj$RC+v-jwX@E(19`cr-j^RlbJ@*t0Rywu z(ED9sUhIewHXLd&^icOBTiRza@?}#{X7fU$tVIIY^9IyO%A+ZHeOhf2?66pIZlw>% z0W?F4Wg3QJy|O_+mi1^OmrnMQK?_$oWR0%%pbO>$0sCd(fgxOh;J2A{tg)M1@*kAV zqw3@=-fB2m2=r4u9s2<|>@airsU(qu5*W|sxm7}j4G{cQL?8KnqFHgSzCBKR_?}qqZWVe(Un@1+3$RY^L2sNii z3xQj_Q6!06m4c;sL5&d)2S{`{q)SDc^c~OFk_IFmRF~->`h*XYeNLsIiL1UY+V#WD zwqH*Nr_U(#41ncLD?RS&F(@*6f7`MSS0dLmD~;g{$4>+!_>lV)*MH$KU4KKq^1J$KH%DD}jh z4~G=Z?DwDH_5boxnI>TLnD9c~%6^U){}1Uv7Qee@#gT6JE`B{6-#Wawb#SSvD$ag^ zRfcJStf;(gO$xA~BQRCsuMRGj0^5x2(zJDzxUAF|5;_TN<8OHwp2M3oSOr8Gqs8AW zrFFmOIx0!;K3-13_snrB)Yp)&MovfjJckJ92J1=lz2;(B*U3Ub0TOrBx#-`EQtC*m>6vmylT#_5J!A`@LPQe)j~lBP#Ro`0@dzXzUoQv7clD z)ZzruA^p&DPvcd}<@h%QVg*5ERJ(OZpx~aV5xtOx35AXtwSuxz56~K_@D-G8MoXW& z5|k}Bjk~JguSF^=)mTuC-`3=z6P}JL zLTrq_t~$>IXz>mR;1_S5BjE#ySal9!fwC5Jq8-&Fg^>*QuL~}kt4Qx&VzLE1N^YYF zf~G`P)G!ipSAdzWxlU4Yr3KP1Y3%x1?Ba~Ir9E8@G6{l8p}9Z}!*T$Xi3dyD=p`+o zQd1AEATBE#5Bfg8A1Ld45Udh5dr!V<#vK#tzysq7STAa+S>mX?y1ddGdJ3Go&_%CY z4UMOj{YEFFB{eYl)#I~rK7{jUX=C0u8Ggh;^C7n~FLPOCDco}vBUJ5c6CvnUbj^Ec zj7JuM{q^YT=cDUiYIYp8EDfC6C~MVd0{>h+ovmh-VQN-~!3kz06JKq?6$MoD<{xOw z35E41)2(MZ$QgxO>-w;sOe*4TNLbQiJqK(1SrK&->p^TRigkf|RJK(Llr zDC-D=z7Ai^k6*d1BpF>+j2XK?O;6w5JT_cPN5K(WSGdw9W|Y)>bV{L@5&Q<6n3i4e z_FD57ryc;D%xak6tMV8$2gZ$y{{X$-+_(f#Rsn*jVVpgk54D&*HVpxV3W((n3t$v;Fe_13+}E8{lIwQNR&$EHSAi8y z+Z1=6S2_Dp1N*JY!W-`G!$>tqQa00_$2yY*V1VGU^cMGQ*>VX`1|ung+3OQmV%B-X zy7f3s|GZ##P*+rAKOuuFR7w1H_t>T37ru)U&9r(o-&#k`o$UN0*7bE~d$}>V zFmY6_T_aVSu@y=Bq?*#g*_};BaYCR3Xyx+Z{7&Zu;CZ(j^eXaPb-NHE83_V{zjZAT zx3K_{!YHO=rHPTlF7;D`D1_tVF}PoI9ed0IhMf6kx%IeYzS`s%Ow>))sE{+hi$ zyLtWB{LP=!x1X=y{&oH0Z2o#Ydvo^X{l)y__{;nAtM_9H^G_Gk->?3Cb~QV@oc?h! z`#7F_xCDdE-vi11xPJe~?#==INg|L0n&6{qe<6uD_-~ zP}bl7{ew}KkZFAX5e!9uRNjMp+qb}4hv&EUKbsyfPzuV7ju0y-%d+8E9ni8+Jrvf; z^v{A~+N#vgY^l+cu*_LYEw!L1%g;5u16hm2)oVZL2jxEHI?}~uxu%v`F|MVg*ISL( zpUnDykaE3I$4QIgcA`gCsMCoy13`i9J7z)ys1J7Me0s#pr55 z_V!Ki*v`ph?<8v+$BM-+_YN)|9XlkmZY1@^W(K@z+IO#!$_K~hSKJ6n;kmPgp{vG4 zii=&*y%6y6H7_AlV1~VIE-fglWKt)+gx2-!;^*lr2aGTAqZm^!EMe(+J+*F}zI6ir z%yDuQDrWV=-+IT`BE4!Dyi`s%`X;ki;1{wcLb18Ea8X`PfTCyYW>p=0i{i5lL#Y}C=Ey?Srf8cSKZKZc@Yz#_UCcl>lHls0IadSA`f_Xlkz$ZmeV5gA? z%A6LOu=IZm&~inrLRsrBwliO+KB*~yRYqY2V%6UVFGN|ci1l3Oz!vQEV%~c()sB>m z=YuS~W0X`JnZQ2_(m?cT+VZWxzZtwX{h+>2Vj-vJIpp;H{Mozt)3-O;uRh*9c{>Ai zJ$`?4nw5DTznhId-hjCJ@20~Kv*Cv%OnWmOyfK1{(=mn`RT-=tUdoj%1E58@Dj_O4 zBe0DFO-ubjN5LT|j%F`!jDhwmu4ZHT?uyc#X=VFn>M)ZW_1CGuk2FMKpwTLJ#E%G1OCLGbqb> zTYEO_%>)=B29RgL>HJ7Hy;mhu#Flm28Gs|tm&m!Gc8Uy@W9tsL%1%Q0H$=Qh^IjP-=4c7LeIB! z%Dej5lr6Kzf0`BZc_7wH(az1=KPRvMoW1??=Kbf{o4;nd1%AGH``6^npI0ybn7tp* z-kpJ?W}n7ie!rZ5JfHt@0nPrp`uF(y-xt^aKD++%`*`~PV*2)MDiZr^`r(hs+dsa% z`E&LX2*>u1EZ+Uc{LR_F-~4&=>UU5ar<=Yz`>`tVfAIU~qO3c5^o{TBkMFsH@bvC} zf~=YopkT=Wt*nK0`@k&i`ULKqC*|?{z7}WQCak#u81k~`E`3<_LIp@(c{_f z=?z>4LLtzV<#f9DSVtE$1C3pZoF={0xe+iugpCWB7?)+w7ptQrz{v2#Q~(|k%lT#? zR)Lv@aE8}=qlqx)M7*@wKie9eZ4Hyvsysb47hbXlahxZC`*X7a-#7{ zJ^M6)RWQlNb7=E)zI!r+671o+Hi1(h(9zMT$^mP8<`Me>n z7p4r zca^uaIA_OK8+Kw03f$ua`Udt;Q_*WRfEr0Rn8u2W;N-O{WTctXUXI@jae@q~l*_40 zP76i z;Oly!`pdR_HA{eUPdLkhG!lLzGAjRjiO785lP={+dnM|v2(`j;z&sx;AK;^S%k#g!y!dna>W|6uKc~qMIA{CzuYbS$eEs3Cn|Goh0g^QrUvv~4 z-+TyxqduPB{67Bjr*P{A`ZS)sJ-dE?ar6H2%lpfJzx_Nl`^BGMUi~G#`0M7?=h^GO zbVsB&==JBD*Jrc0V{KnQP}bl7{gY9avk12jr*{v4MgXnrySf5`kuF{B!8lH|qRHKZ z$!(Xw(t3`PRLJU%u7H=a8?! zsw4ATP=o4O+tggH98FAm;qt_My)ZR+uGBzRG695)1W=Hp=>|$sj^^6wyNY@7QsV_- zG2p8z7%*T1RRInuzrk-0Z+Zr&I6_NsNU@1UrO?gqBIwAV-WGgC;~{%H2Xy%?tV$Qb zwYUWWt1^-(D8s2^knv5nj%}>lA)FU3c{1HTX&&%qDMhXuc3kn+Npkf#5bLQki@TOH z^XdX1k}GV|PhV%kO+}7rpmc5=FizL$k|_fYlZztg7F|Ph1obWlWStrwIaJ?*#aCozxnIzHIP-Ef8yT1x88; z7K1T{>Vau3u1rX11KaSI!y)r$7~EwTSP<03-U$K*Aa}8Id`>5f{Gr>rt^h5UAvRvi zbdI_I3V;~0N_#6$Yb_ltEW5fuxDxS7%xL&PAYV}DFG$4^xfCY6}==<9OM&Oh{$ic!U{TQ zCj0N29T>GB(#y&uqG)=%Q_zoSO3nDI%5pdQN-_}suw{L(-}jS8#;h8VRq28xSS}p0UfSBO zo3EwO|3Fy{Uv*UNyT669K={Z7-roC15S5n(?#7#a=_t}fcdVc+-+4YdKLpe=9R&w- zU{zKnYAe9r>Q;ljgFct3aV;%z0oXQ>W4p-=0myTF=cHs39xKBt~xpMWc7~B#oH&vVfK0QU*kUWTvim z`svH*M??M~r1^exrr~U?s!)@FOIt7%f=(pQ7tL2*mY!H9f$e<0O)Fn)BWzZ?gI>Igd1sc^Z zDY(U0EZ>=HU{$eb=>7=hTfh_eA&&CYTCOy1u(gIqmP&l<|!?ee?bQT zWLDvpY*Q1r1qvExIEoi9zSGX2@g_@7heb2#B*is?AP)cP4|xv}$U# zW^ZW>Ikt!uzA0TC!^|O`g%UNe_s9j_luj4=kpKeHymaabEK(Efg zRP#4y0Ik{kzi!_AbtAqypT7sWo&P{t|H1E{i?VKul&-Wa0jT1CeCy!y)*<9-SGV^s zmrZmrUXTuiES(-Vq}IjVgR|QQXLp)Ep-C^q zSBK+!M-6B#9i1;zj{OP|TkEAR_arBZ1YqWN7goi&A4>A~F<9su6%z_ZGFsp)=BD%2 z{&@vlt$bsog1=OId4a6W1}P*RmSjJ*Rfp)oI{+$8KhOY0{ZS@#Z7^O@iqL+%HaK4& zj6Ep;W-wkKjsaajGFRUkoC(0-apt!e$LMjsHt<@?2GVhDI;5*BTFS777n>lH6QuiO z^XXL}*6dNYP|5zYX(f8veLmZHKHqVkRb$uglR45(-UoXcF>?495<*EppX>7dKtWga zg$tioLcg7pi>=W)Bp?}GY@b|H2#nD;Z}(*U;N)U&IDR-ZPhg;t`7L$^WApwc$ZC6V z@jw`6cEN&ALa!6kwL?K-U&#a*rc*b&23SZ?WO@wxze*sMQCNF}^M__>Z!pON8!FSx zRUok7Q|in9#z=&J(B4R=!4TtY7a}+uU2b{#3McbHHzUvF-YBv`JpgG6KrMkG;Hd>q zyE_^EARZAe(Gx!?0ad*%O?^yd)?}<2+Ame;RHp4+Kocc0ZYp*-MBX!!OVJm{>cS_~ z&nrP!!m3c~L9<(2=OGjk!x~jm^EFXPpJtS~y3@P5)t}rxo@uAzz(a$om2l_{(4p1? z4)KfYgkKYZu^!wpDzeoy^Awc5IkkW9bZed%xUA3p^{wN{?G$da%j7qe&KUJ~9`)r% zj=}Hs`+o9Bt_7Kv{cIJE*YQR%7C9FP7O-miPJ^(;oI4{w7f_GV4+@ z9xcasXNZzFg1H$Y$Op*#%sU3k`UQLy6V{z0*Ju0nX!7$R zZ{}>tZ0{;qE34>kJ)VQRv~KAlsMDaZs!Uj@dc!Ho-0I0}MO%%#wod1} zE*31C-Fq_KeLjEi>;|Cq;28y@@PB(MTh?{(1t@EF`eqK`0ZnC%DdVh;V-zxmBwz`p z@bm)!Y4-TN*(QKk(9k?-^FtxoT&VVP1}-`UWogu!gNsJ*l0QSE7HZ|}*@v5_y7tWq zWl4cy?)~5Zs2RSSj^5fc=RGxWYbs`|bQ`$zu=Ko;vD&yDz$bY_}j9p z2FH{E4Pr}AI98i%(uG@OrIiEbd=lV+fNQoaanu53NuWF7*7f#is(EK%S_n`_rGX7l znQC-0wg;`WiufQRpPaD{pTR0)k5w zMOmBr>Q6TH%&%bVU=@XnEotKfuCNDLBle@BaLuuAl!gN$QK6 zC%;dg@|As@Klya?>i6q+8l7%j{K|yvnxWo?Uj2Fb=4|@*^Yr8R=HuBEl=a7W_WSwt z_ltjjFyCMzxGv`J&Tq`;{@2vR?&mk)uJ_|F9Q79T_1BDkG>ct+`8b|_IGg=IS%3fc z&qY~fhSDn4t$d|cB*ZFr!Rv%Iw0|ZkEnOYFng^q>$!B_DTgd!9#?;f2m z9iHDiJO@O9xT=%eXo30`nr6cs?k3xCd1B4+2bcG2+2V*>ls`dNS+ov2l$DUJ#g-bG zMU&Q+T^SQd!!}MSQ3W(CR0xV&zI0Ex8@Vnj|F+aomYZ_NMq!QoIoD? zEW*|!U1%mEs(C&O$f0@}YId**yb^xkqP)HL^1?uc%5q?Jq7qr2Fo93aKX64qKwpV( zDaKoY77fH>(NSuf@5Lci`R-9xBgyU0NScCIo zD!0WV&%0gpgLI5Peb&XgdlV3rz0mDAYyEOO{q=BiE2|G{RY&_)lQmMpBt=j+F&U3GS;H&(OMgvC||Z+*Pcu6iabf^{z?k5Of5 zPi|OwuTy4n{-CKIuN-f$fSd^owTLl0u6*vZ@b?s`UJ8S#Gph2m;TLrOls%&X`mm2tY&L%)U z@Ks-gHrWYI>zxU!z*^m;iWTDG{NgSU*NOLBbux5hnc1ZyZsn-?0Lt361v7vXNfAGx z?juQvrSL+875EVwsCK7i4(P_X2q zQp}1_1_TD$RptHC%el1fqtw}hfqPWMA0$MNSmZ*fvpNXG0!_tBuhO5uMHsI)={*bl zxZ6!`((*`(c#WY6e?`rRG@0)-b_UZdE7(8^ER?74bAE6IBkxO2n^U!58l9P03KCbKi73Z5);9muVOW7oXd?&#$UCTcbC|@lM|AZf%%r z_K{<1oK3oCP5&}w20s~C%Pi<#T5qs_G2Z!XNsQyqYBz6@PzRl+_}u`|=f8LE3?l>|yos1_EC_)W-#6nv^xV zA^@e2KrAtpmY$Do7@-u1<(|e6{uYsm;AH!)XIL3LNC)JCWKRtpynfWN3hFZis!3v| zIHOQLNmL;OzRH%-^OUFx%j-9b>o*JQs_%1Qg>pmP_W-KV%Q%i+^pevR zY?k^K?Wv0I!|YBL-jZOh8Z{6Nu8YO0TlEYpveq_7S96b>p=)<*jeQ zJrtB`DK4yR^yDod%-QN%;=0*UE)8WA*MaWPqL6%iJ6U!j1}h$eZ^66DhcNnFE-&IT zM4=j%VnEK03awKxqzP}Kou^1&iLP zn8zqS3$lBxwc6t!Gqx}}U3Rj%v^)k7i!EEn<8A1CvU}Qeugupv5X((>&J8Sd388>y zXPs9CF5Q{AkH{3a#Rs}+~uOE#-T#2O6qW5NZ3N%IUPllTXMOZKKr_gER z^fX$*Y58yp`WXAHl?RtAHXFm1j4?tmJ`g!DJFvZsTv9^FAWjIsZC7C90dt3eBnVUS+r>MjPEA5S;a^zvTpH`;Cz*k4*xqPBmX)-zA6XE0%;8=ZG zbG-p5tL>`aw+W%VZA3B8umx$d2I4KoHAu|~ZLx03F7Iven1kI4Any#i%T_dnkqe7-yU{O6-jcV|EU z`RwPrqo13jU)p*Vr(dQQgFl~Kk3QW_FR#a!*MraCs4wHon^Az)_+t2<9eo*|UXRaj zCs%{1yZtu0{4zSfZjOH&AAgyg{o0&;X;PE$JIeYi{{GM?3s|MS&|bsU3u~0}6&AgS zy9wZALt!M}gVvFy{PQR?vW5?YVK-0KL|n!kBIh`KHMI&orzk6+>(-#b)h`x{*T*%m z>#+p}Z@C1QvwnuA@sz#*lEuySm_r0w!)L3hZ7SAER&Dp94`xTb+8ivb4d#=05DS)Os)|>RC!Os9QJrgX zRLg>4H*A4>!V_i0I@vf6ya|LB##gLA!Uhfn_g8)>S7IxYd4-8s`D)u}KxB63pxHQS zwvH!Tu#)rXdd!Uob)@@Sg#F%#6$Jm=-N~Ds@lrK2>09|-rNlruo=EGIx2?$*5j9+} z#5rhWup~rD58tfJAdO9{mizH&8Q^#Qru*ex@5}q%0D9ZI{s7z(BMsm7#(bks4dUtzn(nat>06s6hamN1T1Y{zv+OuhRd~of)eX~{5Qx75{4O$SP)LkR`hjC zTduH9e!J8`>gZkM^C3=N0W*we7|&_#_Cvffsah+Vq8D5p;iTa+QRXF|I0Qm|B>rAG zSG#G>)RN~qmp~}8vH-m242EiOA>EZqwQ3ODnhy&#B}86d78_YA;9H}nqtvCQUoENH z{9=g|0cwDl6{2{)X1_>wd(56%4N*Yt7i8#5P!^=-DpE2}67^IqRydTU;41rYl*{G` z3a)@Ebp?`GrOK<{V5k^-LwsG^cqaDq$l*Wk$1yzN> zqC|`<0y+qwYj$%VhMzJ>5rYIVkM~|MF|Jnb4FNG3R2B#Nnf5qFY-3^Qjfn$zW0D#e zEE$B36DudZ=~`CUgt9t3NXNYHL!tM$0>+_q#f&%)e^ARn0s5 zpVrb^?a<267ykj3oACY+G4aJTT~(eMF@h^Dd()1z}>_L+T`k_vAGuL>wLO*+OQqkJHOkx zn6ewXCRf})Z(|NQIiv?5|3V-=qZZG=a$eU&vedoUJiP;bt)EPgI6NkAqv|k4LK%A* ztR*@vxK%26p{(MZ5E^#WYqtd6z#fB~*{2Jil>MeUziz9btO!b_Rci%Q7;DNeFOG93tBlar3E1X(xVl25bZo%N!pdj2l;nv#9$!SBVASTgMCF=g}9J> zw*gDRON!Fpo~(U˽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

      Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

      *1T)6!Yva<^;l%`7#qPm~I=9AP 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

      O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC z@Bi%!ORwEN?tAbW(d*%<*KeEs51)+x^_lL21K<15(>Ht%jrDDw?c222za`kWUFm-` z+P5R*+pYR`0o%f`{;ib0=-(RjZJdAY)`hojp81bkCO`4T&=+0^p1hcyTD&!-tj;RS zf!L~&z8TBi$ai{=KRxq~M+W;IoOtuL@c(W1qkELa7e=>ZF_Ah*=o1On^&d^^o2Nog#w7PSX4MqI!M z6~jb&w}@LDCNk|rbm1wU#v;fvWl0vaLv_IfH*rNY+_7EQcv2rv8AL3~Dp0n8MJIua zd?0EKiH*jnY|a2esjPAiXrZ*de64d4?Yv62&w99>h(}>?a6a4tfzZPGIq;Y~mn9Af zWt|EdC;U3d=a^qVx&ST$9qAOw2v`6uN@Xl|Kvtd;Y<a z%sUrU`=V-tvRJ9}j`W2mWib}VD4)J8{EC1U%7%M=$uj6g9cT7kiINjL(EGN z%ALz4g`V^CARp$4^2$6$0b5?HdAW|YaeW?%cZOpCs?K~8{2PhrqtWg}?)FTocO_<@oLu_ccOw6F*X2LnGW@|k^Y7gq zdiP%CzWtH6>XT{8y)0x{ci5A! z222dA#{3jsMf8gDy?KiPnY%h5?~B0#MJ-^`I=Q|SjC!w@qNCA zrrO{xmX4((s|BLSRt${tndk)!AjnZKo@x-}BFbz4+rT8ml7ewJHVray45@&{7Seyxapyl~yh4k1yHvRlBlEUly!-!z|x$ zDmPgwsErfn}fOVaP zfE$?C*#V}Cnbgp0tQQWZ{|!`$1Ku=~%Vv5>%St0So7ip&2UBYMrpj%PvIMj``I<}x z2+>r9!tNC1g8_c(s}x(uL94AeLRm1AG8-%O>@g9`6UJCEs;d^o39n1WRMTE++H_1c zJC!AX6OFPKJnY8OssWTOU)L)DEgaEW35Z#y5U@3b%1IsH=UIgZE2}}{knbYR=3mX+Scus)djE4 zgjW9b#o#|YeBp!tc=7EYAMf83qzVNHYJ0qYN3tJ$MX`0}T*3PBm)x$v09wLbp6WVP zD_COq!G*q$UVF_am5&X7Z{PIy_D{e3k0;u%{lt*(A#fD_?9*@jWPJDJcORSo{+_9S z`-|tV_uoI#_lZed0eoA+ecK|eO1wM9M=(3WeLI!DO@8WXJQ5_`ZIAYY!FGiExA@<> zKmBXF=HIvd+CP3~;ZrY0&MvHs1y?5)m#zes#sbZW=-S2ErLPR$`mbNjzJ1&DJ<9sQ zUq8H*HIlF~w4F%WKrC<6%X-8hr6k=`Qz`wLRQkU{=>irh_Pj~BO=1NMlri&);k$HG zh%zD8cs1 zCcFeTGhrT+oTDnSbunsRj5$ng!iJbvz*xSsY}q*#wk28IWVm3!c*$=b4cM@kg4S^W z29}47QxWS##C|Dk9Shng7)*$s0H{D&*brw<0q272TbInP^#pW68hQfaLjOGnm$y4i znIL6(#=t+-QwwwkRLWX_vM!01py$pK62r&|Z?UE`sMuHy>tKC?S==5~l1u$}O29iIpchsv+AwbuXkm_z%#9gV;2}fefHQ`W&N>`w z`>J^DL`c0mP0)2Flh&2EJ<5Vb-H~{22&XSjr6zc zNjN4nH5zS?szekaD`Pxra>}GEmbV(G-YKKR!7W#*WXRQqqaAF0Ale>^bOsdzpoL%W z1fzLxtus0#J%iuUb@W3c7h72WWt`jZb& z{`q55XVvfei?`>K`W05+YK_HO*dqdAOuG`*uEmY%lghIcN9j`Daim6$3iizjz zPDZdH-=uG(&@?kmJq^lgc>b$4M(v5ZPLEC9qSpm@P{YvQDmLu=lF6|<2(7B8N*(Iy z(L>c{RV5&kq*_rdowM9Im(s!p&>13%Nr~#`=OHPp`mF&{010*P~T21ODSk+adcHI;MML0{V zZezu1F5641cKwE31API;R?G^u^(er=qGg%wM(10ireUv{yTu4e*5FDvoILg7&74RJW|r+t)5$Jz z(^>a%WP8?5xh-Wa7tZJq}S@doJcg1tXQzJ&M(=s?& zSgqD!gW@Oyzm*A8lvW2~dB)mSEJ$S%J4sMPqdayTN9npzp+C?lT&K=E)@jJsD~zZF z1e&FWPKiQB4^sM~xYVvRz*Gif2Fh&p4;$=G2g>; z{SVCh9uDSIoCR>DvvE3(NH((6>3nyv=R6M8r4XQt)WxRlDP_*`ImWe)Zk^ z!|&WVci;9ae|hN2N1nKL@Tu^rxm#!FY7=uS*MhgkL)y83`L(IeJ<9sQUq8H*H7d#n zV@WE%!936s4;8D~P9;U$k2z5=Ya#^(W9i8WCT;=7>}&KdS+EIwkSU@}A9NQGu z;@wxAA!BiaCi+g}No$O$)e;{s3K=5_bC96b8I0j(%rOCm0t4%uU|&`(n&eDh3^N`E zH*6+SV?GSfB8Hu3F-j&ITnd4^jB_Cd!+4IPQz24~fL7-OU?xZjW6}<0LfY9^YG{U? z%c?yXbA}Vn5R3D&MDH*?KP(G_O`KC~i37ycJ`pmH`t>6L^N8PlanU{k&Rp(x&p#lTef)B;=$sm`#KjP9v00+kpGVfX0E%DLCF_H<4vJLS7G zRHtw#R*~<*&}VW>symtNPNuq7k`~sSE8O-M8ULn~tVjtnZb;(#7K`>`(F|4`AXBjF zVo9*n4S~c2hs3c1^a3NQ-P+sO1T%QbYV)_Rx56_+Epr2 z#kg!o${-dD#cXUhQnX=VCeYgpSz|t<&*RSpipyE^c|e`Bm}NPj8HONo?_ff?l1!Df zuHkRXKeaQS#L2=Rmi2-$y_yC}Q5}9-XlgdymBL(d`e^Pfb2W{*oHdux7jh;yO{cWJ zK;dcnvY3=5{ypqtAkU}rq%6tl57MKBopsRX^=r`GdEKL|yJ6$e_HeX4r~<2~fdRY3 z6e)dx$y%IVqzVPFhvIwd1%ff-l?j&hM^t@G>5Qwbait9u8CQu+V+!L2ht<|7y<5O7 z1{Q)y5({{mjhuZ=K8U|H9NqcV7C?j-lV* zHT}N5%6)s3x9^Yq;vw~y4k*90FY=4~qHoRjgZJhFq0VZFF!^E<#IG=#xp8v~;P>GD?^)1FeWaR$U0^EFvWsy%*r{>dZd^C(H&_pM32&E8lGTcd@p^p~^VaeW%-hu) zX6d?7TqSQ5>#d?_OXO?1aE_#GHF0G0(sh?*rk3nHIxOx!YWLOjJUR??LC=9S4CiAu zm&9ID&<_jAr4`9`BYJ@_+n}8!9d}MvzzmjY8rc<0MFxW!gP<&`rRUcbI4rKo%>hKI zV3Ec7;)bZ(!2`&AHltKtmuh6auPW(I0zr9pgmu{~7+G3s9OGPcjP}%Bg*XZ0{ zyLmfZGR}{bwj4b7cbhN&p*Ci}LT7Pdt}i5i|1B;?X!s=-8kiYaMt$-^)Q%$ zxij*oPpy9NYlSyFG}iZz1HO-s_uW5B=h&8T|E_4?zC<7R>Ohl72D_A3?TNl|4} zbVtOZGflsi(mYSvdO8+E%jl{aOLovDba;dtwHfHho>NXr_JRgt9FI|#9P11wjRCM$ z!W^Kw17la@`KzaRZd?#Y7JWFX>D5}fEOt?0u}eOhrC&?qLdC!g)!|w1Sn5=UJiid8 z+Nn_Mbf|qMq|-Y@!3kFEy%aMqEA~K?+7iP_5Cw>lNo61q4jNK6`aF`b0Vo{jT?LqBCpv~kl0Y63_lCQK=VO^$- zQ9Lc~H~~54cVS*!SnE-XjEy9Aib|O1-~)94gu@AoMagief#RZ2EV=0oPcaR%0I>%fG^`wim2Iv}B-62SxTHnOlKx&c zBW1uF1(f3zJ0_)OqMWg#ls~qVqRp5h&>fmBgWrr`!CcI;j46#GX5vQ586(53?+l$d)pJ6VncTO1PYotU5!{&TtG@KjPM9r2{0xSHM?8RJqW{6%96_ z60z1P3vGJYS#hB(Fj%Zje^;!1HQt_NxL|uc*%`&1h>y=$^p96~D%so~O*+RXSH5{X zv-=CP|9#)s2e%CT_O_AV*}M1~`$O;Cr@rf8>>UT9Z`&Vx%U<;@oB?8m-n3hJ?H;9X zPssNuhE1~=Grekmq7THiO9g0Qc^}4ATlqYjDepTYe5$=$&PS24;L?FTGOE`evvG-!u`a99GMGN^*Eq+_65ZQ2!jv@o_7@pmdZ znAsB0f`z2Abn;M%fgD2DjgezYl98@3L5rGu6-fr;*7a1qon8VwP+hgDbfCqP*yActk0*4lIt9d{O?topv~&r!2~oh9s*!9M$t7-!AP0iN5;D$Xe= zy1)$)jEjvhR;ys;dr80YIzR)QafF zvR0(FI}pysd=22oZ)s&3I%covFIU#wXhFL$*4Xyhi4Qz*{2d>;^xBV2ZrHfs+Z>YI zDwS&N+v9!P@$Zx5D`sAak*uQqp1#Fq74ux^RSn+CDG_TU{<-lV`B&?gp4Z<0Z2Pyq zRQRa_s_%h`zE51GoFGQ2!%J-^Z@>JutT6-2rwufAjR*zesx^7u3N^0NL9UO&8)HLR`|A)(G& zTpUCRovA5F8}sXMm5{p{V96^{m1I%}P--Ggl#(GhpW9tw?lRu8<`Qp~BK_x?MD(q@ zwk9#W6OIBtQBFf-GcW~5VR}s>5&>pcDiX;z*?rj?0HJRb?H8vRANSrNamr zhR1N+z@dW(rUT5p+yn6indcS#d>9{*76w=%nU$c%(o9lf9(Iy@?d6-zWz88D7Nc~* zGzPnA_iDmrpk1QN$i}Em3BibaEXabMNBx*u#{(?uDb6kjGbb_SjL0R67Yp;AYl}0$ zDhUfb9WgwtI;*S)JxXF2ld=F;=rec0t9(UI6g3-hpvFa-Vj>9?v|(~m%*lj(73@UP zw#U-;Xo}huELa@3B>##oO{^g4dDc{>%Mp3TT*%RD;m?U=Kb0pb_RYd;j3i|3S~*QT zK{&I7IuUlq%y8VHYy-`ed?98HU5>f*neqN<9hib0fuWxaeTYs6VW>zT62Fh+f34 zGTs8lz-gLNVfh*`Rh-p1t!UMW)~tBVja8jk6`*BG)f!B>X>2rB>8d4HDWWwda!4c| z@XQHSyxcI>K8A_@1on$TiI~n3itL4q<=LWCxWZ2n!#Kt?W+{y*p?x%*JG`CCTmEbp zW4`&E>Cd`AwS_#3Vv*UHjfO*K&F9-hJ1}ZqTP*36>nLCc0f9uvkoSb1B5CL(`w3gW z2Hl<4J<7Tp1|kAwjVQb%@~Rlo1|l8L29-8VUBe1jqS`1fn`(=3fC|=cjYivJSO@nS zMIVXKMip(0itX*;$l5s8VP(J0Fs|MV2yBm0Ljw05Mu}fb*;7ehJAWfAdh}*Y`!sw z8}@`>zdQ7X-Jze}8-B|k|Bvrjc-?OQ?>u$u)f*>%FG%`;NcQw=S(Bsz^1jq;CRW0v94lBHIv+@?kd zHz(a_T7^1biSEk$GW9bm%dTWt0k=R+W@UvtSfgG%Xa}%rlyH<*be6qp8u(&ynI93o zq&ij(d_@%y_6K{)q%Sa`oWX4EmZ;K`ktiQRhZRwll(kBxLTlJuq0uTYcM6TQJkH>9 zC%>%Kmo%J+O2Z_`;S?-6*Kgh~tiC+2w4Z-T`TJex{@`Qhe(rw^{n-6;{a~scF)9ac zSA07_H8EBV{$I?uCDu>SB33ak%X4sTQGA;TT~w^Wl+}k--=>&vqtd?-EEMxSIO_ZO zgzpm*zK#CA&4Ip6!TwE3|AXPaPfYhcwBXwsdd+9ce|6^e|2%1YeBl3iVDP&i9eDXe z-&yf(o$~FDyzvW_ANypc?_jEbPqcq0{`<_!^6ifDYOojR74Lf#1W0cft`+@zR8X03 zPw-WH!#}=XdBcI|j~!6obWp`*=e~pSckfkx?qJ~O_r~76b@nemIeCw=e(={1FJ%o; z7fwn}vCI*N*R1uCbXZlE`C80<0z?63JU0=C!Yr)Bz(Vm_7?=m4U5(jSV-}TpSs zEXyf3NAV@b@{x!DTH@ehP@v?0 zYDnrkq0hrq(FG`K!wD)-;ad|zec-e!u?}c(G{sIz0Vwag%-9BBQIc3nwRj#ap(AV9 zlgLxGQR)=8N7c?)Oy(5~FQ{CMkB0fM768UPrOQzZBmi8I;w_XU1}992!vqL1nX#tC zZ8FV)zC8o162$_4!OPV#{T%pmYziQ`lC>w&_DBN21Nbp6toxk|iS9Fnj!b~WS=FLy zMZ~@%Tw$H{)(KNogSr~5rbVX0@-q?roNB_b@_E(v{8x-%1hJ?#qXAW%dS^85j-}j* zG-bqRG7eSa&}Yo2?OFER!ps!LI-(dcnYJZCjsu_xmR7T`;4Lsrmcu+bL5$sjSQw)( za+euD#(1`@0m_;ufKd{|ivqvIa4Umhv{<1?CR?$&PPOR+2O5$ZIy0Ox25Kg!V&LKY0 z*TlDI$5AUirD%hT)RLo;$83z22x+jg02QpnGBx0+Xa!8=#95uQ3&cv)++?krs&x}p zJ6W|86_^u;NwrXH9bbn<0A>{%h6VwC=mVx|#Rbbz-%q?}VeCTQ@O%EQoaJX(1*xon zB@AD50{B6e1<9BshA$E|!CL-2Xqn-N3z(sa&Icb8;Ivwcc~<_xI1=FGwU6}!MLn34 z5JAeR0kp)4CvX*#HDT-5pu6+BM_G5na6RN@kkxn@{>SG~7IMy1Dw|KL_ z1s_*V5rp9FK(qu$RAZQw#mnh%gbXHygJnvg3wpOEqV!+!b`bAei?(JG+HA^N$l}l2 zTgdkO$(OIruN^&~JM`qW|F-Y^AMLpCC)=m~d~fK3kB5HmQ0UhWhTnZq`IUo_Upf$e z`vLW5_eFl@p!zdU#NTj0dDA}S&HL52?~lIofbzDT3vYVl%CCP``S=Cx$M?>>^KCSXkr>i;F4)JfIhYPw=XobO7%+9jZf*C5d!bQrv z<7#R~MSYg&GG&-yX+rVJAQ>fr;`Vum93d{ z`*1I`@`_%&?$G4|cmOI~cc?bL%u-IZWxY;y2dlYC`eOExhgcl+6DpXU)wBSREU^X9 zs+l>VL`Dos93ZXH_H-%o^>%RyP)Gee>V=4WNJ3zVtSFU^^Azv^ec4HH7xuTof?7B} zpe#^XppR_i1hW~xr( zOqm)Xv5FQeYpD`VH1}DR3tP-K4GJ()x!%lC>rbz(7}QwjA;K}S8&dp=X>2@Pq8dW@ z#F3;V2B4JZoe5WFrD+1d3Qg>FTVPVpSM*$2;}quP$LW8pGPkw9UueZGPOaFNB zNB(~L)teWo2gqty3jSFew#A7?JLAME%3YAJ7{4c!H%-7%JV*d76Z_3erE;VL1|U-7zsxBGYh!HIYVG7Rlol5R^FFClB%YuQasE!51V*DNpYig354a8!iHj8XB zaHTyeBZJWxb%d|PB|`wrCQ613aS`+y5%u0d)w~p?j>RPwl_Kwf8z<9-B%7IH#w_E| z91KjElfyI~jCV1VH(}ulT^YE)E)hosBTKkunvE z1;a*}Fc#tbIS|*syVSs46i&Q=`G}6`1y<7nxw-sQWt*2k*KrcvXwn)>S`*AuVgw!Q zI8pnNVSX%_yKeRZt2|LtVV3KF#DIm?bV?W2vN5IPi3FiZK94<A{#ELhDf-_qJ zyn!V!L*`MjLIEgcM=LNxE$dO5!IGf-I(5cCP0_L$tvWHlRTXgMrmCzuny%SN7QJy& zH75c3s&$k2RG^E+ZI}mdt0hxKvlU>Q0boP3Y>Eyy{NAvTec%rddnyh$uWpq`JH*0* z5fC38b~#vdB6(Bxh5j+>8B$l;Bu(XvAl;Ho<@e|GS>}y!24oe;vKAI21M_Auk7kWf zo7_Cl`5*xj^yHE`?X zSmn!ygO5IW^?&Rg{4ZOF{&efrKiou}16ySQ+qSc9*VM!vc9`tRb~{YAZQD(*X|l~- zO_OcgoNW8+`QGDw-rul}b*yz?_jR8q`$Hx?ROcU|>yF^#8ZxzWJ`C>zzq^jNV-`{+ ze@FjY{QC;~)tc8^zkO8r`5gY-*Hg&54(Mt9^_q@@&k%x3@olytw5H zKCo+srjQYj>fZeJ38h`<@$a?_7QIR!P}y`t4Qbav`d>F)PIV?Va)EgQXetmyK{j#6QaA*PN+oz+W=`9Y{`6#-H=s@k#bQi-MchrAW$s&m zQk|tChoU($w@f1mC=O9pqY5fFf0@3TfckPi3Jl`}avhaNN=ve;y^zhN&#Qz>fdj~b zHt8_^ZdD3`o5k^BdU$QoqolM@T4!%U+Br)T`Ih?BMmZ0YWoOgGSqDsFMb8c!4vdU4 zY8Xm~`{X+8a8DHS&^oSbk=Sod149o-jfV2+c%y6#%4JMnUBFp%>ro904PjJp*JBU0(=0qvJ5k5v!cGOj%9-^+-Ad}q5(l+dA-D<@VbeYe z9wZ;w`f?6byd!N$7Uk9U`jA=F;{KYVEK{FckGgX0Y*oiibx*yKr2-l>s>_&8!rwSF zF3Pt(bXW1ooEm_O}epUQhqrCC!N@v!wmbGiN_)_m|+`udd_$ zjbOe&t_=SrAee48i!H6t?4#!BzgO)x>)(}bK3oxQN}9irwXA$x z4ZpwCJaH=6F7aQi{<~Pky*pF&-J^r`cR*^nP~kd-dI^2Lr}lYVynxXPg;ewXoBS@o z+S+l2*Ccs$hHwwrd@rWoE_7AkU0}aL{&v*9og+}%wrjA*C0Mr6?EU^pH@x`&sPVjF z#`3eWXH&$ST{VVf<6QJzl)UIVH%5VBDDXdspArm9Sa3#JhL;j*#AXzNt~sCqF_mn% zVIboS3(;oNkdF@8MnosF#5H7zBb=%V#$z}ROf_+gRa$`<#pF5%0!&nT8l%renA~`2uqpX2KLg@h+L#RO^pQL%Wo)GG)x=qbIJ0D^?J+y zi~U6O4N`$y(GDFhB18oUsf3_rwLAZtrbBT<%)D6UckY-SL%tf7gq_47-)82($_TmS z*_OhkTt*C>iQMK1SS7;TXzE&nv8F_?zSqNi3c?cQ6Q?n<7_DAMZ$?9XX&GUKMCy1N zdX>RynOK@6D7aew@abC*6DI$GdvjY9@Btx#L=N1&9nFD~mC$!Vm`NqZKz`$KR-D*# z%*%PBgzWsgVBrjytyIAr&O`FiKZ*Ipvd=lJ-3H?3{1d?r-}Zs;z);2Rz=4pTDKOMB zVwAyH)PJInJ>xVhVv8!0;AS^eI16G_&`?f4L%(RJEuSX79Or`!^?qNJw7)W;-F}$a zQ0Xx5hSJg-P^mIqUnH4UW2SnCcXW!iA;-GZx=Ie8OH#E9;iVHun6QZEQ>%bdaONcZ za0GzXX-W^2lUtWQuTuV?{SXQO+ zCrH1HcX8WFogyQt6jaB+q$jQ_QE4=ANlewi+5^-$i;5qGbFZtAqs6w@nT`tRMlvIL zGik+P@2hRt`hKbqp&JrN;RZ>?&)1`(*+-jzYQlP@q(P+*SrnD}RiCFji1f0y+#q~N zd&W#;5Gh+0)mG+^Vo~eAdE7mcY2*izrbh?v6xIk7cfZyFQrh?x=s;UHO$aO)>2JN( znhL>p#4$lIOK&Ye^BW8E9}4mspQ>6}-o}{C7*S@Yqg~tc>CuvT2kYBZiNuG~;!w_6 z%dc_lQF!AE-olPx<6nn=(ZqoDo~s>)ndoBv zM*4fP@bk@vq0n`kYc;R;6Mr^WIiKoE00rRHvNU}(H+@0vqqkw?Cru$A#9k`FqJdgV z{YrcNM*EtT=FG`*-@gGW9Gh`;>=KV8KaR{tQt3?i%k7rNZJ1+lxK365?xv^g?MYrL zNWbd~Bq9&kNg}lyETqd?M`uikR>yWq2>7S z$IN131-$V(E2KW5z~rj{B_ z#RKH{wAwNt1l1c&2umRhENHE*rHv3dk!-rQGKV#F1MN7NC-cxvk#6@7VcCSgg%WX! zq>cukf0hkg2hL{d(FhEJ7T97!9V-qu$|V@K=yGyWHDh|Ba`Eq;1LS}-n00gZ1*r85 z99l%_`*{w+skOKy)e3df3_;9dnx7PvuB0^}ViG%>EL!8P0ji_q;a=LQ=saB|?|iYA&ddowqQP<(C8+Ua z6wMDMIk&|wOw0OWl__Yp?As3#w_NS&k0^(Kdxl2JuOEp~vYpxk%8wovUL7llTG}PWU=IJZd zs7~N~NGSOED}6MN_Rie#DvtT>78T?0RI@TA;`B-rcL5St*k@1f7W$HN;?Ccw_~MHY ztTXfJWW(C7n2~mx~~wfn&2^U?VM06xyzITY~n1fmNrURtRIkJ5!DT0wn-2kQmn(@`aS?3 ztDk78=TiAk7+r#t_34~!##dT+hzkNkaUOp0X!2NpF&-W z|LVc247yB$W{xyhvp(=k8g}otm@(yKdC12sdQmsxGd3g%>H(MaWX0y;lDtTm53$}bD^>s?_zhl zqTlvw!pjY5Euk3@gcCHwA90Oh-CNZO5Qz{@&vCA>fY>$ zoy!=U$&`L;tab5edkih;9?Z#JzweLqU-5tHv~9mlkgR!~j|2EOy1zf5hxs2UUHZa* z?|e$X2E>;=oW-}jDBXUx;U3PAXFXkoJ^z!rp^0tyP+Y6Ne7D~qf1ma}RyLIn`gU(*U%AYr-K^UDTjH-~``dc&(S|o#%&mRa!x`HBMf~lB zs)4Wfci)%8x#K|tYwrlmU;<^^-le#HY2Q_#oZ2(cv`w`oUYp2plR2h6=o44cd0c>f z;bUO5*erw1Ue(`5%+Odet7iOg;30{C$J=cLP@AJt!?D@!ggZyV<3JjaqFhju$dqn2 zV}B+whP8jXsxkbXhu7WmTjtQ((hPJ&5h9x9YJW55Z=I%5NP^88Y5J>Po@v&=LO(7; zO}iBd_;X5RL=^b7CdBbx1%CIm2T5XvGysn%4~HxietbuzVyZ1cpYFduEp?Fo)DX6< zeF@Q-SUYNrVL1qlTAtS-Mff@!r(wv2odSNGsd6Fo9q6!FX1hcz2_OplLu3dofmifX zfY+dq*t$#`z(lW@m>R|&5!`^svMDvcutUwHaojf|To$KdCn+Q66rG||cU|Rhg;(8W z)gP10R~Ho*`e>xh0d!F9LJwFicXwdu?wU7kUjbTgS(zD1;~cV4iH?rDftSmeEK_hv zB^kqwquITGm;gcL1e;KQn~-BOxy3RDVoly?ykLzzPh|LX?Dtc@P425(G!3=O7icdY za~oA?G%aIRA)g*qt<8*!R{dx{O14`{>VEF@@qT1!{{1!{AKP))T}J-L|I?gQ>YusN zi47`xKKzrIuH#jTBLQ*#6RQ{EOAjuFtWAUFhs+K%*KnJpuE&Y`VB*~imnR)8oNAdj zWQUj7m8~c;SzCWus{%pv{qC&%c89!3M%XhMVsryCGVbkovw+;@+y-}VaI-AdziI^b zdN;^+oX;zzzZpLLpS<#Y5fmvDWb)YCGlVP5v2y~%Gi5OOA(&;t2%WE|Lw@m@oXmfn z3RDLGQ|5afu!1nh<{Lc3zsh{->%Ht7^5OHzO9m?F!CAW@J>I+Rr z1okGnM(QDwLJnYX_Mptt-WWt&px#mqP;*SEsM(Oj8jMGmyXp1wlGc)}nET>p$owSE z?cv5YqDm9^VbF-NzzoZG&`Zkr(6c?kpf>QmnT2(+)H#q4stZdgqos4^Bh0yd2u?m6Fts z#w?67MvA2C4@7d1Yp9f?-X&%U!}J^agy+Bl^Y)Aa`rtVVXJoh1k z^*s7Kn}GQG8>-@yO37bv8#=aR_}sGa1N0w(yIY7J6^%aY=QG)fX`JM2H)D-2Garsh zDGjI*mP`#-C;7TAEy?WAHHYVD7%M#^Tp5;9y&BnyuRi4Yo_ehCtCKD_ZG479oln(~ z-IPE`UVY6Z0|*z5oI+i}%-P_boU-1ONy8Q5}rfU1}*xA+IXwvY8+COjAt2A1wbDy3p zS;EC+@TfC*dinTK_wDj&4j-Mx=lLj2r}&)~ITQwh!2_&Q-QoQ&J!tb4G==3@-Z z6d&(v^U$?vOT6Y~ah*4*`_>n?{ZZ$5$Xy|G=?d`f(> zdh&3l$wi{%`+~dKK_~I!Eip?x8A@xo(f_X~tY{3*Q>rne(NZ-+KVmb>V-u|JD&9+T z&>*GIdnDk)RsZm|$O^a_i+daD!uQkm>846p4>`g*4V^~jngGh5@G1DQVTBSJR(^OW zan!N{d+2yuS8^C^6zWz_*?U5C6Z$nRk~I)W&)zSV)l(h|$yNKMIV3*j_g5&-U)Y{N zbY`lpSUBVMubP9P{9W0axo;>fgys=f4@mu3!la?NIyg9$E3S;w*MMdudEN-8JFwce zSAHcmgLe5+l*X+|Sr&t9;=V%toQx9ju32j%URCvHK{Lv&d`3Fr7eCxN1QUTVGNBv- z8b^aGLy2*`*p;ra9$ssp!a|JEcwticGBZn__hYF#)R+?Av4Zkx!HsmnDziZfz=&8bf^B!%8^B&MjP8K(B70GncBom(~?QU zHgEw4!%{t*m7=yU+#SjDZ$UD_I>b&CE}vCh6%Geu_jW&j9H$hEYTj{s+Cpf9R&}?7 z$qFtgiC@buNc?QYN%Pn-(t?Bbm8D<**tghM1}X?@V$|?7zjB}Nqu-8h3iV9Y z6;;puV^P*1R9%m8^5+1fZk8F{Ke;8BpNWVVx$JOLtJ54h0&D^2u5WG}=0ffoPlJ;2 zoiF6fb}jyi{0&raa@T0J5Jh{G#ftej#JQ6330n|7;EJ)P z^6jnG_xHuoowo1Agi@h@3u_S{!50W_SHpOs03eFU&4(StTO?wB-&dIRTLfTMZ) zeOv#@$L+@Ag1Gx4OWNO^;lxl-Ic)s1>OBL-a4 zy_3#nDyxF&5(TIaOLt6}@$4aXfq(Np%o0LJV|`Mq?~^Jk#-S`jAexd&hP`yW9^*dg=R!1w@0vi6 zH1d~m3|65Yto3zq20Kli|A0^24_FMg;sga+OxdB6y!?MG7RiS{A%F=h&Qra>Xl~`} zKtU3?cHku=$Y=poLr<8B`jX(6k)?KOSrNJ7!F3SpB;_2VIO-$jAMsz@;2|}X`vRFS zqlD0nrAIlCsBFmz94U?m4HH3!R$~P>YHGAbf#~=*$@LIDh9w{Zir5C>%@y5+RNf!V z)B=UN7mTpPblv#O84N{K0Xkigt^-^03a|WQ)(nO+UtAe6sn{^Pq8_6P@G3#WrrGMs zjesuY6FbV*Dq(%SuX(>UnhL7@8LXk2BUlY=a?w<)N^QQ>CffjE0njSt8FTTJGLWU| ziJwyO7<7GlnBR65wR?%FRt~j2S4hROjLN^t^5_-sWD}dF8Ph<+yysJobs0+<`6F`B zG&-8pB(Nu%j?v$eViXL!z9gXd8ZYG~F!0=_AUgItt|6J&NV9FLLXQC+QMb&Y4;i!q zDa}P61tR|C{lxVX($&fx_4a0AIbrTN-+7~Ru=a3#>hU>yN;q9qEXn4{dV78v6C#iG zyVi-$d2(}@Oe=2oeI6MQ_>O)-{MPrL*SX4mi~lnCG5ZeicQZJie3*E>>iC0xk@MaF z9qsRE@UBR%^H>0VL%zcG5&rV;eQ&FW{5-?|qGK7I6!fb2g8y#f{}>EEx4BW%@epu* z5}v&2$9Vl0KKX$ps_g}%?sz?Z@SLyk_4UjC!RNf=B=r^wy{#W|rs=nBaLe>kV82$< z=BD@vhM!+Ni~syS`B0$TdL3+Z)!1b|Hz^Wa3%5B*SpmUKVR?p``Sk^kfOJR;dGU7o7*OBXEoHb zznNBoa~1n&@Kq?b{oZ)-{U)%>ojKV-GD7o*vWYxz4$2*;$T25q;LIS=3&2aVdQ|h6bJR)CqLHue_$7H%@1XvJO zs;irFV)nvnE#O%@dHg7DZ5~d}E>^WQ3fN%gSa6c9f*Pf(EB{1xR(uvH_Z4hY^gg}m zmr4r33`D$14l>q}Yz>Y(MPP33!Zn#Z`yz$%nEmFNB8|p{NcB~ez|ZK_rjg^Zd;w~E z&#L(v6;rk}NRc=6R~G!4+Wrn)#V-%p!~7U{^&V<|l~E?wYqcnN0*qK-QiW3N_piH0 znUqw@=I4p0BrWG1?-=6USC@JIm#;=zw2DEYn)Hx#P zF7dj`@Ngx^?qyw9rLiwg*Hh~c!fH^W9cM8rqn;T@W^{Fz5vb9aBzy2_+w{u{s|p|` z8;Mvk{T`evY(=bsR=p;gLdM&*(r&Blr)~rO06R)KD%Aa9WADDjB9-T6B&}7gj>In9 z?;4he_7O*PRn{1*bgLhCD_`D${K^<8%9j$RQFHRGb&Gd-MIOScX@)^#QDz=Y`Dc!i zX%)4G^Xga|wgoxDRIXUBvT5i5u>Q~0eZHlA&FfFw>vg`@$y8D=`TJpAPOE>L|7Yh- zU|^_AGQ$=&=1SD|rD;H*<9Rct4aQA79vwz(SVx3@3C`zuJ2e7{%`_S}${2?I6_u4G zj#0Ty$tN?}PvVOg6P+(bg(QSFLn?bY#tm7|^bZMrm(6p6*@^&Zqc3pP=vK^!h!;E&Ked5rb~1Z454hF9dEf5Zv`cjJwhx3*8w|QyPn1TF5pp z9)O1sn+)4GGYRjS3MUa>R#lRNyUy=Jn%RPoYOEL&{RNokDk7s9nW->hDuJl|9S6}w zYOmHRBB7qfDA55HWVG-1qfJL`IyVxOO5j{)u*Iy1Gdwl*6O2bFXj7H5 z7qYe6a+|5zg?M-4((#IB2}>8f_^U1i$dD0tpZC$v4E?^w={_Gg|@>Fham_|D0u4{4;@;!sZ`{HIrZb|hW#G9Oq1 z3fT!Y3)FLUC0>m(R@Y0zyG7}h*cIDKuP>7M&F8*Z=QS|%uz!H9*#f2mu*Rj-pbHwS z_OG?&kmZmxh6BT#Ym7N7Zc(mWv$ZqwWhbKDfPpRpxL}4zv3gEUYcY^q+p zbEUm;k4L9|qIrd@s3u;H#yZZW^qT1s$z5(mBg!DWS(A;~WpHIsedE_O<1f&dTED}? zBjSI|=YN6qM*(kb;}sVt4oc$v@U6czKriTpSKU4EU)*z+s$X1n~jQ|>w;6td*GMkMRKLhHbvh>!Mk?vYjl<&D)n!w5@Qz6u$--E>U5dupwKkX6?tLIWWoL`)-hBMCzANzg82VU| zKYOJ%$5F(Wz%nrFz7LdvlYCd&gSnK7@k7UZ*VlXQeI1D^wDgAT?kx8H0?l@5*Z*!~ zC`>ZYBo8&y?EU6Ev_!!aPvvpc-Pn{*lqHpHxalpRl##UUb7f@I)Q}FTVTpV+Ay?0y zGGoqm)?Znd4u0cdO1BQbY1N)l{U$))x`AU})8rwai;pniA+)7xxBPF*JMzk&unPnZ zPEp0(CczNRaILt+)fJ8!H8a#=VLPl)H9$(zG7>4#aQu^{Z}*vC+qZ&K6i6i;g{lT{ z=%dt47}SQ1gZDGbocJ`_5kq7(c*}OQiy``sO$cBY%n+oFVwngBV6@zAgkSU z2ntmS$}p&)g!H%m0uee~RM0A(lgkJB}M|Gl+MexD=2;Hb>qi`B;1;_qt)<`rQPB&?wEC8s~o%p=LQ z7iVIaH!b+UNf{=${QWo;iv}s}jZ8MHIcG~RS%+30YR984AXvCvL^ml(&dC~bNjPQc zFXeb^J%lEz)# zb^6jZ!gY8B35W&PPLLD1^=5yE>z<2P8Bm& zsu&`W7nslktxMQNwshnm$q9K9FvvXRT$F`w+~F%Rttiomy*+WIL>&7Yja~3kPKpoP zP9MQ_0-o=nCu>$@05$uMDsuYGDRhkN66!LEaDv1i1PYB8r$Se0Tm85MFtao$tI)<( zV&^$xhD=>2`ETyIgEym_Gw27g#%ea%l~@q{dOB2fx_4IwCvvE=Wq|;}Ec~uTm4F;= z3{S#Baea#xR>kWd1>oceZA0jUs9xsH2r6!ta5sXASNDDX#16@_YD!!jRLlebuhfip zwu1)T8K6iBV}#ac!&^ykVxheE-9?bjHlE%s@cOnj&1~RTPdTk&eqjATDOq6Igc@~z zG*9La~H`1n7*n6R^LOvOmOw{*&laS;1H$!G+IW z!}hs`=1W_IR3pfB9*RR%mK5okL}HGk-GGxlWD>Bvp==1WGY;F}nNZ@xlnRS;nqilr6+Z6oH(%0xuxiZ9gXo3_Cwu-!!MP*X$q7JDqmrJRcOs}KJM zl?IE3)#srz_Zk_NO(~t&H0{s==fR1qN_={kZxl|rLZ;KylD__m$w~g!6-cA1PuKLeM{piQ` z_wI)a^tbN7q3|38|I50e@azb`t*b-$Y$c&rvD-;;=JkO8a z5psUK_x9ifArHoDZ$-M!myql3@5lB6#qWc`+nd}to|9kp+ryLHNmVvHf%nzH$1LOs zZzKPqDM__5RvQIMoHc@dbB`H++(qUz!*no5mjObq`mu`dW~L#TQn{ zir<&)!2bH59EX?+QO4{BmVe$Hr>n%C53|-6UiH^uiv91qX+&>-p?!7C{e4dk-)qKx zch)yz^qX$GHJ?@_Qh;=A!$rLIJ z?|Qj%RG-RZ>FA>-p-D)A4`>e1i6qj5qc=UV9@BziQ#S4H!9x>B%S?o>&JU@!qorpI|kltXQ7Xc&Ype#Zw94;4PaHB|_DxCHjfj zBHo;WpqX1?yM;Gf#PEp68C7$5Tcr%~eRPigFb&Vr$pDl;6Sb%vnV6#0?yGM5u`x*N zcT2Un@z}L?aenXrZ1UDH3D@B(_Cv0z+*&{;f6>0kic95Ntr8#PN+s}2rm7KgI6(!V zV#EFyyw|M`NVkV~&ZS4M<29TJE?xZ+U%%Iu1dbvF%elp-*hAGmL6y8GN^G2qT|JZk6ysvTL=R98T!E^oa zdy@=%5p;~Dj}D-GPTMiT8oQ9Yy@-j7qM(mf9ka)V=Bvsq8J?&WX2hwaG=1Z<{v3wA zlvJ7y+g6VMbk4n3CEDIerB|0TB?!u(VO6x4$j&uO-`U1Ja>DtbkKOv7u2hh>+@}tz z+WT-!g?HW;D8Kr@xJf*VsN$gAtr;Q3MC^N3+yhCY&lv--Kdv$V8J;Htd#buSY=N&Q z>YH|g{)R0SU07pqUsriQ!q(aC*LiQ7!Y5yECE@hkJIUX~kZV@6{wu^#2&?>$KW~V8 zd-2mXu?vZ6AOCcREpp@0)rE62__k0N;L2e@ex<_#duj}M0Gi?rix=fZ*%ZL#)GDC2 z$)XfF`mJdLF}WPU9O}h~e^^Ut3fXMnA{;q+tSiA5l6uHxYzsyDJ8j0$8ST z3oSFnA#neU;cSvAqpGGs#1e=3C;~^wJC$EJTlFATjMj23PIk`-0NEMX6sa7rUk`C)GLf~s>iQ-rA}Cc*DL=YU z@)5pwS|m`iN5hC7x7!C=)`EpJSkPpA*@zTKTy zbIVBni>&PWNPVV0XVHDB`cLls9wgIHz&Bc*2BaA^A`|t+9ZI>eASMz9%gWyG@T73g z$?ZK9#YzioC`5Ct8eQDzbhu{Egy^IJQB+}+^wG1T#3s~7Ff9J3o7|%3C<$G*Jj2HW z$h|~i-F*p8d{lftO7c5jK#$Gnq5cP~`$FgF?+bZT7yM*lZwtl=n?8)!C-L+bJcS(( zb%!;dTci`#JA5?y3vQgJ(9dO5cEtKa`m+Kfe`(u|(j)#otpB#~CF#p|A#aM;)Zm01 z9t_VDk^L(8o-U@^g;jJ0p+7>e#xIngsbGg?&Gi8EG}pPN|38D%H1vVZX4CUYwC7G& zS0=|@x4K<3yI;$hW{|nA>%%`T0$S=T6sk7>jC@5p>*Y_^p8b#Qqy?Y1^xpGv8H=a- zuVsoAH6OaCuJFM%zAoGItHoUWE=3pb6~5>{f^8vu&v0$)d=cT$Y*U;D{(kR(PC$j9 z(|ZD_tFuZz zIU9+}v~8*%=L8}KC>z|8rfk-$v#YYEV}y!uHpFmDPj^r0np4iIM2puQqi~xDEEl1* zRLoh-|2i9}SJz)S;Tn^eWv)4v9c7*ZtXdT8lfXUfD-`8esY<*U^z$@?9|+>wcluFEx$ck2RD9Z}l+G-4wf1pHE8<`dc3OL&*DsaDPO7 z-+!0s&b4J?d4R@PZo&Wsr56R*dl^ia9vH~V{Zc%kyzZOiJi#-Vse16cK_$g$qOPED zL_|gZ-_wO}d5wAYo&TWy6YNRdf*x3=s9d!qPG;uG;^J+cz>q-iN)SwA?5&3W^JymhWEs1?Wg)YDquyWV`yCyx zPRD~ocG~q0o8bmVSWOsxpLKG*(9t~O$Ie3B4zga)$8Uiw-_@+dNk3dc`j-dzmn^i8 z{e3M;W4d=WnXf$2ERx>WctX+p>sQE};jV%~u-*t>^`~h6+7aP8GPXGps7)Vx;%g!j zl8@144J(=3|Hb3yU&>;JYX(L+XFoFFWyVpQ^u%sQL)1XE^w_FKe0@sMrB6&@a(nM{ z+$1Lo@9;jkV%c1{1D~}E*^^s(FJBKpzI0D?O*3Cu*JxkZoxPjRZ`*JBUhX#Ml(w{2 z>@2*;e^_p{t`6L;;!Q#|l|jGOT3>ls2up&yfOHypgd&WhR0aqN8p-~ok_0Kiv39r4XlObZRPIG+KqmdBMhlfMdTDIc@gW5HDu zvB?Dx+omv~jSW<4&E*kBj*d1REyF!i!U-2ua2>hHt8-{EoZvywM}DREY7)w??0mm! zmeqpC_XGy1K&Y+#y+O&H(?MR#yjfdC?pbwy)p4$!=oB1m@1W@5r|saS?ck*C!dp66 z7yl=abeWwXWPlSeh?W`JTgy=|Yz?8^B{j%8iPTWlh#>|+HvR|3=PrB29q9DY3!(nO;Ah1Gcxvh8B@i^(r>wJ+7}%vZyBj$utae+)Qv`9f&hpBok}}* zBz^tnI?ZU+r-R%g<||rxE3TnL3=KvyL@sMUS%}XKWxLYO1FG<%L`No+8+Ebwq|1`r z0F%h_$uRp2IE@1uj0}9q8WOkoaEk8;c*2ye((kc%NWSWhV{T`$PLtxVIf4!jfg0{v zF8kr6uek+N=J;MDHZ@6S?g*gO5lEB%yrD13VqfP<3~|vH?04bvgxn}tchH>do}(cQ zfI(hH#zEO#M&c+BP@7wS8Y{&CehRa5)nZKh`fpjF!v%` zfd!liC@iWll-jp>i#1tC+B^CVGVfJObMb;{ zbmReDxi|qLbmkm=c@3Gl0*hHX zrJ>XT1q&ApnvbHSuA;L+ZD`n9uM__XmTDs>IEfh&)|jAc&6ZjtRl-xkw)uKqRw~wH zAdv*^hhW^sMblzPJ<=lenoT9*RG_>D#a<{tusG-eWDkVAzUl}02i;IpYpS@>it7hK zOI$-+6p6dbI6(6m{thFON7{}d(CcxC18GMx(u<(%1>mwaQo^Nfm1stph|S%MBTY9# zOu^>v%U^+%X(xJ|kaJ>4k^sVKYCKB$|>F++^?@`TZldo$$>1p)eD*Ywnmma~FJMW{(3z5HmT(BoO z>!`V=Z!Y2c?0+Fk88wOJ7TuHd6y^xZJ$ z$ztY#-xT-9j@rg3K6cx&4s0@(DB(sY^I+W;7V*SRI9)yCvu58`>kf<5tcabv`M*?= zZN%_bx5wK+wWl|^qw(7TK;Fzv$Ib@qc6`aTkSEnuisZU^bB~;Lr4t{&^JA5xr3hTDI6w;d>d*Qsq)df3Nm^jBL)z`c6MW zl|k7rezEeKT_8N7U#`{J*bbuVwUCzUWbQq4l<VbAsos(hu78(nVS7($^- zT#ivaV(=Pt!_Y6jBgdVJKDf|xIMwwNsAz+`PY%%@@f>Q_%}pG^79iI>9zsp&o4^2r zWu5nE#h;-_gEYLS&7T#G-F|@qBoIX~z#3aoW|%_72#Qp1BmZN)PW;1FT*D^sn~ulw zHmyZ?Uy6Ia6Lf3mD{J}{JF`K$7@2d$Pl!dxv4}kipkg;R6o)7fTE)qD1HYOZ7;oK= zJ=)DxNQ=1mH|)F&v_Ve)7zC)sV7TTns;J#TfkYMwt~kGxp@0HNX*sk20<$^HQ5?|v z(YJLbB5Rc8KdYaVe=|&Pg6;WC7$2>$B9&?pT zC_m_I@sz!CA{_uT$VpL<{VwwvJEyb#<~0+(x|%Jk-C0Dx*<+!pPS&3I@par6f79o< zN9U#b&G|yTIac4{VNYuw8CMEl%pCoufFD@UOL+g$O*B5={=1 zGna#=#VJ}6*C_wcrw0+dNCv?PEfF?b`!NL>!c0mr;7g!jq4s)>jf&C*VXq77dFI@t zWrZHtT9tIZRzKa=kT?Hss8ZDIltMtdVRF4Q`$6S0AEjl|rR*SX{)nW>f!OWU0waGJ zHb*TPR}WQ^kT%s&Rnxm(`z^695{k#;Ny9hkyYprqcI5y9@E+6j?JmCa$A}mDmQ^-i z3tiXsI?w%?=Y5suIan)|;9~`4rJ`X+wxQ>yVTav-eWrnZ=Eiv@`er5?`IXo}N|&GH z@to4X>njNm`GTqbf(eS~DqOxx?Uf$cKau-at#&nT(_aU$# zE+cRjB38<6fiQmIi|V#73^12QjBQ*>8~@5wIUU7qEr#AiQaKRAd91M)vMyI1w8{Ui zhwOR-Q8sV2&n52{r4rt%wP7n0gtmpYR+T&}q6&-_z&u6*iP?A^NKCdQ?<_!2GKj|A z@+Cip>j;mQ|Ftq)AHsrrt(;q8C+}#%rnE= z`z~?JFw9)js;M(0rKv_FLyUh8iLrn5(!axAMwZf3nm%!>)m}O|3!246U{81%gl0i5 z1fh8c)GTR@)$T+veh~_nHp+BBfGczf`;~iBiHfXp<(4m=H>?10XNh8l7)>J@4?;i= zhCo!cJuk>3Vo+Za&1Y&Pd~uf;3<8G|a!}qu+DEYm1u37GqJUrn_F{T;;Vod^ln=8- zTcEr|wvm9E$v3$s*x_I3ln26D{a_V;-F@Zh(L~^ROaoHjVJ`N_u&|<84;6aY%iIpa zaEDlgUS%h5O-8-rERdm6KT4^@6en9q#1&D;6zV7D%Q}565Yw0&LJAwDHOPn1sW+k< zH};f~(@%va&>QkjLYXMt;V)+W8c^o+^(w$I%u`q-abtW+8Edfgb9`1^Lf{Df)q^5l zZuwaT-9mz=y+B}tP;11mfH0gg0LCYWs={Ew1*^j2jlz8LB3Sq?rhT-!3@Vp1H($}7 z9mvR)7s3sNmSo=yI^Vp7wY;l@V5U|S-#j|+!XrSb_O9t2;MLbNfw|Zhh-Svkc^jd- zGv8GEGq8^{`JF3j9Y!nNt&uCJvn}&^L~nKRex7QQ`Q!S5ag&Fb@S8|D#yFn z-0PT%$3|Jtg)+el=8i3P|1=!pI8psS+QgWQCW4&)wYj@24@rPRK`)%l_4@Nm3V%7DACl8H#Lh=XHvx(AG z^n`PzC#ya#n-@rPCTw9l3MSz6Uil!5;w5#7GSY?`1Y2RyO?EvhFQY@FL3#wGD}_8? zU^2ewAe5wouufKKRGy@Gb0~U(K_J9f)SqJX`Y-}!>D$<*-&tu0U>l(gbRHxYe7aq4 zn<4f>76rQ453`|0jM`aQ6R~z=ohYej*;P2`#bzlrPGcMFc2gS53a_a-Y-Rd&V**@mG3QueC&*#1UJAZ+M$u32zqDelSBa^nOW2?B zN%t?>y!q?fuDQvtt-M=W8nn#+$+~&=3a@rk)->gHPdl1j{p;6w))yyPd@m?8{VfF? z9=#EB7}2ockWJ|rpdn1eB0ytn0rXF4fgjlxQq?FoRT|L z%lU|H#wYW4yFJ_O;K@1s0eJ~{#x7@9kEu+3TTW!JL__btDEE5c`hyExZMx z4Q45T@*iFhlG%@TOz?y?6TxV>3ZC0q$#k{71Ep~nfjlZ~etIkG2X59&%tj zBmzvR^7!#*vml-hnf!w3@`Bj`ewvV)1Z1-L!(c;qOD~JQjjgwhceGQGrLB(QbF6Cz z0t5sALV{F6ywpOxRs3vBLi|iZoHcFyEFGe!cRXu1wgtCw(mvh^{@#In1~}-y9*tq@ z6jY${7`IDdTOy!4puRug@b_DMr=SEurCdpN$E+z+{hT2z!TW@22TR0Y@tYY{Mf|E zESyzKrd&?mawDAo2dY3-zfcIC))Kc+OoF_Ml6{@1na;z?DI$}2%Et6!AzgmNMO4Dk z3B%2KIU^W4f>1BP7DP>ODug^^i?DQIJxqd{1NaGuh*$w0 zIsoSau5(942j&{__NZu$Fc|0+;!POc2lycvk)1dz&_z^)?s;Ikk48ik;=qSkR~Ik_ z_CYX1xWah6`5;PD%#yG@oKgo^qYt@j5q8j2D=>-=Q>RcK&@Vv8W_(!wc)^F|VrG3< z%6Z0Dm_;ECI2;uYF=hr`QUVo3w-p_P@kD~ca=_^NV*nay3~2*`1xP?>1Wdxq2@?Z0 zz%7_4g$6qV>tgjM5^#v<3oqfYpw|ue%H0yEs6U00ia61S-u>#bf2oB&qP2;DSj3m57r(toyNMC>Ml%QX=f{M{#xx z9rPtcXw4s&f;~;UJ}4USs@6lmEyxm9!pZ9&@e$PfO$-=Ba!+TlT&bFwpan)QwP>&VeLfK1MW`} zRKw80Jcatg3qqrSbz@(rM@JwR5}jr%D~ zzS>Jtu*mY;d(Ge3X90uVzO~o-t-bU&_u9YOL4AEU{q4Pu@9eXGd$0BDdmUfcLtoc! zx}w8!dAsG~yJ^6xFYmE^xr6>nhwX+o>iRb8r`s&owow-~na*!8UeQW_td0Ie8}-Rn z>$L{@vNrn4Hrtg3>KZ^VgY}CB%Z-M)BQ|!mSc(_q(5f6<=Kaf(H^YbFbCl-Y%TgpG z1Xq;cy6jjMEm?6oCJ%;%&VcZmQ+}3`?l-9|qjLR_*f1g*M&*_fxqVc+Z%%p2D!=Sd z-i^pztLkXJIKpnc6WwSVXa4a8@AVJRS2s_dRW+{LF{Z1Ttf-sN*U#!2XLYqx6?NnK znn`{2*tzwy7qyx%ZZlogV!pI$@+&(=f7dqn-23L<$?UX~UkIr4esR$+8GRgl85+I$ zS?}5+mZvK$2H-Q8vxQNu&J$b5=-;JcaHZTm7QXk<-nS3A95E%8FNHITFUR!X4JGAJObw^iP`Vg_ zFS-N~H;?548TeL|MyC=Mx?uP6v*z`I@d(fY<>hG~?~cgsuNcnTYFI{k9$qp8i z;OE#8m0`t|kZlQ-3J8-F(>J?vpx4#$Sl=&p9RA*2{olR4=exJ|Tzl)#x!Xq1sh+tI zJ`Sz6E!!r}+d1{)s?p!HPyM`R=6jHjvA& zXrN#Vy0FOQBXJRwB7uJx`$y8N5RJgFd@uk~70JS?vS3N#Di|?%x=CCga2FDnCJYEW z)Y{LW8XC4)1GGcp33r%vchBkWp1ST{&u_X)-+ZgErC|}PDO4|1+}8JvCqgfJ%KZWH ziSF!oYWgm`b3j);Pjo?1CRE=9Ezea{Pw4I*I%~(sb$jWn>ZbGn%!HQ!vGgrxyj1{5 z)n*MfktESzJHQn*h5jxW2i$`BU8sZse5C`*Ld2r=RYrUjBL)%PKBBC@{_!_VS&RJp zi|j!lAF}{vZXtfBLnapN zh!K`3#c`ZO3?4Ew&^Lf3*m9I8XJC>QX|U6ZI)R#=-bqXDBvCa)N0xRL3pvD!SOtuS z>hnZ{9&n3vgB04LIMh0~U}>o?8u#h438*tc>T79*r(gw3e$k{*81bH+px}xC`Ir+_ zzRS+^1LQb4K&)}MFyX`szcXG`7sS6FQL7!D0AMK5Mm$$A%SR6q3Ah5YhXpFi*iqL= zzySIr%+wiY0;aj>PQhZYK?IU%FF)bM#wXpFuLaOG;$ncc0I|j$+^B=ml+baDn}Z!D zF?pJs@(c4GZo!RVdkYxz4d92VHRQYqTJVEy55rT`FS3RhQ;@+BFVr?bKM(q~05;MKI7D_CIq7hUCHi3qV;xc0R-{1X=oP)KtWZz&8Bn zm31Z7VIAMH1fWa7nPS~>STB%bl%ybL0t>SQ67Vw*E37*scru(j&66eTPII0N?@hB{ z!8q&##8tpp!4$70V&O`PcVmV+*1ZWOIatDOD8ZZ}$du;886mR7$5!~z5*u0OBUz-Z z_=*yT75vX0c98rD%w-SapU{OsoCy$7V;}zA%XngI-uOBe$Bg7`MEwF&$)lK1;Q+o0 zp*s#B(}n+_7o4GWd#FG~@-S8u7Sn`{j5VCI1@k!6@Qx7OVf148h(=ZbriOrCSe_dp z89xyiK#O^LsGpIy`f{7!K_AZJBg*}e-C}* zKI;$ep?v zn67LwZEZGH*3VyPFkfM?T;6Otuhn=lRt2SXE!Oi|%vZNrKWDIhsdoC-*OJtFafvU6 zRwaMB;7+lwH0NJp!a2pa!g$tmuDs&TtM+x-l;OuB>`9;amR)*wk$-5O-#0Jro8X%! z1fs`t8BxpTF+E>;>Q!y2weMw?Sh7pv$hSKRl9ISvu$g${nBRJ z=W8dvzpeN8b-nFR&OLw7_Fligf1xnvk!&H=7Ah_V;cFQ_P3u&!K!@QQX59ynvtA5l zRbyB_HJ`q7ckfSbKKhHDBM-kHd3zvm-zyW%_YLfRVDO>m#(GDiu8fE_+^tQeI&Cgrzdug%$!GX3X zryqQE>g~hE1#{LPm!jEXWUZ7S`iJ58nm@AYj4csWkCnhG=S)g{v(b0DozEY#JpK0E zgRjiiKRkSAbJxy}-Y4F$92*SG*zy1>;iXa{i|+k!iVMWo!*RwNUG+p#&M>;UEJ=1M z%s&zF_E?iePdu`R|O*I3*-qCy0%_qNdXU{jQ2d}?t;DSGO>uwpWM8BL_w|!9$ zr~{N$jnRET3zY;X5HNshG{;meDp+7CD%eg8R!GJX*$oUcoe(WF76Q;BtOW$M>7hcQ zKN18;iVoZKyU0c`05J4f5jR&A=4IKz9x?6iIZyUIu)0NCcq1$%vtV z+eWtT>ig9G*%lGcvlR^{5-4cIh(UCVY1aZ*2ZV{PD)d>^nRJA* zHm%M?5DSfv80-dJHDM%Sjk%)USWyS3h88}etpAJ0-!5exGK+vc7)nRU$F0IqGk4G| zyuZl3ZxX={n9v{f?g9(!^xUlY*rfO{@YRHL?}T*EguH)Bd03DNK17P0D=6iwA0MB?@P{ zC|iW=7i2Km2FU?K<6xFdg-B`*<}&d_e~%6s3R_GNe=l0SShbcvN_Mkaq?Fhmf*hPlO^EUd>^(sak>VFQi$LzD10K z%SQksOEmJ1z|N@f0dL3umL!Q{pdg_vEHDLl=|u5#0qd(^Dt2D0RTWGK$S_GHt6)k% zp}z!h5#keY5r9?@QzpbfvVec3C&WMsi#&#sLI@KcaDS{Qnq)tqETVe>fCR^CB}YXV zc~lWh@<3UbYL!s|qQV(5x+I0NJZ5C2rEpq7^vWpVWr@_+67bX{7ATO&M~Iw;C&{?c zBZtL6fwc&3ks30jfQ*wcl^uncbIx!95X%#S5eC*`TtOa2#)j!?tQ|%P|2RM|78y?t z?k=)~r+A0MsKOSafx(&3g{7f5i+{|cj#i%beH1bHVLd*)-=iPxvHjgX`w#Zpf3%OX~)%Y##r{{q${zmLIezZ^z4zSk%ux0JEqeecjB~R@+4#)U_xfXsc|q zT+(9s)cx)&_u4DlZRfX|E^ehSXr{KH#NR??3tibtUDQH|g@)+Nd|wlp3WPWXivto;6geAVIjjuT5ed)Dek#eIv? zqrhE0`31lFf`@d!qO>urmM7JX1^F+t-02f5ARocW$dc^{2Ydf8BZV|1=E#xOVvay9RHn8oX&&-;ZnhZ`$7b z{p!A7RQ0vqJNWKN=kQ#-cQW?C>$AT!9J}=QNA=srFK?LA*Ux>W+5DA8^MyOd&)z<= z^-i$9%3B61Zyh-2_TF#YcKo*8BQL&ZKh)rHx{2;kHnvxzmc5M18+l7tx zFV+tKw7UPdwFCdOt?M7|?)mne12^0;@QFM7FS)(|EZ z6Z(0e1G)zM$3fo${DY#G=eIdNWuQN|oBCoCy>-`|zRJ9%)^dKM`J6_Ju8yi~a_DOo z(KS>B41?Y${Z3d1s362uhlPDN4Pk>Ojx4-VZ3|whwnR7ACTn3kXJP`;ucbMrh=+>k zs%x*}OPUKy4=W@H5MM&S7UCIty0k{BZTcGG%ObRc1c(#|heHSK`W^G1c{bZTzH#?4 z;r!ZR{msX(Ze9H2QEvbA>D}GA?eC}l?J?@=ZJqks1>~GsGv<#Gt(uCei61@gdD6Ji zyZo1V<}Xv3@@r%1zuWcJ`Lz@1q{2Ka7!c&8|GC%(I|dK}Vqppv#uIKLRy`puco%SI z5==;Pw=krz&QjTALzTkKz{3B}{T_WpS@<|XiKnbWw@vJ_iQP7#%O;$(OUJC@VGDo6 zDq!dx013hmh6O%7Ek80PJunG~rR*P<_D#z7PD%GoqJ!)4Dfy`>2`KB8S>eqE@m-?` zfOHhY1xa~ajj}Yim35P{fUlr&SRTP#EbibUsu}`o9We`V;4upzpSCB~&N@cQZ~+u` z16k2RkB#rQ^L=16+izog=zI^2rHzlHdLiP|DcqR@Y68PzQ#QWW&Ue%3&O*c@;u*M` zh3f`bA{B~zDYlm;)qZUSENu+9MWaDGr)UH=Ex8N&bC?_s{pq0!Kv~0Jjsj2?K^=CE zDEL`P1eyj^WD<|!fd~Vzi~s|G!6a35h6D$!WA+Z`Oi95wX6AU35|E55k+Vk`DuR`) z06CDgh#vYp>Y)Q`ahSa1=B6+#ke_w)GcFcv*2T@Z3P55r?)*Fo0dos}!Q|sj&?`U2 zF`6|CaCVqIM?{1@m=*(Rgn{VLmxa0!L@@&9$8=BtEOAAN!Z>mT?~n1`IA@RKt*C{- zkuq7Ej;zfd5`#|81(*d=j|=A3&}~306KY@(!_Hui7CN

      >TXu=jZ+6LO`0sI=@7-5rZ&+1c0w#OAL_-MjlKi)SSyg^qFHh-l(it10TM%h7tmBFQ2@&F!x>2}9azG~AP``R#dt+b z#=shy2wLz~!i@(O=UjmIxCH>L;EEKmQdWdTgB27LD>y?rcZl^w7-xWS1Q~k>B{6`( z(2GTe6ig#ndzi(-$5`MPh?k==6#-Zabp}03T9t{`bhoaLwkI9zehj4$Mp|; zY(Kfj_LKc!)KB))Ki&_lMgL$Q^@F|C5BFGL`;YgSf3nZ|_xr4{@}vD$z_6S4!V*}^ z{@vZ?@3g_v{+->X8|vpiSvUTJN31)$)}Hc7!}$^|6_?B9wbP|^v3M#a{{FzyXCDaY z4O9A>NnOp{*>%&1Qv2;6e=>I7eYVP0qt0N`wcEBB>^O63^XOacl>l9h)~l;$zEeN{ z-eNAJmcy%pYgwf;vN0pgq{Q*0II}FIDpQdhEgAX>WnP)fI}x58jM zuf=vji|ykE^W`nnd5zXfo2{Q}F@C4X^qt1>f36?d*4W?J(ZA>MsizJ)pFQq===H@% zURVVzE?fWvl(-c4)zJWvlgk19ff-b!n6R;+lo??ix97 z`_Os2M$f%#`0_vZ-MC|*?ST+W+KK`;+s3Z0!B{w%-3!-}AeM z!MpZPH9o#rfB)#8YEFK?Zt$zsW8bKq`d0nu*Xt%eT|4@Tn&HpZjD4+k;kw%Siy9WM zYq5U3(ekNg>JtXrH7({(8q8mAp+4J8U0k*Bv8th;H%Hrdksp?jP<$_k|C%x5RKNl{c&Qh^!UJvu&T_)YO*-Lg!-qf-1>yGg|@0n@H+27_Qx82g_2R2@rv^i#j+Jr$>I=QWpEV6%xpM;M@mrc) z7aDBmwg8-1Khx&;bcf?JyIt4sc79=x?TfqVYw8wttyE>Jt)krpZ=9~fr8C&EkQ(|? zVJ7X;)jM@{_KHSZ1-f_8^o{m&n;jQ4SU=rBeWKpHwR-;ST?>^vO}brX40QwBWzuh7 z(A~YL-)25{+rrknXLWas>8fWds%Lb&rYm+%>9;Rd0RPkwbU~>Jx4y|uoGNx?E#m6g zEGpFiP`8M_HEot}fKP;dYn$!r4*REeJ3h15acw&me}h-`tu};>M!FLE+2}xZzG}^n zM3Sa3dJz3`7${il(A5!V)Fx@bMQxT9KC}G{SwT~^umd`>;8m;|dMe-A zTEJmF9*ZZ%K_-=p;XCRhU)KN4<8PO;y3x-g_Sr>%mO%&CZ|C|Pau@OW5P1p2BtVNp z78JU8VNQ5#hENvRxODG?eD9?6z!WBHJvA-8Fekq}C%ri@yt~LBGE2uvMix*?kG0T+ zYJQqih(B%-j+nqu_8p)Lx$8{k)j=b7ND~hvQtxO)4*s~6J!KP76%f_T5v!o919oNr zI&4Gjhi+S;n=15Jm@X`-%$~y20WWd=u!JijLg&49rW^fTz+migEM$yTj62N$fzU%h zECGF4fLjpgZkoYv+wc;=a6l*^Kn4)&FmNDT2x3^F-@%|Si$v}beLO^o&2?rjub)*BvuW#;8V^K7F;kHMWqCo!E=GQ;73Jo^fS2Pj62FWA{gohyn&+F z{(_OjUje9K7#@&`mzzVC2wY-u6%V`MVP`zdw2z(DYFq};U$o$7jXso}KtGkH)aM7x z0OZ3oB;X~WK1&#RNpndVfph#E(Q`+k2uDP8p|=e+$4Pl8h7J_y0JI=lg1{|;6-6l! zjlhf~XmB2S2v8T`=g@NnD1~k=bZel3g<$pz#5>2#0b&J#8~J${G~6f{eS$fFIak1< z1dX7Fo4yf}c?Cm<6{v`spWukW&;hKX3k!^}7Rf2X%D;jwBGPEEBG`eQfX9HNf&jgU zyV!UL4BrKKQ=lE#AK=Onle}RGE*YCey>-DI72L3l@hBLG8tW3t9S4G9Q2;O{_|u{< z%?5#Xl0aD)&IhnW+*3jjcqzk!MN(2Y#YNLn7(ol5NCX2Ui=~UOKOrR!c8DZ_wZw1| zD_@0y$`S>@ry!gNj>7G5I6B9$eb^zTv6)0*3{Z*-#knYoG6R*ds49k(1ut>IB1)RwNWC%Yjv8u;7d{h{Z91 z{|V5dFAMXs0I`B7bC2j1<6LphlS02AK$-(n6ESy-xDCvL;u}=>hJc`KO(~JFxmay zKKk2xsc-DIeq*2QrakuWw41-uG;@9JP}uc&mX7*R`!VsWWhR7&OiMlr!F zzJh92)Sh+asc`wXQ)@qcf9bQ2#dW)F6>ST;J+u1uNgdEv^K?Z$0NAvyaZcY%rjM=m zEp^5VtH%HE`pWcL*_SWclHzng=nIOcywdT2*q@MxlF~p-8Vrj^o#IPo{^2QhPhW2T zAp5#o>R(l-3#B=!Ji!!4R^$^2`K^HZtW$o-B;7l!>=~2VCd8(3v2|Rn9}@5A6@J&n z{pu9=Z{6bWJNf_W5^wL9YX)*1!{URJfNkP?6yNWWhke3GSQ!dPCp_{2T71bOyyj5e z@NN8P|FEuRw$eaf-Dbb8#ddkC^}IHEOB;P&JN?ajyx%ZbKG$UadiBD$>KDJ zq;~exjq~4Zoc_wLsmmIS*R|TNHJGn!HD1?ZzN*!7UbDHf1wfA8(rD7P(7I;pMa_0B z2HirPYp`8nz%)5PFCCn{j`~#X+!t!+zSLm(qQQP`o8|15MJ)8(43kb2%horV^(_>P zfUebo^I)t^gu2+301`WAuV}V>p^g5If%<04!cPo~zpfwqO=I8h_YVH5rT6dZyS~#f z^o{1l>!F=mlOF4sEkJ{nE#~tL)@yguH*`>++e?3KpY?mY9pBqy`~DvK=ey0nGR*&? zdE&>lBmdMe_HT8)f4+C@<_AZuR z1iS<=W7gHqRMgL&-)#NWtINN8EBooX;Vs*Hbyd?BG#K^GWJoXV~{q>K(UCKgSaTG>~Y#kVpRY2J~pcg=w zQ*_~kt#E<{s9@eVa<9+J&&~>uPGQjC0~5-Flk$U8(j(L2Gn%~nBL9v>c+Vmnu<}PJ z0d*;CKrC43shi3H1p%>WL48L|7$tbr%!3`lOe#jJk#(3z3m&EUqZD_9VxfhTR^Xz1 z7tQn_>Htlx_uF&*_QIfp8MG5obz7kyeNbz?RIV3QE7m)$xgILtOXquSY(Fjb*#O4Y z`|O22$2uH-iegTnB^jNBOOhG^w&Kk(kL>0gq%3DG?YdB{P zKNTkA0NRl(EF)}( zjkv@_9oTcxpI?L%5&R?hT3S>j@pnPT;4(uP?*}JEPat|uaQY4_FsFxcfOViOpeY9+ zRt&StJP}MHa>nr~j3%laFjW5H( zK7lM3NlReiG>cr6W{{nT-wB}$H2?v$0#gBdme&0^dj`lH~bV3G;K8PkkE z#gd9xs2qq1U2zuuRB_G=P!wU^(8(kZpbq9s3!bDVUC6tWEZkt59jd_Wqla-%?^JsUzqOD0@^16>?WT_# z7CvTJ_+0b+7n`R4_36;P!@1sM(O=w1m&(y%DJrP}QTB5JwZ@G`*1Da!5%}!qYq~04;9}20D1WNbWrQHkMA5Sgc@O<=&`~AAcMSb;@ZrjND)iZzh zRQM&gIF*$K0^%t*f6~n!@JR2ug=0bSWK??B$-hVmPn(4Mri8}Mm8#D5hZgwmWyMld zEnI0Rt-S9RpR>qM&hYz2`RcCq+m5aL;pp=(CpvAa6gtGZSiJ2Qr!?Ec>DgFWeo2hvYY6&@X4 ze{xcIJE-pOUAm%iw4!PL>JI0}+U?i2(^mi_z*V#^Ubfrv$yUpSZRU@)S+8qzoNKUL z)v1B)8ZA zT{g4xVeX6nwNo%b{McUmC)({75)FX!njIf+byPN)E2T^l6JQv9we9xn_PRdNX1l6>?(6s4cF!qK2g}(m%Yq3#90L4C{3m1{kL7gR9l8$J z*&X%^I;e}lcGKtYrZ4KCFYIsta^TcobHY@cb#-PEgGU6`tI?r^ECf%HVE_rB+Yaa+ z`mCT!umW2MN^Rm+4T`q^kLVxv7LK)6RFjZDBqah=08zNyL@bOC)F=y+wctc#1@p2n zQW4n+iHrEt$g8*laD@?uuwA1pATd0@B7+8uR5eqvW4N+@u@abyq*tMq zAY3efBCan~)Xi;aHeGI@zp~rthuJN zPtHg$&daYY$Zr{?x6J@o!ZDk8!X^NjbU6^NdhGn5O+d<`nLdi^rG-;g?xc}DyvQ6f z7LJ%W4BJDu5+*)rSx>NnY8gcIuNwvZP&vJiX2GyQTfQIQ3T6GcAv-hdWHr{($_Mx3 z&g3X7-$(NUu!AEvY~x34g;Bcz>v%boc*?||Fy(>kj#{}>NLiTZgo4CwGkawVW^dnR?UlIgJrPbAbD9%pasMR&K+O(6Cnhg^2Q4=tMWehw+?-~02{CnW|FKxHU{;Y+bTL_ro1F_M9vOX%{-DE<^yKn_NPP+aiG zpnbs?%_EpabAbJhNWo32c>-wJBaABocPWZ2hfytB^k>8%R`C+C!6g}MCBp?KL>McS zRU{Fo2wkMk=H_?Mhx7P|vOWy^>^}O7jdNdZnfYAP;+LDIKi52UO~=9)?xDW2d;UB3 zEdJYb!NwEpy+g|GKJK3%qrX%;_SuH%Pc)2wqGjrnhPfNsXTEj6qhok|Xtfk9{dcx> zdbPB%S}J8rr6oo6GKw*+I3(4hNC^ctZsa#Mm~xpd71@m2 zALCnln3|qK%_+X6Pk!7aoLZ8s>R;v<^`Jv|WJcIOBs2_2Rj1f($MSzTmj6ws`16y> zPfm*e)Fb_>PyRmx@^1#@pZ6#~>JOnDpm<>DOJ{uX=>v_elSF ziuvQo{LP*D+k0|5y0TTLmK!=Vtv%_zgX{N=6&{?(KfO?T&7t0TFkD$PtZ!WSbUV!E zXD+B7JFj{CoTf2-)llWm;fh`3TkB>k3>JN}WlKAKezWbWM*CF_)MW-6V8Erj&DZRq zE^jwo(Qdi8!*W5J6_^Jm&=oL2G}w`U+F%+=>sqZ9O%|M^!$ceyrWNRm-eRD(w8F&E z4C}D*JUFn`rf;xS7#x+&^p+O-tXAt;E#|GQKx;rj<}Iz}N`tww#ZuV@jaz}Tz_4;F zAQRA0lSNO$s9>&tcBAdAMwo-5t4ezbCYRWy7V3gMt_uwGc?KXf%VrBO{e|5ONQU?n z=*s{-q_F3;=89bl=qMoDFKf4ayq&(j&HB0B^rzb`*Ba2Pb~TWvfj+y9u572_5a{;B zE!J!HIi_KL_4NV9`dC9^UjuAY|w&y23Dzi1?$>2SvP3NL&a}&^Q2$=B*-O zfdrh8rr=d1Lz{+D_>@on8#k9gQ?Ny&DcGX%)h-HIYZuA90UpFo5`cK$V^30c9;6}6^{9Sb-<&|9QgOx*g2vi|zV-!5g1IM^`{KjGqGIp*Oe zJt+S@g*tWIh!gpt-@yQA9kVhA%!fW&L^K;U(Gvd=z{EG|9`)2WoMLJ4}2Wj>g zpoks7gYUHqJ$9j&E_9gOzgi0JHM zkqmOdaoHV_ zTo~dg0FnV~*@-f~hEFumEWs@opi~ej3$~*}jF{wz%FdWVmZFo?1arm;E-W9+U``ss z36Kdeu!NwMV*IF1fnkBbQ3y_`W+6t>LNuj>F`Q2#F@b*Ns*L*RZWRg z%N@;Q%2o`uF&tqOAq2#7#(8f%=Lhmk3&D&W$`aL$Wj?UV2jGgbQZOTh)6k9t*B&53 z_9QNm!&*9_kMgoUtjCAIib8IkA}IaDadWfftpR9-F?!3w34R4%Ed4Mp83o-V7v zW2gVJQvOR+IUQEZiE=SoEXTx>HLnh(<*u0Wx(E6o?ipmNJ2TY-{60#2D=9AsB}ch9 zStz{~5bmEAT6$L-yQI6j#Q*A&{{6W4+f%~7bPGT36mL8!{@p3*r=7yz_ewwR6aJw` z`cbd^lRo)(qsq;r%55XcEyLojQT2`y@z>q_kB{X3=@j>mht_|3X!VyzbH6#h{+}n7 zZ|z*W`{Z&}_ex{`TKmxYp25}qL)m9$<%7QB%}3I@nz75aP2Y5{b>FyfI9WOrm+v)l zcTKSW@qX&lyXVfTU(oFw*VWI$wD0V_p3B?a7kAJXwK=YAw_n|Ey|SIYs@-{ItL>Ur z>WWqxrhOL}?3WoF7aMHnv>{Vfz)Z1)!nrs~HIQ{6D@@u!+#)!HVhI%(t!G8`JfMyi zTLp#!5^KW>%N5N4B#z29(wgST0+470Sb{?cXu)I`r|d8_ho?jn0*(Tdf~KGkz#G*j z9Zcw(tXqI&;Jk#guqkM>g+Kz3Av6ms&@!~yU_m3O2ABtZt2EfpZnK|dpf4~0Qd-V$ zvs}<>zPQzLUaJ+@Pv44hlIOM3aN$>UIMDOfN}bK1i7Cn~m0>h7M> z-#MYbYqH{wiAvy*U5mP1=E_=XOD%e+^nfe%4tRIa83MC>!dDd}_>lOoXdohz`h{-? z?$%_hfR~yb7+%=q0K|ef7u7fbm0`q?QK>C$mMeGLFKx4)*KXO;VXf$ZD?Rgu0xDqp zNEGN`sk2trVJPGOSRE;fwaHh+wRPqtZ6mUi_Eh656yzY<6=&cIVX}tOlXbv0f?hxx z1fQx%Tq01@W+5zsRe)PN&3aAGon&EQh~Ni^rTM;gqM{(c6|ffI5bDLZy6}Fh!X&qf zor@JUBy9}GkPIVYA(8t7_(5^Pxu3qa_MrK6(;)lF`mu_-85F=k-FZMJfJU-29*Ca; z^jv9Ug}6nuF350U5TNGcYCxG2g35&DP+AbrLNeUU6;(i7q^VuTif!{Gy9`j!g5zBG z5oP^fJpOhmYlvosoy?enMKy32Gws3hN^@R*+Qp4I*&!#>Ys&$F9Jg`@O;~sMt$F^{ zdG-}zugzmc<3ncgq)h?p=(CG`cA?+K^^zng)Q~_?ihM6nmK{R}wVWtmn?okslQx;4949I%VU4uR19f_C%R=E8Al&fb~)gEc>i%Kb;@2v>!+ZlkvNsln&k*1yew1Yd)8+fNP)Hj}-Tv(a%$b)!_!f_*W#3Vo;4x5>iX6_Ug z-~tHbdn}lj1#s1GXZq2P$HL|G&}^5T>vHg&cD~0U_S(fBo6v6;haBRtgC*WSz&Z2* zP642LxG5aQ!YoGXp^P;NgcIh^C_n&lnTYGg5@4wSgQZ;wWno49)Ve1j`x4r}{snIu zYc9bA8if|(oClpYSiZ?d^z^JK35Y6rSieXUD~BcKR2Gy zpfm-C5rAkS5Dv++;)6*hfVzLMk&P0~KoTE_V1}ty8K5i~RWX+2XjY0X$&n>OVi|0Z zP?mtYf@yS=1xS>jF9AS>^}ApR<|WF3K2q*8nBWj^U>WDI^GWCu52uKxm}r)bWVl#{ zk1g@Bj2J_4LKbi1+dg%x|?jJyX(GR1{5G9p$Q z%km_E*3wKQ!~0S5gZF2lw{TGipTQ*bgvZihG1iZgh95-?eprtW@Arr=D_jY~`~pfT zD65H5F;P{m*rbzwHGjwh9om^zhJ=hsSOt4dE=?OReO+2TB39?Yokx#dTu zx!nWIJ>Bc~^%Zt^vn@SLZFk|$9`V*L_Li=~-Mw5*58v9)-8UgVG$}kjFTT7Wyk!-R zxTS8NFp`kwvMRl*`tovySF=)SRYCO1m&!|}QdCmHLMgy19**%#rGTUc5V@2rp#@wp-npJ+nDD0gQT1SPte&y~i`QHu|{^i}(pS+*{#=A>jen0n> z&z?$CNEhd3L=xo>yn2(wta2ky0PA3b&kG{mO&3^Xst&m#)QBX`s$-wOtJ; z)k>Y+xNuRc`Pz2+)9tov+USi9NQD?WV8npe}BsE^MQ8=>9^c z!uHX{hgGCC*Bo}?c(d{2Rm1hCa==u^oY1o(zMB*eEXgO=l(B+r;#FU{ zytvFXbT9q$8|h!XpZS*~ng1MFYq!e}`PIj~#rw@l^K|~^p4ESRKl8m8lHYzh{Eer> zpMSuALF0n{jm=B;W0e1fMo%+Z3;)5Zsu_!b~&>6;O>^vzCu z@9-!*5WRnmFtC8W#!C#=OWLjH?S{*==-MeHXUs1m5Q5GYAP_h;31uXHst>SA|AD>* zp()L~^}lU1=L!weu_|GILRLskWIIxp7A2_h(*G+R%f87@_>$#}X?z7O{Ez835et^+ zAkv}oA&P~d(+L9?$+>{Ib{KIxI*Z^ED0F!N($rc}KYhny#dZraPqne4X8H>cI)3$9 z=rfJIx~gG)1E3m_5Uhh0xFIpXj~I!Ag|~ow1n^Tp=oiOComEtuf!1vk+?@c$-GXaz zcXxNU0>z8FyQCB-1cJL;aVTC~iWHY3#Y%xvxH;pF|C}-Mn!J5U_TF>NW$>Xog^x@Y zt38^r0N>nbKzpPb-D8Ybs8H#?kAaoqWxlPBX$p1qTlEjYR zL(v=9Q;p)pS~weXF+7*1zuiW-ofZ4LB6fR^@VzH#b8vLX8gnjVO|v8nefZu9W%wDO zuz=SB~-y|ZIw+U%>QGam0Ec(ji;d=61VIJ~o zvZ}w~R~;4-ZKt$%6UxE{<<{KiiydYQ;}(Aj7%muz`kFderMuyGQ8p>V}5 zk)rUTL!X5t0|Un8!NfyyyxzhHRK$4mRm4kA;q}aS5*dBQk%7&oMLvLhnRgKEf2u~} zSn>xMkwyblhS|PRqi?Zx5g!up_J(MrCP4Uw@lsL}Q1U{-69YPeFgqxTt-{Q!aHIA@-!$Gzq|}L+(o6cN zlL%`pNWkTtbYXI3KqwkObugMVo+MIPFmsg6Xx^Tu8%uaZo=?n1UjYFEoWpP&)k3-L zl&K^`Q{(|0jGMec9&8+$|BZAMcVF@W9Sa;yC9^;7Jn|UpKE%o!EH=!{XTwI%m=~j` zkX!-mD9$=7(WBakQ&qC9rT5gP8KZTT_by`DOrHxR#a_wVMKpd3NY6biE?i3_wE)=| z1HYp)yoYe)hHH3B(|xWSq&f*Vp%$lx_dr4AC=knS${(mL#(y?-bFiKnrzIQcXp{hzt0Q) zK=S8UCxuix#N03Ab8&4|DWihnTP2ghsvoMx70o0hO8o z-g3dAG6C);!M2$ntP=x+tFMMAUcb}*X_pr{Nl)#0=!+LFNOxF(!lTAqEgl9an~5xk zc3rJ{Y#4`&3kqFYM2>lDe~%tfN(26uJv1Q3^hNFw5hOLkE@V{FkZV=lF*#D(BqZ>gG(V&qY1=xk{O+C8( z2IMAgcBlcT;pOM}WIvVp>sHhG%-4l5iOlZbo_8yM5dHg(>%>poMUO%}+zuh8l+#2X zWL+vO-|p(*yp0iZe#CCM%a;!>B-r+0SJbgFv=E2rQyJ@p{R_I{`wPcuJ})iLAY>J+ z9troy^i5j*Gh_dqBYw|bt>E+fHm_}gnr|+zLz|>c_qcUKE3cQbc+>>Q4k5H};1_0V z3ui%iJHQ|eH&nTlpc`c9v17O9EAta2oGoTOu*i`#!w{U1%0I;;*=Z7NEA#@nOIq=8 zv9KKno!H%u)uP6=<>CNukTM6e*%-vJmZS3Uyzy??Hs*R_))2Wa{H#A!ayimXA`M`* z*Il$HVJ*d=xVW+(g}Xb`lR(WepGK4_85+sBP1$_|MSa@_g979J4dMJ|>8--mObx^!?Y-|S2wMv9EPV>KW8XC4+J z#+*^z8=gZ}fp3QC}p$VQoeFiEiju(-pqSk?Z` z4zs`5?>yuU;?-jZjOPYo+|(t2Ss%)`cDI?fBcu z0UU#vL2smYisrRY{u zi4Y|_-c@|JyMsz`#(Sf_ ze-~?L_%tt&>1`x;f>5Y&QVmTwffCaLc3H`EI?db2sSK`G)n`VSopC5cyC`nRfc8+fxH@Bu5GezLa?I~v zt@>qfN!M{qTQT%ZFjiO-FXXEH>pv~EN4|GnLGQGmDHX;1-T@tvmmK}QZjf>4dU*&={KE0-c$z_otjV&%0aKVJ4gTV`Toy~?MxN9|NU!Y=+T(Mt-h#(uTYx#_2-Jq z@1p-+#-9?ZU|H`U36nNiO-@P}gjE}ePcIoy_{j%a|#E&7DZR|o%y z%1Ln%ZF}-U;t!9QdN&z{i1|)AlRsc&ZEuz_OCE9#EIMn3uEa$WlJ*}TA4SHj1GKA! zOSPL$Y?DJ*C_uH+;0uh~&~R)>e^^H9D^PY9WPm(gqnJc-IqlH;CN(k-0pkERz+CQK21LzWMoYS5=@g72JR*{K>rG0~(s%xFIsiv8O?F#2 zqZL-~>L3FfhRqRiRV1x$gLB?5T#xL6<=6({vKRIQjU1u$Ja zMkDJ&!54w`Ya^O5l^-V#aB-07ESPVJILrCF%&ntd<+xXgf!u^I#_gpUi-rnKoo^ixl)Q%Skm8(aYrjB%ViEE04cq zpVP_@aJTXfOTW^41>TCD3wd-pX@SVwe)G>b+&mk)=DfUvXzYTgp5c z$5>%3npHW<7S76!gX$P+iJgFcG^%_9kN;7}R4?6Y2ku^mp0)!Y`-4VbDbmBXxL$9I zpBnZTe#OGVsIyY;k^-&&~K8ZzJ7<6vIj&}y!fmz>3r!m5#QU1bp+q~@N+Nn;;n7(P9ECgY#5hBQW}@83N;-}j z?-DZ;Rz!dIk;Fr#CL(aomdk_%o1zLix*A}^h%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a 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

      H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png deleted file mode 100644 index 823fcf7c97fbcb9a5aae329aa3385f72d636fbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.EN.png deleted file mode 100644 index 40ec61e14638df8db0b58927cb7922568c2a38fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14438 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.EN.png deleted file mode 100644 index 1b09211ea8ac3023b50cfb2921444c927c49be4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11223 zcmcJ#bx<757cPti2=4Aqa0$A&y9Nsq+-+fj1p+~XyL)g5u(&$}cLEzMxH}u%F7L1E ztNQBxf4iz@x~ERhoHI4`oaa2#k(%lXm}q2ZaBy&#N{X`DaB%RuZ)0CngtsFW;VSXl z3Eo3nK^m@RisJBXf@CYDCItsq7mxmA{_bu5-c8ZaTK~fe&^S z%-7u9d{eA;>NxDJ-S&z=i2pM{{C{g8j`sST|9WZmdj6Uu^~(4;7acu62xQ9TPw?^_ z_zHQ2NxY(v{xhpzXsf*-HQ2xIS1`|oqEp8#!5)sGJ*+SH&%?&kC?B7%t#8mT_HQNl z``i^WUpYJiFN1n?sNM}S#l9Sa`IbQmpJG}V zS3cwwyXHdo-TaA%z|U_smhO+$67i2yjzG2@ys?9Pvz~*2WCp*K5VFT-#{4Rw%D&i= zjZ<2X%~KljblRMm*%P)HURNLWEsF#TgDr;I-TtlXiEK5a53aDWeXKn+1Bf2^^LGXT z%TNOsWnJDB&*xfTVol$`|P|M0^mze`lz(iB+JG-}v;3*B4lRi85JXbua7yaE?GZ}l82L@c<-&gF2>`L+Z9P!WLQ-3%abW426 zQ4FIDWM~`wiV$Ka6F?v`^SV?yx`&MYUg3FTv(po-n-2EowM%K&X)&k z@x1&D?m^w?uT_RbK_(V={Olbe`iI8oZKhwmM5~#SN}TFN@=`dJ;W=eHOH zmkk&&HA|RC|2CoQ7BEL~N4C3+fGmWXH!HY@bhO9$4>WiH>JTGyj2pZd;U8Avh&tsk zekeO3opHzh(=WF~bN_H;aY{MQ&SP8Pk0+Q5 z<^1IoS0RJ9x`Yxyu}5E+DYwQMZNNYRf!<(M?!rJY(7+?V6UBt@&DEPH6R(fZ)` z=5^VS)}LP!6|yt}_n~$;(Nv!cVp{F=@*~MK6|=y~{E~?sB5A`G?OA|QU^5CODL+d; z#i`Iy3w;RHX66w7wBr?^l}t`h*z(&JGT*aMzu;F2Et6QQ1U9>25&@6JVDV(XayAEG z)36`r3NErj2&3ex-HEjoUGi2Ij(hsNAFq=9v{-pqQpAHhWnFii={QKWtJM9zv)Lp0 zqq&sPCoA8`fYA47`2&9$T8)!6_ch;s+_yj)37FY`lPWDiGj(G`g*=}t;9#dn89I5`;h%7qgW2jPA%6c1@~?S8KZk!z9MJje z3rK!6?SwwQr5%*J)&H{48^Gs>{g(r{T|^<*^H~7}e;&PF!nyJ{J6m2=HUMJ{W*kMBkeZUgjYG>Wsc&{SZ@hO zo#3@FE_s`T9le^`f%To^^fCS8&9p1R%S6Zp$NqJgwaI>yi0iNI(NdVv2{UB!_owbg zMz2!wfsWkA5P`XpFkdqD9B5-{R43!T$)Ky40mGEe$ANBX&ZP)L!ocj+7eWuC$YzRb zu>SH4x3MmB0|FV*GR=iB2JL#*mht)K{>LNX0>szP@8}v2kei^v^TlYzOtv&fhu`D| z&tYf+&g!b5Q@U9c0r_5A%lB!=739fLgG@U1yYaLPeMJ<%Ge$#@adHPsV9PsUzttO= z#AZeuNk(u~D8+YjI&fC1ntxi}z|U$OTjm^JNbF1FP}P3jBsXj{j8EVoXx;=pX*D zmXHy!yn#e@#b%(K2aGt(efkLeP)?`JX8410f#|NqxMIZTU#A!R#s-pmWS@AW%SMTl z0o6Z)crP!v#u1%_eG*Trr{x48wuiROAorSZ9Q$uZPop0je5+x>L!YmHBK@+{%^Cc4 z3!PCUfgHj|icp5^YNtYSA%$8kl&zs=$5k) zf{`)|yU;zTEv)`bSk0(^>6PLf{mwjVi`pQACn-?4CjayaK}Y-i35Ii8NMUuX>RU%h zK>P_!T{4eUl$26iuw$SqrY|vwf_HGC`cA#3Hx#o3$$oH>xbfuuZxS?}2Vr9Xq@naO z>tWEVS7o6F-^NbUl<7z$Vj#K0uE%c0aZg%%$OgD|9Vx@Tga?D>tVSwQCUBYN^&$3E zXsvY4Av<7%t%&ia*k_;ySGZJgyc?B81E7?|@&uYT_`BFjCsAdT{w!zK366Mgmokcn zOp!Qf-R&#pH6q`*G7=~^#1S}Krt~v47X{0cB65<%laN<_e1nAVJ;3n1R@{T;I|fJQ zh_y^r&B#Wiu)4of*}dmNNE+)iMNJ-5v$m-;<3u2$@N?PVfH{>xSvO)x=Qd+J;gzP3 zQENg1S0mQ*>V_#C_5H6ttzgJm#*Sj($kn>)~;! z8O2;`luu%Z!l6Yp_!bIhK9t?YRW135!%eM2J;PjeHl`Ud_M?Zt?Z0T`ek@~l)|9AK z=WFXNtpT~3k*HZ-d~&WVUy-gat2@n-h!=(64_jDvUO;-|JcJzs_b+gmO&vsUPV>FI&$U<)7>m=TLyb3I@bBva8A|2aCzKvjD zFWPP3>@THACc(HL1TEQ&kp-Gvhn8|AqQM>^rET$@ObWQ<&J6bASzIJYxkMT)Yt&xH z%fInapm%6g;-05S-^QV@eY2r{~)2Om&`t$;NzkQ-|5KTZXhIk?EZ_4m(C(Kn9AKZn?h zNiPb%#GNdIHe)5s0t(6k56`>YuFF}ow?r>jVeLJw8Lc_R5FwVD(?^ty6%?*J6o(%h zN8sn!)@IjykZI2r_0psJJ;vSJg0}tZjjg>@zsXC`z0v8HxW`OoqVQIrX}Scpd3xus z85I_$*QS&%>O=~a@$JiNJ-S%r3cpwxujs1?W>CB_l>(gdM=6iQqh;h7ihCRX0i9Ch z%75NS2QG3b)bxASiAZ#f=N^Sg1@n%x^LA~^X#}+lkICP7@4w(Ncf=@102wXB1Bq?l zIQmJ^I6?Zfqkb`hbzFPAnvgVdw%$k>eYHm6>@Fu;)Ccm<@+PcB*1r{BZ>45$evh zN|s;lU=u9M^PNGYQ2lQ;FmG%%*kw-h+eD4?@P_Q>rO`(`Khn|OO|=&IGpk53hZLaC zl~ZYEpKKafND#-#QqhZ$^MkY&7d!<1rcs(oa+##9pXFD&5R2BtKe8_xJJS7zt1#Fx zrWAY5bM=^IC5KA{9Q<_9{3B=lsAQFR`Q>kr2jo??s) zDX4+7Qmr)wKE-qULQGJb80>IC{;t2MWz zL8;PKmYs?kCEPX>J0ih+C;{x3w#k5POp~PmG7jETUz<*}5_0lE2D^30&q?d=F+~mg zdlvJ*>7s(u+1=%0R3G8O+#6U}(8O4~5OoBVOowPM{|Va-m6CFZWX`_?@ZaJP` z#R?(ha9&eqE3p+RS`YbT#nz^N0N)sSik>~AM{i{bKN#($M}_pqIV0NkWFy*08MtUc z^8xrr`vaj~WXXO`YafhzJ5|hE`He=u=)1D1n@m$Cnj_%fth_52O>26p`{2HK&exu!s?wD2kFL{m8NuaG=AksbR8>dlg%c*N#?sXpy zGVDmm{qXq(PBs`Q;-zo1Bi`sBWp^k zk<$fk71qTII^^N#9&%Px)&7l$_edgA6Kwt#5fJ=oTC854=;(8Z$9ms(CE0*Y8sdth z#%P9TRY)=U^tTauCpX3QHXg(tc?pP9X732&KnyN0m0|uTBXhi$eEB#$I%ygJE`sH} zgZe}sHN5*&Msc)ZO0KUBW<;YV7eA_-Fl>#R1jcC#c5+D|W-pZEl`3a>5kD> zfzC6u+Kj8S%_kXME4fZ?mvMwjuwRjf*K4tqc~_W3R2MynwCATK;ut&hGhY$ zR@cXpR1&eX%5;fYn}>+%*h@kSu2wNpo$;KxJ11w8ifi9@zrKd7ktkAYo^CDe7jFGN zCpYPujy0QP&M&uA9i4A44EGrvK_@zO9=pMlA9D$dgwX(XJVA0h8$3W3&dKaMj83_F z-=rFIt9dpGhl!$8Y{mo8Aa$HSbUU5@j(DC_ZQ6fqT!AN#?uJjEw<`-Oa^D<7Qm;&& zx>iGB&cTtA!-Q>be4KA6h1JtM7cKi0Si z63*`eOo`X7U5!9!AlNj?d~gjq67(BH^^H2rnCF&IOe(D zG4N2G39GUj_MKtful4}zd}U=SkbAbvI&YZc9HNv2!ge(O_LTd8E!}oB@O&>~ECwm- zDSI9IBl@xC877&%@i#X>ZOVG2)WznXToTsgmHO#%X8^6s`Y#Ej(@*mmn5D$_daX6sN)3%0=EJ<(t>rWlzTL$-jn@e2P{#R{HeTt ze7X51{)pEBN!wT8dOe1Vr4CxW_x`J6Nt<{GOj-ZR`0Cy&&+&VAK8UNtM$;C(9yxjm zdfQc|Z(E~d)(4TbmFjmCo0d)evIv%fk(K3m`76(-!pMFm{$4I%u{9?nh$K?+n*;1} z;?8?(#!uQPp+C5w9&T1C&jm9qe130&%!9qsdLS7-rH?lHPJ~^iVp$(j5kMWCQ<}Nh zUZm+QeDG-p(D?!D0q4Ay}AN3E-_n}U4+iA&+l9^A;vHoHqf1W)?8dLL4>sad4N8E9j^GrX|(ejv2 z1dSC(k!Yx*&}12%Z4K*da~#Jm>TQ>pPi)rQLaRB!*SoG>we7N1W)TK>6Afnt2tZeU z*i|!Wwgvwhnk0G>8f^j`W3QqK5W|XM^P5$~_~CQY@2pxp%Y2fp=wh^~i{A3gUkQu5 zwTNnt%vLAHsYtH_KGP5M@oa9aRt9jYnMuxS#Rw#im@V9arr(bk1UY05aB`X4GU1;>#S0q*v)}mt$lU4CR7XtSel0EjMnnLmC z;Uj*e@i88bRJJL+SA-hGMbS^j2noutU!P0z*ieGh ztzEF%Gwu!OcS4tTF#v6!q;AeXT4slYD zK8s+raDzO)a^+>7&+=3{SSwm4PO;6`jDE;kD9XHegs~RB%tk`aTsUt&`Ulj*t28-} zrtl#aCao=_XCZ*NcKL~f4GEjRbYz?T?4+FD8iKVS9i%Yp5B}NNpvjgBnH>_Ii-~C_ zwWtUTYB|0mtcXz^CGo5?7{(i7v`LtKAR?TUS53w7?=4$Tm=AyF zTmRe@j#{#9_-ILOpJ40ipJoDcym2q6@#9aQus!Yr@y&cn9zy^%lZ3Hg= z>|d&m8)U~7UCL$sbVI-IkT%yZkkuavdsB}*B=}};- zUG%m3n~s0)yS6vE@Cb~#zkT|4O+S5n&4y91Hu``#F#fZ_BgRBz^Q`;Q#V1e=1|BnX zJ34MbcMaJ$UcY{M_|)s2)I)yzp*v_-a4dX zsuLEb+5tw*(7lsmZ2sj>eZgGySLr?)xo!ke2AD7|Op$2p4!-^hS0oq`Lx64#R=BAzJ&fq>Imu1tlyNCvnWBfQh|zwl~tE6bk2u?0YUv=jkyM zivdcUoj4Sa(I4jb#I}<}maUweD$g5wQ>3lGT5XiK(~#8^8`{?Ch`s;N=wf#)9#E$; zeqeo_Ckv#QL)p0EV^@-MC8^S3Hi~z2Vaxk1&c?c+LxR)6rKIa2!MrjxHpFU(Ih6xd z(@*~`CoLd-CXzs&*JUv5FIWy=$}A5FQghcD(fO2OS#ZnA&~Hi_Y}IOj5PNljCA3?L zj14z3g8O;&KX+h8GwR4BRqVz}4O13nzIeKJx{-X(h$HUTxAndnTqkh8r?v(py3B6v z6B9gCNG%G_t$PU~gIpFTdD&IUM4R}1bw>X5 zj--n!8BrL2^MF5fgjU7wlw?sc7hr}N`Mc`Gp7Lr~LSm|v27TRBWUSveduNA(MI=(i z_h8)Yp(fb!yMqVMtgoc=p|q*VU3&HH4#iW2MOf)(3S`Hc__LzQqxEMq;)oxvK0IOA z0cuy^>A01Vq3q&;H6gx5IzyGvaT#P?o0sI9a+HoZUXiUewPi3BgJfTijunh+TUZM(pMI}CS~4_etVmF-iahNq9y%s(iz zL|ws6dv_yfo(DbqyOlPU?r=MNLLR1E+y{8-XOXrc0(})?7h0`ere?h=Hv=nX7QST^ zj=IR`3U9Qr;SICm2Sp%(+(%^9+rCuCo#H4jk|7#`67ZgE5e3vYt|Q}@YWvr0Hv`PZ z7G}&tz8*aB{{ye?)BkE|*#A#F)t_>_cYQuHk}d0c7*UXDFO=O}9|*JQ4+(vZ#D; zeb&04>G7=tb+A>my0*VD7h{jtPt}SQIYlnw6UNqumxqX(k<2zl6v6SI7ps1^w%y5D z-EMqPZ{)Ju{?ED4M&E1XhrQ1m2mh3ApU%E6>Maejrpj0yu6^|5JrjkrG%2W01$-l3 zXT!eK6>H>#bRH=1eBETKImeiSJfDEo@C)KmUjQ73D*$hG-i?{3Y6>D}(idW)Bs!a0 zZni0k69h&#rH$s_JPRbI4r;myQcyu_Sc^fYFP+Tc|^asSbg#c`8L64B#2-Jag5QKAi+! zV(Dugd!FSbP*lwSGc4nJDpH;D>V{m?t6q28;;UMjys_M9U78R9L8r*F<#|MBV1Ab_ z#Ls+#s~N!v1%Q@D>_NY@Jz+E_#h<>%Ad7ZRmez5Nv~D9#^z`g`37|NiKB%_*kJ8Bi z*JyeOX+yj@NhkoetWJr%qq>gy4sg1_`q4R;8p!y!ZTQ|$gmT9;gf4kK(YL6u9>y(| z2hBgswoQv8)1k81+K|i?mW<%chpBCa!$daN@RtV>n`+y00;q)Fbf0u=ShL&w)Cjr^ z{ELw>-4{N*6ku>2(+ROkFTIhtw&X}^STJnBjgyd$bJWHc(_U8EqTdeQq7jJ;u(0cY zB&FVGvs}Y#)et|o;x1I`e$*)ssdc6TFA6}V)Qg(NH}pGzq$j62FtB zp&fO(mvFin1Pq`xZMVucIyTmbh+-m&IBdW@ub?N~c4T(Gb+!fjWN zR|2!ko7@x5(I}o7&MaUTgTxb3iXh)vm+vN`p^?!Pc^dC&B4AnDKe>FNF~SZ$Tki2416Rp~E0 z?MF0$`GW-jqP3MTbx*%_jt8^*(QPbJ8fpgsHr~aQ-4J`7W%*JlGG7eTF zFdr!F_URfo*@Q+u3@{F%2^vVcys{Q910{u_%ZO8FfxDx6j&VYc@KQ!6H*jWX# zq)2D5x$wpCLwE1}d^+#LPAYp_f-cQ$PPOE1ugvcv)tpocedNefrH~9+doO*si9!ofbcMCcFb7;8Ofi zThZ4mS~K{*#!qGW@_cO;awU{??UW_hw{Q!UK=stgZ!KCU_BVxeI8h&W{*_z<9JdA# zzY$O8Hvk@f197Gc-0%ziH9^-{4PnSL{+*de@cn7COOx1tHGa{B)PJ<|t)hM#|FV+HJ^IF z`@v^usLe|z*RXe=ijetY?iPA!J^SKV#8+_4^wa0j;V6IG^qni)?)zi7Gy4Fl`uyZj ziA#x+7p$DlR)`n`a=NWF69stO5R0#0fKXQXwR(;xSIwjQoUeg>*E_E|<96HY-9lHU z?FZC4>p%m(F}7+)+}#1=g1WSC5(c)rJGDlz-j3RoBSL(B!Offra1*%Z=bcB)8)ym( zD`4Byz%PnqaT3AvN??hccf5NRy)@pM&GW{$V*#m?3mhvpvgU6D))!j*h}2261<4pR zePvtcYd|HJ53w;38a6o5(0SOy%tzYJw9ixhU{{gzQ@!0>2S@Ru+z+Lm;5)-hxf=SI}%FUOJt zMsnP^Rl>f`t7uykYv$s~y7qwpLY{5z{zh`l9DTrv;#Vni%(=bWli60F@@>}~Pn$#9 zN}6%n{3Q2+qv|Le2`SV3fLvshS;`r{ZzVS}r`-Z{A-8iKCe{oPTNnG0k1 z%Q}y($oAVuCbiX>Qz#CTl(t*yA9}g$pR>rfk9iYQi?~>E2TB}jE8qV1;l+p$-$c@O zD*_oR1HXQ?cBui%sU>=o?9%MjREt)r6zjv>nhnpYI(XpTeVe@|u!xZ3IWHI1v*aQ{ zp-Q_Ueff}B+vs5I%EK93E{bVF%bXnK6;vhZfGmvip9He6)6}4OE2X4(bj8YKLksVur%@1J0shjaOs+7twcYMY#6eMj z?lFUIZH3W{_{k0%{(FeP_znQ5;+sla>-LQ@MX(?OnaCBVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/I_9c^O;GC;V=VUr+CX8{8pv~s*!4e$kg$yGpW%!tP_(Jnfs}H4S}3r z&@xja8^cbJnq>FlwL1z9!u3>cTcuk~!KAbCrszc_tRe%XIh~opw;xqMBNZKULah&P zn(dqs^(q$x#;;3R%Dm?2wO3@3vs5uGZ~tcKX$OuVK<%rHJuR?)knADarjJ!#G65G5#=?&Y!YO_c*6itDLkhzqsUA9?nyP=^mR4w zRWpIk&?<#4>6Omh4K}f>u|^%QR_@p>d0a8;msfjq(Y1OwSfAG8Uoreo3NT@3eGC0d ze+_N_xgib&I50h*iVco|ViCRfJ3Y9NZ#Nnz=5q2{ofG#UMFpeVSgaI@dZ#0QVD zIq!*7te(k+y8X1TI2sqwpcM-J!eT>|vm< zkj+QyPRB=~%`4xVy~22@CK&*_5kSwg|Ay5AbntJO9S6t{(E61?iyyL%As}Dn4D*~r z6>79r*Z%OuK>gls;99HsZd=MV4D*|p-R^j$#ij`A`~DV2Y*Z35spF~&iS&{UQXwgz8=b z+@YumaoM;j7Le&KcUc%G<-jfMWaJ&vmA6&pB@P!WzUt;?%DrG0)I#>szyJ?Sbp zc9j^nX*EZETEWvWZRK zLVKZxg>ic?{#-h4!6mIW*2X|ebyT0eHh;4Tm-s{Lk;{~1xFl)6z)Z$z>FEafRbM<% z#BSpF2K`n(0XkT;V07xXAg(u$R<2KK5w6^I6TsbbeQKwhSdUZ8b3u~e$wpEhN zDgyRbv3KDS-`RtwgEr|O+KfflHmvA~k0MieZT^h`v7+JSWCRlc2M;(3TAulDz+BKI z*$0!kK{inu2yM{b@&~r1H#28^JVeI=C&JZ-cH{Op45Sth2VOV(O@`LBe&C-t{E@_N zz}Vn3)!LpSUYYdJZ|2K^(+X;*A=5T&?Ew>YXX)@OADic8>Ncm6*S8aYp?Hb3?NBs8 zrzfdbZe#@kHXuMb)Bj*YHorns;}!mx=C=D~d!E>5{T0?sy&AO{zgDYj1^cyPSMB#lx$kquD^aX>PZBGw>p0*Kiui zenfCB-VAFA3n!Q3uEpy(Uo`Z_j6Zycc5@8B3v$1Ywo5+bSiiP72nP9?dRS)|)^5Ch ztpr*twe@@^h-(PO^Oct5M{#~$QqziGy4f!d0^kP_p1z`V8LUGTl*h&Nq9j>C03#mk zl0O~W(6+nm8p9u$KQayZBGY)vI}T;7@=<|?misbJ`o-5|e3*F3?4bEAa)YJTAM{E4 z`dlv__7>-Xpj)kkuO?q49D4B#G<_s8r6j;>iZ&Z8nYay1)x@*!tXZ@|u>QU3snNvH zMO12g9A`tcMWGNb`;h{f!GIBDs<^?r|N73%9Biu9|_urncD zwCh(hBD(ukgU6?s&O8}`D$?|m_f~xUQ>sN(1&m44RqSJ~E8LHU)_)VYu{d=9!@Ex2 zc?l)2C18UpW>K5CHRFIf7e5z(Uq&SwgJyr$^Y{Lgnz?dlDp% z0Lo`xkSR%%87&Aq@eT%JK!8YeCy)p_tpQsEaO&cK72-bWsQla8|D>`6N||Dd+`lgv zTX`0XhP&l}f$hU%B=CC#EJ5(Zb2|hesLBiy0e{dy0EiR+{|5;W>QI~s3Cp=^SG64Z zgHGe5;HmpU;Nxg8Kz|BA(>?r8Dr>#~jayVE(0PxtH|W=1;~}oMh`V#8`3mqe;p;so z?Sq8OSk-P^Uimna7kOsY1MV(6v@t)J#ILeSxf8V7E-q(J48ph(4>m_@hoxy-SKTge ze~(JG7V1u~p#lPGAqro0@9$5EXJI=EVKn@EO{5oUB0%#TpiU%$@o(legxe#s8m^+8 z?J2vd)w$64#yzuZOY;K^Xcw)42fw!+Cr%RAtOy2|nbUVIrpJ#pS#)9*X@=&XHj>BP z3HwSvQwE#rdPJW@uFu1q;#@Ne)>_R2aWhhuo1)mpVDm5VMSG>+DqgR|<|=7rnP!6D zXa>yJ?uv%aiMo%7M^vGi9-vu4^T`J-!sJwZzKh!vJOh;S6}QKNR@+N~m2;|VRE6#I zQao-c}@hfeVb>$Q8~+#T!5SFRqAMZkTb(ylz>gI6YCbpMRG^v+e(7AbW)W4+9xQT6{Y% z8?2)9emroZv969=vd_`kSqlW^Rt{Njdm;kH1K~U54DlPese?|UPcH>7mcRb?RuQ?_ zd`OjR+7_mvDM@W}s4H7ZD^~{7#h5avNo{1_U>CIcC}mL*-BE~+$BF2Pm2gX?A_Gj^IiMWG2R9{xI6_8Xj9mFYJz&35)*A6k2Q7je zPWl)AurS1lTJ}}O&dWub#p5^q?~GgQpL~h2EuUM?A67Ra<{!|v($w+*a^c8Tc~nN?vK--GECu{-44}0z>)3yczMsZ zDcFRNKno=|`g#ZvcGz}JWgd3+jz!*!9(RV;CjPT-)~!=G=f(>I~;M zg`3QjJahj@{!)ZacCT_tl`TTatKMEI;?{4+mnEE=%9ACX7^oT!O{bW{zr$;lx?R+l zt|>;AL??^PQee!2WBb&OMp;`Q%WwGmXry=UoxdM`Y)y_#Gz=2?xa8 zGMAv2`rpEHDm`el`vw*3r@m8?M`au>ja(DSarooYb8GxCu~gPF0^cssvc*DXFB9V$ zC->ZJ^5Lglvl*R5Jbzvc8+KmZa zscPH_dvdc%dbGyrP|A{{?Z^6f0EZC_iv7qKx6^*G_bGL_rC1 z+J*~{N0|(212U39eGTq|$F3uGw7>#mA}wz#`6~`DeBWF+q#u|m>x?MiAEEuNq0`g8 Kezigq4g3RhOc*Ty diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png deleted file mode 100644 index c21d5b60eeb1950e6afc9fbfece9110e91a77bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3667 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.EN.png deleted file mode 100644 index 0c0a886b53349f29d51a06b1ecca4c4375ab59e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7207 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 H?mqh;&&ztQ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.EN.png deleted file mode 100644 index 4ace1703dab0619b578fbc8e10b3a203695dd9af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7602 zcmcJUXH-*Nm&Y%nU`0^`l&bj95mBU*prC+CcmP8Q1QbL%NUx!&Ac9gvKtXzm1Od@N zAT$L-e2CIQ5_*(8)CiFhS_sVLoi%ICnt9iJn0Mv_aBmj()smH@CP4ZP;==L3HqGBD)~9Huccf-F@Kw zfd?jbfdC-TzWc*-QvOCP07w{{8eO>^<~Tp*^H!X~<^SDSn;E;@vewzdpP(H%b=S>JZiuCS$?g6fV%i=6z^hlB<^>FF z_L=~|hyCD;?g>is0AJ4<>;clQ#qI^9lYs+(fiTZ;AXa(LIRLQx-~VIECBN2<`)U_1 z{3&3;2Z;K0`oubXyl-}@SOBvAV`9jypvu#j`0e#2Qg8ukbqM}_eQ{&Dz^1GwJF+O7 zBMJ;g21`hnT>h0H<|}V#<9X)hPe%J8Rpo`Yoo#0(wTdzt=}W=DC)YE~AqwLW%&HH1 zryWsj%0$cBxDrXV`S(@r?eaMagb!HtmErrkKisYI`LNM%j-J(#ON3tzhbO`dc}SXrJ(zuhuS1U`-X zfRV&BC+|<~n^^A@^Ltq%Y7b0b;RNer9UuMI6Uz=F1 zO^PQ8H8ET!W?;xXdMRT`Jv5Pd)?SxlByT3+cQxo+MQGPkn2xC??qm24ca6lnWK}a4 z((y(+5c5Y!5}9d156a=D=q{`eV^<_=zgraO90|q~V9F<$PkX3%9}5xk^^YAE$i3W^ zjk%GLARkXOO1wbZ%uDl&-u#!4fwmFRiQoZV;Dp1QcHiR}&ac#5uEWWBgk+JUs+@0^ zdT!V09uW`_Fdun;wb`9qa3dUOVl9R8yaCTfen9lrv>+ zs7zZK;)#7)RJ-pY;$X(dZkmvSj1#(GGB{lU&BQ+ql<1c_Yb7eC!*SIutHVo| zZ~|ErN7`6@)~~Q4w*~WNJw(<3meC9SGZzQFp~-|TPU;swpo?BdK;UV08W@b z*&tF(P#=4&KlZqJA+(Ky)K2N4Rj;jwPv_ZWCQbCjYzM;k0J1Lx{mzXmX^w}vz)!d3 zw7Y1{y)D65T12f5xxp(Ut;%mz+$fpGl3_|j!E-K6B{DtkNiYqXQw++^5g#;ro=0t5 zHJ;>>s$VazslD`7rm}xwUKhCY>oVV0$Gva*R$5r78pZj;=c^ne=j$-Hg`P-+*uqci zvyTnH9MG>LjBu-8U{}1=37pcb?=w77G`;I%?)s-@K9J5U5o^c2svFCdX%zbi#xe!! z$4qP9S|Y&@0Iy6=^Zxy7=wqd2w33D1YuQ=&u{>zZ_5@_c>9#u`}r_rmMDuFG+also)lTJ;U{i!iqjEkQZOw*o?2$YfML&t(`h@7}7t>tf* zDvtvf($)FCMpTX^tG3!^;;q^Wems@Sx6Qongnb;pUt{s_tO0yxe!>Y&Xw3T0C!_#q z-RiMa0~^*;3Bv*Q4F{Xkv@4zLT){%ay@UH-G@UqG62F$+w&iM<@;gJ&L^db-uPE`rc5kJ zh3JeHO^!#hR1EuV_4?IdPDF^PxVX4)dh^CqF3CTo!7l7z$D%wbMAkgtArpvgL5{%G zq1;*X%KmQHiLr*+^4x?DE7V3`R&}24&ek$1R(LJ^Ru#e`1z)>AwJ5p^dUez`x%<3_ zZa^f8I0?-9XDzyS!8qzy0}f)qkV%o$fcK%EV$$|fHwR~HgU^(s#q5lg?kLlhz_sP8 zolT`d%cB@cyZu09O+C*= zL~cG<*mH1;gpQeKf)a{nMa#}O8lw)T3hGFO{fNu22dJzP(W1BG9h&)(66S_a4Mv21 zM5rJ`MXOsk=YIMmk~y_C{p|D-mHcptg2w1Pmx!KqUg^KF2Y2Rd+D?ym-#p*=w--J9 zG@_sY#jL^!?DPprBu=z2myP6~&nM5{>M`U8WD6x^66LB6$76q@p9GywXtyGwlmFJ+ zxK|p^Xz5>p8S0T6;Rub+sw`Um%YM@wxhcQP{eh)Svi;<*5`57Qjb;b(1BZ@}INcT- z90v!-5pQ~{0vFWkeBy3R4A*P9inm0ROxCc~-QQHFxTzl9m-c~t9X&ENpo@4mFk4J+ z_K#4n{+>*&rb>4AF|_jS^o3%(!b@DS?4Y?T{1Pj5{zyFgPft@XIWs>z+#)EyV(pc1IJofx7dB-bV&Bnar{{6>>Kjc--D0x`E*ug$uS^76UgH4~X=YW5h*Ok* zILd`<4Y5e!h+OxZK1Q3(3mp%4Jq5(-YyPZ`J1lsbp`j-86egCczdHCz?*Jcg$M5nP z-g}8zonfVS^(vdjOEeMUsnG59C2TNOZ*?j9B>>QkPH2F-=z@mq=w(nTJ=^WY|4kLm z;zd^R!Av}U?d&I`wSt{3^!h5U4H?C>r(-+|*Cy0jo=8Q9)%uLoWB4Ncz+O#wxbIMs zu@nl6nT64KmNIP|6$%ytC~%vTyStxf5pE*=CHNv?{>$GrZ7%ml?iRY5mX@tU#B3S- z$cp1AISiCPld0M(9i^rjN$7%T{44#)klKLBE=;}d5KjQ3^EqKlCPo?XJ6o@oK&cQRMg@BIDlH+B>Q z7HV@AO@MHIS>4LlYXqmj`SIvzk`+w5%(gMW71SHmynlm9N&4evmXKUtkYz1Bngg%v zwHK78gZ*e?g=}84o12}cqtLDQT5F?$$#HRU7~u$JS+=8My&v82TLH8U95xbEfJt^A z@1OLdzN_%WXPg8@TW1W0Ty9ngCd#@B0pHEawd^Mf&ywtY8_U9ef96kqE~aS>=4~-% ztlTU&sm_bGd*>e#zPU0xq>@%0_kSv~|3}$=kN>M_#y!}k8y&S)b)y%$UBElz{qI3H zJgR?N8G(KK>XI95SE5s{`k@vHB7{vgGr2KvdiRyV8Vy<;4eU8-Ebeav=WWr9T>Z7Q z)5LpJ?>!irTu|68f+|#4$)@_9C!QP}8#VD%E{RfUBf>BKzyQw6U0ftei9C^vaAzOf zltG-qfnjZVxSi+%JEX-0s}Jiu^ud)la#9EQ=1+gg*0GzV#meUz{Xr0nnN~9#d!^&*duB7IA0ZB zdc26EZM|>l15LN?Hxr;%mq&*N^j#A}PzyVL;vMa9R(9> zm%>D&oj~0d05)j3Y)0v}ivV|Np^24M^@9zK0%DPM`tcHX{kfZLf)8%Ynh!5p-L!yr zo*%BGi0j(Rl+*=;f@M`9E)_C(cTyCHU93?vxPIu?W5O<5VK%zdh~id`J+GSCRC`d> z#ri$0S4qpeRRC#GoPUkY|DLOv&FDK$v#t->eoCv72tyE7W(4yi7@fzMiLN7TX(>~# zFci#H47{l_EOjN?tY4=;7+tI1SEN8Ob}OY)e}o|mZ zj;d|KDS9Gfyl)QEY8OH{T62tLLX<}$O$H@5%eggDkma?eU&@m9aXQY*$nw(+itw}~ zFAn;+VP8ou*F~qwphAF|3W=t>Uws97RV&X(L>wRsaQeXv_ z6GG^wBRKY*78K7pQJ=ectYhH={u4dF& z4XN@dIOhTV(tFPAX3_b2g@PRpR)-X^#Zlk z*du1dYuw1E0mCV_PEo3CA8$*jY_T{?gf+5>Eaw3>|KQljMeijawYEx3lxlb-3=OC% zZe9gj6_CegL2=NR1|0op4w+3#TLeH+sH zWiB(uA=%x0E)~&{MH|c0Hf6{%j)kmh>$0A_f6IJS>+*-34YA-_fM|bN2 zy-G;_uQTCI?tR4{#G#&G^M7C`soH<^H@GE@B%oy#-UfZV^?2&oTHBkqtLhK1e7_yv zu63oNCCkQ%W`;{kBvqTTypaZHLed9uI%Tvm@JZzP)B$Fr7^pR;fBP?g;ywD3VeJvI z^_hYl^Dv1?tAjw)BwY5K1sE1KJQv#;&Ed;k0ei7T$w+0TQa0H{1u~C?Xg_&c#^yAE zteNbVAAY}qaCwiNUd|=SzEe2D5V9{PoHLKho-DhWUGF3DEpuB7v^DO00baMe=nY?J zcX^{ISta$|F_G9epAvD1YT^v-l_F)UrY3W)i|4>(h_3wpdf@&qK;MF-Fx)B4KNG~d zXpOrp6CnP1CC95;fs|)-!Fza|`k8Tp=aq>L-&d_M&GdE`6SP2JaG>Xo>N*p{RIr8M^fV@N2*;`t8_^$2CNJh89P2#cMC)~Zu8d6Gn}r1_BcS)D5AVIL zhE6Npvw8_~1yKPGPl%fe-(cpmi2|pCMI0Vn(N4M3t5a3Iy*E4lkcf3zI`;=Z^z98N zeNGenm)Dh_O8#%kfK?)NyH-3kp+RG58oCqC#>j7PueI5frC+-lg>^{Kx~~)5aL_F; z*jhUUsuS?Y)8vZgRlg=izd!FMTaUwO3VP+#EO1XuU4Nuaouj4gwzcQbVSg@S>jEuu zGCy*m5$@r3!5wjauDW@t>x1~`aw}Dqb>EH5_CKxUQm{3lxXB>D%!oLmnpRHgeB~My z^6PyErvGcPW@sX7349)m-au+)t}nhqF}S8R%E4<$@oE`^FSfQ{RGRryty+Qunj!WH z)ggvfGjllix*Jtb7fT}A56Hd5NhHlDQ#-i1aqxESYNMEGRkArk~Cy z(fp&XnKR2L$sWIqCBsXjBnmXAl2L+0Z*MD|5T3%C5bRsJbmPdGwS;~UPJ>dYMeN$p zqTESm_t0hLCL}qaGMy@=`MjEbugNrrI?FdY_U)38XIHrMsAs8<2|m0)cB~ruRLuQo z{M(r4Qhm$i16m#I<~?c7HEc-$G<$SUu*jzcMXV zAKYP(2x$h^(bsG6rGgcve=vzm@aLVVB3G27T3$x|d`{=<7Y{nsb)xAR>xb0Nx-o;@Jils& zEBMH6GN(t1+tgOEdn6_YTL<%t3I`j&NffB0w3RbtQzlpP#}=#r(IdR+XDcs)DEXG* z69oW;ng3^I`#<3TUfqP-lhyC+an%ho#mN{O;FJ62-x=mf9Y>+fgY`c4prpsSlCqpX zKio$EtsVp=C`&@xDSR^1dAvEC0JlNHZ@s=)2EtebNTSI^shH*lP}^3Xj%^`}`88X3 zkKyaK)Sg7YQunZ21c^%Iqg&5;>uLu(N=W_4f2Giq*^Ut&>ER9Sj~D4X+c>S?pLi>6 zn&wvget_Ss2y&8ji*s=@D;y*%!f>5eB}jZf+xuquI7$##W?*R_UsH zc&x*obDu=}_q^X4eo1B2EsJU#HF-pAq3X ze&?`JZ}KP2;m0P0QhQBeAxwDKE%2JQdyRQQbV<=J*P2L_=~^$z#KYRq87lH`qV9Pyfy^k}6&c-?I=Ux69d} z4d7-sZq>Kv6!TDCyCNf(V{lP;l>hjhH?u-h0y;B=80_>Mv;R0azA*TxO4_a4VjAA^ z(VP)_)}%Rk)TP8N?S+v`(E73{3V`Pt(}3nC4wS*YAxmNw!_4_voH;22yniU;FU!=83@v zQVpQssS(QhXnKpZ-kug&gFVmU9OF%X3eNC@A%6BOBvDB6-;>bm{*RC4c0a!M+aBv~ z!B%uqR?^$UJqJF-yUWlwzE8Bq`jhfyWmFDb82-me)34PGcbMMd7iaKnq6TDa2lmXMJ81!r7Vn9!1e;TWK8Ricf2sW30e?Pvn77d!JgvRN7`@@G1->&=h z+z~{2XU^(8VQXV~w-C|!5tvt(y{v2Rf6u{`e;hlQCMd~(UZjons^-Uk*F@?uHg|m$ z4c}2)%6r_BvUlf0x4XPRuhqYJe)dn6^gkQ%1Gw1w&kbd44~5cEmB*tlZ9qjt&G|wO zS9Br6XNsOAT}u`|894P#fsc=GcmALrE4FQmMyZ7^jP3?B1q|^7IDMrQu>3IzEfmn{ zChf2U^nQQZb*y%wG21EH?wv#92h6Opt^owJX$W(a%4A*vtwK!P_WC*_H5s%Muo3&X zf+{g1IKLXlD=}Zx(3IEFxf(u*TJNC`b8xqzUGvOOBW4`<7Y`awB~9$`tous`{3Oo$ Rfak1$={1;9_0>BM{|$LPjf?;Q diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.EN.png deleted file mode 100644 index e708853ddf2c4c69dd045b5af61dd524d40ce5bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7203 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png deleted file mode 100644 index dee167c5ccf7c3b2b22b3c6a75527871aa7c202b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png deleted file mode 100644 index f84f46638756cbcf1bd4def00427914253e6af03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19421 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

      $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.EN.png deleted file mode 100644 index a6e16bcd3e31bf20ce8ec65fd4e2c2135016d519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37054 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 WJX+4~X1*5!*XdK|&5ALuQU3yB)tYwz diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.EN.png deleted file mode 100644 index 6f56866e06cff7a0781bd3d7fab75acd081e36a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12782 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.EN.png deleted file mode 100644 index d2b933e6253bd512ad167e65f14308fdff73b3d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 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 ShzGrYF_ab5xw6Q+6q diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.EN.png deleted file mode 100644 index f21fa89866c9efee489e900062ad470f67493bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5840 zcmd5=c{r4Pzn4XnXp7&hW`#k45*ZJeV=KkKl@A~;J^S$p#q>k!I5I2a1hUTQY z+AVz=nj?3COP-zqgy6bkiX!rHHlXL~EtE#rI_w^Z3j5p?2FOTG|w2^j2 zl2%$S*@AMeu0^EQy^k-J3F>gw!stKlDVHg{o8i*Q>&e4L?ESjx+9_fI19(S1+=5C; z2PCb4Ovuz-@p5q%jgvYQYE8rMq8*t?8k)@GM4I61%pjTvjqK#<5+M(r6iTsjcoyTs z^;QkR@A@bt~>HBGHAltL9y^4R7yt24}71wrEkqa7Z;^{fT)_ni8=jV&k zdsuPH;nCjDX@hOg2&l8-s-gU!or~(WQuez1_sxJ{x!;u{`9ZIRMsFfsfAUrs_DYp? zV0RI4nHx_Hm^GW>s@43o>*Ru}XTAQqrxNY`%laKzhL^V2s=df>*V1Id<@bcMr_N~E9N

      y#V&%+_6X8CAvlkjU_g`NNdKjSJ*E^(4o}u*jH;nndJEajyogqxZTkoEeKFlQLhffFCi4nuK1h=BbZS>iGX zbCsFNbs^)Qlw8;9$q2zEBE*F(_13c3$z1_1o9mwNM5`Jb%~MQ63fyqk;;5H4CrjtX zlu3BBX41gebY!CYZqsb1ZqPeR=xf~Q?Aof}9g_<@S`W5sQL^KGi@xh}4ONdx)~oW` zUa!}=Oxc<*y&&{>jbD`AyYs<2^hZzc_8`xPRRz_K{_tWc58{pOjq4PjajCXsKWb^x z;HYk@d`gHJW{rJi(t0TV+-6^k^-im2rtUU9TA#YLYWehQpU?QJs~e^cvDI^B)PFgz zTz<8Z=VqYWxAM#WJ{5j*yfhbEo(dz$_K4>Kn(>p*7=xzS2GDo?Puyl@#y-5rp|Jpg zDMH0y^vZH~M*lJUl#5V9A!nhsz-h;{!rHC>P+? zy8}aomV6LAgiCU6ZjOhCX9Aa!a@H*UOZ`=uoDTh8wg)w#i~cSZYagklsz59f4*mW8 zO|W8}=h_$vDNi2H@fBUU(Ui;n>y^54KbuvE>A?uDOQL7sB~I6wZrx#!6GmLJ@3^t~ zsW4T3Z^zj=b#pbN>&8}P7WZQ;?jdUP8)qR<ctn z7ZiqM*}uh2kI1^xhRDzmvvr+78K{@`_;`ARIt{>(A%gp`$N0y+UwaP}0c8jVbQ)sx zZH&gp)~>qyVvjz6!X5b_YfigY%Fg0wL3B7iJLEGj+bhf0&K?~!nv6Cp^xGeGL;=^7p(dmsOGLY+Qi-PLY~-FC%w z@~IDG>G)&cW5jGBb|S=E%xz}HIK-HEo6rh4n|={jr>_8Ap-1THhKN9tyg*TjqUge! zE^tZh<6;YJdU`PD6=hmLw$u?C57r>!YklusOvt@!ALL8lbOd;w!>%zu+N)!Oj@0KW zfTO_YX@LMDN0+77p&%9w*+UyU$o`M-#+L7&p}nU7omJO?5~Mm344{M2R3$S%wfJ)O zyc6Qg5TLRJFx@;CcwEFufK)as)+`t|$BMrRGzNrT(9grx##dqhIQd>R{b=hrG5Z8j zK^iz?24Rl=y96sMc12{}-$qCqP{7KfaWQT-N;b){Q)?;X?1s^CX0~6>c(j(Y^5J|B zqogC=-%PJMNfxnRkT$4uSHEOS$+2(Edv~_@ouN5Ree_{mx1jSPjE*znrn#$n*oM+* zxw^d=kLw+Wf#FP`eW(kKhE87L2GUe!yeNPX?52_vY~cd#snYE-AS!|LIG6tFQ!+nD z%lPgpMhiG@OU0(;yqNhf53ygz@^Q!Sf|E9`7>$`W8Gn~Q<^TqACX0BqstBD`gfcT> zUIAS`4mk3+33UW?eYip9$pAqCahN}T+{DSFqV8%T_J?6=Lu={;(12I^Y*_m!I;_2D zS(D-9-r5Qy;EzWaQU$Fy`@zs|O`_{ic9XH$EZG{*Xc=?gbT2#A=XY(rz|0g%+`>2N@!{f$=mlU|C$AV=JJbT>mM zW~YxEydOxEdyMRj!y?I%DQ$wEH0@Zhj)%^$Y1DnEw}W6NxPS~E3!UK3c+ehO@|zPR zzQuv?XcSgWeu(}p$EK*B`FDN}tbx2K*~7tP^awgdi}S+ZC2KOYMK1juBhv{0npcRn zYk8$=VU}L2MU6*%+fXW}j+{D#XqORf$Q#b0;q_+fk4FMRkha85v90as>&DrMxRz@n z(Npck!eQnoZvbEbo@&fWj%e-E<`Hr|jFB4krAp3q5zWr4j>iEztcW9mfLcBXJz(_| z;?doIm*`3cP3NUW`DX)yZ~ub)A2xx4ezX!hOHFOV3q8nLJAGI&EE?i^Pt5s+Gt9Z@ z(TqTTa~K4d)0Ls&hZClrT|>q(?G`4UZ zMwK2p2v7>#h9o@GqA(S+|(wJ+J89kB4@9;eS;5vVzbhR)U(FRFHeK>If zNMO1#bm8GE)Gd3wtxs9`^k`#AH-gvK=KQmSRzbHfF72_L{p$($h=*gc$ow4Phf#ry z&FI!hf;%Vn$sku{6N9;t$SJRz??lMY=>VS5@Z#7U4M|j9rLSj1%G84Yb%ZHO)>!A@ zbE}}v7YS#C(a(7||L((tcp&ak3)|T7ZF9zOKI^mkbnh}2R^3$!#5&)GDrao-nj}7X z14(&zm{|-`fdN3}Pipot@^)A&-=m5zGu$8ytz`Nc0cJXkZQBKRDc4GoQr)p^gqkftNXbn5_u-3R~uAAS%n$qaG|V<0vuZwI-$YA5s0K?ZL@ zeXH&-HcUiDxwWO|MBM#34nM_1)(&^aFGG;f$J3#qq38{fG5z8S{eY}pDE}U*s!H}W zV}VsIH`OHW86Np!I$X;sbS+i>!Ox7;fN#|Y-w6k>XK0~c%y*qz+qo{qv<%8Q)G_!Vq|koj_CZG(0DSPZzz>e z^_hDIN6g6B0Sw z>rEgKbW3`&>|>T5l_lWF1WN4u5CQc7QVmzu`kN~ zply=3W>f#Qg+3$E-fS}bRg+pe%I!;v+a5|gd^XKc5qhn!1s#CU;7-99Mee@8a`6s? z7+uzs-#^s(^sSwIZ@PgWnK7Tu}E^MiWPq~NY{}38=Ho4Ph{+kUl?DF%WdjBBY7U&@g$g#5LT@_<~%?* z_~WDW646D<3C?uSpf9!qp0B84K4I+a>?rB-^XoNIyz|Q(w*24bTPKs&1rX1{-v(eo zOHCvxjS+}8)EK55xfUfR{QO~EZkuS=RbWz`Zqu5yD!EF;ft8o$a8H5K{X~l>$`QZZ zC{&`7{W1%xo`J-O=_o?)0a!_WKxZ3{JUjhPR9B!9!9ojkOcNdPOYiAKfh#%ZAvXR0 zs0zPEro%$|W4|%1~QdTU2yjhl}yJ2NNK(^^tPL zM8joydw{YZ?szV+-8|6r+O&?UL|K?S5E3f~d10a8ohdLKaCs($WQO-O_jcxeu-aow zVT*DHo7U~rfR@Feg-Xt;A$98KXL1PxKf#Dd%?8Ba@Gx7}j~_o;oz!}4m?{@Huhjf} z;;xMe-IUdG!F-U~ra#J)wYOWqO*dB+p`b^pYe;I-%NK3#Gf zgZzcRe21t#FAUlvQMUVeE#zNRn35Z(t9^mZD-C3PSbb?A3@aywHdo>QF+qP3 zhu%q4*}03^=Y|0=zC}d-Cz^DBoxre@spMsH=11^ok}53#0$}K4d~@hDyWR)#a>E4K zVIxzHN*@elR?!4{bR~XrHm?a_J$lFr#nl&^`L&`15>+;+dPj)C!XX97+sFRTp~QYd zv{{`=@_gT(o$-O?p|%tN&@pywkva^#@@mJn5qRe$h#vO20?|H5xG~_Umr*d18I;YJ zj8yTDWsih+R5jbKJ0iH$&`KE`o)2`U)27id=O!)2!zhJuRPyWlT6UrO5l!|Y0bf8{ zl;PHOsYyY4z)VLyNLk_}F?uR*T0M+m(pdBKp@yUtcdv&~L@|_Gf6-m!izq@+7irk> ziO)f%J+2vM0c8Udi+|Dk7wAQ;)n|b$Xb=@3KzP6b9YEPDC|LlMa-f5ot80E?VPSrL zenA1*G~DchrRdqqqnA@i<>iirO&tnQ=BNK0PD=h_r(1P(@KW7<-Q(T!a5x-j*P`lb z5wJVg$nw#Z*}lADrvIXXL~{RK1=AJ-tPvGxNM1G%lRl@@`tuJ??D<7@iJT{U17D$O)RlE^6(DYh`~yhkTT=i4 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.EN.png deleted file mode 100644 index b6b82029e3bdaa9dad773b35ad28459bbe786929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7016 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png deleted file mode 100644 index 8a546866502013d4ce2f8add46dc18cabd9924c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.EN.png deleted file mode 100644 index bcbe548297f87da4c1ef3f00d03a054133e7c8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9184 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 G4E$fwgRB_< diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png deleted file mode 100644 index 6eba7f2baedff6cb50411dd190879363a5bc26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9681 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

      Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.EN.png deleted file mode 100644 index 25b899cdd7ca87b2273d2cf09b77d1a97265d352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5454 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 Ru|xyYZs=J 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png deleted file mode 100644 index f338bd44caeb38e792bc801aca30c11b60411cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png deleted file mode 100644 index a00a64fa003fe5ccace0398f0ecf125d87964042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8309 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png deleted file mode 100644 index e7bbdb0445e7dc8fa31f07d8c862b18fdb853922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9040 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 A761SM diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png deleted file mode 100644 index b1da7d4f717589dd40d8c1da4fffbcbb5906c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

      3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png deleted file mode 100644 index e19848f65d29511a6ad659cb48439912fdee2d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9254 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png deleted file mode 100644 index 199e62f81ef736ef096bc820feecccbfae30051f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9401 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 AmjD0& diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png deleted file mode 100644 index 480da0bfc5f80fbd72ca7dec264fa8b957907603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7206 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.EN.png deleted file mode 100644 index ffdcce4bd30899266ca206efd533c13584d4d9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4332 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 ajQ<0`RGtE97NSQ00000RXl2q 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.EN.png deleted file mode 100644 index ad7e034e246705954b6ed863b28aa91961444dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.EN.png deleted file mode 100644 index 8d2321c8b19748b36195f47aef623451e796f86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872923 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≷~|ab|IUUdttWs`*XSq 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

      yGx|=*%Z2 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˽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

      Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

      *1T)6!Yva<^;l%`7#qPm~I=9AP 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

      O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC 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%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a 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

      H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.EN.png deleted file mode 100644 index 823fcf7c97fbcb9a5aae329aa3385f72d636fbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.EN.png deleted file mode 100644 index 84c289b866e8e651e297905deb9c3bb03ee3c887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4621 zcmd^DX*iT^-zOtuCXBU+vc_1akfp>BVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/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 Kezigq4g3RhOc*Ty diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.EN.png deleted file mode 100644 index c21d5b60eeb1950e6afc9fbfece9110e91a77bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3667 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.EN.png deleted file mode 100644 index dee167c5ccf7c3b2b22b3c6a75527871aa7c202b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.EN.png deleted file mode 100644 index f84f46638756cbcf1bd4def00427914253e6af03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19421 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

      $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.EN.png deleted file mode 100644 index 8a546866502013d4ce2f8add46dc18cabd9924c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.EN.png deleted file mode 100644 index e233c502a77cb25165e8e73017821dd9b043d034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68519 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 G4E$fwgRB_< diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.EN.png deleted file mode 100644 index 6eba7f2baedff6cb50411dd190879363a5bc26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9681 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

      H4J1$OST)I&8P34}J=V>j+h)iz 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png deleted file mode 100644 index 1454f02b49f34cce7b6cd8a93a4401025dd388fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115615 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 L*qxGFkAwdQvv)d> diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png deleted file mode 100644 index 5430cc882d6f13b376f8cca1664488371934fcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43182 zcmZ6ybyOQ&^e#+`JB8w2ytq5XT?({laCdiiDDFjDid!g9B*BV>5ZpaLA-HSNe!Ta0 z?^^e}e`F>zD{CfaKhJsgK6~$z@KI9<7mET52?+^TMOj`43F+0s%lBLiw3nk&?Hlr! z(C0QikIMx2k1&W=Fh71x?V=DHe1?tN+rn|DC7ZMWQz<-}t+3a|fFE?ep6%4%P z++192T)mOxbQEMhY3Yd3*;#Wsy4%>%`SNn{(6Rb>Ik?)PckAzftqarW!$=~$22tAm3aPFoEsiaI=7JkK@{FYGpf|)*= zfDUuG07aQTnJ`cgas@A_hJ^1gLb`+n)tanTTs=<}^iIJCb9#-|ONFP86LZkR5m<(^ zweii`H<~f{TG7&ysNFcfovp90^ustlN-*6!@nt_1-Amt;`0F-`t*VtYbKB3H531iz%A9H}PBy1U4BRG1d;~<*d9i zpVz(kJ;#Q}a@m0(J+$?JTtL{RG|1s>Lvz)ACC=k%!x&c>en3lj3M+8^wGQ}jcC&K) zcdTuVIqdOa9h|f;GV3!0wurzmj7^y)Oub z`Ozah@2(ey2Xg`M7S_a|)8)ZGbstZ-LjCRz4}W$%Ui20#MDJga`S(B+DSpzSgti`1d2;B5->KrNQxGsD>8B>^nGtaA{(dFAs6)Q#GI1MX zj5bnNC7RJ`pCHe|tTNlV7O##a^G8DNQ)HO(0U&fg(Sob3+ui? zx#xit;K%F#3#z}7~}tk%q4(?@X@3 zd<&OrXv)@2p6|u}7x$zduLuIRo~HCt9u+45-8VU>{{jE+37g19^~yPqf{1?Vaz|BN zCsMsgQnxsCQ#7w2!y3*XZa(J4iIX+5cKd%R%;#b@MGvMg(;1k?g!OU{gMCWvV|0~e0#tmS`?Ax~&6#Ymo!@q@X;e!4RS8_;F z&}p7p?M$5hUyLDGSwjTOl^UORn3;ySMVrKhrgNJk78}>811}06DDHP27;v^oIMd<- z&Ivns3<-5ep@nys+j+TW0!=<^Gv?AxD_l#3>70IRx8Kv9!jMpX81(&NqyxHD*<>9+xRA{y-ern{BqP625Vh<{Ol{1 zQqte_>R(SopPPL5&EeOoc;C|U1;Y{7|DWY#^mN~XkbUqB3Bh8@f6tmH3XVV(JyIY3 z6BU)eqh||<;-PO@OUnekrf)K&Ed0(pM$F9O{ufE00n3w~eFU{l@d0iId69-PMK3g7s9X*}!Zv?o2BNo8?uqJOLJ2OkurZnwuX36{9Pe zfO7!97q<18$*s}t8_x8lgakfaUO5wU9?ojyd>(h<1FS}D5}yqAm~mdLqOGuwN36u2 z4_~Xd*K^N0c1uutByQ0ry6$o$&W^kY%bSFB=CGo56l>b76d^1rq@e)^K}X#UX2p-v zHn-Rv{l&M}L+UQ{LH)>>#a3>=SuL-4gpRBpEpKL+<@)(z9KOHJ4LEym7UX2uqy>tlE8kn)Y+iES@V$3 z!)rI0``!yJwTi7kjA*R4UFIc>4Mv>Udi9y0#N2AxQT>a!zeKZSoLNkV!nFlGfQ+2_ zjK2zMHkR^9?=^pzsEII%jROnvzScQ7meL1Az*Av)bh?)GY%YULX>o7s>#&b0LY2nM z%I@;)7T&~3q$^#>D|fSUUsAL*bp-pN_SoI@ai@@K^#}oI0?wH_+HON7>E}~l@1>D; zOrTQw%v<$6uY&j_xiohwDpX-G1YuEzC2kMhRK_|ZXTQkdbg8(TrFEHUn@*Fe8k5Jq z&djbuV%eRw-kop~Z5_iIe`4doIYKS7syV+?e5cx*Tq%&U9J zr*`U;tbr@D=OudP+?B57cUFNw2cE+S$r+riQ;tkT<06|-vn-}B5KY$oXetIx@`NOn zupcc>HYYy@eG8rRT$kQCd3k=CnEEE4SB0SLGLL|>$Uu~ohJQta9Qm)Fzr^2V5hHTU z5%Q(3I_iblEItmFzhKI@)ht^)t*THQf~r&anQB;(cQVXLD{j`}+FIJqv% zj0K*TjILAf4#xq5%>xj_06X-^`;lObE0Valzzr}{QEvRDEHajkRoE8@{#YWSvf%N) zw^j?N?$5>ZcT>sw@7KoG)A8Gi$EqQT37l-=iDWKq<~_2eawlOu8XSc{yB8{9a?eS_S<2Bf@hxjbpl2f9g$3+4tTC^4sc_?Z5F^PVvj4Mkr%!GUN_> zS%zHxE4etFbn*^v%{Uqbd0ZUTHYop!JyxylUGViCMye>aBPD@tJVb6gx;Bt3(`?sR zZ}P|yOJ41Se*f7ObDBbn;i=FF`cT3aFmx{JNJY2MR6o|_k_&B0HdYtWR{7PgW4#|M z;PA1h_%d8#w6BlSj#7|_uG%3Yp=kz4%4;_(ZA2oluaveE6PV0yM8JgwJ3nB zpA<7o_*bFH1bH9`;cj~@)^Gqc+zKkBgZo>g{%STEL-6(19Fpct=lGQ3Z|kJkiOXw6 zskPpM9NKmWyP9=UU3!2Pw56(5ug1uzt`qBhZCO*JN`A{KYeyD>oiSh#ONE;&M<9k_ zVc!vh8bnWvLCjYqrhna0ijE^4yq)Y>R%g=XflIAaLnTK;wQH0zgApl><>XkVoxHH~ z=XIWtupR=n8pX%1#cAW;z^qnd zs{gKhu;L4a6ap9)Ixn!Q7w1`RaE)E+f``G^IsjevYNrL%pf_{O6UI%m5aCxS5`xUF znN$_>6X}@E44feg*u?qYPA(47Z*lObyYwWTw^E{^59rm(}$u%R{n={`nL?cgA2GVrF4W(#HW??9P-k;dX0k6hRehtZF_ zPk)Z>Ihs#l_;)|GxY-{{ZYJq}Jyw(|Nngg`<`dJhOawrQEsyCIisGn2k&{kKag%h5 zF|`XYUt-M`EH<0L_fCe>ExljeLv31GP}tlT#$*mN2^1>kwx+#`nK?aVL%j;^hA;*= zJ~5OIu?&tj5+o(Y|AHNbiZ|p7nB;*v{ZMb!O?qD>E=~-Te_JwCZT+cEFmIo^;ixIR zh45Ulay-w9rrv3Dy05Z4_1uqy3 z-bY7-$H}YtT6!mCv+*T;?qe3vQc{We`^IrHK`s#JwDwTL6i@&Tv$|Q!9KYKCq>1Y2!@%#8Q`mK&c&_Ifu z0CU7KEboGGVwN~mw-t!P_OE@G$(M71p5cJvmc6bzV+=Kb&n^Nc6DEF&*0l+b)@%## zWykMwtvSFNy3YUaz;`W9PZ~{2?6_|8Zz;Yz@rdEhA-OLA<+T9W0Kn8tjIrn@i zZkuEpxxP#Nx}(CvSloA#vdXVIqH(>%sQ-r)uwLvG?G*E{;q1V!cbpmrD=TAG3T}T$ zxm#%}TMP|%#^fq?=4zimE~Imtat`sc4jsGjvAt8JoKpJ*AaOK2zL9O*TJ(y~M?4*5f80{f<%N3Qp~M^G^cf z$pwNVI8T3k-j`|=*tjTGykS)wHs#b2t*Da7slw5BUFBHuJ^JO!R9wVW0dj<<@tO=0 zwKQ3d?lu5ihSJ6PWKN)N=gZggWLus5`B}6V-zp&!>2}5pV_TE2WG@5NlXfNGGF7RgP;;VVqw1AyeXJ-X z{4ABlfY9jbJ+nBf5*{AWSM3aR%Hr**bl8fI)%ufR!+faVq+hU`Zwjco!x8$$(_N@$ z(gT-0K~B(}@DF7n4JEn}1Q{{BimFE$xhw~+&YYkNC;?!_Kv--4F1WP`L48Hee%OezoY|B>`rCJi?7lew%4=bjL;sq2 zE%0#lP?jV@mb%h8r^@BGZK>ZC-N(vTh&UR;hDyY)7Lc2keEVRdtN4*X2SmWJMPZDE zRo{`wMV>`rr876{%sF(QpF2qGtb+vyur>yyrVA|G$*p5&?wT)OE+*D?6aIk(bQ z!27JxYp>H3_Qfg`BKj6?cNO(N;ke_qRJT!feR_)*-XgS_c!*^#SoSh-S>3~DmGnIQ$zw!w#&S;uoZerUi zu-CSbr_;IX_!hSJAO+N%6A*-)Y;^HKd0+yBY`tnegeao7(R*;BB>_b z3)S{Xe)9^^)DluT$8hzn#c>Zj$R6?cjAN|!lP6Odp7|#>ziHFVVv8<(e+VKuIm1kw z%}3l&F5_*t?bEt`c2OwUSk24pSS<#j@pO;B8$rl)utOwh9yR@MF*U}c! zCZH=OkPcj+#^HNMal@D@#v&?(uP*OKpw<;x-vC276={Q^lf2Q|s%5eqICg2*aLS{& zD5TSjB0xf4@4GszP0+Bv2#p@DZyyRCX`n6S5_QL+e*K^Z6o_|Vq|+*n19wOl5yGOj zGT*%$GhT1?${o(;>unxVER6!)kIs4omgP8<+Bg|^?5D7^I}3=#Xj-l# zpv@wU#@gTc{7J>brR%9;Y9aGN{LgUqL&ulxP$HdPp0^mt<+h{!Y}_Wi(X3*yu|;$% z20)x8gE@*)FiPBOp4PTNH85Krc$DKIIlY3?r96X`_*>AVPI;5L`d(ngpeCw!Um121 zk2-Mq-GUy+mYuh#CF{bjJ&4PYqult=HKtZ?rJdU+ zeUOKw&VcK>ekB=Dnz^$SGIN1l2j^OEAHK5Cu&tQ$iO1!R4MC#UW)4vSUip6I5DNs+ zEfzLm)js%ZNQjrI%Eb(;FBY+BPu;9862b^WASdRPtlYp|BXF9=dbWCi5ICP-O*JYR zy-Qe#N#Mg8VgWxV3|}M`FXD+_{{W3~_|lv^{eu{qztF;>^a(VZ?~hnK8TF=Lj+7T- zUNOkUdoWf*XJOh=EP*D2=3e$m@tZT5GNrAz96t+k{kd)x31RGcy? z5tp-0uK_H{JLUxBn?$_6I62iee@}qbW9bwnKQWV|1Zxl z{V!~NU>bt*mkn^}+`p!P!X~FRD>H{n8}*;Gv668eqSO0Htd^j5TF6+YVYO2wX7vZe zK0U*yv8bQGd3+>$3>CGh{O6*C-o>B+5kemI6tnU5Y4iR6jxl~jVUFY&lF}*$n)p@( z0KM@USd7a3>+5hbt8JD#)tt|XOqoiVRu-4J5_9Uaa8*NB{JtEg7D$Zg(K_8p4_j`b z34TgYeVwhE@|l@``ztl;l;> zv6LAlX%@Rp>Our{$)+rTqBQL_oWkVJzdmdK2z0K>++4@SRKcZp+5^QoDtxPqg3oM7 z**3S_zEo2Nnump*=g;NCWfN4@f8HCHT@>^L=go~pUZ^hpNTy8UD<()TB@=9K{?*M- zV>j7JG3A&i@i1@fd74JgoXV#97_F&kx^{#K5EcJ;qxVd0J#IkfL$fwm)#2(a5g^>~ z8#jVuy>m$-3__QVjGOhPqGFuOpZRKbvzo1U5@GmB*Upqfo+ck3y+^_ieMT2w1dS#9 ziAjH^{Hp=-<-0UWIE!brh)X?c2+fs)m0k*UWVXyUdz@cMOv(!Lh&(PPzPJeL8V6E#5tFlGckXM*|5nsnL6&11AT)|)96Q;xmE$S zI=%aVz^C~e>g7MCZjq%I3wt0`RmiWhyS1xcuIo<=RYS%#iWQ2+tGu@IWDK%jiGG!1 zl}r=Mz@ftOBfR>0CiGVUa+{<>iE>2%ZKErm(y{^Dx4_k=C1^ILMpD;wQ9O&nAjcF; zhV+f1l!tZ=qkW8nt{i^4?G7=;)VP)jvsWf5^bex8ZpA;uHa74(rp`x0dK=tpTPXd4 zv`PJwEiE!_WpdqHLHL%fdK-bK%SVQu7Mr*-4#4|2UON=M^DV!~dv_h#$s&(Ww_%LD zN#rJdqrWOT@I0fftHsB?$|;M{aIKc1NLC{Hl77&vVrmI|jJ$Oy_JuhKAMW_wL5Sv; zuPz8G@ehL(e91=tSnaIkx@2k6-Y0*KFBX|?kas!Cnp;qDb@+Y2faWt-A;1saMn8@1 z9M^t|mnI36sOgXLzOLmS&Te8JX#SO;7-+^krCmYU@&-*s7U+LD-psNsoJ;{MRV#uc zL+I%BAvEN<(eeARI%mgp#QkW}7GK4og#L%W2#~n zEd2q?10`RzetlEmC5hp;berP$$s)iBPOco6`g%UK5e6TG>P*b&4_U*`!0ha`FB+8f zc)R*p#zhJ}e@LfA3ayg)!4d4gJd{a8c0ZP)k0HH~>YLE2tr23AZ( zZn2=d^oDSOL0&>H38|<0G3{V>kJYe?N#h_ZD>Iiy}JG!_3VKU;b`tBO|RsC#FZJLt=z2s(~x&S$VNZJ_Rf1v)oX@20`rmv8M+U6@YuM zaLWYWujmQBrkrWAUfaPj1UnY#{S8?DgID!jW!Dr~&kYLPylQ^QGN*>b(Sicky;_z! z9JlvF?Ox}N9nE!a%4EB&*wQeYWce2pu$#9>0Sz(g9E~#r61@jm%DDt1jlsTM0WJQ_ zNj-c6uX!0*F!0@yTtz906K4rD6TbX{7q=V))XkvbcS#y!UDOv=vlFn(CpDH;#)m+C zVv8%&<&Z@UCD)gCj(1e#?)@c`Udj0-43{Ya^VEdzJI1axqOw+qu%^16^OrQ zG!!*>=*QQGXO${Z=- zBnwe&PDHjnvS!p?0vued$dDegL>~y) zP0q<&nBPvtKnT8YcBkjrWUA2_m^$?7#!T)>{=WPU*#8kXOZLyYiRhf1!G>x~Sx+S? z4?4?mK#stsGYZ6HwK~AM#*!@`3Eiy8wq;Ex_sIcTO6Z*o5#Y%Q`%iLxNE(wlSX~JK zhM!m{WAv3KJ!Al0A(HVHpR#86X<{+txbeK}|)gY^e&Z~XDH>xP+ zv4IvaxH=c|>I>fvCQdeqmJQDZnV3aBh^NuUCnd;_BE^`K?nnqwr7-_Uvt;G#y)>1z8!CY22hjhg-nToACWvGzP<>x9?| za!?eh-;`4N>zYQ4Ni(}(o~}3;IOnl(JNd z0Z#3eS){U(MH}LM`v~#Z`tqd-Hs-;PqB7d%zxq>Hey8QU%Z$%vlEFoSW=f9zGr zS5PTIg!UC@e*Z2-2OQ>TFopyvNF(B?&U5x{3v1Bu+~QB#1C|XeJ)`+O;dZDc6NiFE zp%}?M+-ESpEC4T77JqC6m&Jj^+JNTzS~O*Gfn7x>od_(2&tjfOY}^AzfE-sT(~puz z)>wT+rw7YxV(|9)lJ-Ey0Lv8s700sDJNzlp4ohR%HF^3|NLkr3tN}jlw0gkO9}1bI zBzg1O{~ZxdO?pv<3i&M)2rQ6vHmmlhJE_NV;5>~r?5Y6qZfLxCO;o&l=5J}HY8f=n zYER7b$19Yji*b(Atr^Lr@$)1Bigvp&I(_S;!b#q%7&sd|1R)HLOL3=Ri6b!dO!A-A zwN7^Zj=gAh^)}?kxEQ6ROscNwc*Uf9FOcz|OV4HaC#FSb+qn2FFhUj{^yiNDCBl4a z|3Ey9xx$9FK}PHtY@Nl%fO?<|K@bz}P`F75H!rNk&Exe{%U>;&Zah}-H4+lZZix_& zOwX;GzDAHe0Q#Rqhq~2z8r-Wg*~Q{FOENx!EJ>U0@oLW)4|$o?KReG~53p)GsP|rz z#l~Z8zi)67u=uWm%`hsOM78z-I%Zws$!oah0i(4Vbi>GuO${hD5`w0e@9=!J9TlLt z?+*w9rd@brgqTjlDP^}#u{)a>wYJC9fZ?9L*uDl!R!MIKbdWOB={_crwnivoTdx?V z2uKLvN?^r`pK;ZlLq#>d{YqzO+HA|Lr+n>k9SIbzje3tC+Oaj-$^1_fPcMwexdu6@ zh&L=EmUIXS*K}JG`oxOtwx-ych3xPG)Use8?GchSmb%g;KW_bI)g5Ch0g}zzhGa|_ z=J%N_YWfW_1VkeGpjD_~RQ{F^VbiKKlKAVmmJ$*8`vo9UaW@@^W5^sWND(y)cC?q44_hBh>7bX=n?kxun zGA=~{&wJF{Uka5I!K*K+habap>F)xNN?^Ti(3#Jkz!LNQ9|)?2k8gN?7nVkP)+dg1 ztF5f1Zkl!67Ld4s* z>Ff153j!Q5bguw>9x90f>DYJp6fB9gJ-qE{?2L(1Oq>t(O}k5MUKd_K~r4Si`NN-J<66O zoQ-z*gq3}2Iu>U>l#)Y&RJ#Y-suRhdv|?MNj%_i6JL>Pw!voKJhomr|osTd;F@`M@NNgUIrSjp`4*fkDSJ zQqDBCa}T40EIM(Vc4HnItsE>zh{=pMMvm7<)8E5i6t*$b>0fFYlY=A@r`9mh_w3n; zDm?IpKOd{E(lq z41L-kjxTJuQ{TLclppsJG4#@6!Dk_2VS)XXP6Ao}?2W_Fy9~co%-d>7Hv@-~Tg7|~ zAQ>;|A>f%np|b%pNd|tzpvQn_d#{Cj$fDIUeR?S?HAsQ^JoZnyLDPrZ2m4f}TAvKh zOHdCu0trFV*D_&V)Ego{Q>Ch&&H1OkVQPDcxrnwdJ5{ncfs`t_vg2bCTY!#H2EDwY z#v$0p*OLwW zP5p1-v;L`viCK7%60f1b5<)s#Fy-No*|dwT7P#NwpWLZ%_U;y7RiHYY>&$biM> z=V+;a#S;$}(Wd`-$^Ts-pW=rNW^*rm1OlQ;Hca}K?hAMi$RsBYg`zucqmt>Y-@Q3+ zFZKpN4XW6~WVa*Y)G)~9l4iN}TeE7}%^GkDlfLdBZp*A~8j{%|vW10jVC+7fgy`oh zULSY%vSEEI<~-BKd$7>`v9|3JyI2F!fI|~4SdZ{U%lf^<(IuBqPt>iBY}>t(;rC3h zD?@+Ch8rwbM1r;pwKGQg&NJn2c;0e!rmX_XF6IEr%-IgAcdpq7|8K9{IjU$eJs+a* zhYL!F7J2nu@k)B02Ja6V-;yza4^ zhRz%CxYJ4Jt(5qXPg$?v5q|e2m$={cwJ9)Zr9u%2IO|O*9%BLL`%7`%3e0JxE?DHt=aut zb$sZM17g1O4>|4YH+zQSyK~at$^&F~#e~?QNcl zS{P9ifwgn{E3>U1{i=5tac(&Zf^H_ zk2h;|pL~7?x`7njRI!IT1a4*vw%be=TbzL>A5ZY2CP2nqL9rdDv|0TpKP%66#_&(1 z;6VW%@Vg%24)vuHGb*nI@sJhD$o->#m#5sW)T`-sxOc}FLtZ85P^ysVj>Sqm3+y$1 zwCfuh&}IcC!tCE&+vpscQ;@im5^CG4N7nc6Guq&RYL1SM+fn#ZX+`39IbdiCwRl-e zws4$$enElF!_Bd8cYXcX_?=6K?{QPwVf;vovxbJo^z`&Q?(V-o%KLZ58$CioLb{H< z!p1>C9YLV9pdEFTg|1e3b@mvC|6HUWF5I^8lood{hG?c)~I z4mt0=@evoGc1FJ2F?xB>oBVI^NSEW~7Cwh*Mzsl-#h%If#>Pgg(|(`wT26tUlCzP_ z|9S2V<==9Ua5UtbR0z1NygY9-twsFgDAtU^)PLsUzv|WFpDQ#I7cQ5+*jO}i2!GSL zv+KGO19cpyVUxV=Sia4JE2Xq-d3iaX4J<1~t~c4r`4g$dZ zvi6c!p;n6fiM#j~nk{BxU|@eu5hN3GoAGsB@`Gwx8!9%5vaD?6644Rfo!rDQ{v8Yo z{TZC$C+nQW-@fJ&dV6$wb^u#!w6eL}8S`Cr!%hyWDydEOlAsOz(iK(U{&(_oN(sXr zvRLxCrSO!;6_cRg97c}6E9LLux;l=4e^0l^vYLcVAc8>_-YoaK3&h1q$0=;GL=KUz zM3c@^>@RCO`jy^kzOIqdOK#eoc%HW-=w}>l=wj%?{Jd&tXt#|NFR!-kcp)2i=UL>c z*M#K7cBYo9ynM9t;?EM@YLg0+MEcI-2O+-`K;DP2ZgO(#FETPD(2eq3Q$EqvklQt8 zD+y|fk020;d8LcZ&R<+W=m4Y12Uq(B^Bh3R1z7a>yzVkwJ$R__k=8tzL{H=LSP_xG>?DiBq4Nnd;9Bop+rDa=i|jl&O{td zpmK58b3g~l8I=HD%9TrBG^QTS;!E`%R0Aq{!rm;w%eM5es z0PKHmdHCka6`2+1?YH@Ozfwyvg&`!XV2A7O`-9r~0|tw))LUv6R!J7FyXUd4z{zic z2W;5Y{?^4K+p#_WWMa=wbPGU#DLk1H_&y%;yl1&G?xK*t^Qf5;l@K%-n|+%}#S zoBSnW)imf>@UV-Om6gYNwS8(kJR(oXC4YFuC-HCje#|<5&?f1wbRW0Y|Cyf~xjRaj zZJ^jR@f`_$YrGplvyyY!-q;eGQYkBc`=2rZf!_|JrDiX4>0%=aU-i?cEWy^b9lwcG zLgy?60H9D5&!0I>-1Af8@{URzBD28Iqn3lA1Y_|E60HJgirYb}rkRHs5+h zfR>$*EI@u6Rj2KGLPSo^hK!DvHNw>~dLpOxFr`G>Lc&zQf3oTFPpFd=hw@9rABl&f z=BB`FM|L|3?I<){K2%u{Pc+mS0n4^^@8rXEi`&^rD$UHU4Z1RjZUsJAdYN>RRgaFU z2W&*3kCMs#BADfDTYaZ*8c^PO0b{rQ<=Sy9)J(gGbg{fZiI8phO35I%`z`21lmX!U z1{e8g^0;l?6^?ZWi7G!T43WraOCVy&pOF(4Gx4GnD(`XILjtRmrkRpm{Y?=+Neepd zTDW@6RfhAUwDdU8`?XSZZ0+qG`bVB5?j#yX@YduBNyEyX5S5VgR|Q-3lwN0MW zuwOX8ms$6kY(~U}T(u`By%+aLn2|rdPZG-h5+@VU(EbODoXEdk6+RZ z0><@|vmU>wc%^VSVC^gWMd>aQ>W@U4(#v73(CI)%dx5F5zP%}EiHBV9f1(@M1Mhor zz>j~ZG|z%;U(V5yfz+y>(vUe%fzuuyvZ=Qu&cF`mZD{&Ddkks(^W=!nyrG?;>1rA> zt^`?&f zuDQ7P-qwF+U$P(o2oP~y6%pTfyDHv`R66qa{THP^f_FHfFt$oEHm@XCVsP-@vqzo} zW%Qowmvq}wrUwY68=1oe62aBKmtObb7*bPvRW0E+_(M_e)P+7Y;kk9K>(v=pnBq`2 zx3Ps;A3_FGM0d#eg#>((q(tU+qo4J70J7d1;)uO z`&>5$L+?h+a{S-{N=?np_1a3Qn2bp;eH#rgV~;+GRs3nVjVj54kCR^H-iN6tY`gh=69F5)dJ`b2Z|0_|P0ecN)&?2aZV>2Pa4c@2i<*Je>Bd2RcvLd86(kpOp2+ zWWK%&6lT!3`?MB&(FpP&dXH2u1oj8?Z4IU7UQT>iU$srq_TZUhr9(N!TK!C-zn8|I zT{MjH$u~*3nB8MPrECz%aErcl&wn7PrwJ4s)AqDtZ&QLpCb1pyXutg(T_8hKY@hKV zxwlukNlPyN5}srDBE)TzV!KIbxHZT!K;X&DqAgWs;87>ih5OBtopDGd+$*`6vhV`| zrKHf+u=S9?Ih&iWxM!SZ~3=tAHEiNhI98Uop>~~2y>tE@1 z%i>%+cFq#6|7f($`WCYF;+k3^gt0M=#98}Yw{U*L=r*}9@x^Uetdw?To^C|)_ctja z@d*j(-~K)B+7^l`Zspyl-p1pKer)#G&#?WQ5F5^*{~`gJI4p3%fHF<#_M;i3jl7hr zV|Nz)t5=}Xf<4s0`|F0VH41A1q)l;WhRdw4+XFj0jsC)Bo<1>%_@uOm5Lab|jaWd~ zlmaPvfmJZQd6Gaj$|7j%ev`&Efs6*!VRACI6LwxDDC7 z+~8+=jVuT`DfF$UkLMZ~tvde+eSRk=e4@6oLQ^ipdI_N*O)Xy%*9i?>I z`ilVM2i8rTC|H#iq*LgHgjYzevfPs{-Z8kIHaeNNcOk>sV}~J4TDcgfp&(3U*5&HT zVn+y>&@S0Pd_mGhEJ^1BE~qJ;8Eu74kTbmJ>DWz3ck$XO^St8(JaRI8?Ys%xd|KZl z+3|VbiSi!PQyQI48`6P}LuO8cricpSI}SdWt+xFONLBO~_il^Q06M3U+`o=E=aNWv zgH-OlDowoW6j=ozz{Q3y1is<|ZD)*|3S2xkriP4CToZf<7+~-9deQ$6 zAU=+O{qo%W(CNRWaZ#8W?u<_;NmzYuu27_ZRobOT zfy^j8OYu20u6!Kh>K1QjgQ9>?Vy!Iyq~^ZA-lEg_WfwDi<`5b+NR68 z5VOF!D?KF&?7%qY-Oola-6Ro z2)G&~CcAbd!jY%^D@szH`s}9-1`PO~VGnhkwh_k`kxcZEY<*vMW_$bCw*GGbkDHC6 z0$1?x5uMPRi|A51eSf?nMSXxo+n?P3keU081NK;?)8B2B1&;nLRm&w0izZ+mP>$K$ zf%oCn@1=ftZf|k42wuo9N2u1Ok#ODpM&8M$eoysf!iT`O-S}_m(q5l?y|1;_7U~^{ zxa})${KceGxCBocl=dCoEfv-MN-wj%H%fs_$Y88_{Jw2z!$fjN z6Lq`=`o#|O_cZ;hZ?00YYINGRFn+5n{n?*B(Kw&A(fe>mU&fIxsL7Db-kxlM{1>yx z{BPv$ZdVwEscQ<7DLYYNr_Gd28_)I-1a}|U>($%-$3;vhdQMve>_Kljp2_R>>LHz- za(@dqQ}jKlL&-+jpqml4fA8uDf~hk^fU>x@U@6v_&2IY(4qH$lV;XLtj8y`Ja`5*Ld!$|O_TDPy6~8$U^(lbxZ$qRY2huKNN^SAcGa*N$R{j1hi?p(# zrMD93cliJD=tt_Jf`q{leFG!k6cKv#)}x}nJpmZgRfHq0*6%O_&_(>#Q|?X~hbao> zmGG|ZCmh+V)DX8EoPp^30^)8qq1S%wrjgh>i3k8Iw_UIT5#1Hxstc~tY2qhIlFN$-=Y*g6B6(0!oAMf4N0=iS);1@}wPik#z zZQ-Z%;azl;m6hh|(UN;6Ctv{=x4mbfE#JQ@LsF=@X(tb1m_OD2`5d(g2&yR6Fh z5tr0)(3K-zVP-iXSUFqM))Cn@I))}C+P=dnMJ}->O*5gVkKfnM7Ku`qPw(q}NE+&7 zaX}Dz4!pPIfWVi9RY@y9HEC?)sX-R_BVi_CS;zt&yD_ZzLJ?1aDTY~B7Dkgt=sC(B z$AcI0aUG**lyGM(I}3F<2ry$@W%03KBSPGE(aXtco&K|+>W}hQbB&&C4OJN#;Rl&N z>Nu2}2uQ-6#qF@fDc=Ti^IKy{p5(T{&F^3~gp?nYjQpI1*OYpk4rxVM#~!F1a^CHU>=dCda*JQAHhPpvGas z7=Xi4b`Dx{J%ij0?{7_VHs>sYEnKKb%y@S$AOSso3pz^)4*GtjS&d1p9oOh)(C!~W zZUoC{^4Z1&i5Y?w@%Vf^tLhtg$?wa_AtlImXKCCI!0}Oyq})4f-JAB-w#AlO6YE{q z;O{-Jh8zaPH&6xK+_YtDW@9PD%5g=QK0#Z4WpRHwV%C?C>wL9)Zs`?%E7fQ4VKU?d z@t=*BzLfK^a8+aiuoJO=(SKZWnCbMzm|Pst^yo4RR3e0Ekg<~+?ick?m;7)#3Tlwd z+Pq?|>gagY6T$ZZMKv3}Ws|t-Q$~GSPW>|7r_UzoU;qgdHx8i_`luHt2S*Mj(JEmS ziMQ(~LWsh-K{dupc+%%X>zOp^Q|(^V=Jflx;GvE(GkbB5&oeu5@|EA}amO!@p*495 zx8?sd)mD}dDOLT&YuO}6SbbOw$AT>k7o-6n-0yC`jm?P)zahvA6R-l(U|TMBl~Chx z)~~em>M_N!5n?Sq_O^!JyaHzX3kJ z+HIfjvU~$6!9Ad%r{pU=;Vr>jiZflIoLoe6p$Xn=Gs>Voun=lv^KfxV`;za-)=;1G z1x!(0*U++_##Ms6AOqog>gwe->w0C=TP8)KE>qdaZEE6ouUX`N{b~|A5QF>`vNwr~qReazmwtf9)W0sYcGphZ2wyvo3UwT~9EAvmx!3TMj;$aQc>*v;dIElV4AV?B3HoEsd#G zPvszgjxTJOFz=<4k;9<-LeAhx?y}%wx3KLYE-gQ=? zkDj}Wv7zh9_h;xSYRP^;`j72Gs@Ew24S7A*jR#n_rZs``)QUqnu)b_?50>O|$oThj zQqDOmYJ+y`i3id4hk(--ZeW$9a}u!O-NW?k>!aC zPf3^!{ZRxK@blSh9Jh^>Ej3%$wW>lU3h9Y_!u}j#9m$9wG?+sr##L+B|cf93FiVU4~nbG1jY^MXd6 zpj?HcRHZ#lul1bdG*a1aR|DzE-|p}W|C1Jdo3p1|pJ%j_rJ@ww&{6}4As?Y$Bss9Ggd?M=u8udLXYj^+>HM2lD|a zOMRR7Q`NxXiacR$sbgr(5!M%p$u0M0YP+J~`mHXo)!@())6r&ayc0}-xr}xuz~wFp z>(AS_ZJ|a*NWKpEgc1hh<8t?mzIO~{15853Haf}8k)Mv@3j$Ruoga{2{ptEbFRRwL zBFns}tiphQW2305M5SWfJ{1hnP;`urucu4P(D>M>fnsv{ExBA1A@+;0NP_^;GY}Az znJzABRl;Anq*>bN_XPtn0?fjq^ZbK#yJCZ>iH)q%xz~X`0+yWH+F8@4D$J`>--sUr zTBYqj_gghh?ANYG=(ze9D3CDysG=&9HZN6cQK;Jbum=l%(o9L#Y{GN@V)w(fm%?WHr} zv1kO%*0m$E1*zkko41q81^AnzBxFw){#^%mgMwDJ+jj0Ku+7r{wGN8h0ijlAmU9}J7|f>R&3MZd zi>+q(Dc$#WS=O+b)iWV~xx2TO66eg8wIzqXeI|A1b#~jr`=23+Wb^Sg6W$cZ7ag}@YhpcaXhy<(1EYiCO4~m&hq-?GY2-~QFQ0RK)r2t7&~s-4H!_r zpO3h4uaI30j+Ue0M7RB*eiOv>{F&+?X)e(|Tz zYA)K1G!B_YV_?)uoM)!IN7U(J!Ud0lNy4vsm|wI? z8Es87Y?4iM+mvju#eb<_k*U&TAi3j<^a4YHXPv#pfg!oDK!*KXeg%uK70+@qL)9p? zqgt;=-g0>;Y7yBy!TYcS*dbxLAog6C&+a$t`6$DcYjO}wL?<3q$pd_Faf4mqZTL&U zu8|SNA=>3jNuIRcS?&JGM}mSMUVeg9K6O#bPkyd%T6_oO+ps3@M7 z97x80Ae&0gc`!~XmYh<0)toi)^WK1gzP>$q5n*t>slzX(b$=RXU~J*KZd*q3#cP$M zPC2^qQ@N>zSsE}Sy6+6EhXgw|Z1s45@8hbIMW}!FDmAcUzGd`WmxBZ^KlB?qPz#}Q ze-ESNO{;g$W+D?V+r0GTCPHjHxw6QKK-%cqUp8K_c zL=YSv-?1Kl5AFQkyp{yP4?TDVc@^HZd7I9$`|cg?*7Z&j1<#nPO`DF%qh+5zp5RMP zPJT`4;+Ig6B|h?7{{gXu zc~sigN8u(^_@*WVro4^?HrRhoQtuZWt=8~-gci^VrTdg<;{-U~5jFw!kc*0E;6UOg zrsTzE1K=`eQk=tzC7#=tvo*4MONd2}{VJ5avZStRm4PY^FWZ$BHg*nAwrj=^TXbrS zf7&Sh+&q+w)|@6sxEBU`;Rd|KokeY3VIr89F2e4DRr4j$KJheMOI^}4_AVn%cZX3) zR)q{BJLx2>=fgy6W|Mw3wdCC-VeZn)#&>I4yCef&Yqg1}tn{`wE1EC$fKJ=7?iW36ST0N?TSNy8-5$vO!BUeZ-j#K zeH=nsu3$wRMras>y;K|++_D}1D9rBknp@qo-`9WjlmrZUl`4?1DT)ltS5S6EQH`P1 zthLkb7=hJ-l@V8+V9sTa1VuGVv~nKY=Fv%SfT8gqMm=mGnu-56W4~!fpy<*Q_ zwtnZ~@p&L{DNqhVFgw_RhR?x+YebNvk;cY;#Jrew z;NBYNyASseI&qUB?!{a56_CtgR*m#zr+o1ib~Gc`6fpJWcbLS30rKzZ$pxezZv4E>zR{$cW5?P}ItK&&!GDIwhlk1VyW{ zM#Xrn-soTt;iXeL^8nLqmnt1X#I2ht*yx6KQ>pa@52SVMGMCX43*yV?f_#o=brg90o!NErbfJ`#a#OzOrmMrGLvDpUC`*P zyyv-~Y^PjMtg#&iiv%q0c-Xq{P*1O?MA&jwCm1)^646$J+hM(x!g9HlKH}M)#QHpb z_({7PHD~M5X2MQD$=oyl=LK=GF(Q7?n(vB&hUxB#;M*^-^z^=jrM7nuo_uZh5_bB~ zzb8;tnGuuz8)*FZA5j5o#(H)5brR!da4vKZb{^2^2swar(p1tkZM4JWOdyH_|v)<}oGg6>26HjV9T)0?&v<2LyD zoL<(|Eis?08>gkSqJ<~=<C$N;vRVco#U{{Q+Iv+ z=pn^js;pN9v|&L?@SevzS)LE?i#wKb$Va`g+01Zu6@G#Z{v|9%ck?rY(71jaDf^JY z#I%!8g6NZ*BHZ5(n{CFZ;fp|?DjVM@E;Cf0{NQ1DG5VE|>)MU^;%{#7Ys@~5Ta@tD zC%61_IH-93c-aVvdkTPlY?C3Jc>ckv6n@)OF^+%wou}9JVtdFy-_&LPrQm}H;+F@8 zh9K0>-k$E2DhSsQmsQ!gfF_zIOh(6PvFyQ&he3r(bunV3x8bQ`YX|hyCsPtu!XO_P zpf^!bxY2nm7f|!@NdCPIoQ-?@9`tNc>?SvOH&}$++t!ic@k^}&WEHQ3MN{-s7J^N4 zx}=ubudXf@|H0po%A8ebOUbR_&&}90d9Mo1*3pYnL(f9f!r)LHknfQ&>pvh8WIvaY@-786uQ1V9JneZh2qq7n9va zwpz5h#>1iU#)pV~-9N8;7>yy@ReW1?&C!Ve=%abnP8!6*rXzZ__bn_t$%FHXDI&-x z7sg&kM&v!B6jlUhuQFTm<#UJ#`ALs1Nk%ayH(Y`AQVU(kk== zqxinXawwq_{3>x+y$Ot?wNv~6hl*!pm>xqlvp?5~^pW^^6>TZG9{F6$c*(0&gVS^` z&PsO|gh&bJmzTAGEdzWapgx3qd^LI^y!`8@aZFYzivi^}J@3+&6BH(7(fQvj)A#l~ zi8tH_60xgT6O-bocvp(~-~$W%ck&_4P)6V0w7PI8!zwXg-%^p_@rvisH5X?HCPwFj zYDG~7^~icXWY|N=4`#YxEj>hQ@g3$xsex8grq4MqXacj*jtvZw%4rNH+F=J-Dw^0P zgW)s+2b>rQ@<`jV^QFb{t!ch2&6pE81YJ2q=UceS70UFP7!lK2w{WP(H)5SH@;(e> zoSLCgJzX)BvuAoVchJr=Buj|PJ`VqBYiST;^rA3i^E;`?;g(Esqw!I73$)~i3bJ)9 za^E@zcsn-#c{>}ePgjpd&eYKkAA>6&m5sXT@^j8s-;LSW_dXeLyTN0DBq{j*$|Dk2U$XJ-{jw}FNqJ{dsxxd%aejmb3 zPb=1BVrrgQaf^R`npd}DuTJ)8lbnWEFeCYKW>5(wK#xNT7sSWJJRI`++H<`(%eBL9 zUh|qS8F54L))E5$dyL+amH$BY_-zts|4LBUFoVb6H`IsK11dH#bw3V&vh*7S^lJ>D zTfW2CrTnRKDvlPe{ItMRcN$1k!AywJ_yVdClc(sz0XI((^EPqZ^|@lAj(RHG;f9zt z=`~%1y~7tT>iT2wHPG$#ww;}w4}A?fdp_=hW7osm!piI(7qUO`digz~R^%y@$H1?K zd=}pHt}t2k+zieIV;e z!lwm4yBj<-#@;=0bsU8mHQCzZ<9payD9u^W_z6QV; z`j&y)a(?Tx2e$G4YT2svNG1zAqfg1=#KZ=!tjHw&D~8i^_MZ+|8tjJra--p#?`{vx zVGWG{Bpzz~aS|2nM2=6Igf=p)`E&A-_6=(p*XdjQxs9Sb6TNG^X!t@}Bz-=bD25mn zea(FLr`@gSQcGrjYPs`N43>WSKFv)Kh7>8XFYPjY=cwO7o-0ps%Y*~+Zc6nyQ@bjP zrI1cHSdXz7vf-%g2mVs0?Vd6Y~@aPyCA(#3NOXqI>PL4vTy-}24hA8TF-a}b)44(JI# zP~X7Y85o#3w@j81_h*~tlM)tef2EV2Tch4a(yW(5X^o7uw7R(D86}pgE~J@3e+O@;n9qbN&>Z8|>07d)gK2 zzMm(Qs2hZ>tP|ld6sMmhu?EzL%&te{eCFfZn%(nl zVWyx=-|~sq1KKTFB^(FnaJqtI&~ZxaLE35kG4c+jy-L!4hAhQ zBB(-Ki=h5kF_kJWqFJt=pZMH{yz~|ksv5`WIQt_Jl#=O`_7t{bKu(BHC7JhoBP+MZ z#R1vsB-Fl8em5txhX|l-+s@a3XY)||mI}3|_Hy*^YFQh4DGm(>F zfWRj4k}8{^g8V9T`Fw*WE}165a>%cXas1b#Y7(s%8$*~6#gywyU>6L3xfzF&+|dOz zC^EHtpzfN^=g^F_%m>C!y63Byp+0J(>w&TzA3sfcelh9$sDs;0%&<%>D?*5GNy|Mj zGe|FR|R(*Oa@Fwsv*4_(QbkMk0HarUtRTu zZMo)j^;>a}kx11hMn{ua6OhoZdhA)enKjHd!{Xc15-|;FU*4O)>4Kb64m)zS8^D+k_cn%-NzSXVMXzd20Xsy+1NV}E-bK=*V1;Sq$(Y5Luo zC77L&<-%!RYS&`dM~B#P4M{84PqIJ!#O@hB&B@_XKr5Fl3FdT%koSy;t>(- z+P*C>g`*Dnv^+-pHd*?rTiwRZ-7;o?(%`xtH}(0@7h(7_1fK@6RrYUT z;O+IV1-GhN`Kw=7IQ`Ub`ni`o=at+nj5*->EZG2X0HrKV}vajS0oc}vy!YH_=8 zCo;a%zpn%2YqzMp<^|9|Ca=X7I{vKxdY{HrnM(!U>N^y-NG9moZBDA_>1kWKdfaX9 z%2>Np40g1MfG^e=^fsC-EiC~)q_pOQgMC?U+2X|NS3)UB`q1g)1>xZChq-($_})wr zZALF@z%jYp+HMvc9iy3OBkvZ*95lld=?eQbS((lf-;F3Q2MfK_zmJvh*Wn z)WZszKbacBWJ0VOt_!%?b8+@Q8IlKuZ*^G7!6hp-$9fF^;DtX4TBt z0>+lP0Mcoi^Lis-R*Xl)& z{JYa{qQUGT$2|(gpDL#DJ8c(d<)^rcN^CT}Rq{|U5k`}g$Qxa*iMh=a1l|hX6TWgp z&dX;#^X{x*<>78N>D$W~l+2x+RWVAOJ9x@~aS7g@wHT; znuxnC!X-Y@YSqpA#~|fhmQk*`bNe$exm&VrjJ5!IQ8pM@(tXOrU20IZI?WTBbhftt zLhv^=^(%h#;)+zTWx?rcOdnT=0kXN#fJvZML?(DJlpSJdHcOp?Q>FfoYvIT8dRNW! z>j1AE#o8N(GY!x-4~AfM5p`?KElK`3EMm>-BIy#Fg4wypxY+1t!j+>QAaVp|yg5sYjNYA( zIbeDma=Dn&9=&Wi(>cN*FF5o`37Cy6*IExlj>6vuyLoa`-91sQr!mD|b8Hs^_0N~F zxvH%7UK;Ehgo`6xse|nhi7Uzs)~RKpiB(K*W|>;+b_xisB~uv~jROIU#&WcD{HocP zHf{bUanuH77Iw(2{Yh@nTsL&rB=h5);$!cXOoyvhKlI(t)`vp4w_6GC;*l-86JnJR z)FWbq5k@2=0X6| z7-Q4Ji>O$Y<`CDZOFP`r(Un`K;CSlqlMYZoujoiB2K%mLihoyX62|y%U8BEy%T+(@ zux(?OH1DLf|7~;{)60%;jBx*# zlx~a1M8{C9W6E#qP0jG)M4NhTbmjPJTE(>(H(=HDb`{gH%byp6tNbrG#=~pi<@GNY z$6@H+V#q1P{>M{wOXbI?#))a?#mQ8^x*!NiTNJV(?F2`tRVZRH7{E+QB z0)eL)^XBExRK0WIBJF0ot0Cu_*O`4<{c`Tc2?gVRi7ZSmZ=Nokusw7?J4l0QntJ8T zcpn5gttF&~SOph*wf*4c{K8*)#I=sD@tC+A)$-P^-bl>ZrR3JDv41iTr$@ z`e@=H_+CoMP%7NKfV)1nve#Ge9um19hvUR`>*z(>Hx0HE_m~D9hU`nM%sjHn)@|u^NU@Y zqe$_mQB*8Wv+aoj+n+`99XH01`+P0Cw|RO`j|kOYD4z@V4y7e=%r!)E-@ku<^9im& za0B^Mu5{@6c901B8>Ex`&>ZN+5i{!chr8S#p|j1rbFi+i9~G;4pVYPY>K<1mVqY&O zNVrEjXLh_Ai{>$d>>Ot^`<=&2Y|b!roK?qn;1~Vi*5HGn1UdHkvk~2}cq9xy`_1DF ziCCR(W3aJPhuYID*NQ+w=g)GW>ooRCw+WnUbR|AT%`Hj>bb_e?+a0PUI+>gd>yCAS z>mr$jcJa9n%s%(d&6dF48)y5vl-{InQejG9$%UPUVc^I#4H|Cr6Sn_^p(5t#2^3H6 z;Ku)P<`Wbvg z-hTD`XdYCobDF8n_l#Nw_?~P~SO)9f7y^+CNe@*D0JIN3uBctzfMT`I%}tshd)Yun4$qw0 zt4j!{qMG(&C)4&oL=YHm8gHtom>X|8J~lorEc=Uyo9GP@>M$CVTXoJ9gGFslH)x8u z*KzUa-4}DZ>PN*0E8b`*f!XwLPX$~P%zKgs4JF=q`1EVPm!Q>KkNuge97_J`-8y;f zre>w@3;$tY4H{L?Nx716wCONlZc%(J233Fc)vX8Vx8Wy({-=PoM*8cg8!Z<#Ab4_0 zJKp#RD28V`^v#fro@6Eq7kxYApENNlJFYiAyu-Ad3h0Il5p<2*R5_LdMkHc(pSWSa|>h4Yom_1JgVdqBD3x$SZ;pPJoV+D$AW{ z{6@g`G)aQg{^<@nRX_nAaemFbU&fsB^uwN@Q$%}J(YchL1_)fzh~eq~z?Z_ok^0HC z0XGEH^lYDar*jHgJV$E*?I%9n@y65vh`@`|3lQLck&3vgS9qb%HctuIH>=qkvEr^< z(3eTlhEsD7`dO(2=k@+L%d38Ac2>zCR?g+TyT+Cbi?lcAJc`{qRRpsmGOVkY$_rxhgS_PXv5{a+X4VjKo9=79N1o})+7f#`}Uq{$7 zq{t0y%hLr<=4H>`Xf&>aNe<7#txjh)sECVi9CF!JLsp(bul76{%SXi>|S2*ivW++u(_)RbH8U#eHqK>;-SEYTdQMua)f27!q z;Eck;fmT~*=nj;@1DhQXoufRedwwiYZP#BEOFtKAVd;OOeN^c$0E}&OYbVk=W?{xe zgY7Z?Q}O7&y=Eyqc3Z^$*bQ-j?6J%C7rV*TF`xNxkfJ{!xOnc|-cBG~r1j%pFO~u07`3&I8lJwDcSi>{ zqMv2^3i5moe6sl0AvR72Vl8w2O3sfFF>mbH?&&dgR!aKfJe%sJZ(Fi4SmC%%_3gsT5$)c}@>dINj- z$hR#~BG=7KJ)eS2!tABrS}?=@`Hd+9v#J(Tu1wlugNE?pIVTKWQ9=_FW-FNGqz>s4 zoC6Dq$^622aiId<$Z|bVZ3ktE<^YywokHLmLIu|I9t2U!h zLi=gK%*Bjo-2(+xCWcGZS13i4D5uCdR3;}Gu}`i<>_QF{Uk~FcBO!E_p1BayeE^AK z%T0vJYsZ3C0xWC?fi9hNm8I+%$w)qN$bvqwzY;J343RzqF6-J zeDZ-qe`3a5fH@u9ibL#o^~6qAPBt%f+fEgQ-?CWd-P?TY6+gYcc(2JhRV5uXZdiBW zxx4|cG7R&(cA3-bw{#ZtpbO_Z33HBH#7|FsN#W@u-)^@#z{m|l8rmsY2<=s%2S#1< z{KgxZL?3rAJFVqN1@0YPO_oI=ZUXjSo@wBl+ zi5Hc+#QZvA$`XGCV;4bjnOioCgQDg4zoKQv9^2gAH2#P9&_$V{`fBUKJ5@DUz-Tt_ zNe;x&aeEaD>Kw^QH?MZv^B=WN%cSAb=uS8^5wTSCFHWv#6j$y4z#U>V#P97_ak}1- zp$^vG0o_9oJH1Ru9oN$vE8LoVFpReKG`^ay{!{px?*I=`M{6PpvuJ%pU2) zvosN(H$clcUN{sVJ11@h}L7LK6qvE%M z!6OxVQ`h-nMa@++mZs0>9)2giHz6VjdfQ-ty;NHl!7Q{)sGwT)Jqv}n9d3al`tk08 zCj@QOgk!*vnCjMiS7H@?!Z2Z{BntbEu zSDV>+gKCMJ%8?U1aOAlEW5mcI2P@mPq5LchuP`h{W_16}Yq2#uRIt!#2QcV41&x7S zXexA^Akd;qJij!)$gGWfwFAw$@{E}5<|1g`?l>s>+TG=K{j(6|k7MmZ&=PA!%l1dY zRD;=J_g!u%eL_eX!0o^v>c~DP;+MgZUU4L5h1oDM!L_3Z|B~7`Xy`X1&nPn$)s5c=vAlEPbCXdZW zXb-XRL#!or(*C2o_C?iyY!_OYg|Y+Jz_#Toak;Ti=2QW`{qkjKwxy!^=~i&6lqGda zvql<}ePYzWg|l4$vTx-|ZF>1Z1@8l)0ZVIuczIoi5@9Q|mt8VsX z0xl-A&5j=ae0=%OKXy0HJFH^0Q?e;+R$)3fHlFUSOmrXrQt>!4?3DyRQF4KiF|j18 zV*94EagO-J^JPwUVf6(=4@(6tc)Ydy?@On6&wGm*rE?3 zn@a;)om>rk;ZH&Xr#Mw>AV53rp+_GgwmANXFfxy%J>%l6{fa%Epy24^9=Z9Cqm)R*Lzd2{IiWkygo79!pgK@~Q=liOc0qRa zhI)zz^S1hN5Gmw(aM5)1yVXDQqeVA`IvJ6S@>&&&oBK5VAIm#!F8Og+So_>Vw{}yn zmN(r=!F9==41$>x{y?DYK%jj+n~CtErI1eEhp?TFW|H;Jr4lQfOnJ$(meX1A0F zXleY)-K*Hv*>Fao_`?eJA}oHPtaDC*n=vpIcPoEMLDu`)kU5v_PPd?njppGrA$qfx^7ibBd)vp z@}|JjStt&X zS3Ps7*&+7o9LotC#@VwNjkcE$@itPL_PWyUURQA>3I>!czxV|}^}>RdePr#@4Lpcr zY<20!K&q|#G-pgCz+p+UrUP`ZMbDt1F)Dmc3qU(8KQevHCFOD3M*U^^tM9%@=jnSX zNXp*Ad|Rsa67hJM{k;U3c>>Cg95;c;ue|?eC5O@+t+MOUZwl<(Kfd0fT4YxSrq2bpn)X5k_xeFd2y>5%Ess``RN(s$)*><-~=z+DVuM9e* z-usoc)zLv{fiGMgrv(P~HFo;y{{ve2bDzWMl5c1z3loE*yR{n$#uioNCXC8iKkU8R zOt9$O&i$7b0bC#DM#XiAodTFGz$a5zW_!PR!8ie7;C=t1L0wH}WzaOVzL;`Kzu?_H59aJW`& z09=0wU=OUN8q)ve`}~oMS*=yp|1&4ta#p=!GJwA2&*07<-WIRU9KaSfVu-Tu5pu`|mmVGUJ`|8? zalL^LwtC4@8F3Xtc8QbfQ0ekn|K=AD%VwOOk=fx*{>=Ufa7V-Cy_ujP`Con(kbCC< z8(~#1%qq9-f8+z?=pm=rJY0KmGRV(L=`JD!w)=iG=ox5B(RzS?vUaBQFXRSTFsamq z42OS3cc9*T%zBsI)~r3~OXS`?b`O8SvNyqQ{$z9$Uq3YqmtG!7sXjC`iM;t!IO<-*%muzPz=RYJf2>mm+O35C z`%eGBKAs;&kcxzSyABfiD$K~e`9vkyZ~y+IHoboVJ=??grW#P1kC`H+8Wb^TepSA; zAK}j!MBF_D-Um_NgMbJ4t@RmZOQ}A6n29?yiB|v6npSr7gvgr(__$UYWtspn{XW2jTf%3?@)1{;sJ`o|5-mg zCK5z|KNMu|l!Xv(7^zGs;Sw28=uB!hhAXa?XMY#$Ki~L!yV<{YZ2e0Jie!okHA<>J zkpr%h(aMoQH}waQjjqD({}b>`bK5Z&wP$&0oK4n5{@RVh_DVK>F$K$1iK~lC!iuO? z>vW^dW}a8q-<=Hy60iH>Jq!%(FmVhM^(x=k+JHX6eDs?xY$@mv+5fMu11uxJ-c`lM zug0{!65Y!gAOThp$oc-O2f6++&yIbIzUbF!=dW*B+w5gJ_ZB8e-x>3Jn~G&~gkI(r zbIT>x6sDQnrWZ(DX&fAn^hv?>xpou^>a}>7$362fMrKMm)USTNY|{7C{2ga+yUc3j zmvDm8yUJnHfmzK3d6L0k-Ql?$SdL8Vh2=A=e zS=|I^NL@k$552!Jkl1SYvD*aeM#ra2{wQbTADRpI41dNNHBexbyfl9Gt80K%2YG6l z#D;P$W5vC&-I*#ari!(Pld>5<3OP&D)^D}9c7Pc@ff_2lg%7pyqGtm-X7If>B0Ks!Zx_>5!yx!p~K`-ntCFc*A3fQxk z;HS{G!i?T`az$R-ne6U^k@QIAjEg4VRgj3x+zw|AF1!6D;iQMf_C(IiHT1^RH*_#CQo*1fL<` zh-$rX&#lz9pPuGD`t`c;>7CDNRSG$o2K|Wzk)v*d+cZ&Nc5N91;~yhhiqA}J1r_@-eH1OdztNi9=pLX^eir4lucgb`dlk; zp~DdH7;tU?U-B7xLi!iw^7qtPq$g>{dw2~X(-&E}K{_#+9Qp+MP5p_Jt7iLT1T&e$ zAx<9Z_j{Ne>-A?t&(OmxCyTyc{S?1$BZ3HH65tC1 z^=y9+2;dz84r{BJT})Axm8(tiOXk!-Yl0NrpBF9n@9_ty?ZT$oPLqGpCPzT-6C8z2 znR3JUM3w=36=wFK7_493n4o;FiDTLX={5W^FNPNzS3C;#gtiKXOioYi%0XtYZ_dyL z(!S9hOmn8(R|U|FEnCXyaf6X*elZ!J50|YxR&#RDzd=gmxW|8;rauA1T_2l%+M}JU z2LTeSwQsBmN&ok@&7hv`8v9bmT^%3@v74AJ#0%3qgOS~=SEB6T)W1K4W4kNijOGkIW}m>g`Lvw5)t3Kx-n68hIq z%?&uPP&a8nIbW-(5GGAO=s$9qt@78l`lDH)KW7)3&&A2vje5tDDkvd4N4+ryNYXp% zmZY%f85)_%LO9a;7a{i6wYFG#bzl_i`wyN;h@1E3ce;e38&;0`l_O0$s@iLs1@MK53-AWQSpERF1iJ~&Vva-yTa%l9@DtT&h z9<#5FZ;>7pC*KPz+F)5;Ma)*xocnD^y)YULAnaq1V4by&b=rdw>A$SHx`X>hmihlV z%#{eE#*-{i#>?^p>oJh9$Iby5x^w+RSjdk>CAcNiZ<3~{KOMv#>ycdvCW=6wl1>c;V7Z(eYg?>w zGHZkhaaRfVoJW2YvZuW^1|}xFTmWd+X`CN%vh@Xv?-NQxTLvgkRGEXCX2eazi%Qki zEz<6c8>ww}*=7p!py-l50pW-$cNb>5W0B|fu%D$J12-D(R+L!z1jq=HWduWjU=_tk zC6N3yxSXCM514P!)HaM2fVL>XI~KY5AVQ5*RsFrhR>ELP-YJI1{ReGE-$%tO#h+WX zp5IhlS!a8(sJqMy)Q~3Jm@ZNFvO`* z_<4O$!-o(qbY07JhW%r6ajEEH$)BU6oE#kA-V#6m)JYMxnacw=vvg(AnXG)=t9E1WzUIFhOnAjsqZqSN2=J1L}VvNd%SDKNAow6_89fY%#vCo$(b zaNp`5f}J&v`a(=4tiF>@y;x81}8uS~RFJf9iI zR~;3bOMbKjvBmk~r|5056=I_^qtj9=Kwag+EOkrO$Ox-pi;|mqMRHyv14OK>V9@W@6t-I*A>^~&tc42!dgu` zml!;X6V*xFy~yuGAc@0@@1Z9Wr?!`8{2bO2`H0jEh6mj$D%12y(nFxubyhxLNj2mh zWxXDVRvz(q##(=RMIF1p6GLig>i^Mb!>2q)$XJ&m3+~O3^97Y_BDoUr^-Jp;6C1BrauN!kz#H)fercyC3K^)= zYq6XgM@=K#x~j34cLf*qHz%)r7RzhIL6bh&g) zT(x|J<974+T5o{WR{o#W7G-3K0wiZs0c=kChkme7T~V>RNCiKq7lE7MaN&x`!uvwI zueEuJ)*PzStHUv4=k^s2$3UB#P68W`)zP4j-I~mHZ>wFO?bqF&zM6|Yo^pdQ_)C~! zfncqdw<*odowL!=3A!)zc?{U)!%JraZ@Q>`+^dJL-?$18`wmdF5GXrGgDj8s2Tol% zVgv=VZ%Y4rF+*{OqCT*TbE-?VSXjK)2T&4e)$mv?%L{j|;6Jl+|Jis8gEC7LDU}L< zQreFjsXwNad3}{>EM50)bh^;Rf)T^3u3h(yOb3mYWT#^Pj~<4G*no=@Lk@IajtBgX zG5Sv*p!<+bLLaVhE`y9~k+~(7h^QRn7~~afXz&&Vp^P0Ei`-YKP991=&9XFo$r;d` z0&`O@9~;})Ex2C}ho_6dCVDrg>bd0Pv}0n)x%9yN;~V4jkW_VV$0Q?hF}40vKNYx3 z9q7Ld;eW}z)UZMby+Y&_tpsri>fKkbgiJ}OC!BQAV0{}I!0}45i0kBw+eSP(joEx91gfpXo+*KOHt&W`F(%(=} zJJ%A);6dp_&bIiUGwZd?_FGXc`1zk*=<~|-mp87i`h~0El(^c=C>MULvIaF@)1q-b zaOpO_1_n?1a}o2$fbA4gQG4X;1fV%u=7brkUn5|@CCji=TZkPBX)_^1fv~6K7x%Bc zlLEiI8~6n%dMl({Qe_d0*36iGz8`XW&|&v=M746RKW(!@0~aMfgKW_1i=h2*4_)oA z9V!0ka_DQ|f_8*RKHtaOph*8+qKuhy<4#eTX>zl#qHp6)(mSAA+7(DIH51-Re#2}e z{IUL3k@4nsHXkQt(W5KenKWz;m=B-bizyDrN-=9GIwG!~r+b+q{&*t-bm(wg%D@QB z=N65`PhA`(pJJCn)Xl)~)2#&h-qm)zn7T=`$yU%Qsno{Lyd=_FwKdO;7)^)Y-qHMY8wj5j*fyyGa zWz)kOA?{lX|Hq1O3_e607j~q8X1i`Wd!0}D9mPWk3UR zfGL2hIB>UzpzBMp<%>_k(3A6Z>xbr(LG?4^w|d1E*wLq9_sc7P+8p*+xS{dRSJD zsMtii-+E1+6k;~Xg%Zq86xX$5CXbK9nKt)=y0 zDM+T4TwDOJz~3-Za^L!l7`<;U(~8S6_vvgkI`!`y5T0u8R%t%Ejkm}z&MiJI{GpFY zTO8!X=V2>a4kbgbz_2MT2aR?xVPJrz6iy;#u|9jnJ@i!F)H$z}VJQk#<`(H);}BjrfYhVIkk zEoepg2p=(~^o4spi~x}Yh_GAUtE}3r&JUtB*{wuMaWv`r9J+U8P+-43%)n+&*VN3C zg=nG=<>R0^H(X?w(a$?MAnF*)C^HXz83+eg94fGt|7+Yk3o!<;{0TkvQsSUKLy!Cy z#*9%~%F?$3XsHQ<;D~+G@{BW&6ZV{v-U%Ci{W^;VeMeDpl`79@Vbia0@Lb)B^#D%8S`}L4+pPrA4%yO> zbL*eaV|gZfUS+ni-eiOs>faYFA*dt@m|rb(AJW3-Vue`?4lUwi%3+y-(Qm4>L$XZ^ zT)^sUh_yG&~N7G7dL; z1rY)D@?ax651S5}G}g)23=n;xd8y@NAz_C_$SrO@WJ-jFYErUA+KQauar|{ASq-r) z$G9hzlbj#p1kttOZ*LDllNO`^yZBowKggHf|JVLv)OY>0A+USpCU>)1CI55?lJyaE zZ0zMdKE-RrC7*9KSMv(y^pR&VB(9l%t>1KFu@tXpN6^rV*X7BJT?}_LotCZ>oUjL% zjNa^Dy3g+P`yHyh^Un8G`aq`1qaII~8eNNSJYwbH;YOtvIFb&5B1%i{_zm5g?**hu z`$AMizJ_tJZMpQuPqvDRA|DzqJN)OO1@BBSe#(~_U4rlk?PmhViEx(3%7I5Ax5-$b z%2hY{GuyqtM!sRf^==a+_wh0trcDWxry^BnN%kkz{Fo8HcmEF&xUC_?Y4=_$>!^~q4|_!$4Cd9ObGM}KY+Qzkv2hmwPpTRVOIX#)KC$v&fltEhHKy;i-? zU?OROAOIA}Or~Yg=`n>NH~C6^Szywd%GJ>v)Tli7av0+WD&Zh&76VR!0{)J5cEf5v z$u8DYjpxrJ%FP_*ViP^l-#fYI>)`|=%;pEj6zD8a@2s5#g$`PQe9Ep{^Wy9vNCYmw zf|+}*RB-0z=9TZljTL7+7Sg!nPJTzBxgKWaXUo$kC$l$Hsjxn`vfe6F6`Pl0dEWZY z_@qeBvWe)e!m5D{6_2(_fY)4}b9;bCt13hfe_87Lb%;^++bOMh;IE|qk*`}N-k6td zLfy39<|E%Y(sn(A)CrAaAs!F>!=~Ieqsj2eSNt|@8?nkL%)FxCEQ?OmEhMWLm-%zT z092${^cGr2i5#2)Px`3zTyo-gScZJ zl|=KWT_1^P$OOc+@hBVn)v-2wb1GJwP%;N8fK?TnAvho~|DDbydO$tI`|? zz&>n<2W@)VDyxC)xsHy=C6}IxBg=F_)}GuVFiGs-WNcz+`}dYAX+#Xa5!^xQSFb+G zPIlnnfGSq+En^({CnZ19;&U2~Z1(q5x$vIoJLC(eq}_)2Jq~s2{{CFjQlY=WJq9WL z`i;8v5#dmbTglu*^TQ-R?qlX5xYaZp5G+yFZ`7u^ob0=9Uf3O7R`-zpU1c4I#vdz$ zw7I08))w@>NxF5}{0DBO_`5X%8h5mjUrHnao+B##ME{=Wi6lev@voMEN|6^FTy)bj zJfPldQ&IG(X4(J6gy^L2sk@1Og!DtAWUlqO(?(X<`QL&8^&|6bE%IiRVr%BM0iP^ciL3bTrw^+S)hFEAs;7Gg_ z4KZ@-IOxizQx`rKQds@;%!LzJsgyjBY-xqd72ZJFmFB3sTVjbcL;|@WB|5AxXQc7C zHj+9~#PB)t7RV{iLgfE0_>H#miHJRe3(kMs)y$Yhb!9iR1l!+c$O?GKkc#xh#Z?=h zZ<{sjUD_X5?~cbf({Z~2*FHU`NZ;w?$!I_}w)wOhJ@$GbmDFEkIsZ#O&a=TTICuxk zdGF^Ld3`GJ1#ve32v)mOw?pOHk~%bS8%T8`A;c5T(d?`R%9;d)BeBytK! z5qAJbDh|$S+fk;fNubRc$yr#W#eTsc4MQ6^wJE%wRuHX?<6rMrNP%-g%*Jdopu7D4 zyY~^G?>UZ`gt1Yx4(f=EioKHND=&M3rzZBNpASe)ZNDjA7xP)1ko1&!vaN z(VSBi|1Cl(yMj#d8ATq|=g%InN0=lA1{@J4Ryu%L=*Lr^;Fy(1v#sha6;FqwlOZsa ze!Roa`|BDB7Kb;*XB$D@#xjU>?2L0>CL>-`7MgFrrs?Y{Aj7Ya=6^(nTPB^htIV~! z08_x!-Ej`X@zGojcF@qH?eyYkK+KYM33tJwn}@l z-YHJ#6QmTq1<@-pO-J(sqWx(s5ZQ5Q*X{-Omsj9}0QGM+{h&;dlk=_}?T|hJ@!lEy z03%z&;fnd(AQ0Vhg;10W%nSM+j*7Xr%bGTHcpuO3cE;LE~8z;S1vdxwjJrdm?9WccI=*h6Q0uVc_To+sGSOj-lU?O#)@K61L(G<1U)bTE% zze>W(0Kd`oow+jcoA`>%-rWOmH!raEuVviEYZHK~0{wZJ-pjdBalaceglCG9v3(e& z8X&Jx26yW=EfIM*Zbq0!q@BplhcCQZul6R9i%YuRK*a&m;w(+u=VRsBpLKb8c~@iI zeCfEpV$^BoZhh&sDo2Ce6rfW1IsqQ_8UTG8moJ0paE4(5vy3s*q==OmCofnsl>p`( zy1YUy$@^W~m-+XU4$nK|NUm%aUw=PV|CkTqD~lH49UbK-N)7JX7|Ty6AwDWp+1&K9 zxg1#FG-+8lS#(#faP=|DcRxhPpgP9fYgfi=x_oGE>tTT1Jr}55F5)9et*iP-+Q%`p z%yS4~V;0HJs`K|@u;yswRS^0g5ZfcB+jaTP`I*~9pQ#$Lwx|`gn5;#EySJ|^g{#bc z^Oj9grt5g zv#6}Ct^A9K#du>hggVKVtCcB%O!MnCfWU{cgNW>T;XOE+u^@T+AY|Cf=GYr_|J>nU ztO&?OoDZvD8|nv@pv#7tsdu!1Izv)u-bM1ICxJ({x$rR(Rc49|R)4vl!F@2RGFclUsya@@4Y|?r*Lrga`3Ce-JmxSSl)^F7@4iEM?ks z>89tEr4sA|m%%%CE|XO?!Gfz)W7llgT7;ynyO`IACcu9WA-b(g#Vs1hkqNt7Se{v; z&zr}aRi?`zOk?vDJMA?6K$}HPok=^JM$FGw2u zfZ9+hQ}x4j#>5iJ4cT+TGZL{W_qDL0FT)5f{xvIi1Lo*^1CQ>@sL%+*(WxAS-pZd> zey|vFvOg)qW#%qD7);7Y6HLRbtaUz{u@>^L_Uh}uK+vBFddy;{g4#+|?&z>-OIov) z9&bv8e^gh?%KL1R*WT_}@xZhxI2f>w43@LzU+vRgR*L{nIyFd35&Q3*{C~HCDmI#f zrFpSE!Kdm_;xl5QDu+!c`9{R|+(Y1z^#kma_gfqH7Ya-r3-P}DS902S1H7^|QmCzn zOSacef3-s#$1Ml%`g@S9*TA~Gp1i+|m!X`1bW{51R9I)KJ6XPqfy@@XAy)ta=7M|+Pqg;nw5qVX6o;%9z}DWzti07uyRY6WHo78WIN^;M^PTj2ip}pO zPFQ_1u6mZ{x1#Aq`ZO)f#)1EUIBDH({Cu158C8QTt`?}C6a~z_?9`Y5hcKjaNWHZp zc`@k(T#pTF2lK;UC9BLYUlWU-V`3Sqob=MZ=eH+h_a(PHv5{{gU=D5AK6$e3;bl*J zRAM`B0y@}@+LXsJq}fCNel~NbJ04H<5ZrVAP5V;5T?L3dclwD2))TpA3WYwSmvzcd zIqjaxSy}U$ryJHc;*Otq6I;76pX|O`dv@w}Uqv5#1RUsj0doM!S;~g^!n7TQ!+HBv zr2b*hcu)Fa3Xmt14z_f7SR~#>beRj36z*))8Mnf}O;6!UF0y(dyt<%;G_I))4#8u> zFN+)sCT-VowDa?LXMev)zwYh!6)X}`*kIBQfv^j47~k_;rGmi{IBx!i?;9Nq{yMA9 zBL7_+AOGF*ard>N;$Uz!# zi>#aQec9D8^W(gTG+EP=z3u?|-(8xTqES0&oeYN?Gt_5!NLWwL4h^H(LgMX5-|NW; zvQ}8n4nPc@sS~cyOryK75bO3PnbL2TKarZjnL0_hucB>!o8jy%?M8Go7bDY>d6p9C zO6vSV#|}5%BdeXzsD6WCE|7&f4dc!bi8CzE6TICmlO*Zgk=KW7D@$@R3R;reA{@O|bK&;R(Vv!#UC00aM%q~{CLO1rbX?uR$D3Cu zaSPP03QH~%yYZv3T*Kj7wex+G`0^tEWW^3;{!Vg?`0#x`Huiw>B z0Q2MVe~8|0ptL46whJ1Dgexr?@*G)TmoFrr{c-+3*IB^3O&S^*d=(p$=DAG+{Gfc0 z00~A63rmLW8XIQj5I(NgvI$1rW$C`oEU>Pb_&gIN(sacxVlE5&hN0@q%jLoxye4Lz z$2T6GjC|3VC!@YYnK<0$A+w!Xm!?qppl}f^ggKd^+L0+%rnS3cL6vec-jUb6rj^Jp zwr8RMINv@eeulf8?swa$L$muG3eY9tuBwEN=;X_k$Qx=^YX&KMpp6BV|9YR4YgV`9 z9>qZD!;2Qa^4A^KDh?>$6>`2EyUf4(lqTp}bDg--RVVMob3T&8rVOp`zN5Uzgr%f< zi9I}Q=)}o#%PqP4gvM+~PMAl;frRk$I1Np;GPD4%qUrTzA9BIDuM4ddN zEK2vefZ_Xf!?WJ>o1o0pn)+Vvq7LwAcHBtF4o#EvTfXD2$ne)qNKku+eOmH%e4lmnlk>7RR^b1QdtL{hQx6Jf#d zeNFGhMD^2Wf^wq(HFJE){g1F0fssJrYFf&nc>=n8siC|{`44L)5V_Vb7TT8wFplR= z0LBd${8xY&oV#N7{NQ{Bnw4*nW^trolMLy^Q{>nkdDgW82cQDmlMA#INzR z*7}-jxxvhiWP^CLmtZdK%WM|tYr=&mt~X|<{=txG`VWQloWA8tTzTs-E@XWj*R^=x z@QQOS+a;8?#uc0tti`3B4Nh5og(%hV9?tV{t7AzofLo5FV#b8Kyc|fR|DppVksR;B z)p#I<`hw+f`bsf;c>mljA;-Ae3-hC_C%zJOpR-L=tJD?VTCDWfU_@B@KqWHQ5T-s24ez`jMk&Ge7v$k^G-O2$cbV#05u7H3c zDrxuCr27q&ih)9Ee}x#`H+LDBgrGKl+mXZY`meQf7UJZ4O+@;Gysot$J1gbAPWH$n zlTKgdHXkL6sSA`I9a0pt7M8D`BO}7Xg@%cPmu!MMj<7c}PR|+Bii#zljlJ|M_e_oC zc)m+8hDXz%JTl*s!c1xvClbZ1DhqmNQObXe!q=l>hzJIUbYX?=6xr=ik`+8b=sBl_ z5bUSs%VkElg1oqh4hJ3xrbxSc&X%ZRs`SaLfRAXdtNR=z6sWkL*4d5AfCaLUC4dqe zF87h|n`lFbe+%&}RLeAboG(!3hrp53zYiG==6+DM^eyx~<(Hx0ruWqH*o=(##H0*< zF?s93zP;&<9~7S+Bn1+eBlRd*hH_P(xOPqsT3+8pc1_dk0>#x6SEcoyfJg?Npp_?; zETBd$tAbsO5uK6R%9TTzJH2;>Wz176>qrW28Kgusp0|5xR~(gHdYg3?+Y-#7tNV;w zRIT>iyso9l+eymb>XZ_c19D0JT zNfl~ZR}LFn8r4DD;!jg1#bq;zBQE3hA<)O+*v9(ENzSXQ*>VmxJT)Bt1h>67fqq2D#+HR=sDuLJrPq~w=j?~r^A zWRq#K3fY`FZxYv(Y24!*)*6pB8@PUF#0kWT=V+Bq+9q$^b?40p8B*K1*HBYbbA-6F z=6vACbeh#;#cuga3L+kV??CAS#bM9cBaDv+1kAobY_&>hxv>*I(|HZ#m%=%{eD759 zU2U~^KU;K8!R2qoa01E`1923NWgC*jhxtU}zIAFw)Q~s=fjP(MupJE@G*#dUmQRUo-=j%I`=HJ%^ zRt1j#e1w|4hqQbsot_xZ^pt{aWCjTjom;j$T5DV*4VhLoEbSuB-uJExj7@HB4z#fh zSM_Hs9Oh9mdS@WCUJ|Y*^4qn}s~8En zSi^7~e&yV>RBPpRpGIF!g{6H5MBZu@O4X;}^E(bfRmearzrsPKP=Q z^sC(&MXAlv!#hLmtD~4HD1R0G9RsbUuRVyI;6g(hCZod325{amN^ zk-U5MAFX+DGk@K#6xlaprtkzKaxY&pc+F8HRl12{o*V9aL-F*gA>Fx0UAj5Z zZvB+4=Ef$yj2$Ddc%Yy8mmcSOmwD#d_$nI)fNCx#6u=L^&Gw0m)JZ#gM8-5o#1Uzw z(3o}Gv0(lit?26I(p<*7M+mEuApa@*ZEKV^jnLs;U0eQ+z!4L=tqq02@12N0=jlQ# zArt4q$wn`e)v2kQiEg&e0_P7|XsE49oz(!#U=qJhNs)GlU1}QR9Y`$oj8DqhX1+(Y z{4FX;QlSK;zrQFk7j!Z!y(N;$CQ6)L-9*7VTQLjktD%w>$6x({(w32I++)gkic1#y zEdR!(x21H8f03(inAuA*3rAuBH;w64MIZ()^Utn<)H?v3xqtWTA)Im*z4Xe3G;zq(u~##}=3LY*x3aOdvQTQ6_?*std+Q>KaL2_dBIJYIhM`e7oE<;L@ zvRcQ;C^vA+tzO=_Shr#)b%jg+Bs?OHOsD7DF@*+zQ&p*+X!NWwW-DD3@)Jw2N%-vU z`n1_040T^AI3PpV*cL(@p^-z~W}tfeR=k9E->~0V_Y?9s0dzBP zDru=kq?Viqb!kAF8#-tu%Q*duE*lHCdz`IqSSV)9=GL$hCGt!lXfvL#xa6M*iIBP( zkHu}v)i4|n57g`@g`v~eVc!Oc(A%gcq;5RVRS!0=o?91=h@rtB@6gQ)!tbk+&tp#b z;)41wl~^CYI^$cqs(;*N1TCRTP2GKq)GNv>?yfi)h^Lb?E{eIo{jhtvvb?OU4QpCs z{XLSY1ml+jx}L@U>f|SV>oR3B461xzS6*3}9B~x}gJl(H+LZa#98)+S`+yQy?9D_I z8GYmRF;#vFXH+PJyggX>Jc_QNX>>x|XFyTh&>fXr${bo98SDym{yM+orDj%>JK4ip zP~DI^=^e5QckKJPYPAH~Ypp%`{Aerag74zniA%+VJJDP}aSAueT7!)~Jwq_B>LWSc z0Mfo^=u7AStMuBs>~FUNUf%!FJxC1y#l_%}&-J@T;ZHkrk^d5f<%n;nmx5Q{nU3VA zX!T04ICgX$5;UJv`JZnBF~?`UA(?;P?H%nmFWr#e?1P>4X#OAN)*k_iCm~{zd1O}= z{G~sgZfiF_mNIyU0n>1*yr|q8p^;YgS4r@dNHHIcPqq|1Oy4wX+<#U#{&Ig>NvU`u YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png deleted file mode 100644 index 12cb8442c5f68c3030ce4112aaae370b839bef1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3132 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 _I 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

      Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.EN.png deleted file mode 100644 index f338bd44caeb38e792bc801aca30c11b60411cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.EN.png deleted file mode 100644 index a00a64fa003fe5ccace0398f0ecf125d87964042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8309 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.EN.png deleted file mode 100644 index e7bbdb0445e7dc8fa31f07d8c862b18fdb853922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9040 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 A761SM diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.EN.png deleted file mode 100644 index b1da7d4f717589dd40d8c1da4fffbcbb5906c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

      3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.EN.png deleted file mode 100644 index e19848f65d29511a6ad659cb48439912fdee2d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9254 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.EN.png deleted file mode 100644 index 199e62f81ef736ef096bc820feecccbfae30051f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9401 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 AmjD0& diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.EN.png deleted file mode 100644 index 480da0bfc5f80fbd72ca7dec264fa8b957907603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7206 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.EN.png deleted file mode 100644 index e6b76b3b6906644c9063b5c5805597875d38661d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6080 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 From 4e2403758ba8fd5eb6a5c5823b0586207502697c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 6 Oct 2025 17:39:36 +0200 Subject: [PATCH 062/119] Tempo (#2951) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * updated 20R10 (#476) * New Crowdin updates (#2866) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations combobox_overview.md (French) * New translations dropdownlist_overview.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations entityclass.md (French) * New translations websocketclass.md (French) * New translations createstylesheet.md (French) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * Feature/improve soap (#2867) * fix links * final * after closure * added event diagrams * New Crowdin updates (#2868) * New translations wp-export-variable.md (French) * New translations wp-export-variable.md (French) * New translations wp-export-variable.md (French) * New translations vp-export-document.md (French) * New translations vp-flush-commands.md (French) * New translations vp-import-document.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-set-binding-path.md (French) * New translations wp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-flush-commands.md (French) * New translations vp-import-document.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-set-binding-path.md (French) * New translations wp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-flush-commands.md (French) * New translations vp-import-document.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-set-binding-path.md (French) * New translations wp-export-document.md (French) * New Crowdin updates (#2869) * New translations orda-events.md (Spanish) * New translations vectorclass.md (Spanish) * New translations vectorclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations web.md (Japanese) * New translations process-activity.md (Japanese) * New translations updates.md (Japanese) * New translations orda-events.md (Japanese) * New translations orda-events.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations authentication.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations process-activity.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations authentication.md (French) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations webserverconfig.md (French) * New translations web.md (French) * New translations process-activity.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations orda-events.md (French) * New translations create-deployment-license.md (French) * New translations debuglogfiles.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations create-deployment-license.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations web.md (Spanish) * New translations process-activity.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations updates.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations updates.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations authentication.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) * New Crowdin updates (#2870) * New translations geninfo.md (French) * New translations geninfo.md (French) * New translations vectorclass.md (French) * New translations vectorclass.md (French) * New translations geninfo.md (French) * fixes * Update updates.md * fixed links in command legacy * New Crowdin updates (#2871) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations listbox-set-property.md (French) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations string.md (Japanese) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations classes.md (French) * New translations components.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations classes.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations orda-events.md (French) * New translations vectorclass.md (French) * New translations vectorclass.md (French) * New translations websocketclass.md (French) * New translations classes.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations orda-events.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations listbox-set-property.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations process-activity.md (French) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations updates.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations string.md (Spanish) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations updates.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaierror.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Spanish) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations authentication.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations this.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations labels.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations labels.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations cli.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations formeditor.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations compile-project.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations num.md (Spanish) * New translations string.md (Spanish) * edited touched example * fixes and updated release note * New Crowdin updates (#2872) * New translations orda-events.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (French) * New translations orda-events.md (French) * New translations date-time-formats.md (Spanish) * New translations labels.md (Spanish) * New translations labels.md (Spanish) * New translations date-time-formats.md (Spanish) * New translations entityclass.md (Spanish) * New translations labels.md (Spanish) * New translations date-time-formats.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations openaiimage.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations openaiimage.md (Spanish) * New translations udpsocketclass.md (Spanish) * New translations udpsocketclass.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations openaiimage.md (Spanish) * New translations trim-end.md (Spanish) * New translations trim-start.md (Spanish) * New translations trim.md (Spanish) * New translations trim-end.md (Spanish) * New translations trim-start.md (Spanish) * New translations trim.md (Spanish) * New translations dialog.md (Spanish) * New translations form-load.md (Spanish) * New translations form.md (Spanish) * New translations dialog.md (Spanish) * New translations form-load.md (Spanish) * New translations form.md (Spanish) * New translations print-form.md (Spanish) * New translations dialog.md (Spanish) * New translations form-load.md (Spanish) * New translations form.md (Spanish) * New translations print-form.md (Spanish) * New translations trim-start.md (Spanish) * New Crowdin updates (#2873) * New translations wp-export-variable.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations wp-export-document.md (French) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * added orda compute query * one one * entity set is not entity selection * New Crowdin updates (#2874) * New translations mandata.md (French) * New translations dataclassclass.md (French) * New translations mandata.md (French) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations $singleton.md (French) * New translations http-request-handler.md (French) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations wa-set-context.md (Spanish) * New translations string.md (Spanish) * New translations mandata.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Spanish) * New translations classes.md (Spanish) * fix syntax * 20.7 * New Crowdin updates (#2875) * New translations remotedatastores.md (French) * New translations updates.md (Spanish) * New translations global-stamp.md (Spanish) * New translations orda-events.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations updates.md (Japanese) * New translations global-stamp.md (Japanese) * New translations orda-events.md (Japanese) * New translations remotedatastores.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations code-overview.md (French) * New translations compiler.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations compiler.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations general.md (Japanese) * New translations methods.md (Japanese) * New translations architecture.md (Japanese) * New translations code-overview.md (Japanese) * New translations compiler.md (Japanese) * New translations components.md (Japanese) * New translations documentation.md (Japanese) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (Portuguese, Brazilian) * New translations compiler.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (French) * New translations $attributes.md (Spanish) * New translations $attributes.md (Japanese) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (French) * New translations $method.md (French) * New translations $lock.md (Spanish) * New translations $method.md (Spanish) * New translations $lock.md (Japanese) * New translations $method.md (Japanese) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations authusers.md (French) * New translations configuration.md (French) * New translations gettingstarted.md (French) * New translations classfunctions.md (Spanish) * New translations authusers.md (Spanish) * New translations configuration.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations classfunctions.md (Japanese) * New translations authusers.md (Japanese) * New translations configuration.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations configuration.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations handling_users_groups.md (French) * New translations overview.md (French) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations handling_users_groups.md (Japanese) * New translations overview.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-export-document.md (Japanese) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (French) * New translations vp-get-value.md (French) * New translations vp-import-document.md (French) * New translations vp-get-stylesheets.md (Spanish) * New translations vp-get-value.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-get-stylesheets.md (Japanese) * New translations vp-get-value.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-remove-table-rows.md (Spanish) * New translations vp-remove-table.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-remove-table-rows.md (Japanese) * New translations vp-remove-table.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-remove-table-rows.md (Portuguese, Brazilian) * New translations vp-remove-table.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-current-sheet.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-current-sheet.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations vp-set-current-sheet.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations vp-set-current-sheet.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations formulas.md (French) * New translations formulas.md (Spanish) * New translations getting-started.md (French) * New translations from-qodlyscript-to-4d.md (French) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations templates.md (French) * New translations getting-started.md (Spanish) * New translations from-qodlyscript-to-4d.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations templates.md (Spanish) * New translations formulas.md (Japanese) * New translations getting-started.md (Japanese) * New translations from-qodlyscript-to-4d.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations http-request-handler.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations templates.md (Japanese) * New translations formulas.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations webserverobject.md (French) * New translations wp-get-attributes.md (French) * New translations wp-insert-break.md (French) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations webserverobject.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webserverobject.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-table-append-row.md (French) * New translations writeprointerface.md (French) * New translations wp-insert-document-body.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations wp-insert-break.md (Japanese) * New translations wp-insert-document-body.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-table-append-row.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form.md (French) * New translations form-event.md (Spanish) * New translations form.md (Spanish) * New translations form-event.md (Japanese) * New translations form.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations formula-from-string.md (French) * New translations formula-from-string.md (Spanish) * New translations formula-from-string.md (Japanese) * New translations formula-from-string.md (Portuguese, Brazilian) * New translations new-shared-collection.md (French) * New translations object-get-data-source-formula.md (French) * New translations print-form.md (French) * New translations process-info.md (French) * New translations new-shared-collection.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations print-form.md (Spanish) * New translations process-info.md (Spanish) * New translations new-shared-collection.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations print-form.md (Japanese) * New translations process-info.md (Japanese) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (French) * New translations smtp-new-transporter.md (Spanish) * New translations smtp-new-transporter.md (Japanese) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations compatibility.md (French) * New translations database.md (French) * New translations interface.md (French) * New translations client-server.md (Spanish) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations interface.md (Spanish) * New translations client-server.md (Japanese) * New translations compatibility.md (Japanese) * New translations database.md (Japanese) * New translations interface.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (French) * New translations web.md (French) * New translations security.md (Spanish) * New translations web.md (Spanish) * New translations string.md (Spanish) * New translations security.md (Japanese) * New translations web.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * fix events * New Crowdin updates (#2876) * New translations classclass.md (French) * New translations document.md (French) * New translations classclass.md (Spanish) * New translations document.md (Spanish) * New translations classclass.md (Japanese) * New translations document.md (Japanese) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (French) * New translations webformclass.md (French) * New translations smtptransporterclass.md (Spanish) * New translations webformclass.md (Spanish) * New translations smtptransporterclass.md (Japanese) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations websocketclass.md (French) * New translations websocketserverclass.md (French) * New translations websocketclass.md (Spanish) * New translations websocketserverclass.md (Spanish) * New translations webformclass.md (Japanese) * New translations websocketclass.md (Japanese) * New translations websocketserverclass.md (Japanese) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations tls.md (French) * New translations webadmin.md (French) * New translations backup.md (French) * New translations log.md (French) * New translations restore.md (French) * New translations settings.md (French) * New translations tls.md (Spanish) * New translations webadmin.md (Spanish) * New translations backup.md (Spanish) * New translations log.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations tls.md (Japanese) * New translations webadmin.md (Japanese) * New translations backup.md (Japanese) * New translations log.md (Japanese) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations tls.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations backup.md (Portuguese, Brazilian) * New translations log.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations operators.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations operators.md (Spanish) * New translations variables.md (Spanish) * New translations basics.md (Spanish) * New translations operators.md (Japanese) * New translations variables.md (Japanese) * New translations basics.md (Japanese) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations debugger.md (French) * New translations building.md (French) * New translations clientserver.md (French) * New translations onafteredit.md (French) * New translations debugger.md (Spanish) * New translations building.md (Spanish) * New translations clientserver.md (Spanish) * New translations onafteredit.md (Spanish) * New translations debugger.md (Japanese) * New translations building.md (Japanese) * New translations clientserver.md (Japanese) * New translations onafteredit.md (Japanese) * New translations debugger.md (Portuguese, Brazilian) * New translations building.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (French) * New translations onclicked.md (French) * New translations onbegindragover.md (Spanish) * New translations onclicked.md (Spanish) * New translations onbegindragover.md (Japanese) * New translations onclicked.md (Japanese) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (French) * New translations ondragover.md (French) * New translations onheader.md (French) * New translations onheaderclick.md (French) * New translations ondisplaydetail.md (Spanish) * New translations ondragover.md (Spanish) * New translations onheader.md (Spanish) * New translations onheaderclick.md (Spanish) * New translations ondisplaydetail.md (Japanese) * New translations ondragover.md (Japanese) * New translations onheader.md (Japanese) * New translations onheaderclick.md (Japanese) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations classclass.md (Spanish) * New translations parameters.md (French) * New translations createstylesheet.md (Spanish) * New translations classclass.md (Spanish) * New translations basics.md (French) * New translations createstylesheet.md (Spanish) * New translations parameters.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * fix links * New Crowdin updates (#2877) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations vp-get-show-print-lines.md (French) * New translations vp-get-show-print-lines.md (Spanish) * New translations vp-get-show-print-lines.md (Japanese) * New translations vp-get-show-print-lines.md (Portuguese, Brazilian) * New translations vp-get-show-print-lines.md (French) * New translations vp-get-show-print-lines.md (Spanish) * New translations vp-get-show-print-lines.md (Japanese) * New translations vp-get-show-print-lines.md (Portuguese, Brazilian) * New translations vp-get-show-print-lines.md (French) * New translations vp-get-show-print-lines.md (Spanish) * New translations vp-get-show-print-lines.md (Japanese) * New translations vp-get-show-print-lines.md (Portuguese, Brazilian) * New Crowdin updates (#2878) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sdi.md (Japanese) * New translations debugger.md (Spanish) * New translations develop-components.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * update PDF Writer * fixed Chrome versions * New Crowdin updates (#2879) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations parameters.md (French) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations qodly-studio.md (French) * New translations process-activity.md (Spanish) * New translations process-number.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations dt_number.md (Spanish) * New translations http-request-handler.md (French) * New translations managing-formulas.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-table-append-row.md (French) * New translations wp-insert-document-body.md (French) * New translations openai.md (Japanese) * New translations dt_number.md (Spanish) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations compile-project.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations openaiembedding.md (Japanese) * New translations dt_number.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations openai.md (Japanese) * New translations openaiembedding.md (Japanese) * New translations compile-project.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations string.md (French) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) * uuids * Update updates.md * Update database.md * blog posts ref * New Crowdin updates (#2880) * New translations geninfo.md (French) * New translations ordaclasses.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations database.md (French) * New translations command-index.md (French) * New translations tcpeventclass.md (French) * New translations tools.md (French) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations clientserver.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-remove-table-columns.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations clientserver.md (French) * New translations updates.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-remove-table-columns.md (French) * New translations command-index.md (French) * New translations tools.md (French) * New translations database.md (French) * New translations string.md (French) * New translations generate-uuid.md (French) * New translations generate-uuid.md (French) * New translations database.md (Spanish) * New translations command-index.md (Spanish) * New translations super.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations license-info.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations tools.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations license-info.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations session-storage.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations super.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations updates.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * links blog posts * links * Explorer home for components (#2881) * fix links * Update managing-formulas.md * New Crowdin updates (#2883) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) … * Update homepageTiles.js * Update homepageTiles.js * Update version-20-R10-sidebars.json * Update version label from '20 R10 BETA' to '20 R10' * Change version label to '20 R10' Updated version label from '20 R10 BETA' to '20 R10'. * Update version label from '20 R10 BETA' to '20 R10' * Update version-20-R10.json * Update version-20-R10.json * Update version label from '20 R10 BETA' to '20 R10' * New Crowdin updates (#2866) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations combobox_overview.md (French) * New translations dropdownlist_overview.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations entityclass.md (French) * New translations websocketclass.md (French) * New translations createstylesheet.md (French) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New Crowdin updates (#2869) * New translations orda-events.md (Spanish) * New translations vectorclass.md (Spanish) * New translations vectorclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations web.md (Japanese) * New translations process-activity.md (Japanese) * New translations updates.md (Japanese) * New translations orda-events.md (Japanese) * New translations orda-events.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations authentication.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations process-activity.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations authentication.md (French) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations webserverconfig.md (French) * New translations web.md (French) * New translations process-activity.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations orda-events.md (French) * New translations create-deployment-license.md (French) * New translations debuglogfiles.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations create-deployment-license.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations web.md (Spanish) * New translations process-activity.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations updates.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations updates.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations authentication.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) * fixed links in command legacy * New Crowdin updates (#2871) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations listbox-set-property.md (French) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations string.md (Japanese) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations classes.md (French) * New translations components.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations classes.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations orda-events.md (French) * New translations vectorclass.md (French) * New translations vectorclass.md (French) * New translations websocketclass.md (French) * New translations classes.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations orda-events.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations listbox-set-property.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations process-activity.md (French) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations updates.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations string.md (Spanish) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations updates.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaierror.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Spanish) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations authentication.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations this.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations labels.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations labels.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations cli.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations formeditor.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations compile-project.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations num.md (Spanish) * New translations string.md (Spanish) * New Crowdin updates (#2873) * New translations wp-export-variable.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations wp-export-document.md (French) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New Crowdin updates (#2874) * New translations mandata.md (French) * New translations dataclassclass.md (French) * New translations mandata.md (French) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations $singleton.md (French) * New translations http-request-handler.md (French) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations wa-set-context.md (Spanish) * New translations string.md (Spanish) * New translations mandata.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Spanish) * New translations classes.md (Spanish) * New Crowdin updates (#2875) * New translations remotedatastores.md (French) * New translations updates.md (Spanish) * New translations global-stamp.md (Spanish) * New translations orda-events.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations updates.md (Japanese) * New translations global-stamp.md (Japanese) * New translations orda-events.md (Japanese) * New translations remotedatastores.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations code-overview.md (French) * New translations compiler.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations compiler.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations general.md (Japanese) * New translations methods.md (Japanese) * New translations architecture.md (Japanese) * New translations code-overview.md (Japanese) * New translations compiler.md (Japanese) * New translations components.md (Japanese) * New translations documentation.md (Japanese) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (Portuguese, Brazilian) * New translations compiler.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (French) * New translations $attributes.md (Spanish) * New translations $attributes.md (Japanese) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (French) * New translations $method.md (French) * New translations $lock.md (Spanish) * New translations $method.md (Spanish) * New translations $lock.md (Japanese) * New translations $method.md (Japanese) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations authusers.md (French) * New translations configuration.md (French) * New translations gettingstarted.md (French) * New translations classfunctions.md (Spanish) * New translations authusers.md (Spanish) * New translations configuration.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations classfunctions.md (Japanese) * New translations authusers.md (Japanese) * New translations configuration.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations configuration.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations handling_users_groups.md (French) * New translations overview.md (French) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations handling_users_groups.md (Japanese) * New translations overview.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-export-document.md (Japanese) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (French) * New translations vp-get-value.md (French) * New translations vp-import-document.md (French) * New translations vp-get-stylesheets.md (Spanish) * New translations vp-get-value.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-get-stylesheets.md (Japanese) * New translations vp-get-value.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-remove-table-rows.md (Spanish) * New translations vp-remove-table.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-remove-table-rows.md (Japanese) * New translations vp-remove-table.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-remove-table-rows.md (Portuguese, Brazilian) * New translations vp-remove-table.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-current-sheet.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-current-sheet.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations vp-set-current-sheet.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations vp-set-current-sheet.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations formulas.md (French) * New translations formulas.md (Spanish) * New translations getting-started.md (French) * New translations from-qodlyscript-to-4d.md (French) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations templates.md (French) * New translations getting-started.md (Spanish) * New translations from-qodlyscript-to-4d.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations templates.md (Spanish) * New translations formulas.md (Japanese) * New translations getting-started.md (Japanese) * New translations from-qodlyscript-to-4d.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations http-request-handler.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations templates.md (Japanese) * New translations formulas.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations webserverobject.md (French) * New translations wp-get-attributes.md (French) * New translations wp-insert-break.md (French) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations webserverobject.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webserverobject.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-table-append-row.md (French) * New translations writeprointerface.md (French) * New translations wp-insert-document-body.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations wp-insert-break.md (Japanese) * New translations wp-insert-document-body.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-table-append-row.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form.md (French) * New translations form-event.md (Spanish) * New translations form.md (Spanish) * New translations form-event.md (Japanese) * New translations form.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations formula-from-string.md (French) * New translations formula-from-string.md (Spanish) * New translations formula-from-string.md (Japanese) * New translations formula-from-string.md (Portuguese, Brazilian) * New translations new-shared-collection.md (French) * New translations object-get-data-source-formula.md (French) * New translations print-form.md (French) * New translations process-info.md (French) * New translations new-shared-collection.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations print-form.md (Spanish) * New translations process-info.md (Spanish) * New translations new-shared-collection.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations print-form.md (Japanese) * New translations process-info.md (Japanese) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (French) * New translations smtp-new-transporter.md (Spanish) * New translations smtp-new-transporter.md (Japanese) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations compatibility.md (French) * New translations database.md (French) * New translations interface.md (French) * New translations client-server.md (Spanish) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations interface.md (Spanish) * New translations client-server.md (Japanese) * New translations compatibility.md (Japanese) * New translations database.md (Japanese) * New translations interface.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (French) * New translations web.md (French) * New translations security.md (Spanish) * New translations web.md (Spanish) * New translations string.md (Spanish) * New translations security.md (Japanese) * New translations web.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New Crowdin updates (#2876) * New translations classclass.md (French) * New translations document.md (French) * New translations classclass.md (Spanish) * New translations document.md (Spanish) * New translations classclass.md (Japanese) * New translations document.md (Japanese) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (French) * New translations webformclass.md (French) * New translations smtptransporterclass.md (Spanish) * New translations webformclass.md (Spanish) * New translations smtptransporterclass.md (Japanese) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations websocketclass.md (French) * New translations websocketserverclass.md (French) * New translations websocketclass.md (Spanish) * New translations websocketserverclass.md (Spanish) * New translations webformclass.md (Japanese) * New translations websocketclass.md (Japanese) * New translations websocketserverclass.md (Japanese) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations tls.md (French) * New translations webadmin.md (French) * New translations backup.md (French) * New translations log.md (French) * New translations restore.md (French) * New translations settings.md (French) * New translations tls.md (Spanish) * New translations webadmin.md (Spanish) * New translations backup.md (Spanish) * New translations log.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations tls.md (Japanese) * New translations webadmin.md (Japanese) * New translations backup.md (Japanese) * New translations log.md (Japanese) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations tls.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations backup.md (Portuguese, Brazilian) * New translations log.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations operators.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations operators.md (Spanish) * New translations variables.md (Spanish) * New translations basics.md (Spanish) * New translations operators.md (Japanese) * New translations variables.md (Japanese) * New translations basics.md (Japanese) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations debugger.md (French) * New translations building.md (French) * New translations clientserver.md (French) * New translations onafteredit.md (French) * New translations debugger.md (Spanish) * New translations building.md (Spanish) * New translations clientserver.md (Spanish) * New translations onafteredit.md (Spanish) * New translations debugger.md (Japanese) * New translations building.md (Japanese) * New translations clientserver.md (Japanese) * New translations onafteredit.md (Japanese) * New translations debugger.md (Portuguese, Brazilian) * New translations building.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (French) * New translations onclicked.md (French) * New translations onbegindragover.md (Spanish) * New translations onclicked.md (Spanish) * New translations onbegindragover.md (Japanese) * New translations onclicked.md (Japanese) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (French) * New translations ondragover.md (French) * New translations onheader.md (French) * New translations onheaderclick.md (French) * New translations ondisplaydetail.md (Spanish) * New translations ondragover.md (Spanish) * New translations onheader.md (Spanish) * New translations onheaderclick.md (Spanish) * New translations ondisplaydetail.md (Japanese) * New translations ondragover.md (Japanese) * New translations onheader.md (Japanese) * New translations onheaderclick.md (Japanese) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations classclass.md (Spanish) * New translations parameters.md (French) * New translations createstylesheet.md (Spanish) * New translations classclass.md (Spanish) * New translations basics.md (French) * New translations createstylesheet.md (Spanish) * New translations parameters.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * fix links * New Crowdin updates (#2878) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sdi.md (Japanese) * New translations debugger.md (Spanish) * New translations develop-components.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New Crowdin updates (#2879) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations parameters.md (French) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations qodly-studio.md (French) * New translations process-activity.md (Spanish) * New translations process-number.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations dt_number.md (Spanish) * New translations http-request-handler.md (French) * New translations managing-formulas.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-table-append-row.md (French) * New translations wp-insert-document-body.md (French) * New translations openai.md (Japanese) * New translations dt_number.md (Spanish) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations compile-project.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations openaiembedding.md (Japanese) * New translations dt_number.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations openai.md (Japanese) * New translations openaiembedding.md (Japanese) * New translations compile-project.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations string.md (French) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) * blog posts ref * New Crowdin updates (#2880) * New translations geninfo.md (French) * New translations ordaclasses.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations database.md (French) * New translations command-index.md (French) * New translations tcpeventclass.md (French) * New translations tools.md (French) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations clientserver.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-remove-table-columns.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations clientserver.md (French) * New translations updates.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-remove-table-columns.md (French) * New translations command-index.md (French) * New translations tools.md (French) * New translations database.md (French) * New translations string.md (French) * New translations generate-uuid.md (French) * New translations generate-uuid.md (French) * New translations database.md (Spanish) * New translations command-index.md (Spanish) * New translations super.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations license-info.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations tools.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations license-info.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations session-storage.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations super.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations updates.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * fix links * New Crowdin updates (#2883) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations command-index.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations tools.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations tab-component.png (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * New Crowdin updates (#2885) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations restore.md (French) * New translations settings.md (French) * New translations dt_pointer.md (French) * New translations basics.md (French) * New translations clientserver.md (French) * New translations onbegindragover.md (French) * New translations ondisplaydetail.md (French) * New translations onheader.md (French) * New translations objectlibrary.md (French) * New translations properties_formsize.md (French) * New translations formobjects_overview.md (French) * New translations list_overview.md (French) * New translations properties_subform.md (French) * New translations stepper.md (French) * New translations analysis.md (French) * New translations repair.md (French) * New translations properties.md (French) * New translations updates.md (French) * New translations remotedatastores.md (French) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations $attributes.md (French) * New translations $method.md (French) * New translations authusers.md (French) * New translations gettingstarted.md (French) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-custom-functions.md (French) * New translations getting-started.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations dt_pointer.md (French) * New translations clientserver.md (French) * New translations dt_pointer.md (French) * New translations clientserver.md (French) * New translations webadmin.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations basics.md (Spanish) * New translations onbegindragover.md (Spanish) * New translations ondisplaydetail.md (Spanish) * New translations onheader.md (Spanish) * New translations objectlibrary.md (Spanish) * New translations properties_formsize.md (Spanish) * New translations formobjects_overview.md (Spanish) * New translations list_overview.md (Spanish) * New translations properties_subform.md (Spanish) * New translations stepper.md (Spanish) * New translations analysis.md (Spanish) * New translations repair.md (Spanish) * New translations properties.md (Spanish) * New translations updates.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations $attributes.md (Spanish) * New translations authusers.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations getting-started.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations form.md (Spanish) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations basics.md (Japanese) * New translations onbegindragover.md (Japanese) * New translations ondisplaydetail.md (Japanese) * New translations onheader.md (Japanese) * New translations objectlibrary.md (Japanese) * New translations properties_formsize.md (Japanese) * New translations formobjects_overview.md (Japanese) * New translations list_overview.md (Japanese) * New translations properties_subform.md (Japanese) * New translations stepper.md (Japanese) * New translations analysis.md (Japanese) * New translations repair.md (Japanese) * New translations properties.md (Japanese) * New translations updates.md (Japanese) * New translations authusers.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations getting-started.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New Crowdin updates (#2889) * New translations develop-components.md (French) * New translations develop-components.md (French) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Spanish) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Japanese) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations sdi.md (Spanish) * New translations sdi.md (Spanish) * New translations sdi.md (Spanish) * New translations updates.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations sdi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New Crowdin updates (#2866) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations emailobjectclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations combobox_overview.md (French) * New translations dropdownlist_overview.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations createstylesheet.md (French) * New translations cryptokeyclass.md (French) * New translations datastoreclass.md (French) * New translations emailobjectclass.md (French) * New translations entityclass.md (French) * New translations websocketclass.md (French) * New translations createstylesheet.md (French) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations sessionclass.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New Crowdin updates (#2869) * New translations orda-events.md (Spanish) * New translations vectorclass.md (Spanish) * New translations vectorclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations web.md (Japanese) * New translations process-activity.md (Japanese) * New translations updates.md (Japanese) * New translations orda-events.md (Japanese) * New translations orda-events.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations authentication.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations process-activity.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations authentication.md (French) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations webserverconfig.md (French) * New translations web.md (French) * New translations process-activity.md (French) * New translations debuglogfiles.md (French) * New translations updates.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations orda-events.md (French) * New translations create-deployment-license.md (French) * New translations debuglogfiles.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations $queryplan.md (French) * New translations geninfo.md (French) * New translations create-deployment-license.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations web.md (Spanish) * New translations process-activity.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations updates.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations form-event-code.md (Spanish) * New translations print-form.md (Spanish) * New translations updates.md (Japanese) * New translations ordaclasses.md (Japanese) * New translations authentication.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) * fixed links in command legacy * New Crowdin updates (#2871) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations listbox-set-property.md (French) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations string.md (Japanese) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations $catalog.md (Portuguese, Brazilian) * New translations geninfo.md (Portuguese, Brazilian) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations classes.md (French) * New translations components.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations classes.md (French) * New translations building.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations process-activity.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations orda-events.md (French) * New translations vectorclass.md (French) * New translations vectorclass.md (French) * New translations websocketclass.md (French) * New translations classes.md (French) * New translations data-types.md (French) * New translations building.md (French) * New translations orda-events.md (French) * New translations $catalog.md (French) * New translations geninfo.md (French) * New translations vp-set-cell-style.md (French) * New translations formulas.md (French) * New translations listbox-set-property.md (French) * New translations object-get-data-source-formula.md (French) * New translations object-set-data-source-formula.md (French) * New translations process-activity.md (French) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations updates.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations $catalog.md (Spanish) * New translations geninfo.md (Spanish) * New translations string.md (Spanish) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations updates.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations $catalog.md (Japanese) * New translations geninfo.md (Japanese) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations vp-export-document.md (French) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaierror.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Spanish) * New translations openaierror.md (Spanish) * New translations openairesult.md (Spanish) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-flush-commands.md (French) * New translations vp-get-frozen-panes.md (French) * New translations vp-import-document.md (French) * New translations vp-remove-name.md (French) * New translations vp-remove-sheet.md (French) * New translations vp-remove-span.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-set-workbook-options.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations authentication.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations this.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations labels.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations labels.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations cli.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations formeditor.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-import-from-blob.md (Spanish) * New translations vp-import-from-object.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-formula.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaivision.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations command-name.md (Spanish) * New translations compile-project.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations session-storage.md (Spanish) * New translations this.md (Spanish) * New translations wa-get-context.md (Spanish) * New translations num.md (Spanish) * New translations string.md (Spanish) * New Crowdin updates (#2873) * New translations wp-export-variable.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations vp-get-default-style.md (French) * New translations vp-get-formula.md (French) * New translations vp-get-formulas.md (French) * New translations vp-import-from-object.md (French) * New translations vp-print.md (French) * New translations vp-remove-stylesheet.md (French) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-resize-table.md (French) * New translations vp-set-print-info.md (French) * New translations wp-export-document.md (French) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichoice.md (Spanish) * New translations dialog.md (Spanish) * New Crowdin updates (#2874) * New translations mandata.md (French) * New translations dataclassclass.md (French) * New translations mandata.md (French) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations method-list.md (Japanese) * New translations method-list.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations $singleton.md (French) * New translations http-request-handler.md (French) * New translations dataclassclass.md (French) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations $savedorderby.md (French) * New translations $singleton.md (French) * New translations $skip.md (French) * New translations $timeout.md (French) * New translations $top_$limit.md (French) * New translations $upload.md (French) * New translations classfunctions.md (French) * New translations rest_requests.md (French) * New translations configuration.md (French) * New translations dataclass.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations wa-set-context.md (Spanish) * New translations string.md (Spanish) * New translations mandata.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Spanish) * New translations classes.md (Spanish) * New Crowdin updates (#2875) * New translations remotedatastores.md (French) * New translations updates.md (Spanish) * New translations global-stamp.md (Spanish) * New translations orda-events.md (Spanish) * New translations remotedatastores.md (Spanish) * New translations updates.md (Japanese) * New translations global-stamp.md (Japanese) * New translations orda-events.md (Japanese) * New translations remotedatastores.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (French) * New translations methods.md (French) * New translations architecture.md (French) * New translations code-overview.md (French) * New translations compiler.md (French) * New translations components.md (French) * New translations documentation.md (French) * New translations general.md (Spanish) * New translations methods.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations compiler.md (Spanish) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations general.md (Japanese) * New translations methods.md (Japanese) * New translations architecture.md (Japanese) * New translations code-overview.md (Japanese) * New translations compiler.md (Japanese) * New translations components.md (Japanese) * New translations documentation.md (Japanese) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (Portuguese, Brazilian) * New translations compiler.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (French) * New translations $attributes.md (Spanish) * New translations $attributes.md (Japanese) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (French) * New translations $method.md (French) * New translations $lock.md (Spanish) * New translations $method.md (Spanish) * New translations $lock.md (Japanese) * New translations $method.md (Japanese) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations authusers.md (French) * New translations configuration.md (French) * New translations gettingstarted.md (French) * New translations classfunctions.md (Spanish) * New translations authusers.md (Spanish) * New translations configuration.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations classfunctions.md (Japanese) * New translations authusers.md (Japanese) * New translations configuration.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations configuration.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (French) * New translations real-time-monitor.md (French) * New translations handling_users_groups.md (French) * New translations overview.md (French) * New translations processes.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations processes.md (Japanese) * New translations real-time-monitor.md (Japanese) * New translations handling_users_groups.md (Japanese) * New translations overview.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (French) * New translations vp-export-document.md (Spanish) * New translations vp-export-document.md (Japanese) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (French) * New translations vp-get-value.md (French) * New translations vp-import-document.md (French) * New translations vp-get-stylesheets.md (Spanish) * New translations vp-get-value.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations vp-get-stylesheets.md (Japanese) * New translations vp-get-value.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-remove-table-rows.md (Spanish) * New translations vp-remove-table.md (Spanish) * New translations vp-resize-table.md (Spanish) * New translations vp-remove-table-rows.md (Japanese) * New translations vp-remove-table.md (Japanese) * New translations vp-resize-table.md (Japanese) * New translations vp-remove-table-rows.md (Portuguese, Brazilian) * New translations vp-remove-table.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations vp-set-current-sheet.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-current-sheet.md (Spanish) * New translations vp-set-custom-functions.md (Spanish) * New translations vp-set-current-sheet.md (Japanese) * New translations vp-set-custom-functions.md (Japanese) * New translations vp-set-current-sheet.md (Portuguese, Brazilian) * New translations vp-set-custom-functions.md (Portuguese, Brazilian) * New translations formulas.md (French) * New translations formulas.md (Spanish) * New translations getting-started.md (French) * New translations from-qodlyscript-to-4d.md (French) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations templates.md (French) * New translations getting-started.md (Spanish) * New translations from-qodlyscript-to-4d.md (Spanish) * New translations gettingstarted.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations preemptiveweb.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations templates.md (Spanish) * New translations formulas.md (Japanese) * New translations getting-started.md (Japanese) * New translations from-qodlyscript-to-4d.md (Japanese) * New translations gettingstarted.md (Japanese) * New translations http-request-handler.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations templates.md (Japanese) * New translations formulas.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (French) * New translations webserverconfig.md (French) * New translations webserverobject.md (French) * New translations wp-get-attributes.md (French) * New translations wp-insert-break.md (French) * New translations webserveradmin.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations webserverobject.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations webserveradmin.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations webserverobject.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-table-append-row.md (French) * New translations writeprointerface.md (French) * New translations wp-insert-document-body.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations writeprointerface.md (Spanish) * New translations wp-insert-break.md (Japanese) * New translations wp-insert-document-body.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-table-append-row.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form.md (French) * New translations form-event.md (Spanish) * New translations form.md (Spanish) * New translations form-event.md (Japanese) * New translations form.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations formula-from-string.md (French) * New translations formula-from-string.md (Spanish) * New translations formula-from-string.md (Japanese) * New translations formula-from-string.md (Portuguese, Brazilian) * New translations new-shared-collection.md (French) * New translations object-get-data-source-formula.md (French) * New translations print-form.md (French) * New translations process-info.md (French) * New translations new-shared-collection.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations print-form.md (Spanish) * New translations process-info.md (Spanish) * New translations new-shared-collection.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations print-form.md (Japanese) * New translations process-info.md (Japanese) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations smtp-new-transporter.md (French) * New translations smtp-new-transporter.md (Spanish) * New translations smtp-new-transporter.md (Japanese) * New translations smtp-new-transporter.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations compatibility.md (French) * New translations database.md (French) * New translations interface.md (French) * New translations client-server.md (Spanish) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations interface.md (Spanish) * New translations client-server.md (Japanese) * New translations compatibility.md (Japanese) * New translations database.md (Japanese) * New translations interface.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (French) * New translations web.md (French) * New translations security.md (Spanish) * New translations web.md (Spanish) * New translations string.md (Spanish) * New translations security.md (Japanese) * New translations web.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New Crowdin updates (#2876) * New translations classclass.md (French) * New translations document.md (French) * New translations classclass.md (Spanish) * New translations document.md (Spanish) * New translations classclass.md (Japanese) * New translations document.md (Japanese) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (French) * New translations webformclass.md (French) * New translations smtptransporterclass.md (Spanish) * New translations webformclass.md (Spanish) * New translations smtptransporterclass.md (Japanese) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations websocketclass.md (French) * New translations websocketserverclass.md (French) * New translations websocketclass.md (Spanish) * New translations websocketserverclass.md (Spanish) * New translations webformclass.md (Japanese) * New translations websocketclass.md (Japanese) * New translations websocketserverclass.md (Japanese) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations tls.md (French) * New translations webadmin.md (French) * New translations backup.md (French) * New translations log.md (French) * New translations restore.md (French) * New translations settings.md (French) * New translations tls.md (Spanish) * New translations webadmin.md (Spanish) * New translations backup.md (Spanish) * New translations log.md (Spanish) * New translations restore.md (Spanish) * New translations settings.md (Spanish) * New translations tls.md (Japanese) * New translations webadmin.md (Japanese) * New translations backup.md (Japanese) * New translations log.md (Japanese) * New translations restore.md (Japanese) * New translations settings.md (Japanese) * New translations tls.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations backup.md (Portuguese, Brazilian) * New translations log.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations operators.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations operators.md (Spanish) * New translations variables.md (Spanish) * New translations basics.md (Spanish) * New translations operators.md (Japanese) * New translations variables.md (Japanese) * New translations basics.md (Japanese) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations debugger.md (French) * New translations building.md (French) * New translations clientserver.md (French) * New translations onafteredit.md (French) * New translations debugger.md (Spanish) * New translations building.md (Spanish) * New translations clientserver.md (Spanish) * New translations onafteredit.md (Spanish) * New translations debugger.md (Japanese) * New translations building.md (Japanese) * New translations clientserver.md (Japanese) * New translations onafteredit.md (Japanese) * New translations debugger.md (Portuguese, Brazilian) * New translations building.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (French) * New translations onclicked.md (French) * New translations onbegindragover.md (Spanish) * New translations onclicked.md (Spanish) * New translations onbegindragover.md (Japanese) * New translations onclicked.md (Japanese) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (French) * New translations ondragover.md (French) * New translations onheader.md (French) * New translations onheaderclick.md (French) * New translations ondisplaydetail.md (Spanish) * New translations ondragover.md (Spanish) * New translations onheader.md (Spanish) * New translations onheaderclick.md (Spanish) * New translations ondisplaydetail.md (Japanese) * New translations ondragover.md (Japanese) * New translations onheader.md (Japanese) * New translations onheaderclick.md (Japanese) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations error-handling.md (French) * New translations flow-control.md (French) * New translations identifiers.md (French) * New translations methods.md (French) * New translations parameters.md (French) * New translations shared.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations classclass.md (Spanish) * New translations parameters.md (French) * New translations createstylesheet.md (Spanish) * New translations classclass.md (Spanish) * New translations basics.md (French) * New translations createstylesheet.md (Spanish) * New translations parameters.md (French) * New translations variables.md (French) * New translations basics.md (French) * New translations breakpoints.md (French) * New translations debugger.md (French) * New translations debugging-remote.md (French) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations $catalog.md (Spanish) * New translations classfunctions.md (Spanish) * New translations configuration.md (Spanish) * New translations http-request-handler.md (Spanish) * fix links * New Crowdin updates (#2878) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sdi.md (Japanese) * New translations debugger.md (Spanish) * New translations develop-components.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations super.md (Spanish) * New translations this.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations debugger.md (Spanish) * New translations configuration.md (Spanish) * New translations geninfo.md (Spanish) * New translations real-time-monitor.md (Spanish) * New translations transformation-tags.md (Spanish) * New translations overview.md (Spanish) * New translations vp-add-sheet.md (Spanish) * New translations vp-create-table.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations qodly-studio.md (Spanish) * New translations sessions.md (Spanish) * New translations wp-export-variable.md (Spanish) * New Crowdin updates (#2879) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations parameters.md (French) * New translations createstylesheet.md (Japanese) * New translations geninfo.md (Japanese) * New translations method-list.md (French) * New translations method-list.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations qodly-studio.md (French) * New translations process-activity.md (Spanish) * New translations process-number.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations dt_number.md (Spanish) * New translations http-request-handler.md (French) * New translations managing-formulas.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-table-append-row.md (French) * New translations wp-insert-document-body.md (French) * New translations openai.md (Japanese) * New translations dt_number.md (Spanish) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations compile-project.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations openaiembedding.md (Japanese) * New translations dt_number.md (Spanish) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-get-names.md (French) * New translations vp-get-row-count.md (French) * New translations vp-import-from-blob.md (French) * New translations vp-import-from-object.md (French) * New translations vp-insert-table-rows.md (French) * New translations vp-move-cells.md (French) * New translations vp-name.md (French) * New translations vp-new-document.md (French) * New translations vp-paste-from-object.md (French) * New translations vp-recompute-formulas.md (French) * New translations vp-remove-table-rows.md (French) * New translations vp-remove-table.md (French) * New translations vp-resize-table.md (French) * New translations vp-resume-computing.md (French) * New translations vp-row-autofit.md (French) * New translations vp-row.md (French) * New translations vp-set-active-cell.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-data-context.md (French) * New translations vp-set-default-style.md (French) * New translations vp-set-field.md (French) * New translations vp-set-formula.md (French) * New translations vp-set-formulas.md (French) * New translations vp-set-frozen-panes.md (French) * New translations vp-set-print-info.md (French) * New translations vp-set-row-attributes.md (French) * New translations vp-set-row-count.md (French) * New translations vp-set-sheet-count.md (French) * New translations vp-set-show-print-lines.md (French) * New translations vp-set-table-column-attributes.md (French) * New translations formulas.md (French) * New translations http-request-handler.md (French) * New translations qodly-studio.md (French) * New translations wp-get-attributes.md (French) * New translations wp-import-document.md (French) * New translations wp-insert-document-body.md (French) * New translations wp-table-append-row.md (French) * New translations managing-formulas.md (French) * New translations openai.md (Japanese) * New translations openaiembedding.md (Japanese) * New translations compile-project.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations license-info.md (Spanish) * New translations process-activity.md (Spanish) * New translations session-info.md (Spanish) * New translations set-window-document-icon.md (Spanish) * New translations string.md (French) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) * New Crowdin updates (#2880) * New translations geninfo.md (French) * New translations ordaclasses.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations ordaclasses.md (French) * New translations geninfo.md (French) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations mandata.md (French) * New translations mandata.md (Spanish) * New translations mandata.md (Japanese) * New translations mandata.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (French) * New translations vp-remove-table-columns.md (Spanish) * New translations vp-remove-table-columns.md (Japanese) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations database.md (French) * New translations command-index.md (French) * New translations tcpeventclass.md (French) * New translations tools.md (French) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations clientserver.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-get-column-attributes.md (French) * New translations vp-get-formula-by-name.md (French) * New translations vp-remove-table-columns.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations clientserver.md (French) * New translations updates.md (French) * New translations mandata.md (French) * New translations vp-find.md (French) * New translations vp-remove-table-columns.md (French) * New translations command-index.md (French) * New translations tools.md (French) * New translations database.md (French) * New translations string.md (French) * New translations generate-uuid.md (French) * New translations generate-uuid.md (French) * New translations database.md (Spanish) * New translations command-index.md (Spanish) * New translations super.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations license-info.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations session-storage.md (Spanish) * New translations compile-project.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations tools.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New translations form-event-code.md (Spanish) * New translations form.md (Spanish) * New translations license-info.md (Spanish) * New translations new-collection.md (Spanish) * New translations new-shared-collection.md (Spanish) * New translations session-storage.md (Spanish) * New translations set-allowed-methods.md (Spanish) * New translations super.md (Spanish) * New translations create-deployment-license.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations udpeventclass.md (Spanish) * New translations clientserver.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations updates.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-find.md (Spanish) * New translations vp-remove-table-columns.md (Spanish) * New Crowdin updates (#2883) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations develop-components.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations classclass.md (Portuguese, Brazilian) * New translations document.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations smtptransporterclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations udpeventclass.md (Portuguese, Brazilian) * New translations webformclass.md (Portuguese, Brazilian) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketserverclass.md (Portuguese, Brazilian) * New translations webadmin.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations settings.md (Portuguese, Brazilian) * New translations operators.md (Portuguese, Brazilian) * New translations variables.md (Portuguese, Brazilian) * New translations basics.md (Portuguese, Brazilian) * New translations clientserver.md (Portuguese, Brazilian) * New translations onafteredit.md (Portuguese, Brazilian) * New translations onbegindragover.md (Portuguese, Brazilian) * New translations onclicked.md (Portuguese, Brazilian) * New translations ondisplaydetail.md (Portuguese, Brazilian) * New translations ondragover.md (Portuguese, Brazilian) * New translations onheader.md (Portuguese, Brazilian) * New translations onheaderclick.md (Portuguese, Brazilian) * New translations forms.md (Portuguese, Brazilian) * New translations macros.md (Portuguese, Brazilian) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_formsize.md (Portuguese, Brazilian) * New translations formobjects_overview.md (Portuguese, Brazilian) * New translations input_overview.md (Portuguese, Brazilian) * New translations list_overview.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations shapes_overview.md (Portuguese, Brazilian) * New translations splitters.md (Portuguese, Brazilian) * New translations stepper.md (Portuguese, Brazilian) * New translations subform_overview.md (Portuguese, Brazilian) * New translations tabcontrol.md (Portuguese, Brazilian) * New translations text.md (Portuguese, Brazilian) * New translations analysis.md (Portuguese, Brazilian) * New translations repair.md (Portuguese, Brazilian) * New translations properties.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations global-stamp.md (Portuguese, Brazilian) * New translations orda-events.md (Portuguese, Brazilian) * New translations remotedatastores.md (Portuguese, Brazilian) * New translations general.md (Portuguese, Brazilian) * New translations methods.md (Portuguese, Brazilian) * New translations architecture.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (Portuguese, Brazilian) * New translations $attributes.md (Portuguese, Brazilian) * New translations $lock.md (Portuguese, Brazilian) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (Portuguese, Brazilian) * New translations authusers.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations mandata.md (Portuguese, Brazilian) * New translations processes.md (Portuguese, Brazilian) * New translations real-time-monitor.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations vp-export-document.md (Portuguese, Brazilian) * New translations vp-find.md (Portuguese, Brazilian) * New translations vp-get-stylesheets.md (Portuguese, Brazilian) * New translations vp-get-value.md (Portuguese, Brazilian) * New translations vp-import-document.md (Portuguese, Brazilian) * New translations vp-remove-table-columns.md (Portuguese, Brazilian) * New translations vp-resize-table.md (Portuguese, Brazilian) * New translations getting-started.md (Portuguese, Brazilian) * New translations from-qodlyscript-to-4d.md (Portuguese, Brazilian) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations preemptiveweb.md (Portuguese, Brazilian) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations templates.md (Portuguese, Brazilian) * New translations webserveradmin.md (Portuguese, Brazilian) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-document-body.md (Portuguese, Brazilian) * New translations writeprointerface.md (Portuguese, Brazilian) * New translations command-index.md (Portuguese, Brazilian) * New translations form-event.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Portuguese, Brazilian) * New translations print-form.md (Portuguese, Brazilian) * New translations process-info.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations tools.md (Portuguese, Brazilian) * New translations client-server.md (Portuguese, Brazilian) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations interface.md (Portuguese, Brazilian) * New translations security.md (Portuguese, Brazilian) * New translations web.md (Portuguese, Brazilian) * New translations tab-component.png (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * New translations generate-uuid.md (Portuguese, Brazilian) * Revert "Merge branch 'tempo2'" This reverts commit 67d833a82025aec3a45f3da8325d14b46bb37247, reversing changes made to ba2aad937673a1d5bf69fbbf489d43a058f27d47. * Reapply "Merge branch 'tempo2'" This reverts commit 97265662bbc3f82dac357affcf7decc64bc068b1. * fixes * New Crowdin updates (#2893) * New translations sessionclass.md (French) * New translations updates.md (French) * New translations privileges.md (French) * New translations sessionclass.md (French) * New translations updates.md (French) * New translations privileges.md (French) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations privileges.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations sessionclass.md (Spanish) * New translations sdi.md (Spanish) * New translations updates.md (Spanish) * New translations privileges.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesparameters.md (Spanish) * New translations openaichatcompletionsstreamresult.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations classclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations sessionclass.md (French) * New translations sessionclass.md (Japanese) * New translations updates.md (Japanese) * New translations privileges.md (Japanese) * New translations openaimessage.md (Japanese) * New translations classclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations openaiembeddingsresult.md (Japanese) * New translations classclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (French) * New translations updates.md (Japanese) * New translations privileges.md (Japanese) * New translations openaiembeddingsresult.md (Japanese) * New translations openaimessage.md (Japanese) * New translations sdi.md (Portuguese, Brazilian) * New translations sdi.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Spanish) * New translations sdi.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations privileges.md (Portuguese, Brazilian) * New translations sdi.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Spanish) * New translations sdi.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations privileges.md (Portuguese, Brazilian) * New Crowdin updates (#2897) * New translations updates.md (French) * New translations webserver.md (French) * New translations outgoingmessageclass.md (French) * New translations outgoingmessageclass.md (French) * New translations outgoingmessageclass.md (French) * New translations updates.md (Spanish) * New translations sessions.md (Spanish) * New translations webserver.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations sessions.md (Spanish) * New translations outgoingmessageclass.md (Spanish) * New translations entities.md (Spanish) * New translations onwindowopeningdenied.md (Japanese) * New translations updates.md (Japanese) * New translations webserver.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations onwindowopeningdenied.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations onwindowopeningdenied.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations webserver.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New translations outgoingmessageclass.md (Portuguese, Brazilian) * New Crowdin updates (#2899) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations fileclass.md (Japanese) * New translations imaptransporterclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations compile-project.md (Japanese) * New translations dialog.md (Japanese) * New translations form-edit.md (Japanese) * New translations form-event.md (Japanese) * New translations form-load.md (Japanese) * New translations new-collection.md (Japanese) * New translations process-activity.md (Japanese) * New translations process-number.md (Japanese) * New translations session-storage.md (Japanese) * New translations entityclass.md (Japanese) * New translations imaptransporterclass.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations tcpconnectionclass.md (Japanese) * New translations compile-project.md (Japanese) * New translations dialog.md (Japanese) * New translations form-edit.md (Japanese) * New translations form-event.md (Japanese) * New translations form-load.md (Japanese) * New translations new-collection.md (Japanese) * New translations process-activity.md (Japanese) * New translations process-number.md (Japanese) * New translations session-storage.md (Japanese) * New translations error-handling.md (Japanese) * New translations button_overview.md (Japanese) * New translations button_overview.md (Japanese) * updated see alsos * New Crowdin updates (#2900) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations dataclassclass.md (French) * New translations sessionclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations updates.md (French) * New translations $filter.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations sessions.md (French) * New translations session.md (French) * New translations tcpeventclass.md (French) * New translations outgoingmessageclass.md (French) * New translations openaichatcompletionsapi.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations outgoingmessageclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations udpeventclass.md (French) * New translations outgoingmessageclass.md (French) * New translations sessionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations createstylesheet.md (French) * New translations objectlibrary.md (French) * New translations pictures.md (French) * New translations properties_action.md (French) * New translations properties_formproperties.md (French) * New translations bars.md (French) * New translations sdi.md (French) * New translations vp-export-to-blob.md (French) * New translations vp-import-document.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-allowed-methods.md (French) * New translations vp-set-custom-functions.md (French) * New translations vp-set-value.md (French) * New translations formulas.md (French) * New translations sessions.md (French) * New translations session.md (French) * New translations dataclassclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations $filter.md (Spanish) * New translations sessions.md (Spanish) * New translations session.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations object-set-data-source-formula.md (Spanish) * New translations sessionclass.md (Spanish) * New translations updates.md (Spanish) * New translations sessions.md (Spanish) * New translations session.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations updates.md (Japanese) * New translations $filter.md (Japanese) * New translations configuring.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations sessions.md (Japanese) * New translations session.md (Japanese) * New translations outgoingmessageclass.md (Japanese) * New translations openaichatcompletionsapi.md (Japanese) * New translations openaiparameters.md (Japanese) * New translations asynchronous-call.md (Japanese) * New translations checkbox_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_datasource.md (Japanese) * New translations properties_text.md (Japanese) * New translations radio_overview.md (Japanese) * New translations updates.md (Japanese) * New translations components.md (Japanese) * New translations date-time-formats.md (Japanese) * New translations $method.md (Japanese) * New translations vp-export-to-blob.md (Japanese) * New translations configuring.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations sessionclass.md (Japanese) * New translations error-handling.md (Japanese) * New translations checkbox_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations properties_text.md (Japanese) * New translations radio_overview.md (Japanese) * New translations components.md (Japanese) * New translations date-time-formats.md (Japanese) * New translations $method.md (Japanese) * New translations vp-export-to-blob.md (Japanese) * New translations configuring.md (Japanese) * New translations preemptiveweb.md (Japanese) * New translations qodly-studio.md (Japanese) * New translations sessions.md (Japanese) * New translations webserverconfig.md (Japanese) * New translations wp-add-picture.md (Japanese) * New translations session.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations updates.md (Portuguese, Brazilian) * New translations $filter.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations openaichatcompletionsapi.md (Portuguese, Brazilian) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations asynchronous-call.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations sessions.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New Crowdin updates (#2906) * New translations architecture.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations process-activity.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations session.md (Japanese) * New translations clientserver.md (Japanese) * New translations develop-components.md (Japanese) * New translations session.md (Japanese) * New translations string.md (Japanese) * New translations generate-uuid.md (Japanese) * New translations generate-uuid.md (Japanese) * sidebar & title * fixes call can * New Crowdin updates (#2924) * New translations wp-add-picture.md (Spanish) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations create-deployment-license.md (French) * New translations create-deployment-license.md (Spanish) * New translations create-deployment-license.md (Japanese) * New translations create-deployment-license.md (Portuguese, Brazilian) * New translations database.md (French) * New translations string.md (French) * New translations pict2584929.en.png (French) * New translations pict2584929.en.png (Spanish) * New translations pict2584929.en.png (Japanese) * New translations pict2584929.en.png (Portuguese, Brazilian) * New translations pict2584938.en.png (French) * New translations pict2584938.en.png (Spanish) * New translations pict2584938.en.png (Japanese) * New translations pict2584938.en.png (Portuguese, Brazilian) * New translations pict2646292.en.png (Spanish) * New translations pict2646294.en.png (Spanish) * New translations pict2994900.en.png (French) * New translations pict2994900.en.png (Spanish) * New translations pict2994900.en.png (Portuguese, Brazilian) * New translations pict2994904.en.png (French) * New translations pict2994904.en.png (Spanish) * New translations pict2994904.en.png (Portuguese, Brazilian) * New translations pict2994907.en.png (French) * New translations pict2994907.en.png (Spanish) * New translations pict2994907.en.png (Portuguese, Brazilian) * New translations pict2994910.en.png (French) * New translations pict2994910.en.png (Spanish) * New translations pict2994910.en.png (Portuguese, Brazilian) * New translations pict2994913.en.png (French) * New translations pict2994913.en.png (Spanish) * New translations pict2994913.en.png (Portuguese, Brazilian) * New translations pict2994942.en.png (French) * New translations pict2994942.en.png (Spanish) * New translations pict2994942.en.png (Portuguese, Brazilian) * New translations pict2994945.en.png (French) * New translations pict2994945.en.png (Spanish) * New translations pict2994945.en.png (Portuguese, Brazilian) * New translations pict2994956.en.png (French) * New translations pict2994956.en.png (Spanish) * New translations pict2994956.en.png (Portuguese, Brazilian) * New translations pict2994958.en.png (French) * New translations pict2994958.en.png (Spanish) * New translations pict2994958.en.png (Portuguese, Brazilian) * New translations pict2994965.en.png (French) * New translations pict2994965.en.png (Spanish) * New translations pict2994965.en.png (Portuguese, Brazilian) * New translations pict2995027.en.png (French) * New translations pict2995027.en.png (Spanish) * New translations pict2995027.en.png (Portuguese, Brazilian) * New translations pict3033006.en.png (Spanish) * New translations pict3033006.en.png (Portuguese, Brazilian) * New translations pict3033008.en.png (Spanish) * New translations pict3033008.en.png (Portuguese, Brazilian) * New translations pict3053372.en.png (French) * New translations pict3053372.en.png (Spanish) * New translations pict3053372.en.png (Japanese) * New translations pict3053372.en.png (Portuguese, Brazilian) * New translations pict3071271.en.png (Spanish) * New translations pict3307937.en.png (Spanish) * New translations pict3307937.en.png (Portuguese, Brazilian) * New translations pict3307941.en.png (Spanish) * New translations pict3307941.en.png (Portuguese, Brazilian) * New translations pict3308424.en.png (Spanish) * New translations pict3513503.en.png (Spanish) * New translations pict3513503.en.png (Portuguese, Brazilian) * New translations pict3513505.en.png (Spanish) * New translations pict3514201.en.png (French) * New translations pict3514201.en.png (Spanish) * New translations pict3514201.en.png (Portuguese, Brazilian) * New translations pict3541581.en.png (Spanish) * New translations pict3541581.en.png (Portuguese, Brazilian) * New translations pict3626363.en.png (French) * New translations pict3626363.en.png (Spanish) * New translations pict3626363.en.png (Portuguese, Brazilian) * New translations pict3751849.en.png (French) * New translations pict3751849.en.png (Spanish) * New translations pict3751849.en.png (Portuguese, Brazilian) * New translations pict3752166.en.png (Spanish) * New translations pict3752176.en.png (Spanish) * New translations pict3893246.en.png (Spanish) * New translations pict3893246.en.png (Portuguese, Brazilian) * New translations pict3893248.en.png (Spanish) * New translations pict3893248.en.png (Portuguese, Brazilian) * New translations pict4101161.en.png (French) * New translations pict4101161.en.png (Spanish) * New translations pict4101161.en.png (Portuguese, Brazilian) * New translations pict4101210.en.png (French) * New translations pict4101210.en.png (Spanish) * New translations pict4101210.en.png (Portuguese, Brazilian) * New translations pict4101242.en.png (French) * New translations pict4101242.en.png (Spanish) * New translations pict4101242.en.png (Portuguese, Brazilian) * New translations pict4101252.en.png (French) * New translations pict4101252.en.png (Spanish) * New translations pict4101252.en.png (Japanese) * New translations pict4101252.en.png (Portuguese, Brazilian) * New translations pict4101267.en.png (French) * New translations pict4101267.en.png (Spanish) * New translations pict4101267.en.png (Portuguese, Brazilian) * New translations pict4619596.en.png (Spanish) * New translations pict4619694.en.png (French) * New translations pict4619694.en.png (Spanish) * New translations pict4619865.en.png (French) * New translations pict4619865.en.png (Spanish) * New translations pict4687892.en.png (French) * New translations pict4687892.en.png (Spanish) * New translations pict4687892.en.png (Portuguese, Brazilian) * New translations pict5562054.en.png (Spanish) * New translations pict5562054.en.png (Portuguese, Brazilian) * New translations pict5562058.en.png (Spanish) * New translations pict5562058.en.png (Portuguese, Brazilian) * New translations pict5761667.en.png (French) * New translations pict5761667.en.png (Spanish) * New translations pict5761669.en.png (French) * New translations pict5761669.en.png (Spanish) * New translations pict5761671.en.png (French) * New translations pict5761671.en.png (Spanish) * New translations pict5761673.en.png (French) * New translations pict5761673.en.png (Spanish) * New translations pict5761673.en.png (Portuguese, Brazilian) * New translations pict5761675.en.png (French) * New translations pict5761675.en.png (Spanish) * New translations pict5761677.en.png (French) * New translations pict5761677.en.png (Spanish) * New translations pict5859437.en.png (Spanish) * New translations pict5859437.en.png (Portuguese, Brazilian) * New translations pict5907013.en.png (Portuguese, Brazilian) * New translations pict5907021.en.png (Spanish) * New translations pict5907021.en.png (Portuguese, Brazilian) * New translations pict5907023.en.png (Spanish) * New translations pict5907023.en.png (Portuguese, Brazilian) * New translations pict5907026.en.png (Spanish) * New translations pict5907026.en.png (Portuguese, Brazilian) * New translations pict5907030.en.png (Spanish) * New translations pict5907030.en.png (Portuguese, Brazilian) * New translations pict5941073.en.png (French) * New translations pict5941073.en.png (Spanish) * New translations pict5941073.en.png (Portuguese, Brazilian) * New translations pict6014414.en.png (Spanish) * New translations pict6014414.en.png (Portuguese, Brazilian) * New translations pict6014426.en.png (Spanish) * New translations pict6014426.en.png (Portuguese, Brazilian) * New translations pict6014429.en.png (Spanish) * New translations pict6014429.en.png (Portuguese, Brazilian) * New translations pict6022144.en.png (Spanish) * New translations pict6022144.en.png (Portuguese, Brazilian) * New translations pict6131919.en.png (Spanish) * New translations pict6131919.en.png (Portuguese, Brazilian) * New translations pict6236360.en.png (Spanish) * New translations pict6236360.en.png (Portuguese, Brazilian) * New translations pict6260026.en.png (Spanish) * New translations pict6260026.en.png (Portuguese, Brazilian) * New translations pict6260033.en.png (Spanish) * New translations pict6260033.en.png (Portuguese, Brazilian) * New translations pict6260036.en.png (Spanish) * New translations pict6260036.en.png (Portuguese, Brazilian) * New translations pict6421031.en.png (Spanish) * New translations pict6421031.en.png (Portuguese, Brazilian) * New translations pict6421340.en.png (Spanish) * New translations pict6421340.en.png (Portuguese, Brazilian) * New translations pict6421342.en.png (Spanish) * New translations pict6421342.en.png (Portuguese, Brazilian) * New translations pict6421344.en.png (Spanish) * New translations pict6421344.en.png (Portuguese, Brazilian) * New translations pict6421356.en.png (Spanish) * New translations pict6421356.en.png (Portuguese, Brazilian) * New translations pict6434575.en.png (Spanish) * New translations pict6434579.en.png (Spanish) * New translations pict6434579.en.png (Portuguese, Brazilian) * New translations pict6434721.en.png (Spanish) * New translations pict6434721.en.png (Portuguese, Brazilian) * New translations pict6434723.en.png (Spanish) * New translations pict6434723.en.png (Portuguese, Brazilian) * New translations pict6434756.en.png (Spanish) * New translations pict6441966.en.png (French) * New translations pict6441966.en.png (Spanish) * New translations pict6441966.en.png (Portuguese, Brazilian) * New translations pict6013182.en.png (Spanish) * New translations pict6013182.en.png (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations code.json (French) * New translations current.json (French) * New translations code.json (Spanish) * New translations current.json (Spanish) * New translations code.json (Japanese) * New translations current.json (Japanese) * New translations code.json (Portuguese, Brazilian) * New translations current.json (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations httprequestclass.md (French) * New translations sessionclass.md (French) * New translations data-collect.md (French) * New translations dt_boolean.md (French) * New translations updates.md (Spanish) * New translations $filter.md (French) * New translations database.md (French) * New translations httpagentclass.md (French) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaiparameters.md (French) * New translations collectionclass.md (French) * New translations openaiparameters.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations database.md (French) * New translations create-deployment-license.md (French) * New translations version-20-r10.json (French) * New translations dataclassclass.md (French) * New translations version-20-r10.json (Spanish) * New translations dataclassclass.md (Spanish) * New translations version-20-r10.json (Japanese) * New translations dataclassclass.md (Japanese) * New translations version-20-r10.json (Portuguese, Brazilian) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations sessionclass.md (French) * New translations cli.md (Spanish) * New translations updates.md (Spanish) * New translations wp-add-picture.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations wp-insert-picture.md (Spanish) * links to 4DWP Attributes * Update code.json * slugs * added wk container and info about bookmarks * fix container * New Crowdin updates (#2925) * New translations code.json (French) * New translations current.json (French) * New translations code.json (Spanish) * New translations code.json (Japanese) * New translations code.json (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations data-collect.md (Japanese) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-run-offscreen-area.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (French) * New translations wp-get-attributes.md (French) * New translations wp-set-attributes.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-set-attributes.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations openaiparameters.md (French) * New translations openaiparameters.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations openaiparameters.md (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations overview.md (French) * New translations vp-find.md (French) * New translations vp-run-offscreen-area.md (French) * New translations wp-get-attributes.md (French) * New translations wp-get-attributes.md (Spanish) * New translations wp-get-attributes.md (Japanese) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations entityclass.md (French) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-move-cells.md (French) * New translations vp-run-offscreen-area.md (French) * New translations vp-set-workbook-options.md (French) * New translations wp-get-attributes.md (French) * New translations wp-get-attributes.md (Spanish) * New translations wp-get-attributes.md (Japanese) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * Update log-event.md (#2923) * Update post-outside-call.md (#2922) * Update post-key.md (#2921) * Update delay-process.md (#2920) * Update open-database.md (#2919) * properties * added links and ids * Feature/create component from host (#2927) * first draft * screenshots updated * new Creating components part added * release note added * Update develop-components.md * Arnaud's feedback * Update develop-components.md * note updated * Update develop-components.md * Update develop-components.md * after-closure * New Crowdin updates (#2926) * New translations listbox_overview.md (French) * New translations listbox_overview.md (French) * New translations listbox_overview.md (French) * New Crowdin updates (#2928) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_object.md (French) * New translations properties_object.md (Spanish) * New translations properties_object.md (Japanese) * New translations properties_object.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Spanish) * New translations creating.md (Japanese) * New translations creating.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations dt_object.md (French) * New translations dt_object.md (Spanish) * New translations dt_object.md (Japanese) * New translations dt_object.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseenter.md (Spanish) * New translations onmouseenter.md (Japanese) * New translations onmouseenter.md (Portuguese, Brazilian) * New translations onmouseleave.md (French) * New translations onmouseleave.md (Spanish) * New translations onmouseleave.md (Japanese) * New translations onmouseleave.md (Portuguese, Brazilian) * New translations onmousemove.md (French) * New translations onmousemove.md (Spanish) * New translations onmousemove.md (Japanese) * New translations onmousemove.md (Portuguese, Brazilian) * New translations onscroll.md (French) * New translations onscroll.md (Spanish) * New translations onscroll.md (Japanese) * New translations onscroll.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_backgroundandborder.md (French) * New translations properties_backgroundandborder.md (Spanish) * New translations properties_backgroundandborder.md (Japanese) * New translations properties_backgroundandborder.md (Portuguese, Brazilian) * New translations properties_datasource.md (French) * New translations properties_datasource.md (Spanish) * New translations properties_datasource.md (Japanese) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations properties_text.md (Japanese) * New translations properties_text.md (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations projectcreate-1.png (French) * New translations projectcreate-1.png (Spanish) * New translations projectcreate-1.png (Japanese) * New translations projectcreate-1.png (Portuguese, Brazilian) * New translations projectcreate-2.png (French) * New translations projectcreate-2.png (Spanish) * New translations projectcreate-2.png (Japanese) * New translations projectcreate-2.png (Portuguese, Brazilian) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaiparameters.md (Japanese) * New translations asynchronous-call.md (Japanese) * New Crowdin updates (#2929) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Spanish) * New translations onmouseenter.md (Spanish) * New translations onmouseleave.md (Spanish) * New translations onmousemove.md (Spanish) * New translations onscroll.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations geninfo.md (Spanish) * New translations mandata.md (Spanish) * New translations code.json (Spanish) * New translations current.json (Spanish) * New translations onmouseenter.md (Spanish) * New translations onmouseleave.md (Spanish) * New translations onmousemove.md (Spanish) * New translations onscroll.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations geninfo.md (Spanish) * New translations mandata.md (Spanish) * New translations dataclassclass.md (Spanish) * New translations overview.md (Spanish) * New translations $filter.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-import-document.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations wp-table-append-row.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-import-document.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations overview.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-import-document.md (Spanish) * New translations wp-insert-break.md (Spanish) * New translations wp-insert-document-body.md (Spanish) * New translations wp-insert-picture.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * Writepro/cherrypick slugsfix (#2931) * slugs updated: main-en * slugs update & other fixes: es-main+R10 * slugs update & other fixes: fr-main+R10 * slugs update & other fixes: ja-main+R10 * slugs update & other fixes: pt-main+R10 * slugs updated: en-R10 * Update importing-4d-write-documents.md * Feature/published components (#2932) * first draft * Update components.md * after closure * Update getting-started.md * after closure dependencies * New Crowdin updates (#2933) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations code.json (Spanish) * New translations current.json (Spanish) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations sessionclass.md (Spanish) * New translations $filter.md (Spanish) * New translations managing-formulas.md (French) * New translations managing-formulas.md (Spanish) * New translations managing-formulas.md (Japanese) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations wp-table-append-row.md (Spanish) * New translations version-20-r10.json (Spanish) * New translations sessionclass.md (Spanish) * New translations managing-formulas.md (French) * New translations wp-table-append-row.md (Spanish) * New translations managing-formulas.md (Japanese) * New translations managing-formulas.md (Portuguese, Brazilian) * New Crowdin updates (#2934) * New translations web.md (French) * New translations web.md (Spanish) * New translations web.md (Japanese) * New translations web.md (Portuguese, Brazilian) * New translations log.md (French) * New translations log.md (Spanish) * New translations log.md (Japanese) * New translations log.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations quick-tour.md (French) * New translations quick-tour.md (Spanish) * New translations quick-tour.md (Japanese) * New translations quick-tour.md (Portuguese, Brazilian) * New translations building.md (French) * New translations building.md (Spanish) * New translations building.md (Japanese) * New translations building.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Spanish) * New translations creating.md (Japanese) * New translations creating.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations privileges.md (French) * New translations privileges.md (Spanish) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (French) * New translations code-overview.md (Spanish) * New translations code-overview.md (Japanese) * New translations code-overview.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations getting-started.md (French) * New translations getting-started.md (Spanish) * New translations getting-started.md (Japanese) * New translations getting-started.md (Portuguese, Brazilian) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations gettingstarted.md (French) * New translations gettingstarted.md (Spanish) * New translations gettingstarted.md (Japanese) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations webserverconfig.md (French) * New translations webserverconfig.md (Spanish) * New translations webserverconfig.md (Japanese) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations webserverobject.md (French) * New translations webserverobject.md (Spanish) * New translations webserverobject.md (Japanese) * New translations webserverobject.md (Portuguese, Brazilian) * New translations write-class-method.md (French) * New translations write-class-method.md (Spanish) * New translations write-class-method.md (Japanese) * New translations write-class-method.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations security.md (French) * New translations security.md (Spanish) * New translations security.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations web.md (French) * New translations web.md (Spanish) * New translations web.md (Japanese) * New translations web.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations command-index.md (Spanish) * New translations command-index.md (Japanese) * New translations command-index.md (Portuguese, Brazilian) * New translations authentication.md (Spanish) * New translations log.md (French) * New translations log.md (Spanish) * New translations log.md (Japanese) * New translations log.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations privileges.md (French) * New translations privileges.md (Spanish) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations code-overview.md (French) * New translations code-overview.md (Spanish) * New translations code-overview.md (Japanese) * New translations code-overview.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations documentation.md (French) * New translations documentation.md (Spanish) * New translations documentation.md (Japanese) * New translations documentation.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations authentication.md (Spanish) * New translations gettingstarted.md (French) * New translations gettingstarted.md (Spanish) * New translations gettingstarted.md (Japanese) * New translations gettingstarted.md (Portuguese, Brazilian) * New translations webserverobject.md (French) * New translations webserverobject.md (Spanish) * New translations webserverobject.md (Japanese) * New translations webserverobject.md (Portuguese, Brazilian) * New translations write-class-method.md (French) * New translations write-class-method.md (Spanish) * New translations write-class-method.md (Japanese) * New translations write-class-method.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations command-index.md (Spanish) * New translations command-index.md (Japanese) * New translations command-index.md (Portuguese, Brazilian) * New translations overview.md (French) * New translations overview.md (Spanish) * New translations overview.md (Japanese) * New translations overview.md (Portuguese, Brazilian) * New translations security.md (French) * New translations security.md (Spanish) * New translations security.md (Japanese) * New translations security.md (Portuguese, Brazilian) * New translations overview-old.md (French) * New translations overview-old.md (Spanish) * New translations overview-old.md (Japanese) * New translations overview-old.md (Portuguese, Brazilian) * New translations image.png (French) * New translations image.png (Spanish) * New translations image.png (Japanese) * New translations image.png (Portuguese, Brazilian) * New translations project-method-properties.md (French) * New translations project-method-properties.md (Spanish) * New translations project-method-properties.md (Japanese) * New translations project-method-properties.md (Portuguese, Brazilian) * New translations dependency-default.png (French) * New translations dependency-default.png (Spanish) * New translations dependency-default.png (Japanese) * New translations dependency-default.png (Portuguese, Brazilian) * New translations install.png (French) * New translations install.png (Spanish) * New translations install.png (Japanese) * New translations install.png (Portuguese, Brazilian) * New translations convert.png (French) * New translations convert.png (Spanish) * New translations convert.png (Japanese) * New translations convert.png (Portuguese, Brazilian) * New translations _overview-old.md (French) * New translations _overview-old.md (Spanish) * New translations _overview-old.md (Japanese) * New translations _overview-old.md (Portuguese, Brazilian) * New translations project-method-properties.md (French) * New translations project-method-properties.md (Spanish) * New translations project-method-properties.md (Japanese) * New translations project-method-properties.md (Portuguese, Brazilian) * New translations dataclassclass.md (Japanese) * New translations $filter.md (Japanese) * fix links components * New Crowdin updates (#2935) * New translations entityclass.md (Spanish) * New translations entityclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Spanish) * New translations httprequestclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations data-collect.md (Spanish) * New translations components.md (Spanish) * New translations dt_object.md (Spanish) * New translations operators.md (Spanish) * New translations $filter.md (Japanese) * New translations entityclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations dt_object.md (Spanish) * New translations operators.md (Spanish) * New translations entityclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations dt_object.md (Spanish) * New translations operators.md (Spanish) * New translations mandata.md (Spanish) * New translations mandata.md (Spanish) * New translations develop-components.md (Spanish) * New translations overview.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations updates.md (Spanish) * New translations privileges.md (Spanish) * New translations $filter.md (Spanish) * New translations mandata.md (Spanish) * New translations overview.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations getting-started.md (Spanish) * New translations sessions.md (Spanish) * New translations database.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations mandata.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations sessions.md (Spanish) * New translations overview.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations privileges.md (Spanish) * New translations mandata.md (Spanish) * New translations overview.md (Spanish) * New translations vp-flush-commands.md (Spanish) * New translations vp-import-document.md (Spanish) * New translations sessions.md (Spanish) * New translations database.md (Spanish) * New translations generate-uuid.md (Spanish) * Update 4d-write-pro-attributes.md (#2936) JA fixing missing line (wk container) in the table * Update wp-new-bookmark.md (#2937) JA fixing missing line in the document (wk container) * Update using-a-4d-write-pro-area.md (#2941) JA fixing missing description about bookmark, and fixing non-translated lines * Update wp-new-bookmark.md (#2940) JA fixing missing description (range needs to belong to body) * Update 4d-write-pro-attributes.md (#2939) JA adding missing line in table (wk container) * ready to generate (#2938) * FR fixed syntax, up to Record locking * New Crowdin updates (#2942) * New translations interruptions.md (French) * New translations json.md (French) * New translations ldap.md (French) * New translations language.md (French) * New translations licenses.md (French) * New translations list_box.md (French) * New translations mail.md (French) * New translations math.md (French) * New translations menus.md (French) * New translations messages.md (French) * New translations http.md (Japanese) * New translations http.md (Portuguese, Brazilian) * New translations hierarchical_lists.md (Spanish) * New translations hierarchical_lists.md (Japanese) * New translations hierarchical_lists.md (Portuguese, Brazilian) * New translations import_and_export.md (Spanish) * New translations import_and_export.md (Japanese) * New translations import_and_export.md (Portuguese, Brazilian) * New translations interruptions.md (Spanish) * New translations interruptions.md (Japanese) * New translations interruptions.md (Portuguese, Brazilian) * New translations json.md (Spanish) * New translations json.md (Japanese) * New translations json.md (Portuguese, Brazilian) * New translations ldap.md (Spanish) * New translations ldap.md (Japanese) * New translations ldap.md (Portuguese, Brazilian) * New translations language.md (Spanish) * New translations language.md (Japanese) * New translations language.md (Portuguese, Brazilian) * New translations licenses.md (Spanish) * New translations licenses.md (Japanese) * New translations licenses.md (Portuguese, Brazilian) * New translations list_box.md (Spanish) * New translations list_box.md (Japanese) * New translations list_box.md (Portuguese, Brazilian) * New translations mail.md (Spanish) * New translations mail.md (Japanese) * New translations mail.md (Portuguese, Brazilian) * New translations math.md (Spanish) * New translations math.md (Japanese) * New translations math.md (Portuguese, Brazilian) * New translations menus.md (Spanish) * New translations menus.md (Japanese) * New translations menus.md (Portuguese, Brazilian) * New translations messages.md (Spanish) * New translations messages.md (Japanese) * New translations messages.md (Portuguese, Brazilian) * New translations named_selections.md (French) * New translations objects_forms.md (French) * New translations objects_language.md (French) * New translations on_a_series.md (French) * New translations php.md (French) * New translations pasteboard.md (French) * New translations pictures.md (French) * New translations printing.md (French) * New translations process_communications.md (French) * New translations process_user_interface.md (French) * New translations processes.md (French) * New translations queries.md (French) * New translations quick_report.md (French) * New translations named_selections.md (Spanish) * New translations named_selections.md (Japanese) * New translations named_selections.md (Portuguese, Brazilian) * New translations objects_forms.md (Spanish) * New translations objects_forms.md (Japanese) * New translations objects_forms.md (Portuguese, Brazilian) * New translations objects_language.md (Spanish) * New translations objects_language.md (Japanese) * New translations objects_language.md (Portuguese, Brazilian) * New translations on_a_series.md (Spanish) * New translations on_a_series.md (Japanese) * New translations on_a_series.md (Portuguese, Brazilian) * New translations php.md (Spanish) * New translations php.md (Japanese) * New translations php.md (Portuguese, Brazilian) * New translations pasteboard.md (Spanish) * New translations pasteboard.md (Japanese) * New translations pasteboard.md (Portuguese, Brazilian) * New translations pictures.md (Spanish) * New translations pictures.md (Japanese) * New translations pictures.md (Portuguese, Brazilian) * New translations printing.md (Spanish) * New translations printing.md (Japanese) * New translations printing.md (Portuguese, Brazilian) * New translations process_communications.md (Spanish) * New translations process_communications.md (Japanese) * New translations process_communications.md (Portuguese, Brazilian) * New translations process_user_interface.md (Spanish) * New translations process_user_interface.md (Japanese) * New translations process_user_interface.md (Portuguese, Brazilian) * New translations processes.md (Spanish) * New translations processes.md (Japanese) * New translations processes.md (Portuguese, Brazilian) * New translations queries.md (Spanish) * New translations queries.md (Japanese) * New translations queries.md (Portuguese, Brazilian) * New translations quick_report.md (Spanish) * New translations record_locking.md (French) * New translations records.md (French) * New translations relations.md (French) * New translations resources.md (French) * New translations sql.md (French) * New translations svg.md (French) * New translations secured_protocol.md (French) * New translations selection.md (French) * New translations sets.md (French) * New translations spell_checker.md (French) * New translations string.md (French) * New translations structure_access.md (French) * New translations quick_report.md (Japanese) * New translations quick_report.md (Portuguese, Brazilian) * New translations record_locking.md (Spanish) * New translations record_locking.md (Japanese) * New translations record_locking.md (Portuguese, Brazilian) * New translations records.md (Spanish) * New translations records.md (Japanese) * New translations records.md (Portuguese, Brazilian) * New translations relations.md (Spanish) * New translations relations.md (Japanese) * New translations relations.md (Portuguese, Brazilian) * New translations resources.md (Spanish) * New translations resources.md (Japanese) * New translations resources.md (Portuguese, Brazilian) * New translations sql.md (Spanish) * New translations sql.md (Japanese) * New translations sql.md (Portuguese, Brazilian) * New translations svg.md (Spanish) * New translations svg.md (Japanese) * New translations svg.md (Portuguese, Brazilian) * New translations secured_protocol.md (Spanish) * New translations secured_protocol.md (Japanese) * New translations secured_protocol.md (Portuguese, Brazilian) * New translations selection.md (Spanish) * New translations selection.md (Japanese) * New translations selection.md (Portuguese, Brazilian) * New translations sets.md (Spanish) * New translations sets.md (Japanese) * New translations sets.md (Portuguese, Brazilian) * New translations spell_checker.md (Spanish) * New translations spell_checker.md (Japanese) * New translations spell_checker.md (Portuguese, Brazilian) * New translations string.md (Spanish) * New translations string.md (Japanese) * New translations string.md (Portuguese, Brazilian) * New translations structure_access.md (Spanish) * New translations structure_access.md (Japanese) * New translations structure_access.md (Portuguese, Brazilian) * New translations styled_text.md (French) * New translations subrecords.md (French) * New translations system_documents.md (French) * New translations system_environment.md (French) * New translations table.md (French) * New translations tools.md (French) * New translations transactions.md (French) * New translations triggers.md (French) * New translations user_interface.md (French) * New translations users_and_groups.md (French) * New translations variables.md (French) * New translations web_area.md (French) * New translations web_server.md (French) * New translations styled_text.md (Spanish) * New translations styled_text.md (Japanese) * New translations styled_text.md (Portuguese, Brazilian) * New translations subrecords.md (Spanish) * New translations subrecords.md (Japanese) * New translations subrecords.md (Portuguese, Brazilian) * New translations system_documents.md (Spanish) * New translations system_documents.md (Japanese) * New translations system_documents.md (Portuguese, Brazilian) * New translations system_environment.md (Spanish) * New translations system_environment.md (Japanese) * New translations system_environment.md (Portuguese, Brazilian) * New translations table.md (Spanish) * New translations table.md (Japanese) * New translations table.md (Portuguese, Brazilian) * New translations tools.md (Spanish) * New translations tools.md (Japanese) * New translations tools.md (Portuguese, Brazilian) * New translations transactions.md (Spanish) * New translations transactions.md (Japanese) * New translations transactions.md (Portuguese, Brazilian) * New translations triggers.md (Spanish) * New translations triggers.md (Japanese) * New translations triggers.md (Portuguese, Brazilian) * New translations user_interface.md (Spanish) * New translations user_interface.md (Japanese) * New translations user_interface.md (Portuguese, Brazilian) * New translations users_and_groups.md (Spanish) * New translations users_and_groups.md (Japanese) * New translations users_and_groups.md (Portuguese, Brazilian) * New translations variables.md (Spanish) * New translations variables.md (Japanese) * New translations variables.md (Portuguese, Brazilian) * New translations web_area.md (Spanish) * New translations web_area.md (Japanese) * New translations web_area.md (Portuguese, Brazilian) * New translations web_server.md (Spanish) * New translations web_services_client.md (French) * New translations web_services_server.md (French) * New translations windows.md (French) * New translations xml.md (French) * New translations xml_dom.md (French) * New translations xml_sax.md (French) * New translations dt_object.md (French) * New translations operators.md (French) * New translations dt_object.md (French) * New translations operators.md (French) * New translations web_server.md (Japanese) * New translations web_server.md (Portuguese, Brazilian) * New translations web_services_client.md (Spanish) * New translations web_services_client.md (Japanese) * New translations web_services_client.md (Portuguese, Brazilian) * New translations web_services_server.md (Spanish) * New translations web_services_server.md (Japanese) * New translations web_services_server.md (Portuguese, Brazilian) * New translations windows.md (Spanish) * New translations windows.md (Japanese) * New translations windows.md (Portuguese, Brazilian) * New translations xml.md (Spanish) * New translations xml.md (Japanese) * New translations xml.md (Portuguese, Brazilian) * New translations xml_dom.md (Spanish) * New translations xml_dom.md (Japanese) * New translations xml_dom.md (Portuguese, Brazilian) * New translations xml_sax.md (Spanish) * New translations xml_sax.md (Japanese) * New translations xml_sax.md (Portuguese, Brazilian) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations develop-components.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations architecture.md (Spanish) * New translations vp-export-document.md (Spanish) * New translations version-20-r10.json (Spanish) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations develop-components.md (Spanish) * New translations overview.md (Spanish) * New translations createstylesheet.md (Spanish) * New translations listbox_overview.md (Spanish) * New translations dsmapping.md (Spanish) * New translations privileges.md (Spanish) * New translations overview.md (Spanish) * New translations architecture.md (Spanish) * New translations code-overview.md (Spanish) * New translations components.md (Spanish) * New translations vp-export-document.md (Spanish) * new build4d location * fixed open form window example 4 * updates boringssl and ngtcp2 * fixes in FR syntaxes * Delete Database_Methods.md * New Crowdin updates (#2943) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-export-variable.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-export-variable.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Japanese) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations _openaiasyncoptions.md (Spanish) * New translations dialog.md (French) * New translations command-name.md (Spanish) * New translations dialog.md (Spanish) * New translations command-name.md (Japanese) * New translations dialog.md (Japanese) * New translations command-name.md (Portuguese, Brazilian) * New translations dialog.md (Portuguese, Brazilian) * New translations form.md (French) * New translations file.md (Spanish) * New translations folder.md (Spanish) * New translations form.md (Spanish) * New translations file.md (Japanese) * New translations folder.md (Japanese) * New translations form.md (Japanese) * New translations file.md (Portuguese, Brazilian) * New translations folder.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations process-activity.md (French) * New translations process-activity.md (Spanish) * New translations process-activity.md (Japanese) * New translations process-activity.md (Portuguese, Brazilian) * New translations session.md (French) * New translations select-log-file.md (Spanish) * New translations session.md (Spanish) * New translations select-log-file.md (Japanese) * New translations session.md (Japanese) * New translations select-log-file.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations compatibility.md (French) * New translations compatibility.md (Spanish) * New translations database.md (Spanish) * New translations compatibility.md (Japanese) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (French) * New translations last-errors.md (Spanish) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations last-errors.md (Japanese) * New translations listbox-get-property.md (Japanese) * New translations listbox-set-property.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations last-errors.md (Portuguese, Brazilian) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations version-20-r10.json (Spanish) * New translations udpeventclass.md (Japanese) * New translations version-20-r10.json (Japanese) * New translations version-20-r10.json (Portuguese, Brazilian) * New translations imaptransporterclass.md (French) * New translations imaptransporterclass.md (Spanish) * New translations sessionclass.md (Spanish) * New translations imaptransporterclass.md (Japanese) * New translations imaptransporterclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Japanese) * New translations udpeventclass.md (Japanese) * New translations restore.md (French) * New translations restore.md (Spanish) * New translations restore.md (Japanese) * New translations backup.md (Portuguese, Brazilian) * New translations restore.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations building.md (French) * New translations building.md (Spanish) * New translations building.md (Japanese) * New translations building.md (Portuguese, Brazilian) * New translations onmouseenter.md (French) * New translations onmouseleave.md (French) * New translations onmousemove.md (French) * New translations onload.md (Japanese) * New translations onscroll.md (French) * New translations develop-components.md (French) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations objectlibrary.md (French) * New translations properties_action.md (French) * New translations objectlibrary.md (Spanish) * New translations properties_action.md (Spanish) * New translations objectlibrary.md (Portuguese, Brazilian) * New translations properties_action.md (Portuguese, Brazilian) * New translations list_overview.md (French) * New translations listbox_overview.md (French) * New translations picturebutton_overview.md (French) * New translations list_overview.md (Spanish) * New translations picturebutton_overview.md (Spanish) * New translations list_overview.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations picturebutton_overview.md (Japanese) * New translations list_overview.md (Portuguese, Brazilian) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations picturebutton_overview.md (Portuguese, Brazilian) * New translations properties_action.md (French) * New translations properties_datasource.md (French) * New translations properties_action.md (Spanish) * New translations properties_datasource.md (Spanish) * New translations properties_action.md (Japanese) * New translations properties_datasource.md (Japanese) * New translations properties_entry.md (Japanese) * New translations properties_action.md (Portuguese, Brazilian) * New translations properties_datasource.md (Portuguese, Brazilian) * New translations properties_listbox.md (French) * New translations properties_subform.md (French) * New translations properties_listbox.md (Spanish) * New translations properties_subform.md (Spanish) * New translations properties_listbox.md (Japanese) * New translations properties_subform.md (Japanese) * New translations properties_listbox.md (Portuguese, Brazilian) * New translations properties_subform.md (Portuguese, Brazilian) * New translations analysis.md (French) * New translations encrypt.md (French) * New translations analysis.md (Spanish) * New translations encrypt.md (Spanish) * New translations information.md (Spanish) * New translations overview.md (Spanish) * New translations analysis.md (Japanese) * New translations encrypt.md (Japanese) * New translations information.md (Japanese) * New translations overview.md (Japanese) * New translations analysis.md (Portuguese, Brazilian) * New translations encrypt.md (Portuguese, Brazilian) * New translations information.md (Portuguese, Brazilian) * New translations creating.md (French) * New translations creating.md (Japanese) * New translations methods.md (Spanish) * New translations methods.md (Japanese) * New translations documentation.md (French) * New translations overview.md (French) * New translations components.md (Spanish) * New translations documentation.md (Spanish) * New translations documentation.md (Japanese) * New translations documentation.md (Portuguese, Brazilian) * New translations $filter.md (Spanish) * New translations $filter.md (Japanese) * New translations $filter.md (Portuguese, Brazilian) * New translations authusers.md (French) * New translations authusers.md (Spanish) * New translations authusers.md (Japanese) * New translations authusers.md (Portuguese, Brazilian) * New translations handling_users_groups.md (French) * New translations handling_users_groups.md (Spanish) * New translations overview.md (Spanish) * New translations handling_users_groups.md (Japanese) * New translations handling_users_groups.md (Portuguese, Brazilian) * New translations getting-started.md (French) * New translations getting-started.md (Spanish) * New translations getting-started.md (Japanese) * New translations getting-started.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations sessions.md (Spanish) * New translations webserverobject.md (Spanish) * New translations http-request-handler.md (Japanese) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (French) * New translations wp-reset-attributes.md (French) * New translations wp-set-attributes.md (French) * New translations wp-export-variable.md (Spanish) * New translations wp-get-attributes.md (Spanish) * New translations wp-reset-attributes.md (Spanish) * New translations wp-set-attributes.md (Spanish) * New translations wp-export-variable.md (Japanese) * New translations wp-get-attributes.md (Japanese) * New translations wp-reset-attributes.md (Japanese) * New translations wp-set-attributes.md (Japanese) * New translations wp-export-variable.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations command-index.md (French) * New translations dialog.md (French) * New translations command-name.md (Spanish) * New translations dialog.md (Spanish) * New translations file.md (Spanish) * New translations command-name.md (Japanese) * New translations dialog.md (Japanese) * New translations command-name.md (Portuguese, Brazilian) * New translations dialog.md (Portuguese, Brazilian) * New translations form.md (French) * New translations folder.md (Spanish) * New translations form.md (Spanish) * New translations last-errors.md (Spanish) * New translations file.md (Japanese) * New translations folder.md (Japanese) * New translations form.md (Japanese) * New translations last-errors.md (Japanese) * New translations file.md (Portuguese, Brazilian) * New translations folder.md (Portuguese, Brazilian) * New translations form.md (Portuguese, Brazilian) * New translations last-errors.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (French) * New translations listbox-get-property.md (Spanish) * New translations listbox-set-property.md (Spanish) * New translations object-get-data-source-formula.md (Spanish) * New translations listbox-get-property.md (Japanese) * New translations listbox-set-property.md (Japanese) * New translations object-get-data-source-formula.md (Japanese) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations process-activity.md (French) * New translations session.md (French) * New translations process-activity.md (Spanish) * New translations select-log-file.md (Spanish) * New translations session.md (Spanish) * New translations process-activity.md (Japanese) * New translations select-log-file.md (Japanese) * New translations session.md (Japanese) * New translations process-activity.md (Portuguese, Brazilian) * New translations select-log-file.md (Portuguese, Brazilian) * New translations session.md (Portuguese, Brazilian) * New translations compatibility.md (French) * New translations compatibility.md (Spanish) * New translations compatibility.md (Japanese) * New translations compatibility.md (Portuguese, Brazilian) * New translations database.md (Portuguese, Brazilian) * New translations num.md (French) * New translations trim-end.md (French) * New translations trim-start.md (French) * New translations trim.md (French) * New translations string.md (French) * New translations num.md (Spanish) * New translations trim-end.md (Spanish) * New translations trim-start.md (Spanish) * New translations trim.md (Spanish) * New translations string.md (Spanish) * New translations num.md (Japanese) * New translations trim-end.md (Japanese) * New translations trim-start.md (Japanese) * New translations trim.md (Japanese) * New translations string.md (Japanese) * New translations num.md (Portuguese, Brazilian) * New translations trim-end.md (Portuguese, Brazilian) * New translations trim-start.md (Portuguese, Brazilian) * New translations trim.md (Portuguese, Brazilian) * New translations string.md (Portuguese, Brazilian) * New translations overview-old.md (Spanish) * New Crowdin updates (#2944) * New translations operators.md (Japanese) * New translations components.md (Japanese) * New translations dt_object.md (Japanese) * New translations operators.md (Japanese) * New translations tcpeventclass.md (Japanese) * New translations tcpeventclass.md (Japanese) * New translations dt_object.md (Japanese) * New translations operators.md (Japanese) * New translations udpsocketclass.md (Japanese) * New translations udpsocketclass.md (Japanese) * New translations dt_object.md (Japanese) * New translations operators.md (Japanese) * New translations generate-uuid.md (Japanese) * New translations generate-uuid.md (Japanese) * Feature/sign license (#2945) * final * after closure * Update welcome2.png * Update Installation.md * fixes in web * Feature/published components (#2946) * first draft * Update components.md * after closure * Update getting-started.md * Update convert.png * Delete overview-old.md * New Crowdin updates (#2947) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations operators.md (Spanish) * New translations building.md (Spanish) * New translations installation.md (French) * New translations installation.md (Spanish) * New translations installation.md (Japanese) * New translations installation.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations authentication.md (French) * New translations gettingstarted.md (French) * New translations httprequests.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations logo4d.png (French) * New translations logo4d.png (Spanish) * New translations logo4d.png (Japanese) * New translations logo4d.png (Portuguese, Brazilian) * New translations welcome2.png (French) * New translations welcome2.png (Spanish) * New translations welcome2.png (Japanese) * New translations welcome2.png (Portuguese, Brazilian) * New translations httpagentclass.md (Spanish) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations labels.md (Spanish) * New translations select-log-file.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations operators.md (Spanish) * New translations labels.md (Spanish) * New translations authentication.md (French) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations gettingstarted.md (French) * New translations http-request-handler.md (French) * New translations httprequests.md (French) * New translations http-request-handler.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations select-log-file.md (Spanish) * New translations orda-events.md (Spanish) * New translations field-properties.md (Spanish) * New translations openaiembeddingsparameters.md (Spanish) * New translations operators.md (Spanish) * New translations building.md (Spanish) * New translations labels.md (Spanish) * New translations field-properties.md (Spanish) * New translations orda-events.md (Spanish) * New translations ordaclasses.md (Spanish) * New translations authentication.md (French) * New translations gettingstarted.md (French) * New translations configuring.md (Spanish) * New translations authentication.md (Spanish) * New translations authentication.md (Japanese) * New translations authentication.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations httprequests.md (French) * New translations http-request-handler.md (Spanish) * New translations webserverconfig.md (Spanish) * New translations wp-export-document.md (Spanish) * New translations wp-export-variable.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionslistparameters.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaiembeddingsparameters.md (Spanish) * New translations openaierror.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimagesresult.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaivisionhelper.md (Spanish) * New translations overview.md (Spanish) * New translations select-log-file.md (Spanish) * New translations convert.png (French) * New translations convert.png (Spanish) * New translations convert.png (Japanese) * New translations convert.png (Portuguese, Brazilian) * removed old files * Feature/aikit/tools response (#2948) * first version based upon eric doc * after eric fix * Update OpenAIChatHelper.md * Update updates.md * New Crowdin updates (#2949) * New translations quick-tour.md (Japanese) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations openaichatapi.md (French) * New translations openaichatapi.md (Spanish) * New translations openaichatapi.md (Japanese) * New translations openaichatapi.md (Portuguese, Brazilian) * New translations openaichatcompletionsparameters.md (French) * New translations openaichathelper.md (French) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichatcompletionsparameters.md (Japanese) * New translations openaichathelper.md (Japanese) * New translations openaichatcompletionsparameters.md (Portuguese, Brazilian) * New translations openaichathelper.md (Portuguese, Brazilian) * New translations openaimessage.md (French) * New translations openaimessage.md (Spanish) * New translations openaimessage.md (Japanese) * New translations openaimessage.md (Portuguese, Brazilian) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations overview.md (French) * New translations components.md (French) * New translations openaitool.md (French) * New translations openaitool.md (Spanish) * New translations openaitool.md (Japanese) * New translations openaitool.md (Portuguese, Brazilian) * New translations develop-components.md (Japanese) * picture file names in ES/PT * missing 2 en * delete * fix missing picts * removed picts * Revert "removed picts" This reverts commit c2ecdc24795a29dab71582ab640c3370eefc2240. --------- Co-authored-by: mouna-elmaazouzi Co-authored-by: sandritica <136651682+sandritica@users.noreply.github.com> Co-authored-by: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Co-authored-by: eric.marchand Co-authored-by: mouna-elmaazouzi <118451160+mouna-elmaazouzi@users.noreply.github.com> Co-authored-by: Guillaume Kotulski --- .../version-21/API/SessionClass.md | 9 +++++++++ 1 file changed, 9 insertions(+) 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 d084bc461a9585..670f924e1d5b08 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 @@ -60,6 +60,15 @@ Articles de blog sur cette fonctionnalité : ::: +:::info Pour en savoir plus + +Articles de blog sur cette fonctionnalité : + +- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) + +::: + ### Types de sessions Les types de sessions suivants sont pris en charge par cette classe : From 0715bb95a39c8cc6e720b9113f663435db1327eb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 7 Oct 2025 10:01:04 +0200 Subject: [PATCH 063/119] New Crowdin updates (#2952) * New translations onvalidate.md (French) * New translations onvalidate.md (Spanish) * New translations onvalidate.md (Japanese) * New translations onvalidate.md (Portuguese, Brazilian) * New translations onvalidate.md (French) * New translations onvalidate.md (Spanish) * New translations onvalidate.md (Japanese) * New translations onvalidate.md (Portuguese, Brazilian) * New translations dt_time.md (French) * New translations onvalidate.md (French) * New translations formeditor.md (French) * New translations onvalidate.md (Spanish) * New translations onvalidate.md (Japanese) * New translations develop-components.md (Japanese) * New translations onvalidate.md (Portuguese, Brazilian) * New translations properties_display.md (French) * New translations properties_display.md (Spanish) * New translations properties_display.md (Japanese) * New translations properties_display.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations dt_time.md (French) * New translations onvalidate.md (French) * New translations onvalidate.md (Spanish) * New translations onvalidate.md (Japanese) * New translations onvalidate.md (Portuguese, Brazilian) * New translations formeditor.md (French) * New translations properties_display.md (French) * New translations properties_display.md (Spanish) * New translations properties_display.md (Japanese) * New translations properties_display.md (Portuguese, Brazilian) * New translations dt_time.md (French) * New translations onvalidate.md (French) * New translations formeditor.md (French) * New translations onvalidate.md (Spanish) * New translations onvalidate.md (Japanese) * New translations onvalidate.md (Portuguese, Brazilian) * New translations properties_display.md (French) * New translations properties_display.md (Spanish) * New translations properties_display.md (Japanese) * New translations properties_display.md (Portuguese, Brazilian) --- .../version-21/API/SessionClass.md | 9 --------- 1 file changed, 9 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 670f924e1d5b08..d084bc461a9585 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 @@ -60,15 +60,6 @@ Articles de blog sur cette fonctionnalité : ::: -:::info Pour en savoir plus - -Articles de blog sur cette fonctionnalité : - -- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) -- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) - -::: - ### Types de sessions Les types de sessions suivants sont pris en charge par cette classe : From 5aeba495321dbe0f41a0f374b094080c11dbc573 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 7 Oct 2025 18:11:25 +0200 Subject: [PATCH 064/119] removed pt --- .../assets/en/WritePro/pict3033006.en.png | Bin 631 -> 0 bytes .../assets/en/WritePro/pict3033008.en.png | Bin 1168 -> 0 bytes .../assets/en/WritePro/pict3307937.en.png | Bin 12243 -> 0 bytes .../assets/en/WritePro/pict3307941.en.png | Bin 8487 -> 0 bytes .../assets/en/WritePro/pict3513503.en.png | Bin 27062 -> 0 bytes .../assets/en/WritePro/pict3541581.en.png | Bin 872923 -> 0 bytes .../assets/en/WritePro/pict3626363.en.png | Bin 99975 -> 0 bytes .../assets/en/WritePro/pict3893246.en.png | Bin 4621 -> 0 bytes .../assets/en/WritePro/pict3893248.en.png | Bin 3667 -> 0 bytes .../assets/en/WritePro/pict5562054.en.png | Bin 18600 -> 0 bytes .../assets/en/WritePro/pict5562058.en.png | Bin 19421 -> 0 bytes .../assets/en/WritePro/pict5859437.en.png | Bin 12419 -> 0 bytes .../assets/en/WritePro/pict5907013.en.png | Bin 68519 -> 0 bytes .../assets/en/WritePro/pict5907021.en.png | Bin 9184 -> 0 bytes .../assets/en/WritePro/pict5907023.en.png | Bin 9681 -> 0 bytes .../assets/en/WritePro/pict5907026.en.png | Bin 10202 -> 0 bytes .../assets/en/WritePro/pict5907030.en.png | Bin 4093 -> 0 bytes .../assets/en/WritePro/pict5941073.en.png | Bin 20152 -> 0 bytes .../assets/en/WritePro/pict6014414.en.png | Bin 115615 -> 0 bytes .../assets/en/WritePro/pict6014426.en.png | Bin 43182 -> 0 bytes .../assets/en/WritePro/pict6014429.en.png | Bin 3132 -> 0 bytes .../assets/en/WritePro/pict6022144.en.png | Bin 116524 -> 0 bytes .../assets/en/WritePro/pict6131919.en.png | Bin 46653 -> 0 bytes .../assets/en/WritePro/pict6421031.en.png | Bin 103730 -> 0 bytes .../assets/en/WritePro/pict6421340.en.png | Bin 8309 -> 0 bytes .../assets/en/WritePro/pict6421342.en.png | Bin 9040 -> 0 bytes .../assets/en/WritePro/pict6421344.en.png | Bin 9147 -> 0 bytes .../assets/en/WritePro/pict6421356.en.png | Bin 9254 -> 0 bytes .../assets/en/WritePro/pict6434579.en.png | Bin 605 -> 0 bytes .../assets/en/WritePro/pict6434721.en.png | Bin 9401 -> 0 bytes .../assets/en/WritePro/pict6434723.en.png | Bin 7206 -> 0 bytes .../assets/en/WritePro/pict6441966.en.png | Bin 6080 -> 0 bytes 32 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png deleted file mode 100644 index ad7e034e246705954b6ed863b28aa91961444dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png deleted file mode 100644 index 8d2321c8b19748b36195f47aef623451e796f86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872923 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≷~|ab|IUUdttWs`*XSq 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

      yGx|=*%Z2 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˽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

      Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

      *1T)6!Yva<^;l%`7#qPm~I=9AP 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

      O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC 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%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* zP>C$~shm5XEI zT|*`F>Y=s)8Q1t?uvc+$fz6VCUQXWPO%nd&Xz^XLVz2~FUoKG^m=!f|d3JdZuVR{o zv0AS+M-ZpB=EC;p;h%2b9*1wP`Jx@6d$s0KIU9<1qA1_0$bRUETWIs8T`Cr{l2Sw# zA|+(t@?c_?zeGC=;L`Sz$N}LIIabvlHg9W|dq=ItI!N#1I*4}@N%5A-g-{}p9uon? zZz7Ox2xvL6TgNf#OGWYVB0Ig%4Db;%X*0Y5GA4ey*j}8@r}|R50I^s0V~i$jd`x7Ry zqPqqqY?l_bYY{$iRAPuytb+`s(5F$1aL&$Pf?sj|yb1s)f~fJJDb55&?RIordMi7H zg%NP*U9>CnKGtgG)#wxJv$C)%sRA z&ym;wuGKVP6ierkRz%2+9Sgy#xS9G5_c!I~3L9MVby+5Ub*w80$jQ-ueqOE=DgusB zOK)H)Pg3CVF;bM0Q9~HsQc|K_jUqFHJRqGx+I(Z1wLaplsYS74Zn!&WJ>kA@g@hJM zpNaT1QwO0rd`p8LkG$zUJa}t0dOBw(+-`NpKI{Ma*XZyxRzBJw$Yr+C+X!=R+N&pf zs5IQ(d~HY*#vz5xA|GYPgtae*1kgzy>Z6(=lzXpxlm3WrH9jfFM0ztn6-Q#fnoRC< zRr&SAYHSnhDks)xaXZpLkHn2>VEU=c*vF3esF9aT=od*cJg6vN1<#Gh-XA!GfO}Pl z;AclLTQ+KSlcKRH1sX6s!vCx1Hub>o0$ftWqfTqMdLXB57|Sz~W7cMrgKjVmU3EZ` zR5@OQ4Z-A-mp|xL#7!fESB5im8ZD$=TIrCJch~apKktL|qVbo#1sj=q7l-uO8#C4jCNw3xh&`CCq`EaZ#&g+gO<^dBIQZdz9!a*+Q$2l zGLkxKF;Lz%7n28bM+`=UYXY#OM^JE(5%+Z%U~=3S7+LwPdMv^*k}+y%f9YTGc%<$y zfh41N;Q0lydcsM%lNb)UW^W&5;2c7dRXzy5fzU)pw}NCB!@QAsJwd_(UU(&?Sh&%* zGW+?**hMziHgqOvrKqBR7nGthe1K6;3o%ByX^t^+xtb1ZBfNQ&HZBH8#yr$1Br*^R zv^gb>3(|LnA9wM*Vo^<&bxE4}!cX(! zW%SfQdny^5V~Kku`70-Ep7phzTVT(yJf$hcMgPhR>pnFE|nuR3Q&D zW@Say+5E+HknarhGH@x#s8)pKYFF8sgpRXG$V~h_I!NUyagMJc&-9Qec$xWdYWaog z%k|rzJ!$!2e`~8s*?%AS>~g4xP_f*{sxp7M0VaxC9sMvNvNTV(EX=Whu=KhRq;@|x zmGOV#$|tL(b+B3fXz%5rFL-!$6{4S&!1U&PMQ-7r7lCH^L!(>tTakoML+C6TIs(I`v*+a(Rb=g(Zj0n@jvZPg z9SeDF^CWHX+glU-U^WOqneALf^9ZrxFxZnqOr-;cq73joAs~iyMfA;CeaU99Ed1di z-mx6y$L^at=mnat-f+vg@GAsrEqdF3dTe&MeZ07Pq`Vt-Kf?UZ?R!BHb+{>rfzyxh z<{kgfnq!|0W}oFGPY%b9?-DCNpY2+H=T~PKZjRFSJ@_dEhw2CN(2G-meqk%&%Eh2A zPJSV~E=s-{&%E2KzWZK%H{1LiY!FPx@#AwQRr2_spiyz0s;zo4D?+O4M9tB|yyhG7 zslDBT?`@o^w*(w462JQ?T~0^x7kKC;Z8`ef*d@3*SBnll#p-uv`1!V2hOGr&)W;-N zf8=Px958$W-R6R7j$G(zo}|TSnOaJcP@F12Ynh$xp4=H?JhOO3Lw{ug&>4Z>kWdMR zinq)l@bsy8r5ssGV;p9pH1RTqofM?B%4OXP4s!-6fR1eVO^C9+i_ziW!o!E(%DCTq<6T7 z#4K-WnG;>%Dxed*#qgM${j*TX67Rqca4OM_KLXUFR7Rq_lO1@6)BXdef+c)65qtj* z(4^t<)QnL9?&5Uqn;Ht2rWUbQ_6o^;E@oVHbmSJEn@wKp;z<)DOOI&iW@`CcRQRg? zZvfYoso~wgo0!$s4bBK$wPk3oY1M{cP5+nv!|Z3Hu%om;h0pt0Oa6XE4{0l-d72{* zEFSZNX`+unHCod%Ceq$y~`I-{UbxD0s%OMG?{DJ?W)Lu8DYX_9~lVZpXE)b8$*k6ESQ!z-nQM z#XCjhTe?USbjaX9qF7%lmMJQEVu@N^3VX_MvXQ3PKBkdg^*sC`Wh^q>g{5>}}`Zq4K+SPBtOxth&UB91HL=N7-XnE21Y~^nDKKEjG}?} z$yKbf-)JG>rQ%MVdWSBh1E^%Rt`XEjXzt>KX#v{Bj_9i;p8?!zaMbF>ULD zD`H-VXp#S@_ekRhDKF2Dqz&dh-^ZYYqc3)z;Nf52x zt1Z2=(G9*{yA;uN1wXRPc9gSkB=!3XBrDoFj4KEHYP7RKU!0z%gcwh4PY$PWmyBcr z1M_GI5iY7`;>o8L5boW2w<6Oalx^n7kfmyfl5d zrCI9OQ?aTXW?3va-<<~PGc>?N8S&<bO6=o(E+1vCT_^>0xtml|;{T$`d`Fq#L6!5e#Pu2~^<@9~L9_6=zX0#`5$$gc z;ZPX%l|ai7BF;4o;^WgMtjCgCKeb;oI>Bhq%bvznRcah)qfDkT5yI2OTTSe;?*81@0ytEn@FBNV?2{+A6m-R9~7+^jI{5 zYgX)+3v$6^>jgQr#$?GR1}F9c5Zz&@3g&{V@?l-)vx8pfY)$J-eBJ(DRMOrs<_&$) z0{#1+A%qKktW|w^e=nwr!U6~X;eHEv*=KyG=zm1)`ciCqe#2Ud?(3&am7;>my8GC) z%#314MLjMdG)DPHdC^rqk+mz(-derLB*&^_y;dv>fnVir0=fBEsa1D7Q9di$pkwZFxe4+cL(%(VrKwE4`@ALeD; zoqeZ?SBgY>M58; zsEb{{g9ilx93vP5mFba$>G9?d-R}h4?{eyL+2IW7MLVVmnDj`|Z!U6=J0ML9G#g}E z`{Wl_Ka+44uXA5lcgKiw(2BWHOF~vl(yo0>1}5py$!nj_gJ&z8OSvu^3s;ZA4`J|+ z!48LmVj?H18^9(j1n~}-M|-oMf~B~Alj~h%b%LvjgXD_H2kncs-0J!FH5FV{`44ix zuNpqL`W+?3tsIbK?hWGyzSDB@#o*vM%D=M~S^6Ir%Q`F{bu6j&cUj|GOzfYttKdyVYKpwg!klbKTJlM1aNU}3!@dwLJz zsVCSjG$443{+GYFMf=vCmY{SHgGY`@jw_fL+hlFCeisCOjcWh|@Q=`)z^cr4bT@%Y zQBovO5-*(+K9#A_AtUK%_Hf2%PMR9^$%TtnXoYKqJZ^DJJ#$arB)omig#J=M#>=yq z3TM+<)+=zSR`Dsw8Gf$yJb$^MR;or0@oE-h4i8#*+)*5JXfC+< z)(2jW3rx)*3WT}7_vf}K`&>VaUK(uAE(p(unJ%y8Uy2eo6|;Y@O2XNdnhh0#&)go3 zbBe@Ir!r{*tBQP|vh5wZXJR-pKP-$;3Gsey94E%OqwFaDiarsCAiNvvZWT`lheVWHf@IznPB%*pDRQpLLiI^eQF`~lU zV9D`U#hS;)cbXh>-)mcm!0#2wi|2zcR#W?>{qCoK2k&>e1UM|_9V9B&y+eDUwZ44c_qSA1tf}K|x3{0-M@^*02_Qh&P|j0v{?8uGEQm{E1d~dqZXB}`ut`im z%b6S_8|Z&GFoI+l{XWjvA2NsUK-T03rpH`EB#M5k;Wt9nhydD=@eOE}W1~M+v+@LA zhQre5_G+`TO%M#OM{iAvaIFAW1U>*yoDc~kPlLJE`9l0;Tc30od*Z^+IqVVgJ&7A= zq7b2yXXOxT)`Jhw!0IMt-nCLLPWRTyK*s$G7MPI+xC6|TM*906G87G|b)h)$vohCP){M<-m)`E;@ zV+oXktRtI7@r3$*EtDjmk^+T9bf_J2T4)P6(m-sKQKyla{9EHZf0QEZK~6=fTz-v8 z^Zg)JmJ$&G*$$lq4nBKY!_JnHqO#pUwJmlYsy*r98@)(Eo8v` zRDWWdw4!g%P(|UX@@*RPk4F3jq0Zk{pKk>|-+C8BXbsX-{O^*�Fn(NdL6ho=Z}a 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

      H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png deleted file mode 100644 index 823fcf7c97fbcb9a5aae329aa3385f72d636fbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png deleted file mode 100644 index 84c289b866e8e651e297905deb9c3bb03ee3c887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4621 zcmd^DX*iT^-zOtuCXBU+vc_1akfp>BVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/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 Kezigq4g3RhOc*Ty diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png deleted file mode 100644 index c21d5b60eeb1950e6afc9fbfece9110e91a77bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3667 zcmds)ZBUZw8pmz7t+sS6%}mVLwoOY)PnMdQTG@+j`I2vBf~J+Em<0Ox5~-D?DVk?g zqE(T~*W>`Dseq^{A*CS|DrpKSp#~WNNn$96X7|kbaK4?HGdpuW+;iX8HP188b6@kj z@BjbG4e&c`vK+MB$jHd#h|hsQBcnxN!?0fVogounWoc}f79|EA-fu+hTld}&EJp0} z-DhOIXyo;{~6vL?ff0*x$w?E~@T~A!(L$@I+D&Dkdo<3Uk)zFy`#pgv4{G zq==AZhF45_jvUw*oEkAb+JUo1tmmRF9D+dK#WpOlJYv3VJN@Y_B0zAY*%MImYv z2n2Me8!}~!Up)(G%dcHum0rn-UPY+K4iRt3qr=fb+Mm&O+>cQ`hf6n<1-mqj_x#j9 z&@toW=j58xu=Dpr6tcVuV>3{Zzl_L=nhhw_cS zQ9`%Ox3P9IPy>}0_kQwjSwPzErgrw2F${WJ?E4F`)(R8XcM(4F;=`HNC)INzOWWWN zVe63#b;y#GY#!nr`w^1YI!1#hgDCQnpi3nk02)%YrVS2QwTRMh#Q0-Z%kEKK8^S26 z)x+`e?b;`KvCaj|Ji%vmrj=+#b4{j&@F1Wy8QZ5*J1aLxDzt4iZ_1O020m{M5IzQ) zY(rz-l=(`8A*7n{#+G;o3&P%^V>ZI;K(#!weJ^Jwny<3$c;QJ)yGz|JvSPmPuh`kV zjnBzt?RZ`rCMqpjb`m|EIF0cFB^1W+VFUy+<|`{Ei+M=f)@$pBeO01PvhPTd3bw|i zw;{gLR)%`R>`Q+fVYW_cyq&QVTy)vUxTY_0KYXJ;WaItjV+tBbn-`*>&)BuY0qx1s zYp+bk7I+o+sk+TGY@P{Vasqlg+OHfIRWlG?ens9hiAN-zp!nGnW7{aZ&!2XmCGoZw zITgtk3G&>7Pc&1sfO5Fd$+F+M&z+4k$()wqs#g;B!n2td55PAW3g>won#-&s`}c?3 zbASpP5quF=;ZY_qM^E+<`Cj@x)aTr+rKX;9QXEz1!)(twlKv1Jakng`KBZAMZFU@pi7mbp{j=f$eMaUDx$rD$vujGQ!71I}HfwolT_}q+K?BC4=XX>V2Rtgwe z?Ig((cM!%Xn?bcb@6O*9&<^3uft*V zd#8S2Z5@)%)R5A?t#Hh_Z>JX2Oy$X5XKY==CHs!ZIJ{oqgiSkjrXl^e?!NjFI^R?C z>v$2Ng4!yHX-d*dT&gD1?#HEIb#01WCjHLm;0afUipqBK4m=DKlwSB=Xfg3A)a@fn z)t#={-s}&nN2yaxAvDV)^MO2Lpg`4kq3wClE891N?}Uq1xx;U>d!X}xfv3eTICGiDx` zMVMm`j?`nL#wR|RRl6s7Jx=;|7Y~@T`8H+9=BbHr8S(>DNAsC3z)nj@m6D3EG;el} zMV1mNEuo@TTk{EOA{aJQmy?*}Pnm*voNe`nLp}FL(CH4DBdJ)O_p{*R z!aG29<~Sj-%lFn`^A$NpJ%~K{NtI;UOZa#?K8OCUdNQUQBs+1rv8L{E z!|9BKTX~g_{A1$kkmV`amevcy1B7{!BxLWO@-DmpD6O>QY-TnYnfZ+b$RIF1?2O%J zJ5Fg4?RIm^g{aZ$312dV`gUr{z+OL~QAvBlTM~v=Y+v<7A=Z!Ofcp?r#1xTMPU{%& z!GAF%77S4SLF~|qD1B9~-29Zn*x%n@(({i`eGkqQ_tb>KhORKP55aS;{HYPtD0!SG zd8OBxfQ*0*sC5R}FPP?gyna?wK&<`U)djrcA)a1BN5E`$vldHhLmE~jlp1(#pw3cE zyl`FXPJTs^QaOkTg9$n&qcCB6(5EM3YYLwcnq>{OELbS`mOW{~1sfpS{qt$oj;-xw z8Xs<3hA#U{9D1a_f= zFQ^ch_~g<&K<}wSu_YsnjhYkz?;kehFUe_RjGXltWs#fuMti4*S;TcAKHOC z8u2A%>nL(%(Q}mNsBOnvHpaE4)j(YOjkG)8)PI6e@+fBdDKI@NQVzy0X@(}w)XSF( z@6@@KVCNXrRPm#2sQdgn)@|NW!@l&i*<(4*mp#deR0zpZA@T?POz}gGkKtpS%Pc)Rb7gWPnM3Hek_? z`vBfNiu~eA2zTs%a$LAeVeIIlYa%TxrAvXxA>3c&yC=K9lbWK+lzv9hXgZngd-Fv}b{Tr{j7-cmvKq9uu>VaesG zRER=6H7o3nqTRIqX)$0D2A$i*C<{URNn_y|@lkJ?UBA-gs`pjqJ>aaAa7hNyE+V2e z&n|Yi*P{4(EEpsMNr_Plrx?DSF-}wSOR@R@$a4znq^b-Fr zeQVoMra9>Tv3Y`AWMe0yLXIwd_r)uhRLR z{D-GLGfRuf;$Ld?wwHzIaRR)xG|9|;?`tz~6Yz_=5BG;@47u&iJ7Zrv@Kj-}&Zo7! z!R!#W`s*6Rt@Y_`I9U(v73{chDs!L?L2%VXI;#wA2kgUJL)&4Ou@64Br4p3msWLB9jk{im+}6Y+RebpQYW diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png deleted file mode 100644 index dee167c5ccf7c3b2b22b3c6a75527871aa7c202b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png deleted file mode 100644 index f84f46638756cbcf1bd4def00427914253e6af03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19421 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

      $JP+<|B1Fl;ZI;@p`_ zU#wW~o}`ICwx|dyh3g!?2br_o^ko8Dh&2{8Qx* zC=)%dHXHur`q3ol6jdJ=xWD?~7ef2!>ZB`PnLht(B;ts#Oq8G+^fD0KDK}Q8eE5A4 zvsnQU!L1$tp4mlpxDJCHr0`GF>BvL*O8kSPr>=A>@-Fj7bnvYspukb3!bl%(QD%@^ z$itunD&3;7+qzf{{apg}mozJaeq8JF_uY-t(290d`xYHC|lNWp>L5a$E9J_Xa{KpO!@Sth2t6iV>&LnAU9o2y`koJbL(tLof-GGwDeo;V4nZDRH<$QDJU{4z7k}1v@mttaIh16C9^gB_-HCv^q3Y*F!&VOa|``LDDrL< z^4q!7$3wLa`egrNyy9v`%|c@p2PCVM zJ$L*Jcc!|^lgyUi!ewL)hC#$gC})6(ZqJ#>&@pCj`7Rw2x6yh`dHfiNa^(8MJ))K zuT>L*c_Bp{P~qG!gAUmbe5d8WR*3=zH&pRWL zN-P|(mF5;$gQVv}O11gVlWTW>nW|ysWSgnFh=dW8nPE+=%u@W0iyCd9EvOWFvzhr_ z<+ssDZ*cMg>WTU+tPbClXJXIZ%LLd<*1tVybv zu2tz^@=w=62kx9ggH})4KQ$w>UZM!?Mm>DEI|sccA%LAbmxm*DaL)SL7I*z9r~$ry zAcF%Kf-c(343W?acq9&St|c9 zsOH6~RPi$)1<2dgbq=9h8+E^dnMtfSs@rkG&CYK@x0bjl4IyF03mvvK+X)f%HJ{+W znW96LBrJ(PmqK#kw+OND_JQ5|QW7onccY~n#_U{Vj_HF2rVMO)sDrBNY8iv_(PbYX zd-0E4YD&CvaD!ZaFtE!|Q;@6~qW9E%pqH~J94hL)$?esM*)CUZ*T1pH`Oh;2fTQkM zMn_rN=X$;U`u)h5KJ7H)m2$e1YM|y`4%g?>GXs<|Hq?uAM3U>Tw)C&FisLw;)-LF_>s($A?%t$LCTV zVgb%j-Kj9&wH!CEO0r%aNP&I95}I+s&zvibewI&7chHt9Hs8V>CvK7VoCt-^9HVM{ zNHl!p+IUlZuD1^?iJv@}`+bV$QX!*cV8z0%1TCrA4S*h;UF)Qzq z*FD}yYZVl*JJ~lV-M$sp_-FF#g~Ew##c0?xgY`Oj^NU|4Aid>?v&-vLNG`pbi*Ib! zO7eL#U%y#s$vy2HtHK4owrb1@<&fuxcIMVUtNnC8N** zQ(q1FnQJ>bvvkv5Rk(@8u&H=h#p4keMpBR1`nHX!XE(3{n<~L%9;oi zpq!KI&z-%Yc_(doHr|RZ+WYaVc?D~&KI{K-@(b?hgZ(w^*2GT8e-U^7S7>$mW%-b4 zIaQw#?*9KTtNMRcW~oy%y9Y7BA^?n+FN-O^$nk;y>yHYN{UaJL7q&Lm`!U^v;%&Q` z=x$6f-^UO9UFVMfqr!RsC|$b*Be%;qQm+PhtJ1+|8SYXPk>TG=J1YC>BNBM7wqPlM z(VOVtq9Zk#-g8sC+4Q}2hB6DCF&T_97FV~)4DuW=?(FqM}WBse@dZ)CcUn!1qekiImOpRWtUpq)}|+!_HxEFL|JT69SXa> zL(*poMg^U0)RNA?BVi}<3>>kuyS?EZsj5foCvWYsq!Mb{UR@?II?5)8A}b_`H$x@6|Dnmw zW%W5sY}ardry(o#^>81=lu(y)3)&8^GaE1b{4gvXgDTTlY%|*2iYYUOz+7}?2MhLW zJzQxeeG9Fh0?fKIEj<#R%IMtJjO{(A#b`)jxCUmW_6A{h>m++>0Dy&;rSx*$-H{u& zx|e}>IsFr&fiHft-Cv`chI~x@sg^AfF=8jVEp`;5Wi9g-Y~K7R{E?3jskWtQPHjT6 z#z7(viZVWEY7ys8(JhHaA}Eh8qDU)Ie0-In(>q$al|#&@yz1r>&)fKJeFb8g zBfA^mXgpF=X-`bLpEEe-p*9|TmLUMbii#qU$;nfTMfZY?Km2qbyi#(9^p7&H9{c3I zwZoGv+xm%(F=MhO*pUUi!~cmPj1rwvcm&VaXHIEY9|qOP$~WE;J$Y|OM>U6fYw9|& zjd`nUKN2Hv%S4KngCvA>(?~Qj+vyKZDNiyCA|nZps*VzhJMN67b*-e-i&67+8btO7|;ONMXw;WbCb`yU;?;N48S$8kLN@ zLJ8@|Zj3NX)=PHwzPI+j53BHnzwX_1s(h8sUNhurAmu&SargxW32D1gu$-u$RIuq3 z=<*mij~G1A>{Mk>@M7h#1QPBpOQ^rL_3O3bMhL;b{>i7hQ^jg{p!}6;sCU z>8-0vq0u$l_|DAT!iB{Bu|9c+jp=7nT%3$x{}no+(xDLIk~BUqv}aDcr+vdz(C)Rm zfr>j3r%sDUB%rKTUSyuG(PL9Nw%hKg&|S8zG}u>}z~i4|Zg#!J=-a z`=7b;w1b!|Wbc{E?>#wd_)hB^}^b+%CZ9Kx= zo28A~Zrd8M2nyQ#cl@dXClyv#=2>}{K9uRYr>cYkxJVW%0@;Sd_|>*>h_XoB|n z#)-kbi_XykuFY+M6^erL!Zrk?uwn9N0rxV%>ciAOkKt0uonC{nS5N87e9-Lgw_1bxJXe`U26xJKoG$%zI zJJ8wr;oOxe+aIe>A1N)b9u+oZ8BfpWNbGT+O-bi)s@pOc&iR<&CLTDA3@J_CYS@l( z#rc#9Or7^Qkp*$`IbApiYl#^EkYS~-+BE0}Bf0g$hG#G=mN^HhWDl3<5^YiCs^zvB z7?)CvIF!MAZ*nGIh6=k2zpZ$;*8tZU|Nd)6vTEJDhvL?vQ{yb6n$&3%s(Z~u!Bhj& z5bE8thI;0F0jAki-6JZIR9fa5URtzYE3LX$e^JTHWb6sLU1QOaLKc_#@WCDo$eWfl zcrp1q4gUl)*&e{hyH1gQ?Wr&#c4uo-2SDrucN}8S_$RL8oHBtcG4;{d4Pd4XJ2)8+ zy>S_(+LNB{g6R!oChgs8%U3w7<2(juSt`H|pR2Sw=++>Y?;^L3Oe>_2R{M{=MF}96 zIq**do-xGT*9|c&{+M?$JXLJLWg@)$#gb(EJeDQPq*Kno(T`RUm5!e%mmFO!o$o6A z@-fyRv{wc%n=bk9Jp(6iMgT6LyyOLp>nDXP_?BgP(VLF%hdtgIjDiBsqL|rhJPvMn zA?I4wCK2@lTo_EhUis4w<|f>tk~wKpj&br@)Hg~m29VJ=<~S@!n>QFv3?Ji+eQ5e2 zZs+HJA=~co`nl6O7i>qwqHGT*?q+sJ2LCxsZfyB*{E{x(6wt_Wv~;}l!LNZ&LVfP; z=J&^HublH|?II55XHsZXKt?qqB~NTg0uZpTV?&=z3>qZX^9EkCewm_S0$)>H@K}&^ zigw*OT5oPB-tLr(4|c1=^AlDXI&ypqE)x9C`Pt<077PE>^HxN{d&HpGH`$orrYeb3 zQk?Elo9ygUO%}nXJLwAXseXvAH*w39G})c(jU4ba=h-PfY?$9)M8iLanphO z?mG~cq`n*^j*qZWO9RpGj(H`6X7ROn(E$5t?nLd$Xhe18s1v^|p=uVdom59lur&r$ z{%p}9=gq%78hTlN&Po~?t?6ufke6YrRAYCv2@kBc_exWmn0(6>opmq&HYhD-$qE&zDnYj?{({Ix>>)? z_?f!qi|<9fsln3t_`P|luCTLueDynbQ3 znO*IG4-8oyXX4~R4#-Q3#h|+SB5*ZrVmcvo{y*93l?`<4m9-KL+JEF+K`6%oZ(GgE zVJrSi4?m9@|8fdgE>tb@n8&Xrw|A4e*QCpKN3)QxgXdse$sM*Bg`vFJtF4kb?G}dy znwak4Tee9h#cV3utcCR&$#*Kv$aU{1zZrDv#h3#>Cl6g4xl;wlImnMd%(&lddxmu&_4=N z(C+e@3&YM?j%)Ah8j`jP%5X_&bfW*b`o3e|kVYiv`xRMs?V zMxOIas24~FxRMe(ylrc&K3CvzimOgC>;WlbHwqoyE>_t?oMUj?pReP~3Lj$12?ImJU}cKG$93cFHqt9=zH)78JV7iHguit_ zb8f^35XxFZeR{=l5$Hb$B?6=U0xTdlqb$ zFR62O31U#^2&RO<2XDx)i!T&4wcOfrjv zJ!-+=WRchP1Uc9!kAQ?w;H6{1LB7jMzIc7e3p0-HYJ*H$=zDQp4FRI&TJqE_<4!s5 z_AE0jAD_S6RV*a%GXGwH=A*fx>TTbv3c5Z2EH?^6pUM;l69mC14`#pK4|G}1x_RSI zR@?Y-8nZE3Nk_>k)<-&nC5sE643d zhP;DbiO}AAm8zip_k*?fhy*e)c=qo$sJNYfQ||v?yPl-p?N27&-j?w{OTU|b=u)tD z5?dU$%*Zt4K(XH>j~`(hEi{hwrj9}nOdlQviLEw5yS5%LQC#?$*2BW4;u#shodp zfA_ECdcn=nY|@Xksco>9WZasQ&Ri?_d^KZL<5DxO^Cmon=g<1^R&5D|DR*b+MJ|Kz z?rFER9JgVxNHatDUhTo=TLo%LP12tbJ%x#Br7l8hvJ+NQMN0E?IGf?s(GO*S0k*J? zAYbK)%1#KrB13w)W%3eo4)w9>BR13&b$l6cw;#~p&A*aH9GmA|usWqHI*d8G@S;wm zOD(G?=W4!2-qqUvo0qM!677LHv4nuCc~%4dU323#PW|qDKHDw9!eW+5rlf_+nejr5hHfO>T0wKUYYF*H5IDeE!N+oGdv}02VmP}`)i+?`B1$vPBV!8 za~>&|{rq!C^C|s1z#PPcZSGvlx#9w9tGb+->vRByIL^)|_c^8H`bU$)Je1*Nfq`wk zeEh&XdFw*vO*3RekGNl;z8>J4L|@H&a6YxQU!*<8&dVdBgL#5YTfy$|%B}E;p-2sq zW)W4BWRb8vHrLBXKnriwx?0*@8y4@}yy42Wdm{5@H zBvbl*=R)d>;Am_YGyy}a9zq0V^KS%wH2cO0>B6Hl%lS9C`Hvq%BOHIzrP6i00@;lC zF720>y_&3|gqAg$_0tXLi9hA+9iL7JF!H)r#}ATB>l0x4KW*FQM|RaBP%XWg9Y25_ zt{t5(RBF_}XCmE`0vS59ee%Zct~=f21;+?nmub02qPn*(xccnO?*Gwa%b9W(SCxfX zuoTOokgeaH?|Q$_z|6`8CLDkd(U&JnTtR~=^f=a1w^dAyxo1P3c z_@zn-FrQmdf)yzrZ#XJeUcqFbsEy$iTf)#?Rg(&`Dz>X?7!Aapz zy7zy}*oq7~N6b~XX`iQvMj4~m=GkYLSA`Aj`eW7rK%r=v*4J9(S=4wp-sq$TyE9f$ z#6>b#P`h}B>FpWO9*J6TfqRB(jgUelN!v&pJCWd4#^NAYwEw(-+lo&`oUkB*v|PQ$GrUbJ?b-N{7W2eqk1g< z&b9I@@zQRuEvlY*lE&uU;E|Vi{5^R3@g)1lGhX7KM;#Ufx*A&tKri^&4Mic_NxZpA zy`9Yc)pjK46ZvP0=bc(&g@WFjF0?FbPB5{nYAbM6$@R=+kYsii?ID4Bpv-PUx!2G_ z^pv4~y%|LI%c1tXvUd?ArK1h9SZ zJ(|ZsR{%Moh%NEnPTwATZZ&s$W+2}(=0#$^@Hh5~Rd+V0H)B<)I~G-WD&?j`@QUHk ziAaV~d8jAH+liMy2``(vmBZeqRL|V=d)#qgwCQ(hZtGhFwB@{aP-&j&8_{tYB|X?8 z9E^>P{_dSdUmX6_vmA{RQ$~K0+kYTrg)HNAk1JNeO1VFgXQE|55=LkC{6R^ae6j?M z1!R&~9_oTNhuqO_+{L|m4*1QzL_P@MkUzUWP@3Dva8bNYA0kRRlzyGd6%x#tTNTnv zO{2B>RR>0k&0I)vH7v2fJZ1D7W(B`1Vxr=I=R9kmr zxL-<}4T8Z1ePv}qg|`@|G-0u*Ri?y8C{}c0r)Ii?(IO zSb1ko9_i2E1mDYEP@wv$O3;^a!oila+(Mu6_k0_J7-|0d;}OAETp-UH*)u0V-#Dxe zv1*Z_3zYW%hP(Ft3+ zwJ^lswbdf%UJUa%ubhsDRe2ei5&r5^G~_c^!M4o?ecPM#wTm@r5#DgAaqXMiW)Xjf zmt3la67n&1pzduH(hVcJI~wTiir@g&V9x>3j~OhRCj-AOj2M)h89@vdF-A%CEC*V2 z1T?`9Ne_C&P%m~^5V1n1**RgOb5Imq**JRFp`$bNSqS(r??aEP`}&DO=2?zEd4P8T z9nER((}Z49@Fm^g$y?q3OvnJZ_OCY^q;7TL96!K7cl_EWE9d_t0PnGEC8hAnaUGmu z#_oLW*7y6QA74Nc{vYA?U3IP&o50?bp{NR8wl`VMB4}gp-2ma#rHXP_iB1ZtK5}Z< z`-;Aw_;IPN8lqbKg+^U0o#u5xEZK?_zJboI|D^El(Ku~exTfoPvx}M!Jx$V5A7j}? z>$PfZk~`MU{}B;$qE8KAzh&plYC0Jmoqjcl6>{;C=;xVB>VyjB`Nz}hl9GtqDN z9l-iWLOQG_vQeT+J6HBM7=eqel5dXBZjY*K6 z2@yV}y3UvCyD2>x^Jm@nj77Ac4cS(j_o}lo*sMNvf!w*Tbc$*9y5`u|bZ=Q}l46P4WO(P-yrrF^Ts&AGExg)5p}w#5`hgd<+5>@-1z(WD9oQ!k6V?+3yNPBEtk;a~wwT@NCXuOaMtt4W z%EQKbS$WfRE;2UD>f!P^OW1X#r`SSGc-~(D3$2L- z5q540m{H!#=Q8j&tI}A#Sz6<*5ZzsBa#AuJ>6o5=#LXhkX?1IDC2ceRbs+C^#Gp}Z zG;!&jO+c9#*Y@tHrw(fvD0ZaMtsW#(AIwGa*o$XuvY3Op2~s9)Om^mZ6Qu{m z6k+FQ0)R-j9$Y8GjlSTlSur*~6E=F29k+TyX||=6XukDl%UggKfez{8x%Uf6(JuoB za6(yWnoUwJL0tG3JZ2AQyXL<)>X&iq=}(*tPss>z!_0K*9|~Dy04hC7g+-r}N7`Ss z4gK+`yzz*W&p<#l!S^Ig>awL&wsS;*GjFH`5~;TEG(058kQj^82Cs_oEo`n`7=E`C z{0zkWKg}Ld^q7~!RS7hOBiXB7W~`=u<@Y7t5njH{Ex1{w%!BB*ZTg3Q7jc=7>4o0p z9rK)tmkdc<)}Slc3dke9G6h!=rh8o@&_rkg9#OSi4UBP4A-A zxw>OUb4F4@y;QI1Qjgiv4VjtQUn?R~@AI@D>WTOe_rH(&8ic<7j6_6>j_8+Q+g6iY zfTGVAWv+iD%~n2V=(a<}2nlOyjwP*%_>8g#<1FnYVZm*~OkUT;se)HAN}m>%%w4B? zJqr3y+0-?U*vXF2f8PndBrjN7oK(1si4nfZP28Fi(@9KJ zG;_I@S*E!ldW*E%;x=ZkNr|?BOO~iXnAxah^ay94Otn#+L3x9~7t= zniqi@Uc}t+@HLin1oT6{->`EGF|Lt~Oz2sjxfHOxGe=`2BcICtY~tGOU^m$6dEZ;G zmgq&B@lIIKFBX=ylDq5Xt+%!SFy%PQ0eKLku?T-Q>KAb20(%RGOI;hN$Kj-9UfDUSW1) zYs-{S$;Z+KHG{|HP$g#lVy3FRzq@n4GM0_vE$12OLrX^IAcB|6fdl)7 zJMfw%3sJx63}F_mEOxFY0~cm`O*`AJoaif99J0pd>_(LW=o>aCwB>r+JQ7&k5ruEb zl&4bt(Spn~xeL4;Mkt5gC_^o?*^~ zjiatb1T^1!&aAZe?T)h-$h9Ol)u2WZz<|4|6j>X(*vRfubW`3Q;}BzAkMs?yi3w&P z#--8HCM56VLD3~J?A7saED4W+n;wmiGy$EI|L}cOMNv{kK%aj-{q-#yoOr@Y?8o_M z#F|~mbv&6Ig0mxR1DGYELCKfn0!zbzb)20W~6Fe{JM>Ro}Z(_r%tAkSbe^(D8mQt7r%V@!M8Z40MP zSCkoZ0?`wXWa(tH7Q$T~2_m8qU1ui*Z-Y3lVHz5S6V^(7%8R>2;Vj*Zd;^9P8DUvKHP7 zMryHf%lUv#2PxxI?y6rZCUWze;-oNUzbGznsyC?f*INzJ^KpBS>3w2Qa3?+qg`bE4 z)q)#FEX#ph;YneuI=uc#Zu`zDA*8i>tq^N7WbMNpBBI5r1J*u1A>dMLvUA#=Q@vU9 zTuv@2K{4?n)c0gg~V&M z=-XspXi7V2NP2-*0P72nrh?h0jR!iAZ7@RT2*fs|=UIF1;}9f;y2mnhDLit4zI)#x zIPgmiL9HDt==NN@cEU;-3yT=GEWc}z$td;v98Y~j%0_)I zm;>j(W$kEfSH^Z#U8Pr{iTo+msdp=`SZ&~B`2p1~3eW^5+bY~T-UrSzU%GB-e|k~N zMz`Jd(UQXBj-@{6N_;7-F{IIkRi&MbPZYTH!x3{q-GjrAVpL3CeAvaE-J5CwX`f4V zON>r8w0WsB_qgzOho}q9KRj-0nTPPtr8efBc1rpFI{{Hk^p^cJ1X)G-=;waU>lswn z{&C;;*@nRjJ|&dvG0D;IIM1_RuesmXSOOeHaGLuw>K5}2U@v$ z1SwTMy-aF3YB7q)C=pRS77Ig;^v)D_mvlNGHX5ZTIRmIrz5Z4LuKI$1Gvadoa0>?^ z87~4veQeOlhRtkc(vYHRid5+z^C0(z1j$6W2v?L($D`3OjWcLR8^UY<^)K5?&6rJ1 z-@3jAph~pglN*CFT5G#Kz&mr6#S3#sH~C4#Xsr~urLy?ThxfK`%q zEQ(7HryYw-G^v2an7X*F++%C3Zp2OAdNWJ<;5}L)FlXva{7mi5*Q{7ijf@N+2Jh$9 z2Ew00LH5s&vD)$H!ZO^y4O^OP)KjRF8Of`(J-+HaFxny9_`NZRZF{wE$ep8$FRy!s zeMP3v@4|8ERAHufppN0+i7ZjUr=}Z-nvF7*@KU-=^*Z4(P}MMqQ^ezrpD3RrR}oON_LO*wVt;h+1C BP?-P# diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png deleted file mode 100644 index 8a546866502013d4ce2f8add46dc18cabd9924c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png deleted file mode 100644 index e233c502a77cb25165e8e73017821dd9b043d034..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68519 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 G4E$fwgRB_< diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png deleted file mode 100644 index 6eba7f2baedff6cb50411dd190879363a5bc26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9681 zcmXY%1yCJL)2NYyyA#|kSa1#Q?gTx!Yk-5hySqyu!QGvM1&847?yi^j`)}3m&i3@~ z*38swcRyVnp{yu{f=GY}0Re#`BQ3590Re^bd2a*{^?6;Mh57s0K>k#f5{0OmAUgUK z02U$&A`lR@aY(O5FrPAlqx6rT5D=*S|DBLS4rQhg5Y*-};v(wq24^|?mik)0hs}wD zm{-FsGOi93cv_%XiNsvJDtJl;#<(r`QjRncw6lh(dyzs)5hM?uFx{42k=@=Y3p!qvoexiQ zPm5B|AL#eXCthz0em>_u^N83ID%jKs85tRILhmhb@*5vve!%knoA&OfEQRQ^@PfW0 z?6t2?CWY+F9IAge{4Ts4x}Ns2u8Zj+3+ZGIc?v#Tb3qDo+D>qB>h>e8sp#-Pm#WX;#GXd1*HnVlW8r1#BzRAV877 zueZ}p$p0cz)9n+5V|6g-wXohP=bMS-LQM(nb3H{5^e6h_Z9D4wu~gm72hb5|foTpJ zsx^1qrKT)L3rdrORSNfs-jd6yUecWQc~L}j0|mX4=Uj6P^eAui^G}iA3uW<~wEEmE z=jeaa#bkzEzM8cb?4!ev}3QnZpmmvz^*j6X!KXm zx~C=kIs#6;MmElgb&NLkcoy4g9|V@gR@^U=3Zf{3HeqNIXB2_<;4_iHhS&)|s_(4M zM`N@XzRs|}8oYGZy?=-|ch|qUZ)OOd{>5aP-k;ln6ZtqYNcRkSHJRCYx@I1J-DPjK zUmN7)hxdM%sO(fLby#y$wWa+>rIZoOTXe>!@-_D(8#`L#P?0q_ib1_VcV&BsRp9=P zT*on_N|TY1n&Zb`IDUQ~Xdm6GmY#V0pI==DFLvVYEzZ*0P4$hMd?oc~0J(QsJ`;{Hx zLj0?`V@3C>aKTW5e>cN@w!UH87VIejlZ6R^k27+;AK)5R(E($7jMA6UigUcmK@_xRA-_L8$48Z=D$gZpva#g*tqkd}Ny^A-I99?Ysi&ESK?UXz1QTh6>l z-%QB{fA1X4y5&VzR1O|KiFX(2Z4Qw?J;Vv$KS=HSb02G37+OV5hnq6o zB#=ogBD7eq55xP!ycp=jYV-Bx4efi00q|fx)%F|pkM+)otj8C$X6?|CnG@1L+1^Uz zOe2x*TLI()WzNc_b0LAc9jaDp>Gok$jc_)=ZD>73@rCvM4QiUZ-fwyk<-Yw7?5HgNG z`(iOeiKOS=WSJzU+NHk0{;7YXYvX-GJ|A{R&UG<#ITt8Kw|sh3G1Wz2%E3EwpgrT~ z%!Bjt61kY&T9>lxVcQMaouJ)LlZ%2G)gPe`&Jh zA)9We7`K74A=bc0XGi2e=uNW1-r@1CYkpysAK%^!QvRZx_&a%hAO6~VI=JL1d&*;d zsIWb=GdTl7n9*nE@+r$pmcqv|4I?sjeLQ5g7%a^}5 zlibG8P^Hphu-;8$$`!^M*24^b=gKUty`TY^te&eqU&8G_t$M5AIthmT#sQ>gSa zK{mIjtkZZsv2(Joog26MAX~hNUR3?J!#QgIscq z2(8ab^3_YWrd~mZM<&fj03HWsr)r$94YCeux`r<84YS<0-p|}Q{`Sx7Bfi5IK7QS_=cb3ay;M6{c1RadR@bDzbT}~Qm~fx>%D3QBJyne_`eC1Q#ZQ-+lYMQ9OtOaBzHS9!}qq zeV0~!kS_yNssSaBiY9#1PNFKKbv`G8?*fcljRUn?_X^LFRbu=OQW)>>HCf5B|8xGI z{$E1n*uva=e2vRhe9y?Wl{c z`iB&U3k9EB@C&Knd#$$4`&p&Kh0or8_lVkfhac9q_iL8`udPsM!)5h5&kAZ3d$D3K zK_m=<5_Y6<4*XN)X$c0IPWT*CToNpQ=m&^8;?IRPO>)i&7*-~_0Fq}pUdK#!tHL6p z#1kl#o`@RV2A-q;@i!k+0Vfs3O0SRsv+|W-Fk)=%ZXE37QI>GV()ILJ$@em*i#y1V zh00s;VUDnxvo8MWcrmG)QZla>i&QvxiB<^TOV)MIMmsjipNUfLcuGydQ$+XZiHIkBp~8_7*kkkV3*B)1Edy8QnMM7QA8B0EXu_Y#B?j<|Wj~uSh#jz*sP) zTW~UQ=8r|MYP(e|wHxj9o`!%Fnd6f+KIX`-#mMb8#tLO=cRud+P#uetB)tNBz19$@ zR~y%HShbn3QuBy`%uOBVn;=N4?4oP=`Z1k)&K+@dfu|S4lb6lLTnArLuLIJ4#GRtI z5<}nPAcxy=3qPkEuh$rss?Q*1JtUXE-EgyxlCWd(V^?da2bv&IO|aW_>o+%Sp63ps z4|-&$N{!*`#b(;~$3Zn#)TIQ<3^m$R`cvR8+AA%;5-1~x;oO8`>yl@DrJzrvgv z_@6j*I1#T3FSv6iaiE0$;w9PCgqH(l&!)?{23~4^h}L=SN1KZ zyJn^0jHm;uQS!ymP<=01A9oGWY959_$UY92OlV8Ay_b9MBp?%1{ilWUrEye({iHz}k5$bEY&TSPlT&Z6Z z$WM<~@qrQid|ohmz3Q!$4gKO*$AR>)*gbh}q>y#Ij5N}dKbTwk#p$-hE@(6%nn_Nv zr+=I1A^C4kH`Mjq$7^`I`7QToOwb<2lWx!^R^| zasi*o3CJ6)1)VO(Nj+agEqq(ULIbXm?_VbddtYkA@x}T}CTmLn|vydiElmw! zVpIb0cJ{5lXxDL9%}&MSQo|w~33?VqH=ckTyahN#SPRC}KNVb}Hx_wxbHFL!KQ))r|^bb&BpBD7{_<|JJxUwZ8 zs)8M7T%cFa99BgO&{rZdYSX$N61QluDo(}Cg{DJ`jQe!?hdc?+pFOxFw7Vkzg$ERe zZ&+uNA+z)@g8!%RiL3lCeIWJ!(+9*Pw1=~D2mYn@!W0}=j*&*&+TP`Vn

      H4J1$OST)I&8P34}J=V>j+h)iz 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png deleted file mode 100644 index 1454f02b49f34cce7b6cd8a93a4401025dd388fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115615 zcmX_n19W6Tw{>jW)=V(5ZD(TJHYRpDw(W^+JCkH$+vcQW{r!FKy}#GGx7WS5y1T0O zIs5E7r#kYdq7*U$0Rk8p7_yACxC$5;_$ugFfP(0N{du1O91(W1r>D`al#uZTrwBph-*5ls#=ri@wrq_|&Zd4?hH-LT%;Q z;AG$~eZ!6Oeog1_xK21uZ*FaF*=07mX^ZLic+3Tdt(P!qce**B_nGGxFzL6N?d?Oa zyXiNZ6?#xNy6Gpn_${WUy-i)nPS(ifwiU?m1?+Wu$$M((YU*6G)zLFPWv=}1bHAca zrUgyCi-pD1)z2A@A{qT|w>jC|rRCJ&=llyyH7uTxD_G%7 zs_w%#n%iz*(LYOS|sD)ryat6D7>wZ5k%d3+8+4-{I@b+^pcdHm?;$VMM~U3iQWd<|^6tM~|zj>T->i*R1bR{U+gdIehU2@MtT`%LG|`p4WpTks*>B z+yUEzrE)mZF5tk&fjhG6t>;T3%HJ zym}~H_-kCPYkmPiCqsK(p+0LyM@^fR-q+4HTf-yFmiu(3Wo_qSVh`#pw=R#0O?G{_Zj|EUi{gxi*t7>^K_M@Lq zIvANgw(>uR5o}MIKx4KB&1Zh|NbLKbM7rKD>aRJHukz$&(LS928Oy`gx;1d&?%!D7 z`^fgne~0v3ce6ZCum111Wv=IESbA%F#nImy$DW?DRuUpwd=@){db0-Chkbe`pE}(W z#U5`nr1LM48!7KoT;Jo;%72hiTKBlvFf?<&;R^f$a8TZOUN|d8PcDo1{V#G4 zTV>{_vuu?0M>%pjr*+@=);C(}8b8;kKVD01DI{e{S~R~za(#fW1-9{oIxTVhs{!z6 zVtde&X}PXv68K^;fxFWm-aT6#Vs9i{ypPv4jUT+Ne@s5!Z22Cp-Yzd3^|l*Jokgp| z1jY4~uCkUts@GfUdea_z@&vk2@mB43`!PRner&-a>tG)J*XaJY2?$P5JDZEC3l6&s z!H=&O(yx-QLoE4Umo{hrV~hJ=Ld_IaD+z@+mSzCge?w)MN__STK-+YitqqR59WcfV zw+o>Hu{r|*Smf57oxJw|eOM%|uI8#%kXspSJo!BN*D0yEt0jd>8+F=B<{Ny#7%c8b z9WDS4Be1@a<@LEaA0&mH7_Jpv1Pb0foy`?G&P+qTxe>C~o9^@yuk|YRDJ^=8pMHq+ zea`gWEkmyuSRQ_C`z?#U7}RZF)cv2sYuayk-mDcW88YVj?oJUg-=dc1EZg5EaLm>D zJt*z`A8+LM{+B#%o-UUvz5=KH-r8nPCGLTaIT9eS{y&&WU%3ujUC4MqhnbkTo>xF4 zNl5tn-p!X5=Er)e&Xb42`-&&MO0~m^j>ZM66Izw^e+_tDQ#;_w=i^QCYW7FP?jp}Q zl>JVrZhBtN8w!!jmIBw8lw`NnTH~w4z3!%y!W)VH_D%AgLmi1e464;elkR?TehH1w z^+J03&*kW=?Vi(D!cG)|sWZ(I?S`T+`S0#^t+maYor_OzpIsky?$j)wwqbonZTj(f zixfrtpI4jr%Y&99Ez45+)*Un5pr)1vAlB~FQ02A^?(=*7+|jm#JZiaj)~eM~mh4LF z)cMkmy!z6U*>3egogQ)>=8-xVG&{|o;dcE`C{PY}ucNrMF>SE z5RPKXo%H^Ym0WVg14fB8BJn0+o0nhG5@&!Q#akktRP=1Xc z*lun7uZs9S3&*~d{bg+*L(6x%G~MlbfzYBDWF4e28Ya25^jEGUSu|d)e>c*%7g=RK zULRH}&)TfBlyt5J9)^385*+A0q~b|l_aYiUPzp$=9!}4eIh}wRd!&lM)tWEi7tw5{ zt(~*wrkURjxv!|+O{$vqW4(~;52s7+vp;hm@u4m(e_k})7l>RrU98k8#FK1AAlu%2 zpX(D+2UNM~%akaoiDA!$V|=pLY!WcJt`A_;e*`_MCyASzPwFq>~9U!gtou=mb3E+bku- z1p8{MPxx3Hujd7e8>1tL_nU#@pA*kJknZJoej3qu*HlYeq8z zVj}S=O<%uRdLm*^+3cQw{~>)K;kCP6bru_q^%PmoRMnB?QF{{U^LKQ=-V~%P-q;$3kBC^rfvucq{x20A*t@ck%pVB{5at~ZpKdCq@S<`YQ zQWj^G(OIfSZb=X=(psA17b44g)s_1W#$8TUFdtskidKJZY;`>la5O5kIbdy@-x?9u ze9BIKtPo@$xt}p^RDa5von`qFBqR>->ZE!__Cvzdug~6LW;BlViUT-|bRiSZm+7udhroDTqDE8VDhl&dGIE0no^JJFa$RhEO9U+hxngSc__!`tH#S=T`o)XF6Lr*{(>}I4 zAnA=vNON9^%Ot+gYOC1+KU`9au3EOjsH?Hw9QbH(F&o+TlP3M>uTCWl^*GQvwKDb; zw$Uqe5JmL(7J#9`hKX5Xu50LyEX=Ss-wDxnv96yZKb4~@=xLyBifK4OU-jFtz1?A; zDE`>&fsjRo`JO8(iu;E3Ct%&;2Vm3umTb&p0~Az|@PLYvH;N$<5auF_Y4OMeuLd{% zHs#<++R-#l@7p($TqI5+75u`5-}BtMNMlYZ z3(8K8Qe*J$9j|=ecHzUt>r_5g$jWqUQ(XxP};d$uvGh-?Z_9Fx}+eNew40> zLcmdW5-4IY02@_mCV9qVcbL*W_-a0>74+|*-i(rmXvhEI1JyegFY;HT_&KB@-6dx~ zP|+m5zTJL?#Aqe)T`~Up%IC=@J%|mHp>1$X7)cElZ2z$PhHv-Z1(yO@nYOeDuJiH( zK1)%fwZX?eweN`b(<5wdGbN3DPGa(k<0^nk;hOg4YOO5#P!58kCc)P|h{l1-nUTZc zXFk6^3`)@j?navul;Yyn81Za@p0xx%L|kz#cQ4b@_y3v&9$NXy`B<@YxdB&FszV3^)7juzJmdaL-f)4%kc2qQ&z zR@nBVx9F0ycrhF1@{zh8v&F#g42}L51c4bj8aIMYPL?m11?0u$@~S*aD}o>4G5ECJ za<&(2FsNr4iBO!(Nt8njeiMbi#o4YgQ#hT-fHFjs*zS(*R|H_8eSgDA7|7vRBHl(T zrmML4-2J<3xeQp~4>|sdoncci#J5@e!WIo& zR)38v-?*LI4SRJl>GJ{4dCHsHcYdSizCQYw%i&73+=eOyRw$%1d5EZykFuQZ1pv}l z?QY@!e9@ydg=v@*NE)}CzaUy1<2Ii?gIDoLMOWGgo@T!1VZ5w$p49IxPJUE#Sd31M znoqvQ5ZFuDh6#xw^-jcMR!e_;hKQq49FW>}pt_SV3kO$Yo+M1eLUKdW$k%To7}A08 zeJe+l9ylip=~`sal3pR5&KU`6A3v2L^-JM7*_zf5i^{g>V=<+jnmW98^gK72GZ2d) zM2Gnpiz8(B;D@Aonr%4HlR$U75}GCFF?)}I98+TEn(Bw4pFl$+av!;KuYi)Kr%I_G z5X_R!?mvH*uTn~8LqL!vBs^i#SqN= z_>qLQP2O~Eb-89ZA+;|sQ9{z8=CNCk56hTr`1gdh;){h-lX@eOT9c=$%{xJTNX9K6 zYp8+mgBOqW0v&uXq2Lqs!_UNQcdIQ6+5MC1&MNID z7Vv}lIFSF!F%*~nJY?#LK)vCzNf~n+2a@nKp41!HLfa&fJ-IEt?OO~_>vnojP{Ypk zAFlMt5)jb*%^b2OS{b789XBOwoHUL9gp7#Io~<`K1HQi}b-o5?5g2edjK*|IMBCyp zR%UFdwHSeyo~Wr|EiFQ1jh0S^F8FNu#N`XJ^)+_Zm(@DVC0#Zm&_r6vtN@yS)5q1x zwOlldioz4Z0G3ka(I^MQ<59kxOpM);|B7=i)_j36@tN#X&2d*1{Nxl-=7mrK;4CdE zbNKypv~H{qJz%0vy+0w$OiPatY-(RkZS_B!=NX}H4427ln%kwh$>aA?B+9p14Lg40 zJ@H}-^Zi$KL0fAJwtwWvmPG2|d7k_pxP6DjwAGw*x8UM(Fvvt-ty^yuRAN0|@2pzJ z!DOJ*=j3dlE#YQjOR7bYiXj_4I+elFQ}5)WfpcV*p6;q|Y`4-{S6a)WTGo2D7`cvU zYg?L+GE!zfc`DlrFV!e38%tX;S|kzaN)y!MACz&nbG05Tl%Rm-40D3aK#2mHKyThTbvff;&Ge7cy?Eb|O2AN_d)+8COT&y2iaC9}Ccd2H16J zWJgHhwX#f4LBqfj1}iUPq_WTVr{-|?ZEP2084J~J+HLI6^E-_oeI#T_I_^1|>HZj+ zl3#`;sHQZqTd1lh>k=+hRxMNep$BKc09)Jwufl`T+b=BN!HT5jr=~Im`oau#ZzPVlQfVhWqz|##Hou)mcMi!zMN;B*lXEO z_yGZJj870U{Urgv(Gjb0lCi=<#yjh7x~Oc$uR zc<)_d`)oyl1;J1NbLqt8!jhD>j!Q;U_~r%r#EBUfqyF-@V$Yiav8v-~+l)S|%i(w$ zg=}pNecC12ch_BEoZvH6rTOC(6=C$@|LC)ic@ls=?8KXJPif|3E=H*>oRnTrZd_mc6h! z8rgb%BIL1d^o2ufJ9{1|U@;}`6r+{L;)`QHE3rEcV0N(c*b3stFh(ncBz>T^M-loS zRwyhS@h_R*bWnWsXk-4pF0S5*i~96z@V2pq zhQrgO7H&aeA(X)OYDl`XkpRg3&+PALeOoQI5rTM+uIp4>M=?lmo>B!4T(+`@T|{)< zL6)drP7pu7)zsZr&eRuPb-CAMt*EJJzWJj%Ei^gI4HjjcUqilno^6y{4ERU zfBw|rG57FLl;L3@;r$#s#O3t)dV5Oalpx~_;~LxI49q}s=-n48FNtwfn4H*4A6aVI zQYDRfBo$OS=W-scM%nTqsK{(HQZ!}(TI+S1Ng7=HY<1lwPn2~uuei?k8)J^n=(jfS z0QN>B;z*^IR7yZTTq1{Q`Im^>Tg^b?*HF@kHucCsxzYuP8S_zbong0?j^g8Lg({v& z|L??gE?&1)E#b>+d7kUMN!PZRZL!e+t>x9>u5hI+s1OLW5n6p^wV7T>UiX=C#_x1TDHZ47cktY}U#vG+ z#$P6x*x+;gQW?=(37g>B38=F_QFKeXC1qzWuWt7KI{l^-4oHxwR>ax!W29~b}e7#3)ZlKoC_9Mu)s#JZ=pa%c#~ zYx3rHx`s&fg(`DL3vJ?w{tQO6DV?L6*!)1m8oK&V?*#UPPum=$9`D(o+jSJUNffe~ zI{i}lx!Zto0xthY{}&%&0}3Jm)G(xEjCY@I{G)!S`}LC4Wy%uAY8_uPBc!bzPvmmZ zVv7Zt;;k7bjLB}?;md)NdSMUk)_Q9kp%7XNA1*3yTj zA=-T{2rU+~{0_rnTJ8(nOTkB0h=xHSTq>RkMD>2u@IfIM%;$6`bNG=h_km->U|;f< zP{=B%eFahm<(4O%0$3Uv_k#wH8|6Fo&X~_Rny=S5E{#N(y+TH2uw?uiURz za8rK%;6CQhY4_NJK=}}Ect|r7n z54%yU@BLs%>*6UIoymYkv&6>k+34xA6EM9+n=38-Jvt)yhD-tjxR0LvZcFG5yk21} zp2^t^&KmuNAF>tg<9@!Oo2#6l+2_V0e$83mhs+zKCcA5~_4ahZ;{=A4i~#VcbdsIR z&@IWtFo=!rnt`wio6Ri}Dmz@Fx0@FmQUWyZ-7jg!j7(Q&ZRyQ{L7g$B8>&-4OE z!KK-^b88&v^&EQF3YjOV^a|MUP2m}fg_ZX_-_pFKqT380BU7C2P}k7&`6vX-l}`0#b>8*C@frc&40|FYRPt&@EUpk3Y7dy(NoQ>e#eBoE293R$(tK+ zRvH}fYKM(R+Xvk-q48y_-+LYaaTf(;GYhpwTj{cQEf&uGWEVdwfU{IuYd72B^YmFP zHS>+J)XEby1u&7bR|y! z7AcS4HZJCw4Qk)18r#(RO88xSNedlqOo;YZjo4Vs9%ZBKq`v4cRM;?%T1}>swNi7Y z60tEQG&^ed2fgpL)()16{?^q^vB|=)St%9ZaJv_AWu*q(5caXE)?G}w=B|qNm!eWct~t zyaC*{9+2uO>R`D5y1Pq=3%7iBwkGQ{RuMY#%4%D+owtHXSbZO}6I}I0&Q*fdt5v=s z1G8au#N(iYM}f{iVbDzi|Au481u1wZg_++RMQKH!J;}h7h83UBgUK$&E{kTqaDRW4x{b5A$X$elg2z+jG4MW@ zObc!T+Zvq$xnTg36XaVUJvCuUeml-NE2KXVe+5?S7D-#u!}5_Uxbi6;>yAL zXq&aFxXWJ!mOs)*CPryO61D~~NiRm?wdi8+sZK;xFxLbnkwQM!l#e9R^*tfU4BFjP zAx-dEutSUpZaBSe3*a%&(->Zu*^)aY5DoEJjYWOq)?8E3an;t=SHwO9`13}xfreV>}0j`jVU3*gfPikkA6z8H-It)Re_S( z?-a`4IY{z(y1eg_(35HJNg{9n;Jv8|_c;b=+E^k6zhaRFAA$)ET-g=R$|Unu8;{$? zgw;tHJi+M5#P*N9AiE4QF}NJ85aX=#26@=|leD=Xy*ivN3**eta383SY;^)j1sV&=WL5My+k!mT+68!nK$4*R#7rqe(B8v1NDK~V zwvaN4phD3@-beD#>U}}y&X^!9Wc&encnb!_EUXPwY~ireGPbw>m@j2RM1+ke6#}X3 zIn{E-$;o8RsFrZ^Nh;yM@LS|)+*Gc`4ds0Dp^~U1ajEBa>jmPgo2PNG;h$RNt~;Mh zMC6Z^pw#L7Lox)5QvwR4Nk^7q7m2`Y44(4(s@D8$KVXPfp%FUW!t=-&Q_xPUQEhsX zsXvI+WwJe2ej(U5^#)Q`W z7Fcha8EYjQle#;Eiw$^tJe&OyWZE(|TNvnN;e6Mw-QoLbbEPR4sDwmtybucCql%k8xU$4MO0|gpUeHEfUayBF2Y6Z`)ObKe!GR1s$%ecjO z3^ihc`lH~=^Epz51_e*uwVxLLg}X#t=2^Qb$W(m_n|%Qr*IN?1vogt36E)Q-I`giF z+0A>S;Yz1t3d??+ZqgDk)?T}(ERB_*^w6=U1`okYB^%ib`m8t1{tBN*$_{{G@QH-S zW${^l#jEk(M84M5wv_J;$LWN${|&e#_@g0ZB=xp#i3V) zwx#LAUvAR$-E9I7F~*CAK+Sn1A)Ml7>AGR+2|GGR!c}(kSufdD4Du2#i>S zXQ!KTm;wX^X#f^p)+Mh|;1r#*X1*YnIn}3M1hW_zK@w_M{rO6~20E43x$J6P0PxH( zD=?e0L1HG9k$yMx{nB=o*>`q~!B-`&tMM@3ULO;!Z=r_o!;O$xdLL&E0an_dhxfs! zf-`S?xeAw#og(IHko$Cs=||gB$_dpM8jFM79e!yqX9q)huR(!AxuO#h?0UT)QBrq> zRPYuP^|7djzZ@#JEn`Ft`a3+?@mwhJ!Zc>~D^gHK{~>Khi3)u?n06gHW%G^OMcJs* zWb8%xA(feAM4p41z-uhtTEHQlWenSf|5`3<@~X_oJKIalvuT57O%iu7_jkp z2~KgElTdAh7&zE5XyZiYydDIZ8Lxq9Ugp2@x9WE4P*YrGC#y{9%RpoU#7m_gn7nK` z&A725{!I6QE0jXA{!O!KcUTOo;Uj-;ofXX9@K`jU_CEvhZXLXZiM~9tYl;1^u6!L9 zN)dbHgxeK$`XcvLKntnH7l(60Kz7yA34T8ynyRWi&WdTjMr?zOz&a6~^+K!)BpR|F z9Kksi$l_+GP27p|YTWTrchNMzb5u633#KXnn&Bj(Vo|qZ#`;7M{N^(R-S=c>96hga z2#SplA_ZZQe9K+`)fI{5k1CYAI__L855XClMITPNiUP;s)|PESSYe9U;toq6o-IX$ z>SzrWW5}b|_IN*p$_|A)b9y1WXG+!KJ-7LF~ldV+DkB$zm>zpXKT+?LajS~@~B8RS4En}N& zHH=yap`*bHig!xF{M%4|SKQMj^#zOjL-S>{aKr;r$G%IVSDiEwEX7cQx4JlUmc@sI zivj zElRi9ivWqh&y2U>2(H{Me_f2qk5O0LvS+!)mpxJX^Nxk+$!dPW%Y(3a6cT`;D70^!%M#W&*YNz+8y*>e^w&ob%;)a0lR8Rj&oRLLQjf$$3 zU<6W`F(*}$>ynL52zOWbv(JI*28yV0J7;qOJg+J=<>n20^+g5JQ4f2K)OLpV zk}|A#);nFeXfoZcKgLgSqd0!={7N{iMWt?=JjJIq+&4(tL5hRsPP(ZoX0N=*(^05m ze}T?TneIXf7V+yre)Xtu)R>R_p+6r<;HnxzFZa2&%mL1#4&X&&_(-INrl9>;BxdU< zEmQmkR)W2e3*(YRwY?6!{PcKoAcjT$$%ib{+j%1Z|Ij}`ibPO!52}fH2>7&>2gL~H z!XRDqI{|E(96el=(VE3&IZ0%nwIC-`E9Q+){{lE4{DLlU0ShNgTJX0?lo#V+_Ij|w zgzy5Vo|n0E6^=J3em)go8i%!GNF&K=Q^^y|FOQ%LIT*SE+ZI30R%{30j&NWt}v~jPUlqZe4FBD~-NA z_%x}OZ&OO~{#KLwsYzDHnYN7T_6jB34cdc~2ky+(HfP``DE+Z3Dmfd8BWSE3sA4>~ z?PuUs_4kNtJ5)V=u}-N@D}-iTP&uqA&Jb?H$LpUILMO`UioVHGlN2a>&jv#qa6<7C zJ9+4nn&fD5!Q%8YBCp3AiDhLM$l66(J+%xGb-MDzWi4JT>k^IK*s8Go&>Ro^BcMSic=z41MY> z|FL8e(E{z7ZY-(3L@QkT1nGK;N*z96Y5Hc;-?s<|NG|U_Nd9mkc&oXeHknE~stb*a z4*iLregj^x*@?TM4P$X4WT~C(u-3)fAd+!hKBoud8dKF|KHtfK%9<}if8B1A zeiNySaqxTVTj|kN@~k+#pN*+?sU4>Frj}m(;hf48k~HILgfjv@;3sj38UVAM5ch&7M=fb=_tJr3XXmXi4Vxqk>7S*S9vMPh+zu z@Q<~{aUcCIOC-h5NHBphN8X``SFYZGtzR(p>`zSA^&U4?)%M=bj)7N%r*b)U%GqoS89IR|Q z6-T~~H{*2P&dW8Y>-lFsUf$0v82D;OW8GJ&H0pbdq-qj&+!o0(50K;K`RqwlbT9^Y zl&aUEK`C6)FE@U(_ckO!$BPt+FFU2=j2kWP`2NYl<>igkTFDskC<@6tj&$ugJMe0a zU9s(5I>NIo8kj98$g2Z{32D0XGEYz|@*>Y(<4*8z;0R3#cr8Teww{9%)5 zm!JVJGb7o}dlHOT*Huv(x!l=nPOl?@NdQm;njYX~nG-c&$65)Do+~3)R!Cr0bnDy4 zwpA^sj(^%xqkg!4ce!@$4=S`Fq_VNvh_jl*sqMKAH$zNMzC~aZDBBn!#IUNK+O0{%>)d}PCdRsFBDQ)HR_{H^R$H2-AZ0UM#uMY-Bai>%Gs4=4)xPY zUPdlj*l;r66iR8{U|sZtwI(vY`2I*V?!}h-ivBAi zE|Z;=l~%n`(C6l%4}Tg52M77AvI#!|(4g5WaXKpGRW6OHx?Cy$^SbM1S`IsYV1Qm# zzPh&dF=O!Si%tV6*o!I#!*Ap{%6I-_adOf5Up~@89add%s))J71TgAsU{y0E)vH#k zJ1WUPW;$v_hrE(AO@sgY{mD$gai-;|l#p4m4K>YqM$yQ!E(|MPsDP zn4@tPMSc9;I%px6?yMIDoMC{1H|F88X~rg&usMp8Zh`u^$WZ2cJj_B;T~8?F@V4pJ z;;l=|n2{YL2}}9;Y57YX9icb%t2G45;)@Nl#D591Pvx z-_Ob-u$PgM(bm>BHYV@#7XPWPe$>#~+S=T#MhI6WpT%BbztPG|L-D)1T09aaqO-HJ zV0gIruDiQCI5@ZfxQub?-q_SsQzV8r3|FnCtZW>WW~URPqgpRoeSn@B43=M1M4>B; zQzwcPa@xaTl7`_2tRm zqPEyol2sa#7fv)^(k_S`Ye68~KbY`XL>Mfj0oT@AEC|jDn-r>Sm|lXERDxDggHa>~ zvNf&X1&?K9xp}cDq`%CqTV0gr8%!z;CS*$bShW@t!UP;Y_0hLTTZfFseU}=YmihSG z0@vU$t|aXpP(5CGmAW}MHB}X0AE|fI30fieH=bo3b>48A_HBB7T5MpWg(d zt{$NkfS(c>f(nsyCPchCh_gP=Y~rXr+_`=l@oqLc3{0_-X-F#y$zDD$D;|s37}n7s zm*K~tbOy~gkfcSjz9kC7(ft-#a_pb!x5dh1(-m|d~=>;2TL5^8CZZ}YT*6_EW z0UcNv^pgx_TT;kM^qxdB#%ct>m>hI<`n{!NQ3?~u8VGVXl)!p$guxMC7c{zd+lHpV zHZzI-L!HSBGEPMeTR<~Dn??8M>&2rHZ{Zo7`D#4VzA|h8rCWrMZ0j63i^Jj>op zm^pEk7E>#3$T+{`1-9Vp=tIjX_S@KZ1LKS`c9JeJ8H|5;T+$^8$gyq8z~a+`5G0n? zI~-DqGpGQwtsMpN-A)c2m%-hbaQF zb64NOf1ocFzE{=t>P%iC&qp#2dyLl!`8?X$WOCTzSib~nj*fKOhqHomm9omp^6;tN z<{B|jv5H9Hf@c%D_OJH0cUB2WktL_LjOX^&_l+V;6w8of@l9Oh(D z;^g6!na!{x@MO%iNLo-lLJCzz;A9c^h(cb^&LsJ51SDCwq9SE=NK{j>CdIw#KzA_u zhnW*Z*4apS^LgFBn?Svi3s?VkEJ~9b{;nh6tx`Rm)hZ8KDo=_!6G;r_CoH!{c5~257u?q_3NjQ_q zHCzZ16Fr8XT|FfNVrmuJT<>D`H+7sm4idnN4x)#$sZTB8=)Vh z9wJW1JzAIydZo*F2!!hEag%Ep1D2};#x>GG(FAcz;;}NoBt~EFQ z3k8T>U()y7DmBG2%v_J<+VUakIR@|<4?=iY7E*4rGvvUlDsW(!10unDIeS7>vb1{27|n1?x^lY>@qmI^mo?KgA; zhArG(#qeI?e~9438zdsY#~vM z8cT70H06j;w(k|3(wWuY#j3Y^lKs1C+sO+*jw9yFb6?h0;=db~z|~(Yl0clL!N~*7 zq|n#POmhjqEF}aM^|SBmP3WzNK1g=XzF}j$iMhxXf8K_nFwjCr^;IXwK_h3!>}5E2o0g2qk93CS%q&wjyK%1QxG?+v@ z%Hcn>`R{FgAAbeOJ=2-=QFu=az)XUZz!s)+`3`K8NrprViJ3_9(eJ^EJa4v%;~X1C za402X#>dBZ=}`G^`$<1s>vRseuoY~Aw&2wM8zOkS*`ge{t8Q_-tVW1 zafQxAk%dBu(b|GxaW;XkL0f&9!Gnv6-8)O}GIv6RhcMHF)Ni4fDQZXVG`k=&x$CUvF+;x}gSh(AqO~ z;FakO+75*?4mEw z@hZ1VUCxn3MEVDZTR`Z@auJ)G9Her9Y)tFt-2pSs~HNy#}aYxjHoE!0H&pc zx>DinCwJyw4hJdWob$zsg-F^wxReS+YHxXNC91eq z{0j(*jfe<@U*1pGj85%oCL^ml7t1xKxDzg97VgD&>kw4^a`WD=XXOjk5aJA|lYkMa zilkGV-3m1xn?*Vrb_cnEVKUDWLywjrRKe#!T|#z5ddrsB0rOFs&fHU2-S5TXIU+pX zby!WeE5QelDBNIXn2{FtN~HLGW6L^ZA-9EYNEP9{Sgc-e#iSo}30eJqZ;xSq8YLo= zdowEvUk`Nw$n5xzhvSJ_i3tH4>FWE0XN7FRh|jZq9cMc_{2-|ryviZMkd)hX zR1VIRgRvRL$;6P$b|BLA<2~tWWoX7|+o-4Rr%$8l)9`|{(xB{8diIJ?g_2hPy z@I0sp!}*P$Z}+MxDdgd~TAB7Fz?qA1XgG7fIrk^anOae{2Ev#A3KQ$6r!ni7%19V< z%bq{+GLbsuW#+Dr-5_8Y7c;#~5~R^&Xc&V_dqU_&M z-{uiVV!f50)CM3uhE0wBsa}QnQ!%oPm-5{$L;lNB=q)pLBf4XMMPO-Z7+km%;dnpA zx_)q$Gjm&yem(9R1eC4?w#c&5@Xb!qX#g5GLwX;Dm^U=KI3h;Zz6G0AlQ!`4b_jJLs~LLpXQt`- z=i5#CbdJl!x4yTn8z&Fu&(Ej69Z@d^Raf0#pKmcDE_X63D1ZDO*T!(fZyLr(cIXsc zO~t=x@dA%{vWbv-zekE~|5{|*kK*{IV3b(HlKL_eYDcF5?5(Yzu{HI`F|0@g4BZed zWF4J3rF$GER-;N+dns0nh7ZEOrJ2TQrBG2Y?%(%AqBc`L4;~FOD>;3m>R@C>Q&^|j zEKyp}ZMGs$Fv3i?fJir~+)bm1jh<)($3bQW*LUXOsLs1&ioH=AJs`ud8^FnX7_@g|cWq3GSn$jImnqGZ!966_6KbTnTx0iUjN zPK1hxNfeWmsmsNh2w%5qm@#A0&Cb5x!N(wAi|{uc zx~`<*NQDbEq`jNbK=VT@^a7uX;DO>8KMe^^ujaXKO)G_dgm@320o(x>lqg#{+V`*% z%nds@jlhX1Mz}G5LU4O1xK+!#=(jM^@?PeiX;1tDWBY}e2*nz%_ya}K6vsU!DgTOM zLG$xtPCSP*>Pnf8V}Nr191Xx8@P0swFEdQyeOf4**tcGyClj#a_Y{lLGfPb4yWg^6 zFvR%}BD~zMnxFNB(6JkQ!8mr28zNP{wsY#&^Ik-V1#Of5TC01@ZqkhkOP#sV6gkS@ zqEH66;dvStvLJHO26ki;=VA0^4pA_Z?8%;L^V;F70a(&QvBl7kkWff)g$oyM%fJIf zD(HN`jK|gbfS-Kt%U?%cpKjjE`k{IbuSI34yW{@|%B)&4tm4jfw1@Mmy5kfg+&hqI zPg?I1FwP;F4o8SXL|WwFARS+tTX(fG!3DnAf#VQE^6sM<0A|Ecc!rIQ5*l7$!@TIn z;UN)siKR=~gSS8l8jv)nL^+J7$M$2T4^tfh>2t3obxmW4*+08ZM@lFdNnjeARzq>! z*ot;1MuFvNm^qJt5NfDw;IQ6Xi?)L-Dohx-hV#8s8k}4QwyRV83^v+AcTdwUYQVFY zcX0p{0^mRHjX>-FoLc7_=6#g(p3}-x8L}J+QBFq2RYs9VNz1I?{c*0@mt?+Bf)X8l zZyLuFjv37JIn?Nz>di9)T3|9dbr0s_DgHab##-q+9YCkfxEdPQxU-U8yCf+<7h$ zCK@i1lp+~o9H83}!2^@PCQ~6wj4)CppbcFrja*0lWZzz(~j2ALb^ieRiu|JTAR`^mnMqsV+(J;wy{B{ad zKS2xR)@^TFjHWhCig%@eSIqcwxLe~PjdH=1B*RE5*dy1N&`}sT$}Kd)qW!OrzOONm zxIkb)o<`Hs+$M*a1q4{8G{G$+!VuKSeymRD(&jnK#>YP@yC@hjGLwb1@7pi~Zd^3b zD5c$Yv!snMgeAA=6j%ne?WIV^M~%hE^^k+3>3r@qq~Z8$$=(3bNP86$g{AFbPPQ85 zmgDqM42R0(LeVDsV6d*wt9&^l5${;j8`YvbDe}rclPK4}rDBZw|DnVXj}BHbp^g-r zp@fe4w&?Zou!0$h1m*O8i=7qp?Hxn%9-N@S_|EZ1oY(<(zc$WdgXdVKrhFtGHGOiz zds;DlN8r*NcR!Ie5|#sw?5>aUzVi^)WDVSKv(%q`*=1|bR$+2q)W?Q00SJ@3Z6E8nCXxUp;!c*birPTH>p~;_$kXrRX9n9StCPtw1rT5-ex&n-xp1=$KxWY z))S2w5kj*adtYb@*e{YHoPqWl^zUJ8YnRfT2r_@Bj=U(toQwcUNCaNz73Br^EyE;h zEEtq#iCko89hcX0IQx0BIv5k0{aiF^Vc65?g$zv6l#^7cv24f$3nS3O z31bt;rvK^5$u6RI3;f$0|gqke0#`JOj0CIkUCj_cc<29Xp*Y)-jN28ruDUt3@ z>27I|lul_uKpF|@?vn172I+2;E{QYT_w&BzIbY6Kf1>Q!duFYx)(D5iDeYg_#!^08A|Ks$m8Rfmk$=v8Yoe_ZCO z4l(ai;Q6%@HcBi7pA2g^YRneYB6X%oH=oS@#41goX=|p(YAQ|#fDB3uBgk(8NbWb_ z=Dr5t6*FVjN1US=ncMr zyuiD%ZWBI|v5QZ`+w3(E9me#UnuuKDW7Cm>Ic$b;p5AIKRxA^FM!#`|ZWPT!VwMWOW0Kf+O!a3MJ@Z}9dZWkARp#mykLPne-JCExJIbn=}FphtD(5h zGl^j2I8JsHXRo%jWgc%Up0V#CpM)h1K3)R6M1_M9m!0hwdT8o8j)7jH;MizwI#Zmd z#dkwg?Wl0XjV{HkSNxj!a)_i(0cHq@#I^h;A7W!(8o(d(5e5_Kt=f~%9#RUpSh>Gi ze4>V%P`_j+ZBl0@jz;iW{iHpwc<=!uZ*_I zBE_&$Jvq-0eiKrUULJi6nweUe2963epXP!PV$-Rn4~-OmFrLgqg9aua0UMPANBu`1 zDI1e+D-nY5Q1p)&*hEJm82J<+liWMeN z09k`>({a1wUxlD4eM6WA5xSczn-P{qb8;xU&V}eUozSfsT0F@J%m~7G`%WU?ZvDWp z(U!~6?USWOI^h*Dei$b*)IdAUOMI&jBv~>oZi~ctss-vRnNi53Bxs1!I*>pu40--W z_((iQO;?9A<1SfmYNNOXESyv5k^rFvPKuw|y^zgLBXv)_cPL66$~_@@Cils)5M-qx z`2B=FjzIk{tUQmc(ADc9G}kcYaCF)s-^Q{3h*GJ+5pg)?xl`_QO4AwB#|^sgMhW8Tw$w3azA_z_`|w^uh0i>|MpK4Fv^Biuw{YgI0%iGQei%EUuu@Dc8{WT4r1saH(=pEua#M4%J< zg0y@H$2*grS!guvNJro1X6KR6rFLPl&l1$~jHr=n6v!}2zt2wfETr~C=U14-B6vtR zH~93aXm6A|Sw_7f;ngHg;O=Y(=53T~9ybq%@$8enOp4o(| z5ph+_d!fcaKm5nTzc;2oM7mzX5@*D&@}?78z0@;b@~>)1Uz%MAvk!Nfv0K>(wK+72Ua?zy{X$&G z>sg4y23}LD>1JfbNKn!#ik|nYX3+5O`A#gtDXyKUCKLm=;RZFNh6Hj28pzVax!XKQKUd`N~G#K0ZjFpAShp& zq?yG+3xzylAIKnjc_0E}Wp@$bVyqZn?0y?(xWWLB(}iZK;{}(4a5xK=&ptJeHAe-ci2FEl zJYvWkeKbP+)o=r+NuS&DKRGgtF$HUj>iH@lQ3igyA*#cd!;u{)5~-@yw}t4zBTkQX zPh)e0LZ!sDd^F(tK1+>fz6lV-CyZA{iidX7UB zudKs|QTEaBdma3=C;Tic*%i{?O`-PXl;XRwfK;v`th1MXp592LM2(^*CHY&HUSVXj z^!{%X5iDWOF)5NmH!B`lu2+B$4e6dY^e!I>IqAH_XVJ}`k(L$aAuol)iT9S*YN-6- zgq_#`GNuh|nJRoJAzaPOGYRb+^Q9O2I$Gm<$e$2~A}&7TA;v zA5Z7~rAJJc%H9*wRAGESI2e|$qZ|2#fYv(PR3(gGp|L^>shfp5z2AtChP@~yJUX|n zKIzLG(%E3P1#++Dfi|npjJv?pm!O4qGz2R&!OstaPBgH@TN~8$=(^*cPV7wdij(uA z!NH=jgJt=SG*rkO(Y?ClECddPA!eVVoqZJOYBequtKr6PQ=*V9;w31QgOiZ@i1W6! z=bIw>k@3BIV=RwpY5mUC2}n=p)4nx?yM4_W=%x9dvY(R6U9msWOxqgCqSu!l;ohY# z$ao#Uie>6JNr)LJ>?oqZlRHIjkHdLw5we{_q$gF(wh-rxnK%=qfJAsxgj4bTGu6)m zIQ3S^hzJ-MC;X&)u_0`R(Amjyh8%7Alqit_CiBYnd&btdpG4K9-0@WP-?pb&>{B`~ ztHN0b&t%9GE#Y}N!>n;h=u!solKY9k7g7Vcpqh}5RiHrR>c<+uMsQ<})VqyuA>2?;WufIiCFMH?EvayN%A1*SDI7tG(io_tbA6VUM0gmHfz6 zXj{6Un;Rhz>-hFg?v1exctf}nX+HYsuMuQliBzHpOPvrTUGuma`?1YMDPj+*3~sQ? zgoG`cwM&@}8YgA_r5+;WB1O-=>+HJBClZk9jj|+NamnyGu;J00Bq-kcb+Z2B2Y-Se z=7*w*1iS_KnD+seaQ%~J79qd1kzU1zVf7$y>Fba{m|mL^D~a>PcFhwze+UT=JX57) zUi(O7z0|-Wg#Q{Hi%ua0k`?1sI;)&`Dap*h{g6C`)=QEf@;-|^ydI`&N7p=3BPSo$ z-ok{`&{g8t*_(<+4MK=GJzc0Q&E|!k`!x+t`3b_Blb6_dj}0eE6l;V{iBWgI7Qp9v zG-?JDKExjlGYzw>Es7kTes(sGU4`0&I+BKsXq8cLZ`s8K38O-LAMjmT2&zn#vkjm2 zJAKy=>E*KUrDvqx6#k39fRP8=Iu6??Sk6SgtBn$Q--pYbkGdxRnW+)O62~$GEY>0=1sf37>zalMC_ovNjqVQ*1j?nR( zoV=8AXsr+517Wm@P)q}fBR z@57(2BGn&C{0Dhd;-4iZBKal5QT!ySnazQLkjZ&Nb-|lS!eWA5kdSc$&z8|zRhSmy zC`Q}1qoN9RM#pmYi6Ik~W3We?tI`67p~{)>wSfhnPWf3=jff2y3nx-3X6W<>)=2@t zXD!xQ!@6*YR`xbAoMw8bV1GA89v$l=O;ASb#n$t7daeoF=m{H`kAFP25`NKZ`6!P4 z0m}xYzVGe6|4hlU?$Yp<8uI7Wo_jy7cLu&FEm9`F_BhP zxex!;VXC`hKy;`Tu+x|%JPJy1=K1nq+dl&yI@AJ4HNco6Z2dSW-So(9Xak7AmBk1Cx{BzvJ4E!;?RxVd(}na+DZLE50`? zU?~&gl6D8*OH>Mo&qQ4xQ;-LP7#kUYsY14*l{$&*wLNlA$-y>D(VG{%i12?N7}JD-h<-0IhxY_}8DJ zfMYmT-AEP6Du=!35&S{y6A)Q_z;??yTzk6aEoA#)*0&!nSVO}}=-Z1WEu$gm_it$p z;TwUzQx|Qr{$>%muwUyd;+S{STd~4^J?OkXrj+hN@1%_BrOq(-F73ss(X5&$ziAo% zZgD#TMu9ovnlrq;VR)I?;5vanrn?9bM77G5z4lXD(_*j=PRRBykIJc7Z2C>?n@M|7 zOdfiZOl@Sm4jEmmZQdl-vn8`^erKp%3?5&(qfYD_S2UR)03C__40pTo*YC#R5cAkH z1)ql0tlok)&C?EH(~bGO+vw>$c}h>~Ke_>0IHzGWp#WS*|SR0?ty*zF4od3%b1f z&H*<@L_{Q_BW0^;a@ZI@)DwP$(ktgfx#`q&(y;Ud1iCXG7X3XZL^9Wj!LKw}p0;m9 zDHH_e8!B0KY9<&!b??YvYkzO&c5&Lzimp(EeqN+ipbqA#6FRO~+<4Q4Xe0%p780tRCB|U-` z?G6Y6-mZOCf54up1E2hD25>QCbm@nqA#YI#zWYX`HSPsg=EW1Dd5MHzkUoddE4Ro! z-CXj;qO<-no~-Nm3%Uf+CLAM9r;0 z>y0EheLwJlxUX)`9R+x??q<}LcLZ_hlzi3$5&g~+vMyzPf72g7Z(#ZlE~NpRAPI@t z-sHz#&=aHM2pw*NqK^xAF=2^&Y5TFu7*BoqDo%&qkC3oWM%Oqsv>m%r^OasP-0u?F zB${+T-R?_FwYj$STIw*@h_9EHg5WzrU^Ri6yWmy;4Z-+2E|%4Qo+hsM(=J5+yAh*q6<$Iz zE>0OOq9V6phC+SslltsRU^0z2ZSuI9)e06Z$4&XB(*R`fFbY3Db?T(N&Fd(mhs`wG ziq!afQ%~!CuyH@MxDvV_^>{H98^k$TQ1X=YlF_vxl0hL3+Ee=BW5K70xpuOR@r++E z8^3DX3y_qCrbOUhEKq2uEgLOQ0o2w0ykz9{#FFiFi7(?`+pSRmx`ZzJcq6&m7e4CxJ z4`G-Te*HvNPRLxI!`M zL8K9Sm~v~cgyn&4x@b2ot>wqhW4 zMMD@o?3K}`gQRZcbspQ|dv^&U(|d8P<6VlHmrHB%kP(%=k?$}%bgU)rT4pBOI)&a3 z%P2+Myp3L1ZH1zRzH1sFrYfyRKOAhiIvFnMMK?uVCr_)1nK$w`7;ts87ePc9;vvc% z_#N~XYmyLIYtD=7i_rS_FJ-y=OVN_$F%wy zbkrjnv08Lvjl?Js-gO)KbfG|y6{z3CuS65QafLC&A|#0IR#6GYh2mtnYK&509E1sC zpE=|4L~vgI7|k9>8-!N&2{rjunp7NcS9oq_XVaxCLGcqpGvA6Z;s7hCSaszrtTR8& zbjJ?ag9{$V*Ro1CWE@iF-4oR@0 z0peB&sdKr5kJ+~JwRcjE&Nr&g7#8wm5FUrl9nfb&@tnj;p zFg)S3&Tx@eN^F*X$0n!iT^=BQ5e)oD0FCr5;Vq>o=>*(@PMZ1;02SoEm#Vej{qC*f zCy`QRqN(r{GWoB-f!zkW%fB+9QD{|v27az~Aj(vBJb95c)Mc(e3^P?Od#w37Af7Rh zXd+;(OR4vKM*j(HeSv=KG#luLWeq7ci>9dCIbr@!7g;ZjV}i1fwfS9!vUU*F(u4>- z|4go;^k0H^kwRIt3UOZoF9+!uIcPKQQ1I>3VvFSU1Rhm;B8B4mkLU}e?}J{CxhT@I z_}7tlWQZ^yd2N4{&K`!v6rf!06ubGeBK?Jw!Eep`uOLkVopKTq40P<)K&(|bG%Ug; zI2MEiu4dF#;7bswd*ZCJeDU)e`2sK)%znC`bYhI2Ar%;UpKzlAtbFQs__se_OrY6E z9>3gFB8pu9@?hGkHymrLKL!;TfW%A(q>(0mPeGWk``jCFNFHu5kJhv2eqd+qVZ*Q$ zqO7A*Vk)!(5c);v{(~)Ha_S;-w9=Lmd)+Bm!k!_K>tBA?Z}bE=!)Z(}JljFzpuJJ~ z;;xA!Q21LntyG6>4?H8#a4+jM03AU73_!4#E#0LULNN5>jEVI~mv1k^JGaB_@LJ7I z`s%B%zh!)ue<;5%Gqo+y3pXAXemaWN zR$J9jveeK~gf?t9rd>rW0scw9G=GK}{iiT&n^;0^XY*-BtdwS9ONZpGGQUb^Sc{bwD5Z3LP2`?DdfCnhP;W`PlthNjf5< zvF!5U<8`cc5C3NN8d-;S=djVWq9=%S$S1Q}WjKGn*m!>W`)s#5ZodU!(3?qIl#ic9 zL{1xl4Qhhngip;bc>gr<U$8Y(xvZxg{Vqu6x?@|OsrjSJ)6CC)>x`#=xhmSDT*-^s5-XNM3gfzt5Nycd&ZhHv= z3XH~qvFq5!{=kWv6T*do63E$jF;}jaj;$)}eyok0fd%ac)Z~_Sapcl~Td=R!K{Fq0 zxB0l8pgi~X`Qd^E8a9-N3rZR!TH;Z~(XuH@wa0U#VTQf0kDI}^hUM5n6uu3V79q|i z_@|2w30A7Y7Iv9f-1{m`j%@#Y-PmygOx`b$@x?&|G+CnWLF5+z=1Lsw^?)w8hvEq` z2K)=^e6}%71q|lj7LIx?0&QfD?E*c90Ege2{7itOvldJGaE6Jc7St5Oyj{ zm$|*#$%w{g;=$4c5Fl`VX%7iKs)R-;Wlt-;i?J?evT(m|b}aajIrW3W{td)&9oxn# z6tD;n$p9KupFx=-Q%rb*m$NO7tp-Imx)E$Vv+Do+IME~c4>-yaPLY*G80>({SOl6i z1YL}gKJO(W^Zc+U{EPpHS^F$Z_(60oI)X$1>GR0xfa1yy;o>rAw85jS0dxS;*r6_>u>D)AY4@#Q`A|D2Q1_*&t$DT-! z_2=9u)}RI@Y#3R2WNA|$WW>)-f0r67OGTxm5R9qY;Mmc7_lsdEetx40qB~_w=+h)t zW)=wC0(hPEz}-|r>Nro#Q8oN?j@BRIYh)W_MeOWm@M6+-*v%1$RVSu{dZ3zu&r@V% zctm6)-jC`+EmqGpyI2(+dd8JJ13zB4@LM}|$n=*CK`;cmC)LluBm?qdNd61x8flro zt8F^n_!(}R=9a{7LUqBx(EI%GmbJQ@^HuY zpPmT1m%kIPJDhm}fyhGOqqZmuc30hd0xt{-AyPPD0LYQxm^;hM%HWzl8amta??e81 z!o&bimMEG|cH=J0{cWBYB3B?*L>ex-ig87DuX>)XNnIZMDS#RjGZD@MJG8d^`gQIX9hFpxO9O5xtr zc+gx!T)H@{m$8_4;V2RD_Mzk$DbdHnH`tz5iL3P(oP7Q$h>DQL{YDdf0y`+b5*+)} z)v#Y<2K6?6M2Wnry`0JsNBmUUydE#(gd?Q36OKhw#t9N9Euc)LBC5&XS?j1B`s9zaKfODy3O*AJMo>i&movZ;u_+x0>wEPZ>}4_s!kUo01=iyksn!~4mzS!Q z>Aol%MzoJ5&XY~Ap1~>+Ujit=)z>dMjd7kO>nD?yy~4b}GNN$dXWBMJdpm(lEL0zQ zXbKS&N|?ltU3A|)Hvu{DbqN~!Q~W~mTiIK;lDJxuSJ{2S&pce!`24H-V?Lj{i@ec*hAs0{~m+Uw@}(D8ip z447TBA<)-liU70H?oIoR;JklX_FD`{2>{zrE8hbv>*m7+_Y;DfW+cjF;*c4C_9ie| z{Ki&e4>OUH`fO$lT$k`)lmzz3k))*5&Ewz)VrjZ=0A+NUko5pZigODn*L(-gbyw888aIy5Xyta570A| zXz(!mz!^nKYC`?6vCtU^yHiWwHK}8jsiCKbTAbr8fQDLP$}grt_*1{+AB&x8T1wub1YoEHOMt@> zmKR(0=PXrQTl0F45PiXx6Otwhlo#Myoue=dbE+^_7_=ub80rJZ&-F)S-?Hp|Mc`=6 zDEqWfWx_9&p<1JB_1^A#h5ag{WonQ@*c@8!s|b6XZ->a1cxYoa1eM3~VW$N$dy0rn zx|NV6vP^JJ>eKPa^K_dzs3y+Upu~_g;>)2CG0d2H%t*@c6A60NML3U3=3F`zfA|lO zS9!+-2*|yTycc9%_{MYrWjut6@auLUl9t*T{S>^=GGu)f#VT=~wmn%buHVrR*}aJ6 ze)A?9f@I?YXiZ2r)IhlNLujp5Kg$MQBGk8YRSpMzRy#P_i2x{LXktjG#sXsq6`twV z2c!VZ<=V_yDCf(mA8NV_CTW7&OAI-VB4Y8B5st6e8M5Kk& zd^UDSnDypovRIx{ZWtShR7lj|tdaZ!LI4a0Spe*(S0=2zQ$qU@o%&nDi(QC@RB;}1 zj-vKZUc@!0h-*pgxsD<4QB(udwfd=YuyD+b#_=+%c85jmvZ`kT`k-`DKQSlSwG<%% ze&KVm0Z}6&QfaI>E=^_Ibs7#rjMo0q;o)|zrws?kN`3c|G5inl`}=#Z&5C)k@3Toe zmBMa0UW@8>sR&|is??sYx&PI&PRb@Su>7Co?cD1{m^%V_#1zURmXR8FHX7wb(FOtt zP5BDoIpftkOa7K?1wxU3d!a}7>s3ZBn_c$gSm8ah-1s@VTp%#{jU0_Jfje1ff^dHm4BB6Pb`xK$3*1u^YfNI`}i zec>yMnByFo;ZzwBRHI%jnmYD6PxtBsX>NE@L+Y2Mp z+JnyMF&n%_1*%;<+I?x{8Vyw9uY|sY-#!=9ubNu4C|xFZXy@k{ZM<#~#fQK~f7SPz zfo?J$Yx*KR$U}35{xzWL=RamEjIJcGtfWt_I+0=A9R_G z3ZkgOt9%10Z_qyp=1M55#P=0j$PE&IEY!+b`{r6FOR$tyBXf_A7-Y$(2P>B zra19`T5ad(hhG+wGyN==&8)QT@v`wH-(tapImBM$Y|V4jSJOlJb4Usaz6elaV!;Uk|67q!+gzlKpCV|4#GofFIc@s8gnxMA+LUE@ZNo+Es zzV`9~Y^oWRP~rq{P=6UcRnI+>$;eCcG^=GnEKScz(^NnzNaX(jft>%;5T2im5b5iZ zAG6YsL~<=XQ?I=0$ykOnp4|#XK)!2r}Ip;jx5W=_oIdI>FhCR0tMd!LSMZv~!D(68=LRN7`WvlMsm zvW)y6uR#5J0)QQ=ODdM!7eE)3L%@_ff`I09fg-5QJ*!?v<$zOO2W9eTwsii5c8-d{ z#4M{nx9UX+gb8FM?mo-=e@l1J8Sza<7py0eT{V(!&ap89W>wZp9_6zdSgMkd7OovW_Q10g1^V1E$ zXa4}&^8-}KOM>R5X1+Ket1U-UO#XlhI;)4l3_QJk;_AX8$%JRJ=a1 z|8Mz>7(*cKGlOzAkBrn>^!%AbQNvKN7>RL@XCfy&CVWZsSdV+)METDA-TnR#+JcHJ z;rq$h&J_@=M10F>PQvH34#Jry2h)Y9rwr-^`YvPK>sWqr2|y_IFA5KiM=+&@-h{xT z+Uv^Q6(|0C>5Fim|9EutsBZdpBh#T#0Q^&0`9kQjToejF9snXFI1f<$nE{d}jNGfJF{ilxIW$PIB_vhL zt<2Mol_Wc);qBdPlwMV88CX6rExatRi(@h7ds6@(J6`voK8R4Q1sQmF6?4%4I{I2tNoK zcLsnXKHLwyhoJX5Cogg^=!f5-Z?^*GD7f6opvFK`6aNXzM;6MdI{w{D`)1stoFycD z+lAT5|JHrY*Mo%bdch1tGauDTE)Qp!1aG2r#eRWP7EAs^`VWU(kqp3}JLSxzvsp$6 z9!mUl4oqRkYQ0c5+6Fx&@1R6}kJEKH&6j{kC>(aNZlz3qAVfM);-1Teh`KzmmlYL# z*vs@t`nG8-eLyi{{ruR&pR#XYN0|8*imP1?kUVVd;5#z}abm#IAlB&>1N!CG{m-%v zPy60??=M7e`b!QDhQV!hgL%_Gq+?&S`o^=Zfp@%6|Jes`x8s072EB<$?%9dt{Dza$ zM$KsY_i2{D%x=_svA6&87)QLYXRlRFWBDf?^eL5mGpZgihmPv(m#zWer8y?%wwVE+ z|3z0YVwQ715$}pCPKeL-Z!6l7cvbUeif3fYD&#LO88CVNtsB>^9}&j4f1~-HEDUgI zjL(3&BJ^~-6^2f7U262mD3o{$P>$b}EFB2AyJ_h=hnn93e@F_q?HnKu$c=sy`QRSD z!6=Jqy+15<<^xFnT?iDoJ;CF7GS-jFd9xSjOrAea8h)M+GlA~06@1IWbLberAN14q zh36Gp0*_Rj2!b?)@@|JlSsI#}FX5zsqnGUbMb`7fq%_6Q>y5u5$T&)GcM=P;{B*C8 z5o~R3MO_RJ*&3~Zi9|24i|*rEl_gB?q~4jd=P)=f^OpfD_M*4B0<_T%&gYNX+RI=Q z-~J<(`qT0JG&(v8MEV+yQq7eXw>M1MZxN$mO%+x_FKt`VTmV$tUP((84CNefF0dZI z{sUUstI;>VIv)!PUSAgXb)?X`zEqv+kcLmzfa$=dy)MEz>4)EpgKm;EQbI;}F>ow7 zcK9AIRL8``K$QdbOv}iZdty4wddftS&QJOH#f<|pw~X9MXYvg=1@E6Su@E78uO}de zgGJ7PM@^j{$(FZ_y1G0OVZNvt(1Zj$TIPR!kBw36oX%+x`2&jfgFD~8m4(Gd@KVN% zQO32L@Kd$i8whXmmG1w$qT+=R8X@f>`9~W54+!KW#Ke~48OX>v)I}k7_dCV@0;(Ds zp$KurAYqR~r~DlaAuymk-(MAd>G?KVJBpfetprM|7#tnTWtEi!sOP#OsM;)B<=n2D z9^_N>;=~M9+G>bK$q2ekU?1)m`x#C8{v&48t)TU$%iZZi zJ10WXvycW?@n_?QGX!vOYSHgu4G)D0ws<`?r|>U?b+V8XhPB@?!@}#7kB3H!Uc1gWPJbr1JG6w%$LZ# z&C^!%0WHRGIMqiVeKKKtc^7~aXOr0S%0);*;Q^n3pwaI4$K@vH z`uciELs?l_cJ_MooAD;V*0#mt78d3KwE2IQzQ*-n(?TAHX?c!6)JR_aGZN-(g|69y z%hbK_9S)mZ-{L0iND{Lm&!+thoBr>*En55JB92_y6UjSFN{qD7C<2yeEArw!NmP6~ ze4`e-vu?>xZ<}>$_b!j7J$5gN?wUVo;C(wB+@N{#naW}ncn$)WP*ju_$LQz>ALfqz z8u@fIHvcSGv)Ce`-~(O<8)(P=U^%uTY8cW`i1ul3{6S9ERv@Y|HWA#WCazK|bEAdlN&(=OZh5z`d&a2#Oo$=NDj?6S?UBAQliw+;!%$%~%GOUkBot_L)=)|C~M z5ThL7ZtoD_;o21XaqaZ&8F_X*dV{Gv-|&;+EIufrI@Ii%x8D!TN8yjhcFoRf{~J*k zUgfL*U|q1I$eV|#rLL8>sxNGzSl9C5pc}4F*U;ZUt|w=Y+t%A6E#`MYr!1GRKEW8G zD({-7IQBGB5^8JEF_Vy8OqK{E$H{dH1l^ z*PoOGTkSPq;8C#p+Tv_8Kic*em@}mMP$2Q3&ni@`f`W?5q~=f3(c1d3r8DBTO)vEf zQuh63F0#q5WU<64{LfwV4x^INMm{tAxhjr*jm_4!)v*0{GW<_3^~Mbr0@Ezvvwj^i zq!7CpEltaOYNTeS|M&(=XMJj_lBF<{m5_OLpYGU8^WL#S)%vp-y}&(&@JS@x znA@X9iPB+iue|kl$1tk+L@-zF2xXerZ|ALiXbGXg6TIF~*h=F{0sJq95T%l+iuuDm zrKjh7&N=L#N-7q=r{00tGw`s!wi11*87rMrnD}L46Z-Q;22CGiw;tddSKN3zG^V#G zjBbVJ-9+PY>84P$MQzv`>)I9l`&i&mO7A(^Bj)_KkeLl@n!rV~@BX$GIzP2?iMAjF zm2)*s+RD_cag#Gtd8v=2r|+^%sDk-S>JNzeC~qb^0VjHNM^9?bM!MpfEDY+1O4H&hKg^?k3^wCE}xJv0vvDX3>{1#tv}L z#ItFPu`-Oa=1fuZt6mJtS9Dxi68}@qEYsH7ozNFn9AjY}XJTMrF5O<5Z?rK`QRObI z;;Ss9F3bb}_kmpf_J#To+ngO$VUdh6eq!P-KE73fvs~ADZ{IfKcRp@!`ph@L)BC?{(;ap{H|Y zu>bk~1>5QqrHg?3FEi!5!z~Ztr{)Sw!K=}>SRuc8@z~|FPVpO|%cA@4Qpe+e3F3cz zxwic`|Lj~9zxVA<#B1y*o|Tr2#Q!dEd#R4aCd_}EO=sw{@m-pttEaH%9|Z%# z6jxup$$ic9HQO$L(BAa7eb2~mCl^1tYn4_$nMJ#b9(wcBMZ(gVV&f{~uWt`YGqd=! zGrO9aNjyB3NlDbwfjKz0%n1rfOB&Jk!YBhnBQ%6<6xZ9huPX zN^LJ}X6~2MyzEQ7^mQ=PRZ3rfRa0jmtr?d4I4tMbzW1j!@_aK*t{#M=EHs`gIL_~i z`?zOI%kg5+XJcX!Jb1j&_Gx_wwa-&y$aj3-2C75Lj(z87nK2 z`dbYQe&RcfozU6N9?OltZ7j-RXl(ftspl}A#52ZJw3Vfb)0p?Eo=+o+m^gl$CiVN} z$nMxkNs-D91wD<_Cd)`kzM`Vx0bF%s^Xx1_@I?vtnCL8rYI=$vp4==0t6)$!yv8iJ z_2cf_tYrPwVLoqt^vZ8t(UM(m=D!QKX?4{Mbys3E5nuX0??jfA{yg7Jn(BRsJfCV= z462E5jn6&2Zy~CEQ)+7~$2dGln>W&^D|1`e+&ZoVng{vrO$(bEf(bkCn6`pe*WHD0F*6ikNzsU~; zW4O&D5_zxu-kJqE?K50>m|r54vw&&S=X;9jj#F+h8}$;0_=B?xOfQA4*=!3Z*hYjtAcWu)1RNR(iQ7=*U-qK-wzzv2m$LJx|9{ezKQ&#FwN3Ga(r)iQST z15zH6>+G6+g56@8ubx$>N!D;}9ejP2e9KY7U2Niy<6pBk2jJu5 ze*2b`l#GW@u!Fa)oX(Adfq;*A-aQ=9Cs!7Uvd$b51MX@$n;A{zkHhUQfg;E!hM;w| zsR@n`4|V61({~NMp0AEa&HTxw%G*E64#-#B9A(6R425 zu&BW8?%9_vHT-xn#)QQ+f2Ebq^m3+Ke~kX z&Vk|Y?6(~;@DFYOc@*{6n%5p#xr6=V=~k@Z)p9NGn)}i8FJTXWkSs1wrt_t52D1DP zzYdUR3Ylq|sLHBVH`9_@>blRlH8%KNkIj=!otq9kpf@gKckDEfh9@&C2Hd9U>DHDC zT5->el~tx@LOCzy9=(TE7ea@I@cdog_=}Ngq*zXf ze=w+-_H0RVh)t|mwZ_H8=IChoQp3j{uR8yAH69;5OuRhA3L)BJ?Z*dvnS1DEj6|F%iUNt zrtrPYznirs``8snyHC?69;?-3ybUXM7h@GIyNBtz^$)9qksz%yapHEhPlWc*PhQKQb!&kt>nqHzHhVj5wp>rYTq(Js!DdL^baeEjyH(bjrr!eYosUqrX& zaLF~@NadAsa`4{I_~dV|I{*ywP%UM94SA!U!VJB+*aD`+x@pzfXy_XpsntA=uRYCH z#(w88lQML;4mmSZ7CxCVBoZ7R9==E4f36kBwDw&pA7^PIRYBFrEbhe3YhSs}^v`(u zRlPM}F`hcM?1ZnQp;+%ecdYOsiu_4xK(BI?lk9BB|4x`s=$$P_(YNS#c|YC%He7hL zxAkf2wVyARYFb~6FJTH?u6K3?HvqAi%wxIQNNR2Q_uHL(yx+f@V=f33QaE=Utsah2 z=M6JYmKCATV#@VkH~WhHKQt1t8-B-HYatC6J*~UXGuY@Ua4Y9ZnUBjb4i-+k@073X zHPdZon*FxxM^s|4H^=*$&gXD|A$fV(i#BMt)< z1yc$)zw>YjlJIEjTdS(d*eh%5%=<5k(bW=0Q#CB|>$x?cbS*P7-=ZpL$t0eCJg}wD5PH6%p8plw%Bx^hL}g3~b}2ihh{q zxthG&Gg?->@2%$N3vAELDqhX&=pd)7C<+}{q^D~L^Ex`Z^(cCt^N1s-|<;boBO|wE=01bJxu@8$G^TF{|{4N9aMGKwo45}d`Yd_z7=bV}M&u88lH|w|7bzgP= z&GJp>cf4?lT8=$kv}&WYzpM3G@O#jJQB(P;tgLwZBO1D$6~a*vV^IbqIPogC7obg>6GM7N9Gz zI_yq>UlP~tqcKqr+b&?dmIna$jmiP7f5U$OQIQ)UqL?0lw*>gifMB?eZx4LUP?;mJ z4C+hsJ;anCWCa=#)U(No;LI8AW(>BEJUHx4A#US)1Ft7KL{(lMHVoKvD&Qfx-lrv^ z-W~%9sg|}Im)wfqzb{XpZC6+~EMH$gO_ut32y1Al!zVt!?2+Cmc?|%hwd`YMITbSD z+^l>Ts&ks$*K@$&Dl5KB5xDhD)EX)-vW3+SSsT_6eSbRngQuxck)E7>5`dlWu|376 zT6Q}nrLB2}!;rovL;Icfxwig<)xTGG9en%Acp1(`0-HZY+n?&n8bAt8^!2Uj>WU}u zwA4Je-=l00FE<+-8*6*4i{)5_jdBTr=%2A{=6l~_8v60!;gTY$_M}Rd4&kRd-q2C5 z`@t@u1ip9CH1Y8iw@!*;h9V*&;chAW%pM@Dd^3>Kv>78! z%Ak`!4(x$vpuu(4=j91HHGz?lnc*LZ$O2xL^b$;t)^|XzdaA4N zJOZ9Two_<@Bc2|Sfp7G;x>ftk zvDf|m&{;8;<;pt$J&@Q&T9>BonyUlvO02CAUH%BC-NB_8N>|AEG*aE3ifL*p$?RY2 zD9MjDPjg_bK10F)yZP-u2RyhRceuv#orXFdw$(Kp&x?y!juwuxe!o88)Dbqc9Njck zh~nF)v8Al{2Bvc|83f>0d1zUEEWe3616{4~E2sksvb|IZHsJJ(WSz}B2T3Hn z7obspg<`VpSw>(dg@7e(?qU~BrfM7Z0@d*pN6j=QZ%UezWdey6*Ix%&A>33s^^PWFDq zqJsUqMJvs?yRwi??OC801eQYOg9D3s!!uKLO)ve8_%iFQ{igW%cm6>du74r`fStK? zR4^Wch9#-5K3$P`dHbo;efbfXsO4q~-1FJlFA}+%Trz;{rt|#}#j7yoA*rnKZC>*O z>VntfU5HB53En%wEG5kRNp8eqI5fiWUC{2!k}#{rQTaBaAt?*AZ<|$rbyXEJyqq2x znJQiY+uqOU%$b|2W)fcpOGJ`*55_Cw;^K{tq=~JAD&?6-ehcRt-Jp?7p=S`Q%>E6c zyx}W4Ti}2{R(NdDKi*&evgeut`QEA*S{|ojQBWZY9kHj@6WBPBG1zJ7`K8`1Uw#h# zU^+#C07FzI`#0V30;Gr;I{Hq4SsBH+au>X29d|PoaJ$jDeFFDOXxj632l|nM^(-BQ znk`r0C5rd=x~nOL5GcIxAPA-OL7?hpU3is6IKpeT`R?~Nby_5`Y7$Dt!= zjA~u;L!;0h;B(vuKA49s&{~@~yEVrkiG_go0L_S^07E127;D+~;+$0=qTvRsM>9yU zvyzjOV|-em4Dmk$+HJ-?8;5PSAb2r1_kKcpu;e^8t0abp=!pn!by{t$IM%oy-k~-M`!6FmtJOG|rcICxiTP$L?8~Jyq?}a`%c>VEnUNP;j zG3fbYUoE|FCXK&eZZ>20G_@)Bn#-G`D%%`rl07M_9LzpRPq0;;OsV`0jrHYrR{B=9 zwu+jTvLfvipCRXU6<%A362$M{D}E|6i4p+rapE@-F{I9Nf14MrT3q8KQB0Hg4TrFK z2*{zWk)w8P0n=-jw>z1M0m+x(4P_LJ!)TZgnT(cu1lB^7;6%xEue&{{*lfkUWaE$U zK=OQp{0XLK#mjh3bD?#)zO(=d!#F-}TX{xv{_cvI03#~xW?k$4_<5Pc8g|b#V>B}3X#2=o$8r3Vh{EhH%61Zly z7w-~oOme{CcKGjb+vDStSMEI&t6O9J9dzcOo*o++PLGd$*eFT1HzEObm_9D&;GtYb z=?~*hR28PB_N$4>0>#l%ji>{eAp5U(2J#?_hKZU2PXJa(kiH72mDmCS2)qZVLsCGh z+QuC?bqxC14A=S0XBp6!4L(SP8n%Ch&u^(@KsO5~{;;6t_W=6FW0E#V#}~l##MF2K z`7-Zd8bF>`tNSl;GZ#g;wBBUCdcsBWw5Fns&tjwyu;@GG?*F_%_*W=Jfb~{7<@WYs z&+QbbB;S||J#V)XK`4F##C)AD%m#jfb#0GaKL3`Q&Vf^E0rYbg$fRB!L2CvM0nXJg z1(nzzRf6=T`4mu9r-C{JY5#I?KS91MXiBP)O4sL4ce~PF{}? z_=t>dc3uALynCY6KZqsdcD;PP;!z{Bc)dcxV`d<$YU--6!P&6XS_y@u|NYcrmxn0} z-33&4$UTVF`p$#J`#Jl?;7z*u=6AzLDeUoJ+uv-8s&j(MO3rLGQykxLmJXo#yUMG* zKN2zKpMpQay4(Ty-5)e?^1W0L02{w|uxxwr{MGyxn{z-d^sCR#?kWXNK>XKZ5=4%1 zIADK{pne~^YGqixbX8KvVf8S^&%;CeF?t&MSWI|G&cdCvRqI|DYR`P#rH_dsX`tRb zWv~62y)@krS}1CM37A`wYm6ogJWPbEEOtx`$ae_I_jwjESV9|qV!so0ahQZ{2b+5e z42+C`HzaTY_>Mm6yfoMvsC=7}i+lhaUnJx?2nV)Y{nW%Rbdg#Wm4+f=xQTIwhC8@8 z@z|R<3E1%oagBr1TiDn}ICzR9mf=xUF+zDUcN-3=j9}t@sRB*cDhZe3j->O~v_1^Y zHsEq{Y!5hr5r0?;_O!H=cm8(RJE>-LuETAl!kbc~SEaM6Rb_S5IgGJh7)J4BGhT}? z>NGH%*?{Ml>}%v9BSYY?kKggP_VE?arDB(js{&p$h8T2azuuy>J)P_UcQ8ihdVHSx z80D|KKbcS1B>oonqtDXtrdRMf_*O`DE(zt81Hube>K)pP;+zyHc!>DhMzz7O9`i`r<3*?!}W}INVI+nXw{G^k&|8sQ>zc}-)??y zc2;tF$);z8((y_14AE$!hu*m?Z8aliiAWra1D*OrQ%xz=BZ&8q z?gMb>55hNH1K`N9JMMpHWhTGE-F^bKA6OAagT)Z#uUqwM8y}UaDBV~kNUiF?3!&t} zu}p2T!Oy#auMo2$-EBcXE9C~_aHfT#wq*)yhD4WvW;I|Q- z1wN4h$5Aj0^sCM1$KyaTj$wh%O>ia&70w$+I14})KvWMUr9pzjJ=hf>8dTn&&C5=U zt^&JR{u88;nPVa&07}2Y?VN{VW&nfVjDV~}PM!;R)!;_OU-52Y6#WA@`)`Rd^XXE7 z48e(|DcstjAF%8gmrjt_bi&%z0jhX%_5RtP94Z>% z`Mrj9Gmdq2moaDEQ`IpGDUbzx9rs7e2CnByD{|08voZiI0Y(Awf+;i=WsG$6L|kT@ z;N#EqYZ<*-bhftT;lCVTBzv(=&haC@69l9la$EL6w|f03*P_QGuvvjwp2y-Z%ituK z)T28M=_C^DVf7^cfh}s(R+;YqcsHOsMWWwFuC{+A_PWtclZUi!C8&E{x2#%%Hw3*| zH0afoF8K{KSsE?l?YU@qbvG%vqiHvIxa60Dh=yj4-`)vs3o25k6!q6(=XBDsLWS}_ zAJnqLdAO-d8dV#+j^BGW>-TI@rC&s{HYjK+3h5Z=Xz6J)Imxkbr6a;Zr6>jm$0^K;0qnDCK93X| zPGHoCdmys~ps#TOxYC-+VS~}==nIUD1n)MnB#0mBJL#k!ug3VTI+nR9%c4M_Hcu=E z^Y9-49bZ-S?g4_j2h;O?M=rj%W`vo_FXlELjW`Ls)xd-_7*gX=Z zp26CIgq=`b0Vo&p@h?avIs=5zt+KlUcE=1d7v`Ute`X{R+Aqvy2+{=$AG+MmN*uN4 z&7R?3?SHT#B`weBfWgpqS&jhd*bD_#rD+xAS(Q}fjE7Wfleep0$_k1y4KP(zRhVQ4 zKC;C|{J3#_a57O7xJo%5fQ?~lIb`e46W~6))V|gx{}~*9Ph4=p@rtl zzyS>ffq-K31`9$uz>|n&q2DjvLd=?btUmQ zyf}t)%M17z)k17Kc4Hy`C4zDebm@)-6DTQ-N%HG0E=F z($x5X0$im0(0t8u)~?ZygL1y8Xra*N-X2Y*UisvxX?Yf422uLdC6!GH2b&{d^DfJxC-=lZDf-JEP4^5o`3kD^1R=ud zJlQ9VlWntXMkVo{CQ2J|BpYB^v=PN>u!wQ_LRwI*C#&?zRGQ9Q%JNt3*;K04Qw+>0 zxS7zbC4G2W%IR8~bFvC@O4|!c$!;%TFy_81Ra$7xf;yQ9!KWd;K&lV+1tJ#oD=DM2??r&QV#cg zG8^VAKwtVO;2$Nc=xAxBOM^svBs)z$&#b$P2N3|W+FSY-APgK3Z z_{9cMI<*|`m3fJCzAc-=`B?QU0~*$U_FACjZfFkKHyP0tmj}rjHIL#a=EJsZYW3U19=1 zgyMxBss(G&jPeDRQqgM?SlDV8L#b9Nn44Jaxf8z_NSa^wW>l=wci{inoa3rBiGT2q zJltevd~pBORL8j=N}g(BSOf!^Mmk`&a+KEE=l@fJ%b241eW^&fufb_)9Sp4?6(Rw$ z&~q>x9L)NNMNk{M&*4k%B^Ws{Ike9xsf$d3O;&wEoylC5__+uenV_Vg@`hmbrVr2p zEM%Ac{J^q)UEy_EqS@>a&HubX^86RD(&%0wtu6$Nxu+yTUIHV%C*Ud9QSitB%@Q8< z00#iNsR+DED<7YKWq3Iam(>eCad)KidMeG0EoYr5x1Y@*6T8;BKYIaRLO|UNV|fP? z8zcY?kK4G1pccqs;-%(r5WgW*UL!4eU0c7BB9b~hoDpCT=IhFr@S$H3pku+Na=Va1 z@YC;o0m@=vW%7(*XVrQe1qJW4boH{ao6F5z2;-BHA-Ps%n27O?|Uj9fs@rjCD zqw$!lF8xP7E~hbuquTyW|3jHHQ<08U&}7C+`FExHU^ghnZ{<@CzTQGdvzS2UhF64- zt3!eh&i^c~Q<9^aKue9iGX3rcAv-g4opn z9EyM#D4f+nTsn;+UTm<|R#d#aUwzhk26>1?Z0U&qh*J<2K5jja>;mR|=y&$vpcK$T z@JQ%CZ8vnlWKUu&HHM-6-LeV9JgT5}VyMiNNn%Sux^l_C$~eMI$HZ`ZH`j2;Yq+-9GP6dBrN4Ug4EM+~P5GEyXldPCh9GQK1E`vTx$FAA}i&0_m(-fSom!+nv zzQR$rSS-7-=S1D&_$#49b3m!2t}ZzN81d#WtA5`^%@5`J7V!1dSuS$1v;Vnu0}=ku zc3U;yHUKqmK9NB78US1uI&!3;H(HN?Czjx91L+Dc0QN|@EL1$+{ef=eKsY5AtQ2&+ z*u7cW0LvH+@Dn10ys43cCc%RkumN50ws>57KQya-zpvbm6mV{L273zqbOhm%j1sY_ zy=%(bmBd>sZ?FHCeV9Y&vAP2su&Y=AyOA-f>>v=9oE#O;Hj zN5H5ezQf9%7weUV8L;JgnA7DaR=Z9T*VO#Ys<{|?+%R{B1Y zN&s-~!~Yv%f*l!!O5sCsIA6rvf|nGt(9|UQ8$rQsr|xO_ zP_F)!45qy=UtYDyTLU8w4yV{Hz@GGw4_BB_sC3woczPCFX)e#F@gL~&A=%m<)dbG% z?9-Y0W5S0T(Xpnrhtk_Zm90s9#%P>>R!}$gK)!%c8&g<=j1{eq+7LjpDZela*j~5JOZRI6J zmvOk4-)3Smt5g>LU&0$4m6u_7GMVhux4bGMXV+V67GkcnOA4E1o!EhN#PF7yj$MVX zzH`DU2DHHhPC_Q=iMUm*+x(VkHh!a)q9Zj3Z$dww+ZDfQyj~~*Ys@Ntno=rjw-DA4 z^cInIHFVurTF2^hKAfr(-H`?R@E~ct$slb4+IkXK%uF-H02F4i$<(D-W-et zoc^JYK^!zp1{R(TXn`OhsJIER#r$jsg@)W?nmj9DPDHo~$LAbsR7K60IsqB~s)F3P z&{82lfo*_IfJq;y-EV^B!RE#E59YFpV&Fji0Sy7O-X}jz=T+ln>`QP*TGp=?;ewUV zIg@~vqV*pa4KCIv6Q^xnJk5)9ZDQ9oIWG?oC<HdtkHG@st6P%mz00ngEo?aoSS3hhpWF~OwFG=|dhIV;3jhoHukKh--8%N6h*enQn}&*3LXQeUs*Ydpi9^`;Ch(MH*?-a(w&`i2 z5n~wZty#3aGxr2TPc^s%E&&X8_{|AEYvks(lwj9SbzDlA58q5T61d3nB7)7FSNQ)m zpAY`Z9HOTk0+!^8(t(n~5#+`h&P0%hGlbWpHnG(d)!kpTKMM^-lOjxZou40mPUAAH z{@hG5@opcnV1eciwl26WLYXhFV%LSh!)8KP+fzxO)cPF_%yMIn_Ty>C&uP|g+e(TF z9+b9c6_pAdoaDVZr6Z?OiZ6_NMukcjC+fi0pf@V@__9{fx3RL=PF!gg zR!GpLhLLL({3Vy@cerMaM+d_{`v=z54Qita?xfjgohYeWUV^`_*cY;|5Wy0h6E<>@ zutx0;ui)$xC;|l^yYN(CVBpP51#amCMEg9AbEa8e&Tf{Xeo2nV* zZh0Kz2XhEu9Z@tmt=q$0+;k`Fz)J~!h<-UOLq{uDv9lxIUP_R6Xyu52P~4A%;IO+Q0FoEDJ3n#{sZ;PZ0@gewf*Bh>5x#B+SiakeesP~h`2gD!P} z;&NX&vZYS~qo7%}8217h18}BbZznV;M7rqtdP$o>zM>dTcs}0{_-&c?@HCt^fQBf& z&4n{FyQ5ri@l*R}GSDev6;+Zv;z)!`U#d*Yo4nzn5>CC-HQg*TZR8k071z_t`z?}C z5dOwmq%2|ZOB@mM7i26V4z(DUxK}%PNq%@ROabRgN$IiBL|n)JLd$(u83m)!yTR-r zm=-{MuCE7?v~NPtqHb<=q1K75veR217=BPikwu4Y2|`UQu`f{uKtU}O9(RC+V6uX@ zn@~VBEzWUuyy~55Suav50AigiZos9G!|jzvyvk%v_<`!{6NuXJ0}>H5XG{P>>|bfk z*ghEF!aH|*@wCI4<8JroI-Gi?s;;w(ExlrHegWpMq%lNeK+GRrLytetidsjUj`zFDG13e#0HOW3>=r^|pUw zskn2<_h+ek^y#a*8rn*#%8S@OoPISf&j%kD`1UvEpaD2X8DW86g*Hk1K|m^Ww#UF)l$sTcj@3h31$Tm%nDFM0jf4Iqql+XL@Uz?qWoD`-h-jL=Ez ztx=hE3n#zOZ6{etBaL*--1PV92{27_d(QhbR<>u?>N1gL#Ak9-b5~TxF@>I=$D$!P z!iuOF!V%rl+HicXl4=#hMQmjYjkG1InCKk7@l3jzCKD9wlMxw@gjVzcg)w9#AY>gh z0!{*@%sy2??!!!1h_LM&@&RTV!0GvR$3UhaY?AfiNuB@yb&;U+is-}LTIQnzxG0}z z8`@{UBJ+kXdoQseIwb$#?<-;WFS&o;qc0MIU=U{S$L*n-?UKBts7xc2}6JJ~I?x7l|gOs4~5-z%v~ ze$c($zYj9jZ;LKK@_YaTXsqEvy*)1lUJ(oYT{eMQCcrD16q9{w+jw;_XMOThw`Rv6 zF+NT%<3=8k1;9xGYO{X$#Y{QELAF=PwJIDRVOf8q%PVR%+N_ioql&2f{mb&JnyjRl z&D%<}tF=jCSh_l8{~VVqn^v>cMonJV%Tx2rT)4=aDpgZ6{ox?6Pn;bOd)Lw;O;bkX4qH!- z@gGhl4bzj3InD=SR*lr;^tMGUcR0O0GcdahNrf4YCE`wH3p5;yIX=w(umk_>U~X&pZ|jH9?jx^<8<44&N$2DI*QDPUeoEKQfa%N9Cn8Se z8MurD3$1e3C3J%B>;~6w?FA@&@LaO(?~Otr0p_x%w^p`@NIiqA{sW`5B}E`HKx1j9 zH~-EMCvhq5f!OwJ`Gn+vBEKz#_cHSxhJtbuXBrpMWsO-0S_;1XzPUZYer>Cjl3|mq zmi}W}3SF5kd9otTr*ti)m_J`h5)2`xhWQKKx93K4-}_yx^hLe?EG5U|B+n>{p=}eS zX(|kBHN8BqwMbN$voS4Ex>8YD{RtxS-xRoA`@%QmZjPXxf`4Qm7wZ>2j?Sc+m>6k? z(%DmQ9Y8b_t@$Rvwf;TPJF^^V{sQAPbQ)m6o;FUoxU4GOAbF*aA{C z`@jtm(&`$~&5VL%R9=zDYKkaoWT|K*I$FDb_O31-5iO-4KHflCd4^FP2^lNvi{~FM z4|Iwd-|!`(frOD%JOmqdz8ZQum*7{}f2g`L$*6p0BV&XSPm$mQ6gXYu^~yI`XG7b~ zc%x8^{}AlU;Dr_wQ7%2%r^=5iD&s#?ILf>`Eq!QJ<>eiez)H2g0_%OHuQ>Sa3&LII zG@TK>_2f#ow?Vf){Hju!T35d`Q&Uf_a2qfmEs3s|s#m7&rA^N{NEX4#1>6B$mRQI* zF#z@y%#Ru==&QX#ZYT=?@I-#2@9wht0$tnN^$1F%fwbR!qmQ+{jfYF&Etgkd<|M}J zK%dsJ22qb;4pb(x&c=1yKr(}KEumTWF4W*?<*~!3E(`^q(0tct7G|=}LKxN&OKU1p8-VXMiR*Q*?iz_P5fVKu> zaa#qC-!XNj&#BA&(tSfqLxYF<9dNY7YUY|wLH-J&SoN+B5x0M_r> zOVl1cYc;W=8-|p{7k=jv%1WVsNA`!39ToG36JYe-*`E5j{&f3hCHq6chw4?SI14#n z4IN$h?t#nnd+K4_@yyramm=(tAL4xEU&*%*u&~F>J}(q@2^5sv*{~!iu#Q+;T#;61Ec^jqF#8q)gdCa+#ofz%V4UY;Hzx7J%Kpx}( z3s4fN^cAh&VghO!Sna@@4BClU&$JJQg2h^RgaEr2P6O1o)x%O=tO7ZDYqK;}wU{OM zZRVRfMdb=>QrS6{oL9LNPDSO#TFrR|T3F6@{SZf2jLIB=JBlx|VQxXrx20g@eqUJ1 zpxvrc!Un6|O`#DAIa??`9(KPA$kp(pJ|>b{3`M!@m-B>n+6tbv2nJ7A9`)djPzkg`9TB zZO*Sr1RVfPo@HEb9|@<2F9=?*x2Jd=H;7-oz{RcM09`UrV9Q1QTwqi)n%B9GUSN_Q zhidOWP5aps5_JfAOt}XBP1Y#O+wRrK2|3#js|)T~Q=QA#KhMJpC38!_h z1IS&;iQRn*rzf~L9z2}LmmT$jLa;5=`L=QSS}@{jnICp zo2?=Xc?tAr{^(8$HuJH6Z&X5#gjQcmuDTOh}&EqTHYtT}qO9^%n}Ge_yX!lb|Ys zp=K8FF<7!Z8En=qWsacKJAUd4m`#0;L0i+%1z;r!)Sm%J`*aSh!_^B{i`L_QpapOP z$zn5};I$jg2&GZp6OV2utN%xX#B2b6{?ZmGLPdQcUze8C;R3!D>h^}Jhqd6$ z89v_dPGSi)x2OzXZ+~e?Y>9JUynkGGIF`w{9+ahGkBvi>o+dM z5qj~4M}y3^3d!u9-tQd;D=&U`gXEDSPJERH?UaJj4NpqYf{@Rk*W!=BI!K0XG) z8}-FL%gg0&6SPG|Mp05rC9nE@#`6ZaEoP;xJJQQks=W03#pUB3hM8H){vtLKw1tRX zC1a=_KW7tQ|70Ajuon=M;H{Ki3+t9_{lF_cwR_q)AuCJ8l=Q;=2e011%H#8a7-?k9 z;#+wE=RG}!x707VtydmS*Pi^5uP7-fl0ItJ_ft}bzex%fLtyb8gDEGGF|7f9PfKtR zbYRbN=)1A9|KteeR*;d$L}yb>_*S8!#Q2s?h{`AZgh@c{3(b>w%Y?3pe<) zudPz?Q=s%)?+0YAYqj=EW zib(6tP_Korsj#+3LIz?OttTPI2aIblq%aUk&Z|n z1A3Q*Au&F@t?YV)Jm_$OT$CvGaUs0v*evu@S*IJe0ZaC~6Q3e;FUx5tnq7x>dL2ot zcQq!kU%>JcGNsjxZ%EB%&f6gP+RGK3=bUFsNR|7eW^l5AfBWNeUU2VWOwV_T zhs81!eF2Cv?YH;LC_Q|_AMhh@47ELpqFLFTeY+dN{{|R-YrIRwQk_gjJ=I5gC{tPpm)@e`5fW76g#6qdZ_<)D^B0PnQkxap0Rrhyv zVt{7+mOJk7Rw0d@NNCvCFj8R_2A+4MNR%)`Swb}4i@GhQH9bwd%ALr*)AF?kb{`2L z(LR!|;4YLQkaB7&afLXqz5P>|p;JQS{N>T-@62$l0b1EK;i(M@cck@eSrpChH2S|y zTUUGzpt>+np`N<-5nIEF{!u2(g4-nngI9^f7mX(N9to@abD)?3atfv}E+i7gU_CgR z$n?cl)%za(kMe?fom_e2A`Y0^7yQdmWxvX2ng`f3QTw}>I^`-9LC!WL-!$hXF%jAQ(GM+9S zInI~SJ60<_X%g#xKEkI`@zpqV4v;g$w23#of(hHDY)l&$J498J?-hRO9q@dz4Tn{N zE8kpdO)kLhSe2dpnO9_`%C=~U-CylTFe6qIK4bLl+&p1he)m@2sbC2l zyoxZ*UXy@)r=vy$t%S0f3BYa8!K(*77e$GvdJeK-6x~)M&mM@v8s*<+GOd@B8y?Q< z78@3^c}1q5!~O9*xGnok<{ofa-pQ6IG4eV0y$`o)Iv9xN z#^<*B)8^ik!g)=|zx^}s)P6^)Q1h4msuyLk(*5a@t43R7GAF;jFB}#g6NQIlP0e$N z)(IhN3Egh`ZnF-nTY98$LLjX;vlzy5%ojHg6EYSt^fx-PjgoIVrX_y`QZ#?+ia3bZ zfuXLPC<{q^x>+ERvc{C0>i?x&XE$SRFqT^3{tU~tGHOPQHq59}^+w`*gV$q~+2a*a z>m0YiAx~N_d9`7M>hsZ{{mwFb@_p3X`C7+RTq6E;o(H=}B=+BA)du-Ps^@q-9#@2s zu_));61X%xdJ7IbdT({plKPpFkQ;pISu}#yFJ7k{`0Jv^{9*j&b8nw>yV`?#r(%+m z*O{aD&tcL}5FttsLL}>DQ(dT4ORko{QMemT|> zS2}GzRjc*KNMbCFUNhe;o_lq{@$hE4SDNc^e)tX^Acn!8+}b<7@Xr;(4`dP#WEipK zVpJc_u0vF)5!U=MCT`zW%NraGr%ntm=fJ?5;4Rw(SV+bEJ|^HXv}+Vb|06Xv!MQ&p zf#rNSqb?~6YtQ{}2`8FYx}r<8lu*0upSp>8+A?P3Ks451WJU*uevNm7qk6%TYoJV0 z<3@ibY8+j}tb|{Q{5AXbPy{(HX+mra|MgyC+2_e9AtF?oF1!ss6w*FUCAwhSnfzx7 zwU|=^QjOzZsLH%W-E|@Aibv@1+-8o=1{(0T0{v*6Or`W{Si7HEuwtbdPHJLT9+6z0a!%SRO|KZl@J90{KMG3V5d8b~H!&^mwIZlOXun0yYZx$P9e zdcB*6$ck}J@^!ny@9hV=I+Fe94!K?H#s`XmxAqstQv}}Xk5g0@vXkF`tvLxtblNyW<0=2vVD-s>qTKz{bQ$RdAsa&2hS8|sVh`un?T6dMQdRgh-|n@; zTLSK7!RM%7vJLx7hX1O!PR4?f!;Yy^IuFh`&EO^^#?pf(Bkh}PSQ9&|VVDFEuuiUt zgl3Cr%O}D-3Skoq_MVX*G;0g;FD&QK$>Ed+jQZ}kCy9wecP|duZYBWq$8J}HiO9fWnm7s!s%6vILyh-Ymi%LU zB;@ANzXETw`p0Pe_qh3;$Z%Uw6tRGv$4*x!gz+k0yL>REL+4Y$i0T=hfY)C2+b@xh zjg7)T1DLBFlM>8wk1|xos^tRyH30wPnTlw4Tu)CE_G_ z5oO3k%i}SNew~Y)#RAJ(e%`4UeCnd}(~;x31|vj~23h@wtr6#IrtT4JeSO!rnDSG{ zXYfUvMt-te6J_hG#rI7pqn35uGy6|?gKLqJdYd09oQMK+A}a~;QR9txma*xHCmE|a zs(&*`TdA@N6MD6M$3T-K?qaazfyN@QBA zWafX(RiFFIZMvtX|xI*iomtEsk7$fu~b*+9yFG= z?0opCX`hq)e3O7nHzs7gd?iY?cDuyB;aC7o&rc_3n&>(9u7p(F`;UJ|RNUvrFMRK* zREU30S~cX(Wz)wPFgubt6EmVm2%=*gL>0NT>f^Rvc+Wm&U*O7P69-i>%(>iKPSoFb z`mzkXlH8yECHHA8O#zodSmha6^Xf3u`gDI z+!5_UjpPj>?N)PH2DK`W1h`wKrS`p_KNJ!xzNBy;t9=Q_kv%&l_ifg&s*%-V?2Tes;5_A@{^4d z|}U4TrXZ{Kls$#eJDSeyHMF!LL~;ug}`3=U>UR(Jeo zkV89yx#E3xlf&E*Jdol#5^gFhvmN_z%5Z6Q&-Lznhu7^kCkgv=mL|Z#Bl39|Zp*uS z3e=;i?B;thG$p(WD@&O3HBP(BSmvx9gpLhQ?xRj5g3XrCT@1IVBWl&yk&T*B8GplM zAMaxSeY%P!O`>t^f6jZ_FGG2>-ldOyL7JiRo*{=m=U$f#2{rmN65+u+?d{D|m$l$g zj;(JO%0aN?VcRIVmis*Ca2Q+)jMJfk@VG3Ba@v=-oJLSm>-+i1KEX6 z8u_Q)O#}^YFA0}&3=e>`9AmAJEn{mWMwu()`0q(D+f#v>f^?jUjP(^#Cmt*5Sqi5) z=&+6eJPIWhRXgYj7Y#%g@dF<2a`g^O2BhG0C%mmZS7KRJ&P5`y+PngwbLEL~3gnLE zrd+VL-Vwh;p+oijHP~|Zx52uGDSgG_R3s|;x20Cu@6IPqd~UZA)tcjaEAz!N^9VQV z8SB}L1DVx^!|5ug+(1S?r{F5p{_!-}0j2Us@n0)##nVL*1}F6mZy+njOY5WC$6UvM zpQa;9=CJfy&=2Q|C6slX|JDv(6DsY=hbrO{3Oe3iAM7_gO%zMYMv)0g!KMVsq+h5l zFU%0k9t#?fZYdHK*FFx&)upy8G#k}j^LaWP4pD{;H0;f{8UA7_<8#_$)%hAXZ)P7x z;PlVyXtbH0+kzrJ;!xj=MEc0cTkE+?=s;NIOE9U^+YhtrHlRXh8>||?zdn8jz2tEd zLG}~xC94zp_P7fSm*rTAA8AF?9IE(rTO}-F^Q7hF74VqL7l8m7_>!Q`tZwt5LN_+s zaMg1T5N(3w5?ofxcWd)CXTO7}GPD~ukah4v>($3snE5>3*Al$Gk!C|1kB{QBk!~zjRBt#L(T{IfT-U zATfj>h?I2a5YhtDr68bmcb7;Bh}6&^A*q1GeR#k7t$Y2`B}>jZPwc&a^(|izTmT0R zO2NjmhlvWW8DBdqq76k1o5YdN=PTo*IbXll--=GuG2XEM8b6$L0;ns>+3R?v<($t5 zlb|vrXf}%C-|wzRC`riO{y>og)U>tw#Q9r2_flA%rUUuL>mSt&`X4ny+!Ym3E>~&| zv(-~eTO~r5azkkU_yok8@ju)O&V)m_(j>=E3Fu6G^5%qjfj)O1^4kdQ*4_}~(}ES! z9g1<9qI<0=B8k#gV^e(V1T`=RVwfc!9HhJ*&(rD!y#!-fjP~Z6My_i(a*PW(#X$XP z_~(#1@54r)1admL_#)a}hDB|fD+vadt;XNR&I@RaZ78w@RN2J=*OW?AX{f$LDi##3 zm7lzwx0NYJH$zNGD-m(qZyThnOWyl=FBRfSzPxt6^s z>S93Je#TAi*)Hw-kjhkqsPwyFa)en}9?;0I)Z*2I-kHSu%77v;l? zd4$iT(>HSH5~Wzs1NsUhKjydis4EX@jAw}`jjeCKY+4*~N_AK_KugUg5FcYiW~Cue z3zz@(Y*VpqB1htZ0mxA9jblRh?Ue!10T)^sH9ARh+#AKhjnjU-X2__5Jy(oo~61S4wpX6?gr2n@r;3 zO(I?5`C$kPx2ag{1zr5T!OcJDuu0vR3Pri02&kR$M`fZAL;FCb{5Wy!zdB*h{*h^c=+%oNC_w$`37JLklzA$U!jHJ7>^j027pP- zXMkeRN_xtV&zBoI0X`*t@QoYDNwF?6{`@S`>-T(>C7{Z$1rX3m8r0gV(~uceGytQP zvz>_{w=fRb9)ntg_pEPM8_X`&*4Q+&^eW~axBWRRWlo+oFrQ0O2*y*T!RVkSyjL&$ zAkXsk#2<1)SI4cYYjDQ<{4|}$yExylQvSh@0dSioP=jgZFTjuTUhl^iMuz=4SP0kOen?!f8zUE{dWK1p7!%WjT8LWc<8;JxFl2sb$KE7`JU`|2*lz<2leKB&aP&23 zxZp7snC4-HSV##-0#|ghty{TL-bkjE=&shqlWagC6RYT&{1ky(9IYzCS!aS?LNO(WX@j-ZW2Bb_dYU@#34h9Z1+7|Y4QGRuOa-I z!^<#qY=chL4;{5HT6eShW(IN>t%mm!i7~q7@|c15l2~Ge5uR4W^Xvp&eyKCi|9dd_ z-(P+&1JQg5AY9PyYo;3@JUZ-yLjqwA43O}@%RQqZp(gdBJWN1y$O2?pn*>p)G*ulo zvO9+o1|BjzyM2+{Y1_HY>mVJ?_x>&%sKQ%l->f3JT|zlGU!%ZKG_jCxC<{m!nXp6J zu?jfW;3R0FH`~Gs`jO_{V$(zJImf%Y?Te3oM7niZlu(5JIJ{u~;e1BU!)>|OF#3*b zzgR~_`FoY|U!W#HKv>0TVfHbH=&ySE0d>k6zoZDW7lp|kDAzwc&G_=XO_YBbxQB$0 zE!P6ysR!L*%w$Bx^RH8>QyqZNn1F)4`+B)`w(0e17&@*IpmG5xr{-@16Wv>`4KHV1 zjo1y#No%co$)CRCc;4#%VNBQiVt&DpD)-zFAMgHGWby7jeZP2!8|5NtWF*C(>m~J( zoOwCBm4J|Dkm> zSo}d=ds_Zdz$Ah&DNj1a+O&>)e|6*7&-x9KQs=@+G)iPLMsKIpeE(3Qu9k3Li8{Gg z2Ufp*R+f06pK=uZ*_)T)@lNw!fIybQ1n*xsuEsgLxg*Ry!op#Yl$Q26Kvh?{f8|PT z2BDY};~B(}^H|wqKBA70UHWV$=K1vW6TV>RFu3&@@@FP;rNq=U2@~`3K~__m7os~9 z)Ig|PkT>rI?Ob#HK?KRg{=BM+3e01n?!{`o-Pt#Kf?gssW}=Lh-c(DAasJG;>3eKA zAeoLl%Y+?2O2{;l$^UGT%HrfzpD}KqE%}Bs%Vw$w3LLnUnSjOE((k{&m)j`DBW4(= z)0X;&I7o)%0Vq$DD8$R_qW79>jj}s5R5;>i=HxljNi@&1tYxTn=2?;)6D7x$6XGpVOE*=XlnWDk(aAaz&5@=DK4+- z!Y8C)*P}$B(#MhVViETJOA3n2i>lC)r+Q9gZT?|8O1!ch$~MvP}2B|d2{(K z$RDy!;8(TeF{-5GeLeLSD1RPAcg@4lP;fiL%$Wj+MP$pM+LKB;I88^ z%BqTxP0t_Z2vL7Aqfo4kjs-Q#7gaIZk-PwOPwHkE`>;gQ}i6rtkZT+G@W z^-rchWCb4I0b${}^$Q`p;Y@{lV$1_hR!aI~isuPS8c0+lL%TSn>`32$=bdS-GMk+; znr|j)I?geA1}NH^c`CzZ8KEN1KL|T$1*E(V-0sy$zt2lm?!R)%@%u`L@cf%5mSUUU6>P$eB`dl!0>@oby)Eb#~+N-_+?sCzmzL=B{bj=zL~hYj0fV%8bp zD-O%7O6RdI_8dj+X(ktauVKQBk+WtJoy`Vm^cRWym|$upEmDXpg^xq>!CHV!t(J=} z)y$nu1`()^tu=Rl`DsBR75N8zqT$(R`5llhHEFR)4X+l##;jY$uZV*Rlk-M}Y=GjK zjg|GIAVnlI8(S*3xB+1z|IT*TYCVfTevYQMQ*3mhNone{dI$BY&fEX3I{#aHH*%#E z(y9lfO9HI=6<)7|Y!jSkK8}ODva`)^*n~S^7iQ#GRAopnhTunO#bNKFu~_Sd+N@h+ z642op!Lo#2;5)>n_1~bZlgFX|7~pKSf|ZSY#@5IdeTA|xHPUta$BYz?CS?EhN3Gq{ zJZWDXa_(loi1{jvBTahR$7e ziK4npF9x6FKYvWQgn7`YAU@t0o`d2sR8c3 zHcXhWy_!@5BdkF_c3=d%);NvSpz7w|O!TJ-?_z}!W$`#{>&j=H0TR^fU>eVSPuU%T zCa%7b)E!|P)J4ysOHJ)J5KH#&5B+&x{90{V_%xk1YFo!1O{4B*f&q6odT zfGK{$ArrJ8$>A~n#-J3Xkta>%C9Xe+^+Qjds?vG6RfNG2*a1yFf4$UBB8U2k3V|x~X-f8E*Zw%8FU?f+`+?WOQ8pnzN5<0ct3oM}r^EG(84%|_IYpId zskH45-njS*f;E-TlX7am`rgKnYL0L+Rd{82k5RLg(GXBn7L!9%vcpQP*n4<6X{^7? z{ls^2Q%}px#LAEJQkY?i^05$Rp~i9?{zO{B$^tn)UQ@E28XDbL>anWLCZWX1&`)6> z#emkhvQgzsX#BdX5!a5AcM zq=H487Y{pL3M2BBH;o_Sc&!iHBANJve+-D<(0s*QmME#HVkk9Mf!+tq1;*ZSMe`Gb zwubaM_0cE5e}^M4nSsixKp`C15~JJ##vs}jy|fP!IoNlLY9aJG?Y1%Lv{L+Zv)nkI zdfg>ux2#&%`RD>@->rxoX<~m7GcP=@))jx}m_(9eC{te|?!)kgjQxO|6goTPgelx( zq(i9&WkLPufWIC_q>{}Tj|T4_p#&b;FeFP!;a03#q`3nAlPMG2OO%-iM0b-}5_{I0 zpU;tM7(cbk{`$D6H3gOkA8Nn#_c-~=56twkzO@q}cdw)Z>g~s=&p*htd3)_Gxpjvi zgX&QwL(1>m;qYgJ!U)j2vN1EC1Hm6CeSon0aK4J(0avfM3ihnU-LB2+u-xb~j%$@! z6Mn9ctZWbng#za>9q>%fIR!uT&;%ZX#w6^3eG?Glb{Btl-OJ+fowRTI;$=D{QI|$! zW>PYT5IvUh^8}%#LkaX0HVr!E2a^V@66|tdv~A6A`PKprHl3(u%vkZ&rDvpd+zXSN zjc)`&+y2GOki=OOb4*e~+{(0zV$HP&tIfRrZdEvsjZZ$TMcnSABDp4ZIm!^chp{`> z2B{tzzxrD>n~|v&f^ou*Y>lAwB|@6P&bl}c>u-aOs*e?|S4-6BYMxOSSKad1KAbm1 za4M+RN&ARB8R^2#SPy>5*}QFYrVm1m3Wk=U!c(01gcl&-;buD@QSW3)4r;=L>e$*c^P=d*Typ8lNFxuueoo8PxVB(}VCbiVK z()`WZDcQh&cy}lIQ`t7Z!zgCJpVNqIq33F4Y5x9@oIOMztgQdVq~_sBbHJ@X1$~3p z(ULkfy7hNyMsB(k!d%+hxycAaGq6F>(nl#3dx&pR4l| zofPm~$w}##=FXSIpmJ4O!Q8 zTGY(}k0W9d5|ID)rW;h9D{ZJE7C0Pocca*sz1vNzvAp`y0-NKh;vd7jCUQ4ZCynEJ)fxXWKgU z321H|Ao~L8Idc~tgUCp7wya^f5c8%Ysl^_}Len&aXhapJxZPW!YoqU+?8Y*{p)@hS z8sxDt_}Tw&vCB$($909sK=7Deo_!jTfgyDVBc)#IvAY^9BnFID~ir z%A&)QYRXb;ceij`z!)9kxcd5DNIY<`zrR3JlT{xSrwTjZ9tOx4hGP;sR3!L!_`uWj zCt){h|9Fh5o`oyH2X#;RTr{PFuDRr;U9N>getg*T$0ytoyX~&g*UPEJ`%a`=#H*4-)fC~$%`Ii(8f74Gvc>Gk@DI4jTN%o2E{% zv)DpXo|CebS(LI%kPdL;Ty9O&a=gLRM@PG-(4l;Sx^6x5(Rww;bx!?}IO!~d`fuUa z)Ad(U{J9lf*G2M$?HRn5@!Ij(l7UYEr4u-|G}un90}GQ3&S&luf0pBRcxisTkng!c zR{=UTU_}9r(JGS~7#L{kmum6o6v%^DN@NKt<4Q%T^`B7u4umX-1?>#{2fDTgRoimw z8&r?^&t{nOOI4O~lfIy11qLSF(63;a0`hs|fB=q+%i=Uu_LemvKaI_J1^E^uDglRT z$GQ|@FG5yLD`w+2y)gs~-meio#Ti(zJ|a1AjjYX{K?cpca12CncrU!Clv8?Rfo(z* z`U{an0{i#wtv>0+v|f303YDu_2=q#*;4|Gf=W&7+4k<$f$k#>`Bu=#}o%H?}bIWDT z$`Q19+H)vNyjoU@a>QNv?LBa$1bTO@4+}&0tkz=pB5*gl57KD;y_;0}_TSz=@kpo; zT*OcYM{c(QhDQLnYq#v-7}9!*Z||8(;&m z;C9Y>aA{bmt1zy@Pr(Oww^y@r3^CBG2}DOVL>z*$9Bb{)OeIf+!jQHh0U&3NGrTBEC%I&MOb%Vt9zh)QrZ}(B{B@Yt{ zcO>7&L+z-oA1X%#&96}f37}Q5pSEMrKU7s61>|aE$L_6Zl51Q z3}Y`7KzDk1tt<(nqO|hw4)E_X_V_|CjYzd@y_pAc9TKF1PT||{Ow&cPNgfNAb@`tC zEi&^dp4)HpK2nbti>aI}_W1jL=0(AW6;Rnw3E7vG;~>6eiR=U6mA$Fg`R)`bloX3O zV%IPHc*x_1HWb3ZC$V2pT`RO9?`7BfklShN*2HTO*&D>bp>YHA z7=SFO=LI1rXtI*5uLZ1vSuD7ENjdaN-t5l-o_=_u3idF(;dmHH*!dKA`Mv~E+2x)K z06XgZr!`aluHr3~$eeQ{XY61MG2p^|O5@bdmE*hIO_rVRf7+qy9CGPP1;MYnLx;~` zom`78-q*9|&$Hlga=&s&!>-zPlgNoh{23;m5TNPDb?v`Ls+o9kR%UM~%8@c#EQu;R zygf_UC#&``1%-K#>|Du~MBHk)M+w8AmvLL^qn74!+r8{93!%RBxGQhz*l3$$Q+D0r zXR+57!M{7~K|vDfh;BwiDdD~e)VuQyPJd}6+%LecfyR*o%kP85rr)5=9*n0-1=tEW z+QY{HQl^ZAPZ1@?2@+m-@!949n-;kr)PXJwwRU$mS8KV(l_pcA+Vl~iUW{!RUIDH1 z!;IIo7Ht67CbydXO+4EiU2L_>?#w?YK^w96P#$8_Nhy<2BMQ5tiX%@kBf)@MHvHd3 za=y6}8RYVJZ-VYdT_S*vWUKc>8JDnDJ13X)SPNB_o1}R9ph)dqek&n-EjN_lhEh_( zfxzdp?D+f5QoXQDCg*8eW!7@NFh*E1v;37>2)DTNWD9U1>$5*j<6u6v0a9D@@27|$DVMoQ4$}1qT(KUd<*1@oMEslpA_e)Sx0VpVd7bBZi zP6)1wmub2#Y43|~d0iA_&)a=Q>PjcjZ`CPy&0kIy=$;XnnYa7)9rm%LsT>jA6EoHz zuN!mz*ZDDeJ}({WTWh_`SBSsdi99dd>AtH(g5fHyHv2yAxCTanrP_I692ju)^iU>y zUzOlW#q{&X{S09R0on65Cohv`cLe;uE0baUaZ98x67Gj+d|+-#3CGG7MjuH+AHqWx zz*dT4(n7CEE!-f6874B0qI`=)V$3RdwJ!?B>F5H$%NjToaA)^@!#x6-tqqRzMuxKh z6#xZCbien(571FQvhoAn0~iGMKhp@|^Zge9wh4ci+HXKCh*V9aJH&q*dj&dQVbEt~ zqwcO%trgJX4*?m#lXskC`Bp#cyn`2Nw@kB&bIwmT*q9gvRcwcwT^5a^5rZv$OYwUI z`Leg;L~;W1H#q;@{`0p_Azqh(!4_!~k8`c=s-axxi^Idiqg94Q&q>+wq`vO2m;@Ju z>DpqX)0iojVr|tra7Ki1QBJm0elkkLU>Kx2-hY8obtmrnYr|n8j51Ol@G=4WC#%=B z-i*}5BG_wj&$CweZ1$H3fPOIPcgC~9a|-CDJESjE`_9bKE-JjRItR*eD^v2X;1bx4 zCF7!u0!v}yXM@woQ>ubr0IccW0v#0?93BB^o!tv4(LoQSL~de_cpQTqh&ESg8ve){ zK+)5c5_QXAp4VSne9y?S+IP1jBG6`l$m@$<@%HHJE^84(4V-QwIsDMelMT!G6S(Ck zuvK(-n}V^{g-7m$bm<7VIHMD3#!^^tP0Tx;B}~%}L~#$Q$F>mYTFOeeF40Be!iM*| zF@NP8{~8c(R4Y&l+}9;!3e#`k%3yzasb$(&8(%O?9(^ZDD~|_>bx}YpH$$fKS@C30 z)=JKYo>7WvyIte%B9$#TlPmGb!|;bws_&W^h87OJT(1V-0tUcr?X%DDAx7T;eC(uo zV(M~~$F&Q`k42avzXPrIYs+$XcYjEGLd7l9Z=ZAqr;UWOI9V1`NNc+=6 zghTrB$>a}gm*-zEF@{^9^h=NR5Zwpt^}geh`##e^-)(uPUT}iMUqb9?> zqFQ`DXiVSrI%s~?S2)lyFfm%$_wWy>WR`GH33koiN<|r|HB*Df5nSG&rJclJb7p0_ zTPL?yA;*W6TXD5eto5jH;8a+_LhZXLNC#=0(Ib;7FI5D6Z2Os*7}wI0Q%vkPq3_|| zx_Bmd6`F0CLj?KoBIhQl3u7)j_2Yj_$oa_Y)gwr5loziRz&m9OM2cQzxO}~XRI~o* zKYmRK$%Hs!1*OqQeBkt!b* zM1T=)B|v!a_aCxp2$>qXS8ky-BJ`OK81EkqssuT7JPO2RX(f~Tg!e$Z?{TAs+7FHilt_lr zjaiV;6We=zTesaHS;1&R)vpDMvv#*Mj|x5zRiV3k!7!E4*D^ z$RQ35!M)A-E9WCoLR=iGmvwY9<#xtWakU9ILJ&!lQQ?IiWUPgRc)YgEM}*!4PpT5g z8QYLyEBn^czkck^Ab~0;S^;#L?6-S}U`)`?t(qPX$Vi=+ZnH}#o$j9R)%m(_VMNA} zaro`by(;Z9YINQMbSGuo*k&q{!!&5dyp0~SvHRqEQu#rOcYkiAnNdMuAt3!rE>zrr zL2ZHs-Lz_c@Kh_x*l+^uQS`yXdhw%`_N`>HucK;nCjjw?SK~7E_19X|tXI8=t z49HgKS=OOzuBj<000Qo1BxZ_7N(mjgk<(JVGOXcv7Nb0IoAk~;^OFQ zxtbsU3m2uh;D(Rr|99)FMFMOl4$OeU5IYLaXIBia#}i+X(JSH>8l1H6+OOPqz8coM z5@ip(Y{)D(tSAbG3)}R+uP`op?zMKJ z$TD>}ShTaowD9=yYKKdtVqVgJJziwRywPXGNzU@)L8B^xzD0#e(BCh#@~)th1;IEw zfB$(O{xk%L>VvllxV_uFf3q?@?ItDR!$SlCH)Md1LbHGk+&!p`OwhyI!3Ej0;#UFw zx~l8$8elv6dU`Mz3@Ru|>4)9eJOBBHY4=wo%s01YB_pe&kW_^*V?0)3H>=a-T5O-a9&AKY!#%GdMMtSoBED&67Zxa(I05%NX7GYxiFghV>XSW#ATXS9@*cnSF zA|lFebiVtQT_t2Y`lC#jX^Q7P2@jCL=7~Fw)-|!_VV=xjYUdLZwspfpCXQz5IkZ0~ zbd?woKA!lm2eqasr;TQRnRkA?lc=q8DVN#SPB-vd#{IwnFe2)d?RlTqruDaN6x);= zl;iRCQPE1gdE%e6e#-7;Sakl6xU1vS3Eyadm)5x)KCGU4VP6;}QUJ3dC#ZuVr*@Zg zNzSrOHgK>K4*F(=O4`+ zf*y0;*`hl>g@*f$3m%)-0Rt4ZMFN#~oC%OorRcZANdoSJUl(G3jlAd5Zak2vT5WFl zH6}ttCHUrOS~D#T<{*rgnaxk=Gj z(8;e4!`#W!0JW5I@CgihG6 zY%odSDuB!L-6Al8M)4Ne5w;va$@&~SG6jkQmatwjdsK%%1>+WOT za@Z9P6{BFUEv;Oj%K5*|H0BKB244fz{$Q10?0%!fm%4UE(pwZ=QgP{=m-{a(DITbC427$NYMq)^o`whgo;v!9JEAxYGFQpVy(RUlkNM5J%qy z?0nHr=g7|p&g^C0NBw(aNCmm0fHeM-W+410ok(xl>|1f*WXQ-U7<8-lSSr3ZuQ5*m>u){u~~l?4=M7O-HVOF}$+$+QWU=lBE9kZIW#0_8J<49{@Ex-ktorBjYGuh60m8Db_c1P3 zWj%h?&pI#EpZF^W9k2XT2rd}Fq~HFUXR~qr2;1$%veKkwdu$dzJMid0BINhM`#R+& zq)T$XXWZLC=Z!pOLN8*`!eq*g>iphTzOSQ^^NaV=tt|^?$GzP4O)tu+HM7d$eV<`q z%4PNurW`e#JyjE5j@(#Wsx`G*Ig_8we`osl<^TQM3Eq-EiA4qf_|wW>c9z&uR0Nkw z^uV^rBK2i>p@k=?($u-62s-9cjTNsOe&9{{>f#|(f3Qte8g9pK_>LAooAU|En0h6GfAMUaSLc)a8{F~QtUHO@6QLJ` zg!edv|J$-YEbx!EF}nRe(T0KavCUkW_NV}62Sx5RWu za{Uxyua|Nply-BOEXBc*SLBCB*=)UURJT0!Nk0R`#_g^i8FVm3Cz{kc2ps&X){YK3 zyPz)ZW37(=INI&<+k*b@!CZq=hE{hCbL(r%uDMpjIM9in&}<}spj~VV{LyZjukH8f zU~%ZBKn%@O{cmTb+Hdxjh_F;vDl&K_4~&v%PmmL%E`$$HeGHmyk~cbPcR=J^i^o>J zxMS7~Pb)JOBu_HfVs|bgDBA?{q|Y)49bWn^yP_*BCh*T5s&99}EvK)Xgyet0H=a^D08ZOH_f7 zQ0UEqV83+swrQcg4gK$wkM0;Lrq86gaN1?j z+;@!xh^;;|!||XtxIpGxZc_N9eZk(ww`oG#>1Ud+hkoAO>0@~CBL<19y{c6Ei6W7} zVZ6ueM}L3O^Wp`fASUAY(IF~tyNOWyZ3Q%I?@dn#=&Tax;Jgtb>M5>KL((Flg&CaR zrL&NRY>U|O^8_PJo{CCHfPbk`Z+X8i^Y~i+HMKx_ltpv{DJeBnOmjt!gGSW+366l| zF3hCAN62-$1dIlpB0e(6MCSN}AcB`IlT?12ha%Bm^EYY|I=5#h8wO%oE4Yr~usyjh z#-qXF+~spRrb%BaB5Zxj*9y&>!A!Cz?8D8GO%cZQtAnqhi_J}Q3+`E$P}pI6q@=(c zvOXkHI1;8lOBiq@GYHJ|ty^dfUe$g*_bGVCrG7xYE_QJJD}%cJ4xido;Bl&|w&DbM z+EBJcwr^P@|1Pux%-pQEX3Z6DajyAdax!#i#rbl(f`dnXHheM{MJv4TZ(9~mag8Wc zMMkR@Qn_sxTrPDC$?Wz9ozCv21Ci(NhtY?GFqv^`wctHBZBNo&?@Na=mCFW$4-cyZ zlb~jL*U}^{Pg=q9v8c^po#S10#2Jf(Q_=hCIxK?sl4P`OnzaTDRM%-jo{dU|X5vke zJ8ldxYl%`YoyQjUs>zWhWceLM=(QI_8An5YQMj%oz#Q)rp|p3wKW&xA8sDH5#k!{R z{+@jZd;VZ%oz|$*u)PytS!S=k{6OQXx?1W)qSvS$J558!MT8))4To zlAm$rkn>ToUDd;1hWTsxlX5jYBO+{BzO+`gh;~ACb>{29iH|otp{gEmn*HQ=B?a+g z5Q}rP6zKSGLgqGzfUF$y$?Lyh_-}~m2H8TUIgO9RHL2Pj+?oity|c!Vk7v5z!)^!} zRn)W&8n=Dc@P;c!J@p{iNF2Im(vxFAgt9@wtC2c5Ii~*$Dx(#Yn$F!rqlqMwy)BnM zQ|#?u%DR7+gh-AVJ{F$f(!{=ZnFAT$`)uNaZ8oA{MKaVqy-)0XID zGP5!|>L|WsP&Q#MVDr@RgI%_wQURRF#@;%5DV=b5H;NEWx~ zI|ix;{^!THUawvRHTrb_sL79~m9hP~9wtzPgwz+VuB>2?c9+VEDBt08{GKC`x#9je zG*LCa4A?T0kn>Q>cprf!njzwFx=B=LufX41_Tkf5`WCO5*U!@}#}q0*->?t8BLpIr z_0Jjv&bA)`x@vcSjN|mp5VdUJPxzj`ibi%+cOA8;=KS&AObl?6RY+s~*F~0)qg|>Q z?s|;KD1Nc#sn@RZ_P=vM2Aa|162^uV(i>S}@V?ncpmlLM5(OWX3ajA-yLs3hL51{X_!cbKOU7L%?ZE;JPAvsgH929Gmb#*W=B+t z&nmGSbly#-;m>!oio?d`KJ;kk*VxHPe(=4FmfiLHUoC0(*^FKoZ&IG=iVqV8{kI)_ zxGuTPzbO^)XCcLv=-z27Um*tW7;fcO7zzg%oUy`8XYMU`a1|YE@6FauX;=vP@S@>N zm{MV9PqJ+9MHD|+Cp;g_g9T4n4)U0UJZHVQYR}0c2*YiR{xUYzEEy+#ZDVDm8T^?B zSvXpDGFlaCqJ8!6gZeM?9mBHvot@3bJNoS>n#HSm_#y(Lp3yZ@sUmI0g#py@LOHeX zD00eKqmB{>Ccj7co*}K2L?@=Cq<9j_T^k0!g#Bu7X^k7)$`(7Har;EZc|H+mK;QD& zLx43(x--fZ{Bm`S6s8UmXga!OG&#S(MQNvKct$`M0>kQlRY*ptzJ1T;zJ_z|y?1-# zEt4Guf_N~@>1YLl)i1X)H->v&M-6vcspe^(tulKO^0J`cf{O;}GlqY~U)o$hKbC#% z!W-UOmCzx~%sF|JO$WlJi6{Oh-}A)IUmKDZtu{}drKBPGCsQ(} zrI&xVonVC|vk%>}OIQ?KG0Wk7Q6iK`G}e0JHChWL9Ec|PVP&?B(N7 zfg-gt7ZuMoyMc9g$N`K>{S3m=tERrqEQ3;1u1k{`vP}R)zXvBUo(*y!^;Bfp)z-99 z!p~Cho84&=&%uJo_^RO-ExAbbVP$>1$7`G6*|oe>RiT)ei4BUT{^H%s9ViXk$bMs; zguKoln}q9u+P|k9j0bDmHA+eSTA%8+uYK_I(5q`gN&k9&bC^QfG#y~gSW>xV%=ygf zycuyH9nqEwN1R0~%42Oe#-!aQM&1aVoGaf)Hw$gi_YTG7&>jlL?RPAcej2bczOg64sgfnpm2J`;0C z*`LN)mqq=e=?BMrj6NHmWv8SvN-|#GaiMy;U9a*a2?;s!*3%4LY~nKU7vYKkq<7YY0;ambhPs#i^Zt1h8;?4@mL=%MZ-R5;T%C0zogNA{yXIqzgF0J8whdj7wKw~m;x z+{jIMcCo)boa#TB)B|yL{(37^stqib8yu#J&~Zp9MV)`NzS##P5jm^w5I~3k)5^c# zW!*kx)jguF2h%)&RcV0{69|m~!^}W{VE5?w*dlpONj05*Zg_SYJdL+{_q^wO6z zJ*d&~bP_7M!ckM0n?hiXJfJ*SE&O8gIa=qv!E?H`^{0zfjDpIWK>cpj6Lz-!Eg>;3 zl;{hXy8?O^pm*bYioX1gWkH5P_2t2E8yzt4N56vzHp-P>vlTDK(jQ5KHQ@r1b;0`a z1?iTRrgbT{rnR(tx5n(it2F+0kdIGANWz}_5lP-x%(TT;T6E}0mMDjaY!u$3$N07H#r{oSr-s0 z!-&kI5~B)L9{4?fj+WyrQJmsGhmS$yDB|L@X(XMM0dMVb=d#1>D4(5aB*$ES**_tO zm!l-dowmHQwCaCc4BbLhGkQ1dHBf0JtA*8hGTeOsUL1+Q_80aUP5X{^{|4*^{c`Th z!2H0LY3HWpHhPi3>vNigI-@TJL}h`u7xREP;d*};Shs*T-1~=4+!cxP!bch~OEDgx zVuV*4kbT7)0%ah01bXu`5aDGNy9!dyz{9Xbu|+Zeio6QOW+9D8 zHS_z>_#pr5F}^i81-A*(V|-OS!r~tQP^I9~y_q{~%cwGU0!VojJboZ99Uk|zfIZ3$ z7hjBkuno0S-NPQWAIKn4Y5;-J5X=ZEq4IcAG1bWH=LK>YZpV97Vm3CvI%kgi-_N+d z=N@ZxTt2;cCUOMK7D2etgH!@6sMw*ziOx;{!Fd%S7y{kgZ&rFimuW{r65 z7A@{u02v_KUFm2W+d`SaCF8UeH0v^HxbBb9m+?Oz%@Y{{wuXT6EnziWN*-l@T&I-( z#1EKgY_LhjJR8tRj{m+(vY2~q9 zz>e<%V`M8QAmNl(@-b{SjvJ^AxH<(?h51kVJAn2KW|pYJfbV<>BJ3EdU6v)S>cMo* zwIBQdO7a@~O=pv1xFXh&b@W>DVuMrkIXL+w{r_-JI@c{=042iGU%&!+CBRd!4j}m8wqkmqmC}ca(~cks zAlGD)7LZ+apD+Q-noF1Ep8yxgk?|Pat47W}IXPj|&I89HG5Z6bO~(HZNczBUMvJpf zefZBehlx^0&?e%LU`h6X9S4LH(b>F~ozf8CxxNPGdtoK=4@)lO6nr&*X*yDO@Q(oT z^l-6>;0zGN3TT|cl@JG!!npwn4?5}ED|HV&Ca}~Pw%6tSehknWniWllE|9X z#5z&W(FsY2iHDus5lqtDFeImA(sQ)PWV(gqOR!l%v3@lDVGP_BQFv4+uj3AeBliFa zp?YFiYo$#|8U?nC?trEPc>*~e_!#O_*(-qrw0{F9C{H~s##P%WGve$iwRFB45cUxP zqmAB&&kx*l&Ogdw)Mz3;(>U32Sn4HhNgPu^KpL0pg@CubwYYu~kt{_$x(Bi+H<($xY{)=I{c0{&iRk-MStLBweX@!98%tr31&*IAIH0fn>klj$P9~AuOdiPJfHbgjjtTkLA=!H%9gQ0V z)koGT&`F0T*o0VJ>Kqd(tBAkLEZ{NcM=??MD?yg*F-J?9-#H_q2`@B>Gei3wYd3z>U+s-U+6r*LmI{!R|AIi#L zK1UTRHGJd22aBVd;B<*B6hfW~nTL;4ZI)EHLC~$!K zjTtIkhSL`(F>OOc)loQv2(jTtS?U&eGWaYl9I7ENuB2e)OK4pP)+C+ zaW6sD-MHXv8Fa)r#%?G7joo=bNH4t)XQ@8xDMT9XpWtgZLT+1ME5Ch@Vc zK)tp)nv0{#N*RUDn(zOcsQE`UoR!-wLj!npxBJD$d& z4>+wr@1tNYbc#}?rhR0kkt=!eR%}Hc0ynB&47E>7%FKjIEQygPr<7p2J4TT#r;I5$ z#tzxmh74S5l7U_MKjr1aH=c@d7^aH(TwEkB{&Wx3I`?k_&Q+!`^uk-olyGhR3q#{blq@n$4@ zP_%x8IyIq`Nu&F_mk;+;n?Hek4wv?ksfYbH)3Pq>8=$rC$$5aZu77s;%iW&qD}OPq z!#L&vtoQ^P3B-dIAWJUz4!q|E=LKTQ$QY0`l$eZ{1lqe0M{r?Q!`l&WK;;RlfD@pW zW@2SvSOZ!NEaBHHH1V>aZ2&iou6U&<0IWfZG8Y0=_1PhhFn0mLP3yg6;A8;Kas27Vc+1=(b|^|=*YMUmxoQOy!s#UPypcqgAp7bakfBPj^VXt zxc~hVYB@?Ve|07z42V4wZNUaO@sWo3zvDFQJ_q%GSbOzXkjmi#u*lGDaO$Xn%iIp| z4__7j{mZJIcLNH%kQUGsm^Qq8x9oy>q6=SeKAQYw17K#Y9O(|&00mIDk#i>`B#Z;J zJRiO0gyv+7#1EfP)DmhkvBF{~>$r;~fE{RVcU~l711=F8}AG!IBnQ zqNs#w-xCtc$hh=S{xrUQS_hGCg7*xDSs|3TDm{6JeQVyHQgmGjq_TC3G(mehVab@LwqvpN&NH8Av0wrCL<9STpFk&O_ zroB7sc7v_0|K_9tQ-3-g7MZaQtJyj=3RPL#yiT z0h=4oXfEVG__A=Xp5-B1v^@lDBZH)2V+HVw*+Soz>?$GfTdWQOU9l=M+vB-VeKNPvYKZ zq&bJcSo~6)Z4Ogz{|YhCQb6lP{@CmAb25 z8p5&cxlt>k%HG{fJX>i;78b8c!aIsWdBg1GP%FIY>Hqf)5a3H(pCo+DMpgB4YwF!S zv%}@fdTm?7h!}(7FZJj|qi77<(zmLCkp?>;wqm=gbT&h?*JDegpw*H^GoG*!A zsg7u>t42jH#bmPXFW**CdM}l$c>^ltz3I7ypMwnxBZ+-DRQw88Apq?xlJP^vB`e|% z0VN70fxHE4E|#TlS|Fkdrm&AfCQ33-`%4;{rXl=lg&W{r|p^n5j)X2A|^W_tJA*r&7V<2MH)>e+6zeJeMYn zCp5z{BFt|(r9;dOc4l~l)9_?V&buQ}mel(bae6f00Vb4(w|QzbTizo{xi6vqE(tV> zY`b&z?S9w6`6UY$Vys;=!MZ-~JPI!kQ;%?OwM#hDiHG;sdFY=0cf~-ZolCrj;{NR18heix<&3CxVJNRvmTx+UT{e}`7c$bfwF?~)BsiI74DEhW#th3>v3!U#c^oMej#hAiCwsAO zN5h{&@0mwO;){%JXV0+cANGP(P4G>k{F8^5c!@m7A(J7v0<~j+>Ad1Q#~gw9_f^q`h9!|9hAwR!zpL(yq$!Lg{Fo86-w+%K zB240(3b4XLf!s__sx*Lmb!Ny23bYzWAyZ&IG#KQg{-UfuwT)L$_LyX;p z8s`IP&0fN;q0z4%tLp@}oY$7cvMYNYkP~~Jh0F))e}#qe0$xnCdx{#qU(-NGUNoZ7 zc;_1Sa=mKN%qQ&%1S52%#$cqDgm!ddtY9pAPVLjy>g`%9J5_=0neG&k{&Nm(-Jh-; z&@|Vc9aY;&Ovc6F%=u=f=hK#Cx?vpv?UEnDiSvgy|7rEV~y`QtOOh0qv@ z8Zs_zk&Zb-dZAt;p4^^~Mz?M`#(^+F#;G6Flk~&wI2_DzQs}k&Y>eC5TNx>Z-M?>5 z-SQN5@%>HX*tGx?Yw89($4`t+zpL3Njr|D5`JDcepcJ{kn@92ZvIW#cq^+%4tiEn^CXY=I-u& z)85}@Rz>YAA3ugq?Oe9KoAL?_`zRH=EnxMK79&a2<8NPWHOqecBZ-ORu!N$qmp|=Y z6cu$MAIdmg6hF6D@R1zSzIEGib3f>lvHzD@&Yw4}pLD&%#laZ53eLZP%0C|y2-|-K zrFvXyn7T%a&4&YVC@L(caB-oGC<2eJ>FRZ3CHJ8Uyk>49W|gj3jyqqHA|e{9PN99U zm?;0WSee!wpj+!YV!{(n&XYbfbqF`~g=#x4Kt$`qMON^KS$}dgkMU!g#PnQGQ*13asustD0@3&up`!4ATCB}B|JCY|o{%ePpCI-J#P!^wxEW7 z8XO!vKiaqvJ1&0sh)*?8R6o4-ijcMX5zoDA?0F>x$SGv4UcLbXm9r5ycAE+3Z5_0(k7tjUCATLu`}tOIP=peIW~GT zl8bqTRQ>hk_nzeE)QPv`P+iQ)NOn#sf*mLCHk8b+PZe8wl+ek*Ph2&+ZDZG*_kEq> zkg)KvE@#(D6nOUm1?WaHm?ECzVFw_v`+I29Uolgd$V1oM)&Js4gX6nN;FJrxorQMK z$Djr-zDFjqjU;idxULN4KkdV$mq|C~#D* z*ivVCQRn)D%`#XEBjSeA^B*=w@GJXW5o)yPMQb+b>`eqd>p zNnaJeQ)mYEtH7ILhwkhe7uz3JV;^4SHu|BNbSF?0^d*bwewRyAzAKR+Vn#YwZL<4N z>63Q(2?E9T@46tPSKbrb;V?Mx9{pj;!#zVVW|;c+?x6|5G67?ejN`zkb!I}gFQelAep-DIif zWgD=QALNhiw3IBO?vsI~lg>l;jiD@sy+6H|i{a?r1_8~Ft0-|E`7{x36f|HX;T3bf z{BAJVbPBd=LXHPJZ;RABQaBVA+iu;LH7!)jTZn9yaM+$98K17SxttNJrlX_t-f%tq z3tk#)et0w0ZY!ji)Z!OJEGnwXF{u&w0d@_{sRw&54=k{?r9_*pty}bpW{pa_(wj;z zb_g=|NLcswlc!SJ@!pkkyIlPSA~Tc3pu|hFP}z&W?^BRbBCh;iHc{5Hc=*uh-m^Dw z!)X1`pA;lSH>`TOm=iUNbLrT)b&Qw7%lM$tD;j2Z&$Df)W=E=33+i6V9S_ewacJ{M?-Rq-t@i-Jk6@B0NQS-v$<|+Z%^qu7_{Ie6 zRN@Y|*LThFsG5iqH#mcdP*k%hJPhuK*(n4Uo~SWD644slx;%gL>l;NhzDhMkurW`L zOW118$N6MP)S#r*$nUPW`^oFpF*aFd zCPMr&y}K=6xKF*3p+IN;r`&=?dKNXkQsLt9%>cxgT-m;Yk*2y)O&x5lA)z!O`EhXv zae|cW>r3PuQ*Iezz-d+iE%@5#sS2mAgYjq83~{aR{{L|zhg&msvmNUPAH zm~VlAUnJQ#+q%@k>|l^Pa;Vd$XE} zyoclyE&+uR342$~*dqS#c!fsqsg+l1tA&p3oEIFeA0R@31r*srj7CPPn#bY20uvLlGi?^90j3(l|NjtkJ zo-&ubX!pB<8J^3-*4zJ1Q@Ac^1647{oj6&8r0|CLio+GKY+W@$l*L2YjD~!bqrwrj zigoh3K3pD`7g3@qMuqwz#x7?1RCb4QeVmGNsf$`>#hc*a3>&;CRg7d}NzN7njv-@? zAp;^NE$Pz^{}?dajQPN;8YWKjAs?unM#ZG_uVWu`hOm`Mr4DCsQ++yqeYHef&?{vl z%7JnAH3~nFxi{qy1my)}Y@;y3`fuOR4|ZDBL2=2d?or})=GnfxI@g{+a+nPjlfrl=GK!% zYEiie=`wZ^)o8 z83=Yr)FDMOj|MFnGtdh$@Z;c^Ue?nRKzLXvgL7SOFdoOt-k;xT9M9~3MY&2oPe+^6 zQzdDj&J7l-WRM9OxuiuX zc!)+~(duGcb~&dlst0q&DJefrMsCq`Cw;f}@T757XG!OwBl^mo8PUaEEzFZbTh z2jTr|(QYl$G^Nc2!xRM=+1DCP;Z93-2G*5vTZA^!+wD%zJ~|hWWNYrYOp9;7 zA9#^Oefb6e{4N=`7MLPPcfkA6WkE3tpC}^0kM1y}#UGyGqdA&-_{4v1Rtlkn^~(hH ziG_G;a=L_v&FslC>(e46ElYN1@Ws*mAAsy(UfB3yKbJi|R)A#T_LbGIb8TO8 zGlIXW1L?t`v&egT)pj|yhqp7B6bI^mZ6EIFT_!r*4150l6+;e)M!)J27wYTnN!_k_ zR#ko?mpoW~;Kuku(ktY9N}2SA0-gI! z;4+x9EQE9=w&bHDuUAdC=jp+HUMq2_R%%fdyE!GI8SCx5uua21Q|LDGA0Dndb~8@s zSU+&q^g?(F>6)u=>;1+RmUdjOugY z@YL0TuiD@>;eICYczS@=Jm!EXm7f_(Ysa_jhZKmV(rY34+uide2UroB`2<*6?~br-ayF z=5+p1jQrxo=CSc7rKqPE!F0&a4MIBndubWp%eBxjYOF;jSP>cbj*trfur;$UoR&TS9t)-O9P6KV=_iWm> zEEdbuS2FyU(KQwwc zCsNuJW=LVj=uxjflnEw%;b!he;PKqa9QYyu-|Y3*`~PYEZ1-2D+IxyPe_^$Hb|1soO+<9^TGWv=)ja%QCbyq+p$s6(ar6rt$P)&9IL% z;o~Pgk%V>(#g#e;Jl$2jq}pAJ%$oMiPHqQMBJE14N7D5ihM}-&VYB}8ga_?3q|baE z2bBuw3ZBFy4om!`4GJDxG?(MC)IDp`UjhRMbeAAJK1on0od3+@|F0MGX0*)OxD8(eIj(wH=g; zz>??OU)lHC5|tW+d+ji2C^Q%~d*p&pSQ<^r(sQc^k0a66BGI%WaNb^a%8S+%w}!Gu zWz+E>NfwjvzkHUY{3Led-9jX z^}$jQr>^kkY=zlM`Bz;L$CKT5>S;*^8IKCfO_-`%+Ksy%tlBJ&D#g!TqT?yXbNiTn z27%CB5gSU&lZE~`@K!P_e+dKcDwlQA*jI)HJf}!kCnqO9e&{l?vfGnoZqQj0k8fJz zfB_$>VjO1}#r?K76=^-YM9dcl!zyD|Gm=8bTe3Vji|MTLQO=Dw&cZO)@vG8>yuR}z z-RMr+t2F9JBfbB|ML~A;|w9 z1-Sp+KV^`D8Q)T^h!aeR3P8Al@{V8_Chm77EN+}T1CFSDt~$DHk`fmicRPugJ&q>K zl*x3{6}3WImk-Zg6ulg-cA^e8VtY|!^LIr7JgT#mfrm%+KQK;~FxVR4eHK@zMw`h% zFe&Y~``fejyUO;W(rVl1u0#y$vsLH{i@(uqKu?aqeBMf?@0|k!pQ#EfeQ>@2S0aFq zw$f!nn#P($n%f-Lha9eFJVx@>rt3D*yVe%8!W>n{iuBGccB5WCcta&*UpY~&M8>6K zzkA_NU2b_VzP_P^Ubfo)uW0eLH$*(rD2#Ne^S`_B{1q4pjrF{(;HE|*T_*^RwztGU zf%$$=uf$e;!j@z%@OWEd9KeZaW|ip@;}?;HjQzURU2bBw&mz1vQ>iW!NL$+MTDa72 zN|1+~JvM>9`tcdG++O^>vpUz$X|66)9j+@MNJ(xCm_!7}q9%4v2z-;Bt(p1p zsQTn&oG2$u;N6v_Nvz`6sq*}1Uv2%zy1eRaUCNFVNI73(?EigG@To}C^6vp_t@zq! z0k4$f*|!=6FGu#W6qKkW!dA#*)41=5+iPY87pdo|ox(7YL$lZb=4Ny6VD6?@ZgC1M z7|;W5-$a|2nJV3c5E8R^|Hyjs>Bdn6oIhPs$WZ2C0BYUUF<#?h_q5XVt3WKrIVEvl z^8J3dZI7L{I}Tm78s=Afuas5seXn?ivza7Z((C&TMeB}&;Y16iTWb1^VDmGgd(r8Q zaNxU13CWEew@=J?hcATG=;Ot(B%d3F78m(gEFl*7jL!MadBK8qk~Q>ae|BtW7Kb%Sx$IsLo@`F|mHu z9%gGWz&2ma=N$WPem`3|8TVH#i)z!GAEoT);5ds%!TUbj+?s;;u{V}dem=|;(c(?X zO?M*F3hHzgRckSAf@HAC76k>mD1;n!YMQrPP8xc6o-g+@a@n7_BSMy|+J7(gzY&CW z3$D6tr{$eZ!dHl<8q0#}#N@$s*7Fa+c>-aeV%D=79J7=X_@Ik5gt-&gMcr6ezrazt zr%~u#(VHUXHpZF!B#uor-Fa|rID3bkIT#e$3&7yQBI5){$Q$k;P@MpG;2YONAbSq% zCW*7v40t~;^40PHBM9{2YAXkS{O#j&)uyyZ0kFyAz%SZ_T`ye?RF(Cof2TfJ33SCW zx`mK_4JPH#E9gta7T34@qq#Zg7gT13N*$TT1k<-0>D&Ljv4MIZFdTCyv^+sdDq_G4 zo^zZijG{>(B-D1_nFm8Y%HLjJoCl2n7^`(X?fQaFk*@Ao&MNEq-!P;F^*X9TwfQiUq~mOzhxZ`_>4KR13iyr`(m93y&cQ>reR2Xi<(C#+BMWx+}a@j-;NLRsAe#(L$pK=36_70# z9F#zNw$!h0-Mq}v&XweJUh~Y>x~cFp!fv#FinucvBJJLT%i@2yst@b^G_A7Dq@s!VgL;@$D0kDn|ab)NQ$5_=PqUpMv&7eWSzm_w@i z7n6lN+Hwi#=e_O-xS*^3L3JupaW(6X^w>DD0j$^=vfS_D%EFAE-)bf)DarkKOV=Q7 zu@aaEjY@A5OnE+JBn+|NmS{F~!HPM1YL45UDId+LQ)zv<{1HIgmP92U z%w2Tc%U{Jd8K8Hy0z4h~z#U>(<0jS9o?!iNf`jGTacn9>#l!yofSsePF zQuZ!s*PSy6!6g@QWaqDdIfc6Zx1gYp6`B^XE`;pTXAnsey#wojgYAE7&`iJ7|fbB*ikM6#ZKgGo7C zK6>y+1xfNqO0G(l52k`;t;_r96tUqUD)uEwAuB|ijwUN4jBO?fLQXTk{X>42E?5g4 zF5xV;v8AA!OjB;#3KF1=0*8&gxYx9q4nGt@X&A$M40s+Wm66z#vPUN!RJxpfVpyR zJ`RjRhP7E=>{~pD6BKBM)68z7ra93#d{S-x4KGoj+U|d6*V6o;aZoaFL@9pI`{C9Z zHvwh80-Yv%H*e@yus@@~kqNQ9Ocr|&3CP|4KjMx3xI5zK!s0lz(Ijx`{JJ$2%0g+n zyz8boASWhGQz}BzLQ1tn$fJX{h~K==V(;YTldk3iJ}RED8VR)o6EAIlwxbFxDg7oc z^uXc4ZI!P(d{3e`tnU31{mGX$4#Y14Kk92QXZJd!dGs88{OF87E?M%i`72V2XV{vG zktOqDRBelfKV~z-9Zso(OjgwJYVx(!4-H+tr4k5VVdkQ`8wM~U#%ctGhab;NE30~g zS5EQy9T)T4rWED|!9K?Fk?Oq)gN5t`l+7X*%BnGlue?*Dq-R1l^Nq8WJjj2_CiSHx z$i1uj_p$!Pop*vMIY3@js&G`IkT|_++i9axpc@O|%PmM_(wM6GkH!S0aoHoZ zv|-=<=fZ;t#+pLEZ~V!qnbgM4`9to*95$sRudinN!ZogXF)EThEPKCOLkdRnPcN61 zfUzd(x)hP!btXqliM~uFWSa?Qhrrzd8@o1eATx}B+;v^JAz@Ti10Kb2tRJ63VZ7O$ zDse4)SNN{DE&C(sw!G+^)^?_z6fvjqVgjbbyMM|OuKXiGy`0$%3@Tl?hyQsjFT$4c z*-r`UDt+?bX0-}sqt06ejM5ce6pq(DZwE8dC!g47^8W-N*2fti4l>MnNu132(a8k= zu68N{Cy=>q&}1OY0s%?)r+psWMsW26hywgkKNqo zAeVu|8&m=^($Wp=W$aTxR{J<>RX$01IO}@8I&W;LjDZs6dU%%k?8o0@LLwF|!e}HS zvwqjt&`1Dv?q>aZto3`JXps^@pp6)wQJ}Z;@%*EkaKMd8#>N=Uyl1Vzp>LC&J$@Zb zg8{B^0O^0ztNqz(@y9wQX^R$oBCgPdpF(_Jz&5H+@TxZ&-q}9GFk0b^&t}1 zw-+1l=?YbU{K>ox{KRj^+M<8bF*EsJAJN(tD zakc@sNU)mJ0lwAL<|ws25ktZ}%qvCn;~aU?S&Fpw9i%^m7L0nfzhT=x4oeo_930N6 zM`&!*Br4MUm-_~|R2+~w>2kPs@KAm6Y4`LaxH`8~=nU1Ex^imuM%Qbt_a94-vfuq_ z9~Kr~@HFi=%zNg9&}f+Yv%rL|5NzcjQU_{6R`3^wstCe$QaH5Bfm;ULIRP-Q0j~YB z3l%GC!r>WGeqm?2QQ5eQ9u19NwL{1w>-$s=LrD|ikGSl~!;5O){HttA>rW{L68!1%vp6RcTV?LpzV4Ifeo;gBhjZ# zWI)$J?5s*?B4{KPaiC2^asRHE)98(Lnqsm9UYOuzt=6&re^BBtp*K_ik~l-}s=RxU z^P$12!Xt8{ADaZDiy#fZrIHWtt2qt=OJ#Vn(EeGXgRs-KM)lD;yt_r0a*K%}*p?L& z7C`dDK(o8U_ZneeK~>Gd!U7Togq^l-Xmk*g{xIsGUy6QaE!|I^RoK^Mu;5fPmYT;% z4InxqUFE(E0(@pM@M#gm`4{U0OsG!U5nr^iPaNBb&ey!_QHtY<%KOl~Cc2EvBg&E} z;_rjsN7e%61DUM`gedu|r?FBC^4X|w``ro~H{nIBEM=!3`eO^200?wMJuk>HHylMY zPLbu=R~*NaD4XvSzbzBOB4OLxJiBFC6mX1mCLH*Y%l^IW|64~LxZ-$5&L+Cz5}Suo z1}y8l1U6nTz{$9y<4tZ!mL31(8Oqw+5`W_K5sVg7 z9g1H5?<0JESY&~ZZ)}z}D@pnDGxqV5x0MZJt+_un{}i!4I4@(|2{y{g4XD3xm0(J+ z+oxgA#X>oE7Z=nIX+`o2MF?U@B^{xTz^EM!ZTZ4aN05fJ#?nY|L zb*yewWLzMDOdyGL8^?~Xc7(Jyi8HEM(8%HWB}M~o4(`Dtv<4J^f^Zq>Civ-tX{}RVBNWvyfqoST(H=Fh} z(3$&#__(jB=yDd3hs9#wRj1K=WPj?5M02*1KbfOk<+tMowW!AF9|qi`79UPCT?9~$ zgeZ#DvISF21!>glRTb{nXfqdH<>AhJB+oQt?Cj!=2w9<}A&-$3CC8$r?d4U*iWsv( zA;MO~;dL*e!SInph)1*QM0v{|Ojjl1Ba~b4M$f~JuX`vdk%$tPti1{q;vYk5l1mO^Z0n?0FJWRt?z$(?N%0IgRFTW^~TTG;sf1IUah;u?r zHK}yk(yy{`q<*^pNoak89toKO2H&^b8H;~62NAy4F%Xzr$3D^J%W~zz@EIQ;Z)uT^ z?ldWzkTg`p(64jX8vY(1AHTZ#+FNjh>0WSDM1(gAW{~M+w;~SnPsXr$AkZWI7drgk z9doyHYhSyz4(h|avxdK9mO55DTOuB42ip?XlEcfrkOg%Mw<&#Vww}6<`<(Yomt&cc&mX z3Ow3ZfGfEIOc>A=0@*oVzh0a_SQ6+dATme9k=wJ0Hq@*Pk8SiVeR_@qLxg_AIN4THAKe(ta%lK$3h zJ|L9{&nc)%sv?Au?8?i_g96YJGEzW-xM?kTpp8z8j7`~G3pDsKIhCtZw3Kwk#O5t) zA^oDuwr^t9T>7=V);lx|DZ&nKK(GR8CC~ss?A&+gZHooz=!{PH{;&*NR&`t#B)i*IV`P z7^ZGbR!tjL*y6ZtbPW1jqSIjKo&iFHFaW$*4*e3O9^Oj#l^NZF5jb>p49G^w8~nS` zTtE@$9S_$=Upx=8i?OjWmrf+r?yQmcr|<8yYt5 zy@w+WwAmYZ*X8*!zzA*tiB#LKA@yVHfmPD#NUe5nzWUyuE|;@kLD(yOFTU#hiPo!q z@%4fZ^q)}2-0=6|BTH%B0z`( zm1_7$SX9?~Y6rQ4#@#V&ZhI$rV{hva@!uxI*+vuu zF`TF6RKf7<`0yn8np zYH0Dxvok=bQHZulT~g2k>FMd+4*#MK7^_BQf{x3qC!XLns7v{}0)o(zp}x?9t1|bT z=aKl`SfI!UY*(DTIUFl)=1*+?pQMg|K2G|;SIlj@Fz4Irhd;%{Teq)`dS7rR1P2HI zoyu{ltATUp-u`|++1p>a8u@BL@$u)ubl@q5N(0&%=H{pD3Q%*218M%Q@b?_^7r=EX zGwCC~<4|N(lrpysgcn3G#ATmdUrf>es`tFoAkC`&3OMQ+V12bN@I|6^fU0O#X6-lz zpaop~U7I6$+6yzp|Jp#HLu?%8DV9%#}F94F3Q3VO9 zfZbAu&HmX(T0b;ciQ_-szGzrUko&v~_~7T{Loxp%G8>wo4&|$_%ot4ocu7tH zS*_|JQLt`_kqpFgz^U^C3=S=D3n+2XySPB@q2s>L#Z@Qja-kN2_tG@9!~X1G0*r{2 zlZCn!pNHn}cmgeTxA*72dMInmAMb#;w0g>AkCQ6wcZ5cn{@3NCQt{85?Yh~8x$pqT z?THuHUtMpYEFOrUiH7X}vLY&B`&>8;Xtu$}vf-(W>P;$fU?4`sS(88Z4dR?gig;M3;GA#JB90zbkj)k*tS71A!{WgV_7v?P!hdAFT10nR1cv z)J+%Zk_}`*^Ktd3%Xdy*S<8v8RXe4@21eJ5mt^0h z{}~Pe|Ao~`5+n0z@bVn0NN<%UZW~bqDs`jyz|)HK(opU~PJGNV9Co8HXX;5|KA%kM zN;$=yU}vEEH$MGB8WK-rjEzq(GKAbU$38@(nEgv;>7i;oKH8TO2MZ*-3vP_x*}9=@ zZ_l_baO0TqGZ_eI&@6z53$qK-|CvuQpNcvbJwA$Q!N(V2Y~94`@?j7(y1c~rfQ-^P zjbK}iAc+!)sVJo`ZG@zP_*PL4&EEHuTy#u~34bDi--brPr!SO2Ab;#!@0)vI(-_!J zY0sENE4Dn2Pls8`<1@+KF^*qK^CdS0?)gfCdI19-t#|xMIDBQ(i1^X%V;F&lk@JZE zs+In`Uoy$O<9AOfdLfZvnu@x0S0kr;ao^X2hQ1g>5GfF)3p^|0g9m?2k%8Z}bttzE z2dSYIbO};s3+lsK^ltTKn7qrWJ{&;n zD8zDAao%}0my}0CC15NpNx87|FJ0c{p==YajH~z?%zfJDIob617fw(@ceS%}e|lw3 zc#-T+9o}~+;FX5_1xL|IIp{7D-9J}1NG^*)*y3|c}|+3|7qAe3}W z7}2k!$z?2TS%B=n3;EY{6*R@9Uw+qnNf_NodZ)09!GA-#375Vbjt($}_yy}8q(1bG zAS(=`mQXIneMT=5Uobm~G40Zzf&XYrmqx^>ScVsI3y17B(dSVKb+R2)3M>XvM)^Tm z`B=uj48#^9(_WN7YO&F6CGrX;z2v7QC@s09@bwb1{YKbTAn}|Ed5;x*fQ|BF(v|t}nlRjruKkI#!)1PAFU-vTeQG{W`6K_HuC=NT|8UW=+@%sL0 z1i~(CR!IDsg@X{;2Z8(}`)%Ru;h+Q9A|X(qfJ_K#-Tz{~A@abdX-;qmp>%21o&|-d z3u5<_!0!9CWr-$&y#>-XaV-Ghi8*eF=Y^?4Q+5YLQ zwHZDJoXNTd?jOJoJMJ2Cmq2+G85t>H`CAZF^*FZNcM>tW5ym0TY>#LM=NGCVH>M^B7Cc zgiBn-58QkV%?;3gUD(3ZE+QMMP0+tR76LVBS3D1W7bTAoir@^~f-s2kIfr;W5$ibw zO$(<==L!t28tbd{qjwT8xdJzswq6PNXP3w7Eb3P|ZY}VVKL0~a<5a6eT!>>^a7q2x zNJmHe9y5WUEi59Q3|gr1D~y&H0fT6h3JJL&+qwDX>}{_I+UIT0&6NL3AvM?q{0&M+ zA;%3(=W$5+KxzR*_Y5YB;1__SadvqHiAVQAOMC-;m0M6eqY`z-e_RRHB@Lihd@eNu z`=~q3Y|h)kl0D%|!9{xWJ`1%lo z{|-t_F2#1muxX$EV1s3X6e#iccPne9Pb)sb9Th?ln%re)yrx;j=g3zZt;^U5_4 zCNvR1U0CsE1Pc?+65po!^R4Qw>FQ=AGyYsn z+la-Shf6thgz8FkK?F?ZJ*5{GGiHZ$_``KHn}>`~L$5ozl*8P>w|PUzE~(mj#>7^+O5@?tNH*P_alFuXq8qH&za*Vg3dGObFlizPf&QR>%NQX@%JQsd} zQ?#?1RX3jYCw9Fz5F%~e@^$h@xYIa=I$~g_m=TP&U;abWC1a!f1RA%ju51=2sX${b z3`F*yl4z;@>{vW}cON|u@JaLOuMq%Y9yfUoU+Nu7F6kMZ$v@v~Lv+X3yAUV<|R00G@%gU0DT?6GkNHcDbMo@eh`tbC_kq=e07qm)XHRD|cybH8Q!|w#MK>mQS1}$L&_$w(x z>i~^xU=+`v-b6Aq3N*^Mi0g1xt#l?{_x?Og&oC-A?b9f?uc8ujHSHnSDsxP}GkE-! z5_|mW-i@z!y&6z8FRAZh3Q8&_@O{vWlItZ31~)q*p4Ywy4(?Z9B^7np2!b#h)zH5w zMZNH-&wIEjEYtO3<9AM~!ZYWh)TmECrpjZ#J^S(W^AOCh>Pg7XXJn~sXL1`qzDJ3Z zwK2baXUB+BRPM==AV0Y^s=L}#tGi72lAl>ze*4PoTB^!M>pR`Ym6_)|94J}bfe)#C zlfVHzQNXP`<;rEDv0ml6o4 z|IkiNyicw*Ku^86KlQ4$3;Wj0H8S+29~ElHRY*!j9Wi1fN;y+{*XIid3V( zkI#2hS9rEUi#%Lhoa@`Dl*t_VLNv05mMz_0Bl5UeK)P@1BPOL!sp3CeJoxLcxTKul zFtV=3eyWVu^l>UEz2Z-9H3Gr4WyKWfZPwm3do16E{hCgbhY$j&75l1Sgw6kPEX_8L z2&MJ-+5INR>br=As3wL>&Wko+>U9aj$Sv zO#fnzF3ulmqoQt^=ag0}LdN7h+<+Vb_4%JqSt7!!C8sR^B|gPZ;@#NgVxZ#ZfY7_! z#90agR(N+LINf|M2tM=b)w!XEIS-QEORHXPDXOqYxc<|1%gw1*`-jn_Sx7qNsI_K^0p!BMNp&Z5LGmciXwEzeTp0ibLtUM_OIdR$QnoqG`y0S zG)4r!QAi1B23lUuk=T_@D5hMu(v8xEvd2fa%yBWr_&tmu=qwHt5`BP_pWoKrPA{ez z-U0C~CQ=OL{y)T1@gN8#IicN5`TI_x$Q<^h1#av}`z8a-+Xu&}?)Y83zX=ay0nh&m zaE2h#RCe3z7AtdTS<0)%qyE^Da^J17Nuy89x+T|c>>DYYE*qWpD7Jvr@B56f1BATR zqF!vxCRP}^NH2%}naQ2V^GXe5|J>G_oOOA2GL$wJL22V)6$6Zl<6b=X)ZmJdIRu{owHV3p=KDe!I-vp?BsjYp8~@i7=6s%$}l zmPQ7pn3SLNHv^G(NDImr48IhVUQHBh9$9j&gJ%yT-%p!xU`e|wl7{%>Q!*NJXwdRl z~mf*Ug2eUxR^vOnsjz z!IlTntER!PiDj7cp7Qs}@1GHPqW2n>j}u6OZlRIOlt2HD&)bTdc=rp+twt$ta&a<4 zU%9!c-_{LmO-~C^U4pJr#W3GtYL{Rk`r2}ny^SO@L?F|W(<{aLlffr(X1lt@JwZpI zi!q_qw`u*1dx2`CpzF3xi*NdZKnP;J$lQG@ee6VNu2rFwD#r-qs0>zl^79ohUJ7^Q zo->zh`_jGVWoDAc-Lt#8AgHoSt@gOXUuv^HDg=d^&Eem;M1C2QZhi>vrjO&4 zG3lTADT^n0}Cg8b!3N?9&ceRv>48;UEu|F>>bd>Hc#63H>XiA9CS8 z!UiPUK(Z(!LvZ{Nfv!_-p9PU9;^T89nKHVLdvf1Hd{`gX0mGHKIlFFPR|V7{iv;yg zpq>J2t$GUr{N`rgRx`_)e6{1R&&RAZQFe#rqnSB0Uq@#?A1jhw>Y<2yuugVIV21ZI z){8=NtuGB*i|x#Psd%!#?N$ehD&G0gd#=|W6FOU7`gjm%(N*J8S&+(1t}jMMOC*c- zZtW)$fA%*n)D8fX12eF}coThNeJTIT=MZZA6_+ zDOV(;yMJj>h$elf<1GLMQRbKg)#tT`Dt zW7Hpw_>D8jPY&k1Erk^CLZl!0>e4dleSKHkZO3mL!ac z>7fZi?aPN+4YL8PprhGynbr&EVx2H8@olwknPV4})8SxeOJc3sN09cdPssMk50oOe z%aj(Kw_vkwG-?9FJLxE|URs1-N03?!2>~64BQNyfi+Bg6382qGfC`qG;qkxY{fyCg zcs-VfMOh-gir3tkjwHL`7y|t*hidkXUj`2To#Pu-Jv$;#e(OJ`P$v=*GO7=kH!A#M z4_^N=eB;ZPe&ChC*hq|=%w4w796*!zXn3hTTvA0`2onKhLf1vL``+Q{tFz9phce~V ze?pY8S_EC-Gc{orx>~uonGl*zQd+(*~ zvWJsI_~OQfmFe-aW4%lKRPrkimhT}HYu{xrCvLG~MZQeJ%{)3kt_=Oo5)yO-VQOG~ z57=97QQZf6etODB1tm!mmd=OHp4%+03> zqhXkTA&;=S2894cq&43to76ZFV`tYB1A# z&igN9b;l}{#%l#6JB~kAO#0IMfB-4Y_yK-^#_hoC_XEZzPI7||bG*1TEKFr{Upgr` zXR8BV=B7U<=JO5yoBQzPZGKvWhe8RwEWr^e%4mG-%FM;sG4xiBA`=H{)}lcxyIc-2 zaA3~N+4HPX$n$@$|4Jyz#xwub={8A6oL5Wn{28$>K*ylN#-;%>?ja=kx-Whd04q{N zd(vGlz*D;t1-L}n5ujsTgZQ=^4z^X@Dbs*EtSoR94ZZ!~#;yc>A)yDrll$n*4y`K0 z^&twLk7`?~=RNcPZDhzz4#_+TF)_qYy*7T9mDE3oz@7%17>FCu|jpT-zP!a z^|O1YNdBC<7{{kWPd>R4(C`=IY}+E0w-C%$xm`CR-)hlfv3(Xr^b*-d?tRLb7EqX_VXO6-n$!$_PHJ@OZ zrIi}){3c`A@-Sb8AGxcBi{!IsM*FVQ7E|Yw;AX3#O@8fstNrp#p=Mk6i+R~WRROo7 z4a|E_OrQGcqTYkr9s?Pe2fE~%+_y=|2aE}xPidV^VwPZn108L@*fCV=o>*{!(EHaj(cdxPVZT3z+m!*XPk6vnl4f-4 z9E#3Sydz*LDkeCu+Fx0V(AGAGsfUaiALc#(k=OA7 z_2>}=>lb!YlZO3#cE_qY|EvQX+wWSB$mTtlJn z9ST@B=fyUezB}Sv7&#Bpa*SeV-q?EMQ}A`W@xg>v8OY8^-@z4j3D{pSk0=3T9_Uy| zm9Q-+Bs@h6d46*ii$hBZE61lyQ%PQ4^+H87gEi+mEB!To!5j>ZMpP?c9xEx@Zd1Q8 zIlSB)4(XEjWi|VH?^MJqk_s-2U-Q0QOwCAlHG7UiLe`wzSVYWw?fjR|K-ge zw&L6dOXvxGrXenMYV!z80Q?%C<|rqFp`_uxfxO{01805bd4GVUYEPFFUvYVV1|gR4#uYF_%|R)6hi|UHqAL8DAD>m9qdHhO$|Jip1}Y5;E4kho7-X<^wxDT1BF|oNv;E%;m$BDz31Nw1{YyvWNu1Fyru_*v&sY9GuD&uXt8R;y z29a(gr4gj1MNsJukp^jymTpi&x}-x%6_73|X%GPs>5!D}?mIbg?|07+|M|S^SZnP$ z#~hIw+DNPpX?JBgUEfm9yv4>Q0TO5g=*H(VyvG#jCMAao_=cR|jj2;(hpoqN`SU%% zSmOK<`>;&JO*KS;A_z8CM)oZuuz9jaV9Z_bvW})D09J2+36_2p=W=YfBu_?b*XJ08 ziH+FBP8)bfjeb;x29(@kjivz0-&g~B}y95I91gJH=z9Jb4 zSS5WAVuv4hS<~Va^Wk0Jy02HyuiO*It;u%Es3@ZxA{2xXN<$ih8Alg1EZJ}to_?Kw zn^Gt(Hosz0!Hzk-yv2&t?hk+6Z??dr+CkcHYh7Q445wc@3g=Fe-^T)}iRO^iuxL~-z>-*cE0bUmF;1L0!pJJw{ z2MqWZ`vENc;&Zx`)O=CyHTvbDVHBm$+^-JBG{5i9X&?P0PeeAwf&W3Juv=!bhLQ&4 zHzCi1kCU4-kl_o4Ql+HtDf7vm2GcW<=fd!V8aU6jj{rZ7nXu&RPZ7CZAAdzSPr$64 zUT)p7MkV4)F5-F-I%sl4`7q9iALt!cTvex`PiTMLML?ABKN6SL42xmo4V9JUC%`$$ zLN1#@RLO74GvK{rgG-%zf^K_Qu2*O^R66C6&!Lwf&RaR1V)UWaekP1N`A50;L!nb0 zwYY_u#;3tT4qHAl=(8BbG{<}l=A8LP@DpDbzbEa0MiZ(2Prar9!S0C_8b z6UUE?C9RFF$K0T@Jn&4WE1o3gST?+yC!2O6?ttmN_f?$z%iqQ4ZNYtizG%V6YkTe4 zONLJ7GCpS6u#U&tENpFMmTMIQViXTO`8K#3NWH51H4CyrtkfmU+I4J!{yif>Lnma`$ ztN3!TT7PT#w%f|cLw5Tsxo3rccw4C{{iS4tuk}_oIS7BGs)Og45w{UD8|5Z7~a6K-ishW+k6q@*y+lJO`khf#I zPhmrxEy=7}jHQ8*hqu3xBhod>Zg$6aVf{~WZMO4o>i%#PUj5a5Eftl?Wd@PwPnNwO z3QWhF6A~4ss1+!@5+axISs~xa5PHQ_RMxu`$jNjOgv}fsrb2|uM{ja8@I6?6jEbW& zCf1dLoj--$GHl)*&g3MtdAzU~dF0)pb~t$A7!M6E4V1HK#f=OLd@q#@8a1nR4omes z5=$my9#`ldZ*gjzh^Q{3Ccva;~5ia5!Y*Ww-3w8(t0pG^6X!}&2hdPk`aOvy!2hj^X&J~ zb9(Vb*;h?sq#pO#-TLo)xfwPQ>(=zt-_|Trv-^YiinXTx`eZjChmkf|8?C%3Z2BHs z0{cVNO1eiJnu*$~Wj_Nm&8^Zhj@{|vzM)(E zC4Rw&kD2yxjkmqDO;A!i7#CXQDx+Q%Ce8+n)2sgJ^weE?eU{PmTxpFU!LnYmKp(zJHpS zK}oC<%%HdEYqemO2H%QeJX^QN5$YMbdya@6(c$26WmSV(06`CyAy4F#3-mc2_6`QJ zLq#CTgIM7>(fVpL{%V3@t?A*=PP$9mW!OSt4Z8 zrmf0;iLxQIv-f>al!*DkmlGg(@JpQXF}{-(t#9f_4H}jo`FS69iL|B8_0h1j8eBI8 z)<;UF_SB=6ZzDI=M^V>wS9cUP4?L^29F!xD*25v?{Z)@kMUcpRyw{iZ=AbeS?X_y6 z1-o|KdJw5Or=cA{bbYRj9ADf|F`r0Bk#o6gX>B#2!}=f6n^e;O^Ku+*)&Fi={Ercz zkm#VLAJa<})J1)Wt7IfL51o&^-EAnh<=<^j1<-H7xhp1iI*&w~uWvW9Duo%Rw#6KJ z^zjiI+FOa+VN}H0(dZ!=?BT+)2}8eZn)ot$Yz~o$^0f#|qX?gpS8G8z=GiEF74!pB z`LF$JPAN=Gu=JI{`}H$mv5%JI-ophPf4lfisfThze0h=h*KE14W*&#o55uA%*Y7u# zlseb*6#g=A+ZFY|YEo0BI6JKFXxi(|QqSaPb<&Dlh9R3zqXzbq6(RlkO`13uIK5dV zo;hwLS38&Q-x6l`MEWv}jPhcFqJ`N-))O2NCK+8yGcX+h;G}eOmR~&KAhU1*&i?B@t&Vg{8v?1%#Z$0Hj z!n5Msm4lWj7KnN~q*qA_5wcPYDr8ht4}C9AfOP{t@Fvh#L4;<3Qr2{}Plzyf*+-0Y z%L*Z*FFoGvcS4`A-<;6Gl%LS%3vS)ddDWfK+7pMe*7zr{_j|E!A5K?Lax(Rk5TB{b z{Z1O+O5agCTAS7e58(O|Z_QM@Pjh2cIS&P=_NBUB8Gox@kPfKMqz|syI>Mc>>Z2VT8G$^kQSnA?^&aG z&Eh}yqgUtmAGOFCMupoS3`+M3*pu+`ILDz#i#mTN%Jnb5<`6jia!aOzJN=W~{lmG{ zF0->kAEgvYu@X-l_v!i9^|JguacgsGJ`qFYC9kQLUzlW+w=FrODXdw(ru{^ZJIlG} z&}2$W2XO?{DL?wELH7hA11w6xpAfDz2BKNJr;=_fW2XgK)s9&9JhRB-lsHKM!r zSzKji1xk5_K8M!c4a4RpQ(Fv)dFe_R=Awz&4hW`9m_<>kLh77_TY|iyx58!Z@mkUH z)|jHN>#uC(s@L>gGrD3|VuH@y;ur#??hXj)XNK;ujkcET6(Kyj-QUUB-qqRJir;p+ zc6bIX^4wg8ukLTn8p+ zY4(8v?Z_7Wm9(VrQ|L2u4Sb;ye}(u;nJD=-rUl6RKmn1u^<3 zm!-ZFt@y87n}ve^V0_%w${0uuY?Z=Y{Ov_^iw4mTVLmb#Qb7+lr%UwHs%dm0fUR{t86?|QpwYu zz=Y%kwX*r%Mz15pKEDgcX?f0f`UibA3G9wahv-lCJ~P-_(xK2%Wd{f{{OdcEb&vN1 z>9L173L&cakNg6rFi{6A&U8A=$}ZbV);+32Az=sY1}~Af%TaofW3R3@aJ^iq!Z4bx ze~#0LaS3i-WMFOCNwIgSd@^8qh)opyuuHmnx*lD9%4<<3`QUxq$@PNs=Qlo5sNxEE zMf;bJLfxpu5;*-@-u)@QGiD+Fr8GSRhcYVstt|`>wY0RZVeE9cUIQo=RLx8M8D8HL zSTzfYJ-$6B>Hz6Xsshs(B+v_(Jd3kM*hQzQyk}UAWNQWppjydHTJQ5>9DgkedYlwK zybzT)dhkLy9!43_iI2E$b9BFS9YZusHm=p@rhh1zNcc2BQC>cw-8~A~BA!?~WB%d& zXP)kcRI>iJtJ#F3)ia1$`bar)GyN5MoY(;01+^R4$HiT#R* z_oTE_(A{59vm|YIxX4O9zj@!htwAVDx6vt*t_K)jeeui#&=G4TDk>^s~yMT_$RqYm0IV$_f5X2G1v6hG&7V1Cv&}QmDiy(+YGdf#wzbMSz8CSm`Mhxu9BBT@*Z}6P{T3VVuUGFpV_j2UaX(>a< zghX7g&iWm+t&EI}Eo)!(I3)0JsDw2@=?W8kI@}G&tJ$liss?+gYAq|ld8WwJk&l|{ zv+X_c1&Q|#=Px?s;bj>7_vrMKL|pqc>xCKWC+2$4@%b6lVPCFiywDC&e{l4#KeK1- z&tR60%?|fF+0B>rA$@-YV9CA8`Xh+TsujAD|;f65~}Vn}x91)NxUqU0B_V3?}l`Q7!$lAAlNd35sLX!TcJ7}2=j zS>*z>w8HwMO+IayqBMym-#&#FRv%2J_nK6X6OwB(ho+B)T&^+nyk{wGZ! z=G&f`xg|k*oXdKY|3}m5y6*0%hn`hyQy$&5x7wH$@9>#VE!Cdz4h|mb)}&r-)|`Cr z)_+N#uVgYsjbz+veCY3pzz|e+IF`lT@!@PaUq!NRV=W6WiOQq@#j=^CJy$^UBECiD zvt|Efl*5Oo4)y*{j~_n<4hZCgoPbxthc_2eAy~8FSOE`KytghoU=!jtyKBeVBm{|h z9-OQUnk>Y{W!-9@@M*vP2y0Mp#Wg*9#Upny90T)2fDOSoj=4bPuRpswSAyStbaFz= z{DCBT+>D1=1(s!^k_Liq_si9z4VWabdgBGypZ627Wmxhz?x>Al(Fb3bo)%06-NvTo z)pV#QDb{OJ>H zb8XFK=N-?Y@>UV52u0OjqHBdh)2@S?k3XL@RO+`fEm}z?dat$Jkr{62x?h{FC7J0q zVOrAF&YKy5rAcxh>;AYct7pbgaleZd-yJa1?fB?A7S&&1CGHB*EC9gzpQ3srTJro6 z-P7uJ=QjQ#E%k}8RJCYwwJeo2iZESCpksHeN_LjDp2uYG^-Z>aY}-L#`LKFe8`rS^D^H zUaMpCjWbDnZ1qH=oeffukZilAhQhCP_Jn6|0*Kw?JFqqaJ4}gMH(lw6*AK-@TZ|m) z^kiC$cSsq{D};zSGUtAfxR|yXm$z!BDUe8(rCD{}dmAxr-Yb*FZ~sN);pI_=*QZab zcS0*P;Jo5+u1A}1=6F2A94M%b=NU!T;^DLZyco?pJb~5iK8M7C`|yXidO{}Ho)s)V z44aDdmPVV&9`Go~wq6F~5B%f`zW$;olpINnzzmjb13v)!3BFwl@CnJrrNh6!G&jNR1 z5MKpsjKR2>90fg9!hp#5-I9=@&OPh9IV_m|@~6xC$hIxoQ41;%7dXG`PIhg&W6H!| zYgE*V19C7^aa-AH?V?JCZfGLbrS39g5YUI7EVQ&m$hUU)#Q)lk7htq9Y1d|h#(?yz zKJu<1>D_HY3GX4(wZo+(V;xVPuIHas*DsH#?#H!`We8!4(Ijry?WCzDW#?paJ}aL? z2fOlfMXdmDeXnC43`$$|uYTO`WeXEQUZ>Y!oi}@!85ZIFNh;DxK9TDr|DvRsg3mEf z_-$TqN8R)n5jXXsgMOd$S?+*_A&Y**^0nWhN?m=rgUrfV*<@!^LHn|-JrHBju>H+f zEt_|x#rP?;h@+m$VmN-1eP<^FZA5vi+mAG8S}MQ*bKZI_tB% zNJF5}lsjz2w-9xA*uHv_#i@wwm?-!EHcI#TQ#@sZ+ESzO@`@xsbouk8%GG+MbcIqC z!sblEL=m^l`404mJ1&dA@-TE=BDSt$^&PX*0ASA zwF@hQ_d{?)9wsdh-F@N^Ijf$t)Dq9cW8k9q_}~Z0KBIXaYeB>^aNw3XLu>unbD5?D8w&KN}xWU&C^55>%xowwPSt(ert!VScyZ75v zwBQVt+b)b`wY54y+TNYVf5A$M=~2GR)|3ZmAYhPJXwWD;#dabB!xb311T+H~5k2*V zK9J+F<62oqeRFV%%34fwwL6Wt+(k1(LqlOemD=|gs_L5n_m2WUH9tSD+Y=oC#Sx7n zVl9Fr2;||n%HZjNB%G0fA*SxFsytB#(AVBy7LL*x`V>3Kgm%kST-Hx>=BP4&nuYGo)w3lW}7r25`FQ!DBnjo8n6%C~Dp zn_Fawr^b6vPy21dr#UpPj#=}toPCCuPVKi^6lo)`5b;45*UiMG@ND#I~Re{9j2cXHTKt2uLdH?xLbpw zO?U#p&KkGGux93ENkf?Hy=NcC&Mt8iIWN(y`b#Mtnr2TRrv&rFcc%p%hMdwav=qHi z<%_@2xM59#fI=>bV;Us%$B!(ZH9Y+U8WTR-i>*S==8=!8@zG+|Y1^ldZzpnwKUlE} zv0a-Ia=Ua>{1~N`7A?pI_~7E>nwPX!xZ;s z^{x2@`78vMFL!I(>uV4V<9h>$mQ0ELr8-xfxK^!T{41wimFqbik~yRn;`e|`>`rEC z^|(-dJpLlLNf!kclm6rHm2cIxQ)NTL4X-xKlh`yTYJHz{9Z{VftWn|ndYq5g24!(p zdMxB$`J7kTjjwec$|Pu%=-9$=3P``+z`B4*C=Mr9vrUzb#4lHx8Yo0@D^<$f-|9cw z7JN0o7!zPvX+LS#b(94iYaR4+Fosu5;mLzoO5kssKw_f#K&H>-nTr}^Dmp^#Dh^sE z3SsAssT_-Kn9pCAn>?QpJ@q{`bBm^K6x;f_dlIzYKS^HH%k8w6Tj_P&J@$s52BxD) z*!`-x-8o4yzT8#>+QSK`bbd$@-06u=3KXB*5`L5xNJbNoE~I@C`pO(tl?)RTLo**; z{7U7jD@q?t>&fio6742#DvzuWdPZ+Y{Zvt(#6Cfv!a1!_mgiSL172UA9b6iJ`?m5i?Z&$2VqzT(0U#&T4;U&i1A%f)S_sqi#%l}=BJ91rFJRa@2(v;s zo1l5Lg#aMo3}_GcMeX_SK*)?5JhqDEfvWAFR%a0@u-E@oy>jcB&%>b<{9T~j>}!bi zm4t%cbIO0Sbax??zRAy!g1-Op2a{W&gZH5rfac}e0AJ8tQ$@U#I%jkHHntdkd%{qU zkUj!;hdfsAtMqRb5LreNf7)8NZ)DfE_CSZvuS9E*bmrxVci-pX2cMt$<^Afl)v4-# zM{n`EX2zh>=*8vNLj#z60xi60?>if3^Ti%;NPCK{z}5kzvfq#O3^YpgD>UnP%<5fM zg>8Q=(xGPg6-YdBUj`4RR*W_|QmFJm4OZIL&1dxsg*s)b$#rM8C5)IY5$q`>!%1NB z_sDYGb9X+^{`VK%4|*N^wqo~mDz&C-W-{v>TJGzIZO^^F#oH{`>~{@y4=%MO?ae&{ zwL<0J_bXN(`1$&SO2^7|Pyeij1!`ch!WDL?m4vyF1Rg`^vg96x4oq?Ze|QB{2RJ5~ zn3y2S1eb!}27t#gjdIf-ATrjD!t@fU)}iGAXro*nX#ePK(w(XH5fPk%{m=k2UwcTL%tzmzPKsaDWoeE zOxtZwRKca{wzaj*y$DcE{sU^wADJS{XOZ3J+Yg$ZHt)5SA*1`m(m(GX5ZjIl1KRJ~ z9#gOZi-wp@w(wu470YXls?TRnK)Z00ZdTd|3(*#sApT;e-FQFA^_n2PHHF7)HcG%| z4B>TzKR^go)|Yqt99%mF^M^wo*-tvI{#pVmaH>^j;#$0qL7^g3iQHGO?Uow>Kb}R# z&$62?8@v5FJuvzFDe5y1k~tHeS~W@>p5}oC+Uh+~Ei6NsRB#G2dQdRqOX9}_saKyR0oFtx1P>t$>9WPmpIY+_1PyS{ zucgI6Dz{5mutWMd%XqB$*q=k2hBT?v>)3$OHi9F_WlS>5;@~%{8sEMjcqC$ZN( z-Fx@SJ+zSmV|B=MDp?B#veu6~zU440V}wOW5!GYAUlRTYkfD2XIixXy&qpfL;O5tRiThEc1hwY|JnXvB#ig-iFnuxX~x$?>Lzi zp@aT6E9qwIz_pU{h^5k>#Hs{xwGLS%2oL79^>{Y;6R_SAG)6KGXV68^zIJ|RR5oZ` zR+nz-M3ZYeL*tM*uf^7jP%rCA#fCX^z~{nG<0r%xp71S&?4I!5t=4zFYxMo)xdLf; z!3{l+Y=dmnznQsP`-8VkWW_R6UbEB_neDh{3wUK`>5at22SWsQZ8OAQjCvO z3qEqYMATRqCw@LzP&pC_FTdpFoKmb%NQPs#Fv5tL$tJ(haAZRHTNddsF0bI|IL7$y zJtcI^;y9N19YM{#x}tJZ`9q^Zqv!rc{*#vc0nH90pE>_(oxBuJOg2U!CDAGwH6ive z5)cv+dhmc)rSl%iw>#l1tUIe{8ThoW6Z$6m4JVR*})Ex#E!pZxH)hp36CSv#04 z#4r?b_9t(1#@XeuI>xi#+H;PwUpKC_H;3QOY5&y2W4-f5bN8#ySJTGnEtII?6c#cx zyV18)DUMHZ3a{VEys2~e4)RSU$UnR*%CqOt9z!=y7PfQ~w#=SLwKlb%K6E$FQ(7Ti zJea8xCI%os1K{Cl?lNpo`ni3vv)pD>NB<7Q5ABP-2V#FMWP1wZXo>rp!y2lexYlVU zhC~uuW?G<1mc6bc`HneD_e3hPMVkjDK(rQ1o`RhG7N>$#q-x;rEeG-l^ZNO2nfhX7 z?)QDae>>BU*{HKfk~D0osx!sEovWH0E&rdt9j7d(>Dc(uFoouQG#eMz9y{w(>xVeT zIz;Nu!TT1RHahjYdwCe~J@bd2jPKR)VggPZp`g7vtM(RUc}NgRy@7NDJRKka5;O8& zzg&-Lb~^kzV>D4}x6ns1=*YbbHpJrUfyT(8ec1?OV9IlUq2;x7wBSqHez{njL2*ig zSm30kN5Tsc43#x7Td`NiaQErtqun7zO9_p5?tpWiy6wlVzt@3!lMH9Dc6LayrtBb! z9-Ri(d=SkHlNxq|hLd;C4G?W##L&~xfx#;;OuImo^PchxIU`h*_T!)X$`+Vky;<6r zu83yn2KT$Gqsb-Vcx?xvxlrvSlZ)rPv!PWTpQesIMJ}dR1ZBA{7j91rx6gw-zH(N^xY>Ju_K(~@J|-~`5{2?ze5Ee zsR>ft$~tz$d!4CFgd{#@kuXu~mmEl|wd{prT-fVDe^*TT3dwfDJ0UK&P^V4@W*Ng? zzZnLD!Zcq3)erz#Bs@RxdV)wa3|w6MiOSU*e?MYkP>Q^VR9jG&#Ta=WrqU1)#Dg7x z%gJo4hJ7l_cO%a>CPkA&;qhfun=Xa4&jEsb{~2@q=ZXY)Lz|O%#y31rjJfzKE@(TS zpVF`(7^}blN?>zJwN`7_byJvuk>R;-vD{#G2PD1|*DJ>5f>#L$`bGeeVq*H+cs#?V zmfH=2I0N6)C9r+En-2+e5Ra_YjJw?b`c%%3|2l@grphXI)Nq-uX%v~)_je&K%+vYFceh;2Q?Hza5TVTfctS|)WPU2&z@)N1 zuGT!oR5CgHO5#l8!2>V7gh`hpxu^Zhdmz?+z%BM^Lw?D6)VIx)=WRI(o=8SNL=Gdj zv$C=}v@^;jz-nuSGmx96GvFn|0^JC+6iyg9Rujf~R7y3&a-f3PZK!o#t$6`ml@i7Jtxv25HAlJA?lpN?@}8Gjatd{GOIEARYH->ob%j4v-eV& zUmPGhhh8r_KOhhkob3I1~H(9oDGeX zs(5FNA{iwc8XXx;h|+=?Ez;#-_G*(tn5l5*&|N5L89$JU zBh;-{s6h8Y1;;t>_eaHVbeWJWwzH7(vc!2f^??X!P68 zDq&b-O6d>wqtNDyNdHw-OMV5)vFqRhEwwQC#Iay)d?u?BBJXHnQ<5na(yov6Fu$98 zJZiRq<3cCU9AjaNqZBvi2^rKYs}8k4NVJS+6x2z+%TXIjVfMFD5pqU|dX$qFb{i1~ zaRH;Bk~6TCI_Y?%FWIC^>6@9nE4oK}%5g2zj|)uNCb#PkNBv*fiT`mK_~JGWj}Y6} zB3`;O-=8EOl)8<{HYPaOFUzl)prz_=epjnlUN%fPBR?CHTuKA#qpMUb^N_wzQ9EJf z@5~_NT3Dcr9l2_jon+#Xtf;0(Cb%AIp?Xi-2>=x^2anh)IEVe-P*1cAC|Z@dQxS{{ z+2LRqTOHauW4;{xOW&{d@2WMo5I*{(4{a?2%jdF=_zPLo8=gASwS}=Ww|JGOe*@hP zW=lHCpyg9M_CQm7R6d#gK;u{Nev;a-JwI3II0e4%<{L;UCizJc^KAMHOJJQtmsSwI zRIm*leRn%&AtyFIgJik3f~G7&3u|TY$goHJCO>R)Trh-$8v8a{nJdliBW67zl=f~| zFP^8$Hq0N!ep(I1WOI2PK8m_Y&08}eRTB6@r1v1#w0lvuvbV!av{G@9w=(Djr@>cB zVq)waMkb~}|I!TcyJ}-<{%Qq7h*2!Zo{gT3S5WU8vDC^+5i`hsV3G2<+x+eI0$*X1 z?JbYs7e+3FNRp~+R4v)b$>|B%(k8+Pq*hK&JP}-K?eAN_mg3C^%5z3oX-aZ(bhyqR z4U&nCzQo5na=8*ps+YG5QBCL(-X#>)gr+S44uO1Te=VP9ar$%m{W~AmZ6|!EYW$kH zO*$*BPp`tZ69bA7R=^dgMfqbl_FHZC+wD1+e-j7dW|?}ZwzMKm*D{;*2CQ&oO*wAc6UDkuvwMI zasDZu2Yh!SE>%@k6_iNWqE1d>)KTtR8y-Ui{aRJVRegUELOryhel-4XH&~IDiDmr# z3z>)A@5Nh^@n8wEW?j0XsCt1E{Yi~c{0QVxp&^kV=3s5TA!I9fb5V$TrDQ=y97lm)Zz5^$fe9!s?TrNkbngW5YG}CRnvK?xK3+%7XL~QpZ7OuE zfZ_S?lM-Oc`qds<^K{p6hBfl_kB%mWEC%ebUnMagJ$i95R$D75I1jRs_O7lWKI}i3 zmP)C7w>ZeAKt!$)fP|`o;dLV$Y3XdebG$x^n*yQMQ0LuB0hxBDh#O7{Koa1dSq5%l z822zHLj{324{HY^s|3Mzz{uIzna}&+Wl3YcK=Rok4H-#d zh0i1oTeEHl*V@2qsT)l7pG$_k{aeDUYq8!nJsYM)e?|~-A3lj@^9%(khu%l^0vrsC zjlfL65#ET*H2XDAZdU6Qk6{Mi6j?+a;FpB>9ZV}|IWfUD4Ko6`?XKVa5y62dSQ@4b zYp}vfKf!rw^rg@IHI{l5_6J~L*NK;byEpD8Q*n&m?F&}~ZGjc6X2>t#0kv{~nq`^rXD@`GoNrlJn>H=Iu z=!PH)VS{Qj>AoQc6Tk2IfXMNth)TVA2IUJOTuQ-8r=_*L-exZ*yqCxL*RSYkX{iEV z-Xc{q(s`t)O?x29v5F9?8rVM|wagrqc(Ln`k?F8=Jxtj4h`e1hP1s7QZq)GfqfdSK zToORbSLT;r4f~SKxyZyop#@3e@CSC_y@Nf}Juor_S-*sJqFHPY_~ybPL`p*gWW{3G zC^X>y3#uLP+|a4E(RO!t2d6vmro+aBV+S+y&Q;Bg)?m`1cIUSxB?(y}V0w1LpN9c) zH41B40hA=5nO-VF3kd5Iph$n{st-S;#+fMQc4gdrg)AL;r{XBY>sr@^;J5M2ePH{s z5bVNd77&T5{6ZCm)*!&k^}ReCh08|eXqg9=Q$PFzmyexh=*wU$2>)yV>-`j7i>oSwDZ1>D023AJKj-aS)mc=^5tjCF$@seYk zuI&gVw5%R03vdX*Bp+E^zaaNjUVto;rjC!4rYX1z*`tO-Ww< zNd=BKz9t(^+p2Rm=21A-L;<;yW-0xkDVKa;L`2sDy_;evwVTnGTToly|NpO$KdfQ# zP^H``pEdFM=}IYEIRipezz5x*B!%zqibsf^B*(@EV7Z4CgPp;9F8&wqN>AXs0_vtM zFns8Wq!!3%y6nsY9#$=S2$#78>&V2sC_uu0_?*9AmA_ zB^1gc_Iu{^Q2|vtR)mtg{HR^ZOu?hUOpj^*{|gIFs{9_8Sq4?=BoUdK|Cq5RHmmsC z2R~yj8l>>B?2xL2Gol2wohHe(R$ESu_>iWISdcV-#v( zcMhg8Mo!PY9;0R!^ibAAs_Y^Oiyt!en+~;P!6qoN3RnYQDRc4_Ms5&1HUMi>Ry?rV z$K~Jzk&IP9vR|~6npIqTv$3Yv62>0**&&Ca14#^g8L?ilAz)J0>v0qrBZilS-3txq zkyQUC;2)*fO&D@Jmx+M^p~N!Gf#g{Xddn@3TP1VhJxrCsSgyGfFJ$or2bm@V7T&yJ zNbAF|^@(&H!wB6j+;4?4?eYIygX&^mwh@U|>aw@hr&-z!uCC9`-H27m1t&{)IBB#D7U_s%SO90|{tN4tF+g40Hedru&0{(0Fn#ss8T22IPKKkflOB8In zxQ!rM3RaT$l;{W|-pgB;xo=D}iHUlcWHBkZ+2jzoOPa9Tsgu!wbf1W+5BS8J$2Wbp z=9wQ}JgE;(2H#tkI`Oin6>rrUUUx+JogsUK(K)6I|Gxb>Q_#^EU>cagFurb}WktfF z5fcSun+Pctf$=-yOPj}E;cS3G>Wg)7)C z(c_P1=3qS?8u+Ro-oPAK(Pmt3bc|xe%F_wViA(omM~8LJ+zW-J8! zq2ws$49e63e^FCXHkP>l8_Z^RnAnc;w{}MBm}Wz}l(Jlx=h`5c!YWEoJ}8QjR;ngu z9i)t!Va^ZKoSV?*{pu9fD7GJ>B~7mF`ziY3`3b#VT;t{wp8&Al%HVz;1dhX$`^wrn*MJbvA1NT?@Ho z3^f$Xz%V+3CzTyosUrnsl>8Q^48}R}*ixPO{RLQKaR5msg_u|UdqVMRSmpuV_4%O) z?Tp)s!w1r^pe2m;sjA+sMla8!twWE2t;jU~&-(TJvtDp6!?zc?2&C#BApe5-ix81q)W z?i;WeZ0x-Y1#jGCwiv&bY#0RjVkgI)`#}gRjQ&c#HA2ly3kwM*Vknew$LHXjR5!f^ zm0AnuO=8kWF?`3kO8u>FDnOjLRtZ0tpId&0_X3WWwsWmPP&q}$!6hNAz^~kWWyOQ_ z>f*$auL&$;DwTO?AE+ovW!(hQ=+$NEHoq8pK4kG1qgUu8{B8&i6{}`Zdl!{(Dr#mm zYl8luZ_(|@|9wm544+&Z&jv_2h{#>qY^sX>)P7KIo^e@k2FtgbSlM5E*x{J_w_i3` z3{X2%fV+S{{j4sy{6a~^gZ>vb`wVOjK-iF`FvM@|IdqBhQ*wVhgPb2`CMKjMhZgu| zKk31~MykMif^Cp<3I3!XMkwqX0@eW9lDg~qh9u_3=SFKcE+m>#x4}VnZaMtNspl5Z z1HiZY*Lz1o|74djc$YKl1mS1Ner4<551yaM5unZ;V7?MKUQQ|NQFm(*FcZM4{f@>4#ErSrCWT zZoHf^eLEDN-Y6Z)Wej?(oJf*y^Wg0Bw?F>)AmtS>>;37kJpXR2tRw>gH$&`{h?e9c zIxmKKz4F7`B9i~$8+U+q>euXx-X7R{+Bs=Y%5l_+yFRLTZQc3mbdTS1M{_7YaxU=v zU=;T3d0mRXzZg2}Og#}jn3u6qN``z6IkA8tXVjJ2)fE^i!>cAHQNf!#cD%dpu=lYzj z763o!aax{S^TB?UA@qnz%%iV(^L<>vq065vN)SjjwwU6gcAW>;e&tF)+30<9qrrU~ z`$Y;MXI%i4U#t7Pr+1(!dzM(eH9q~`YT+(@uwgU)_*ol&me0}ZMAaj2Sog5a1KUue zz=90JA5@`s0PpS80if%-oB;_DP;Pg2bi_XAtg#wGTfCeLp%Hf7z=#i@1!*i&AAA@2 z?nGj>(So?R6WqwOfV=~@(+K+{(G0c@Sk3V+zKDS#$7HdtfDLLYvvMY&1!iNmc&AW0 z)6~4wz3!`7?$_mldeAM6@4WJ5jbwNtpY6m(&Jop@&Z%D&SSisbpZ+C~SYF&7lm1sJ zA9o`e#e9gnM-XO(>wIyJibs)!VjTZ%!SGl!GfyyaNhoxIEYo7OfSu%8?-4@bhTjXZ zy=*^E+63Cyzip)UIlhsmcW4s47UlUEj*!*|#l6bO#_cG%1fs(foK%;wbgT}{z;;KZ zx@g!3pmBDqs$(iQSi!sz_;?y1JMydHg?_jj&pg=Oovls8PA7fq-Zl~~6NlbGJT6+V7uYa#)EfJ7Ew#e0DWRw}iu-e>3?Gtl+Ar!D6nMvyC zoDd|{X`R=jN0=f}G%cMz{P;Nl@*jTg0}K+IiDq1=m`{`vhpMxPOiSW^7!c0P;m;|l zO8cp8&c8-cMn*`v3g%G zR=#^-C2pumB*Hw`4a5YEf85hALJ5UB{RH{O<8aNVQUn?Z`;^=0yYyENtKAz7Xo=es z%u+-Xur_{O$ueMA2bd%Pn%EuBjX9fKYqW^JFA_zDsH|t>%FOvO9)FS;UEGE%S={Az z8%Utb{?Ucx{-8bj^K|YGpCl^xf@3)cx=DPX_(f=V^nIr5dLeOB({46VjHI4q5|C;o@YGa8HEk+2T`ho=4 z#^)|!yLLw)7tA`sxbEe=E#!ESTU+~v8!H zU2%qM2=fK^Z}t{AuK=e5@dokG_@W0TMlW=hH`GN!0s=gQ+X~`Xqc(>FEVv61&-T=3 zK>Oa-+6t}!k~&^TsI=AN8D%x|PD|aFM`_q}^f|4qPOjU-=PBYB&$sBA6z&#u2i4Z1 zKDv_8L`J+`z&yZh;pTJyp6~-P^-2}cPz!{16zlO7+_~#Jp{z-xYX@AJ8jqqhuv3M{ z*IalFNY`DoiSLe^hQ6%_{l=G}uIRVy9Y06lOw?=gX64zNINi4ZYh{I@5wLS>*p=D@ z3{seqpX?8l;+?9O$7L*g(87^(8z<8`kc8iAu|#2&)K*|>gL4J!FYn;vbI2m_Jp>RF znr{yMuVlq{XE(-&MBJ{5Mhj>OSY1h}eFv={WI+-a9Ohu1-RQn6>WaN$7**@Jbs-tv zqXYQCizmSpk$>SE==0ECthl>Do=P8PJeQZp_`rkn0U-&f`7JmHIXDm5LWfIwaE-%9 zZR_366UU9@kL||3<~a?Ic12R@S3AGGYV`VjHm@fK7EoFO5Td zPs3rdI?MU1sS)WCnF$ZV2TS;>N-1MCENX}3Xdq?-K{#@&quocwoBXzzP9{diNGg$P=&x9;CMsF!K+p$} z;1=MT*}DJ@A8r4+hIR&ibsHR3S}q5~&aoD!YaQulqt?tT>VP$O3sOnms~v|F0vf)Xho1Jo zfpw3-R%8c-5cr;+LVvd>iu(tX0^I+FIrU^>clamvGk2rO!i&Q>5-YJF|fNq&FYN`9diYhI{$J`CVNAp9y z&Kb~xI^ZV$2iha>L*6%X1Fj*WUGB$c;Ebtd^qwT*3N{4z=>|P^--I;2R?^i$_%L;K9xSQH8upEDy65T*U&DYNb$#*w#s>sZstJK8M^ z{3%%-DICp2MknRC%s0Fa2*IJr;Bh&N`OsElcV1^vBG!0*pnEkf*Vv-bC{fZ2=60d`e$b8Krz0010tPHVNcCGC_ zixvW}2Su$9#y+%3r3?F1+czWLCgBkC+CuvNXnXMG%ta6hTcrOYQDg5W75_!=v%=;A z%MldxAA7DHclY9^xA@2u!iEk_@vbBH@zI5qkar2+owft|dIPRc>heVFf%$Em3iJh(4RRt^H0aGJ2p+aHr zt0;Mmn<7kHxTuSPc`k5UIy^l5;{ILfE5nD}4ZSN)=Dy`y;jHliCTy5@Ltd9pvUW%z zI%F&C65Q{`+t-rY|Fu>{!K8Tp{d+*EDE&S2RP_aq)kktP_9?lRk?(9c49}|4xNSvT zS=D#n)!k0g8khD)_p@R{CTYV*{w{v{NQ_T{2%+rAbb0~w{NPU0FXc%WI&9y!9!#G< zd_Jj%)udAY zZh53lGK-{_{t$&3DrFm(DSVqRBBN&l8wHX7`xhwNP2~{q&K`>>o(c!X8&7(Qabp8v$QqVY&5WzU4PgdKq zM1Yw6FN5~K-5M(4rAHosYORbr8x}_T5HhiFGvooas=hY&4VAHC7e!hK%9lAR{yxyJH z)X~3ofcNS6YiwMXsS44^GU2bGNPdci!&bQ*yp$i@ev;;T{Z~Y-1}Bw#MfX-$&4d5! z4e@Jhq`MxL;ix7I*SPEif|M`ZITUSPIR0OlKitvj?mpfBY1p#BqGe)0&dn#OH)C-H~>}dIX!gD*v(M&nOO1O~5 zwC1PfUvLfUvvc?wXWFsiWa7s1W+5>n^W;q~=F+{ZN{>Ri@dHm2Z*Mv_IXK}s|9!&Q zF!+zHIH7cgsuG|WSKPKy#lLldisFiz7mCPYWtiHrEV%%i-D$l&pv|&yX`-l1x``Cdk)wO=}!mZ z3E!nxj!O#O1i|TwauAAdG#hl2hS)3KKVE)I5v0(JS^K7_-$Jp+zjI;r4}r3fezra^ z>P~**=gB2BIp6i3YwgIBYpgXLcalpKELfm%ZnxgHq`lI=k-m1LV!^s6$)4f}ACg$e z`i+B5j_*s^j)-}ETjED(Skc&We`XRr`!Z0;!?V2?I{Q{?PY^oINhgr*FJ+q&A_P+1? zcU@P*uuYoMb6BRu;MQDIob7J_j67<7_`mim7Oii=;Nhb^k*g}#LI7`e@9#Urp~Mgf zqpmJ<{P@bd433VUYx5qeAA>{1ts+etJsp1kVgOHMjsLYLVUhsn5_3W6h;F777E~O? ziL^J4kY%hvD)YmKvOwU!Mo!K{5Fuo#HOwOKzJ|4Hsv&{_e>AgLwmR>lt^9v%JmPy9 zz(+^)K!l4QmPVE?CG*=qZlWKEHkN)Tr8?(P7c`-%Ftl!MwL^a65PFPH^tiptxNQc0W8i zs!jGqhawAV+81RCc1_^jlgbVH;I~=`;kQ&Pe8YhvSoOp0tprMz+vwM+9CZ(!tWnV*Pl;^ni_ zP9q|hc4+3!q#yNTRM(P7k7g5=XX6k1s6PD76(|C|IK0SMu4uoreJ7pp+K^Cv%7s;e zl8=n+Z8=k>z~1ERyE3^jX>l^aJDF9{ibAxTh@$H{QmpZ6?m5U$ABZk@wG(GY4gkND zv^bMwCq?0iMjI*9x3Z(r>JY$d=wu!o7Dba%Z>xBE;&Jox|2}p9=H4!LE5JjgE8)_k z=BTEvrGFts$4SHZuSLIzi?jY+bue?UTmD{kIg(2l(bPr+c`pk2B^bm8ll>-Q#40JM zsqqfd&>ng#PImmUOtx-@RLqKyncux|_^S_UW4E{qcns%H+gv7TrN}@5Bgo652AcGd zPuV0Ji?|4N+iA`FA+6hoc@>{flMv$Yt+E*WGmYscfafdw?y3S?yU2?t)!Vy-u15*u z>*dffS6;B*R{d!ANM7(7kR&its+mnA+fjKl|7A?FTQXF(#VQ-LYw%24;}g)LcVo zzxr~NcCIM9qitTo>EHvI%1?|PCygz%Mc#w!$+jI+f8O=Ml}+`|o!3cl;GhBa8Rp1b zkpnOrDmFTu&D{ks6%_v6fiz+#@EiDWTK>&mf}c`Avp|xEf$L^3Hu;f4k6{7S1J}qG z#mFRVVbdP>T-x_b)l`MccH??tKI+b#<0&i~Lu>rlw&umOqRj$RQPQ(>94XTPQoVaP zBz)TMB%WI?*Q)eKgU9Bwpc#R-+z);&*%C|4Y;*h9URq4RiR*4)5S8h@$f$r8)BW9j zCK#v6@Yg2-g~PA&bY1%+lj4m_5GS?8rp`lr{2%Lk?KCMUe)eT3x+YjUJC0OM#bERj zxSTCo92Q#DWcsV0j-PHOkxl1ass=&Ny`GoIz?kIa-=r&egjt?4puT8yX8U~eXMbO& zC*~vN^rQN@y-94DbF*m$ddB(J&z?HJ-Ul~LgB;GWmD}^BmW1u*H3Qcq3MvG3(qz0; zTW}J+;z|B{-w(SUmO3By82Wi1hWR-Cc`(<1O}4H3(+lrstbHOk0Ff73t$%)YM2J2V zlJ9{R>y{{D4>wJ%;+SvFKC7-}8!*1nbVR3mfWDRPM7l&%SAbkP20X_y(c0ZqEFCc+p zZ5jOx9y+=Alg%zlCmbONVKCW=slU)Gk}16UseS2T=>%bC6r<>~`RYetu5o&}ZVt+Y zo5g0%Qx(Lb%RNb$sLONT|I^R=@TiLmPL0^eg;4_7EUqDsuZqC<>!JT@nB-*WdU z82fsyB<4NlMKNV1r$Mfs=~!)@Wat$( z_G6C+Dh$wcuw1^*QyRmeu#seZL)4_I%n(DZ;PHDIRi4<}a$cg^96aw=Q{g<1i%I_j z?{F+e*jdps&`d&;pKA*UQ2qbhvIG&AKXK8RV`Ebh3L;X2Gs`HHXM+w&L~$4-&;*D( zty-$P8)6Ok}g`#@Lk)zc zGRaHEMnn^mBWfmN)#x^Sv}OK${0j?*Kdp;q-^rV$0i?n?JZ&UJ%qlvzPR?tCw<;{* z{nzK%vLheZV~1oZa~+aI|MtAY!}$Ua96GdmOTO>aJ65^l5+hT<$2*>$cYw?-Ec!(1 z`e`0eRJLI_BwYzucwi4&*eT&#%IE;ta*rDR?Ta9i2Wbg%s-r45+@Q?_WLB3?Lf>K4 zDZwEh6F`n)#E{Cs6UM@OH2yw4uc3! zfza(+E81;o)xlU+YhrJ7?y;qK@60Y3z4#+v{e0U9qrP8VK) zUI4WKC^x_u4!oN{WVGMufiNhF!C9aQ#AOg?iO=q4e80~q>X(g}gR4i?Jl#`^zb@W5 z1sv$^r|_ogR7cAMra}QbeKA$U+$muL$DM?~OX9*ES*|>#jZ2c4veC#cGR0o$jY?KF z(S6FI@^SdaSowKD(tL)p`zO1YXA`B5hI4tZa>%%Brt0a*mN5BzyxUitKGav5cf3AF zpWXvpyj^xU#-^)YYz=XTP=PQ>^yD7s>qJC04u84bIaS#l8(Ysp?^ozMMJ`*Sc@@Al zVEzUGhbj}14_m<4l}Xg>B0C5;S6qwv4jKW2Y0{mJHvzee01{`emtQyjaPC0yq4@me ze3w6qYig>i17Y9kX2<>bJ=f~0hfs9e6AgNr`G(_#!N62xe_WI!;KE4_sRac$osEaK z!P)EVHu1$v5w42$(h%r=vy`ylCN;xDC2*E$d8F1r0eiqrL{0MGKIzoItn461Fj(Z4dA= z(j(3?5SIaBhC}j!^m?|*M^BhsSU{(l_v|*6Za`9j+@}khwzhmiLY8nM-G^<8t@ZWU~U1@75xbil80LxAmfnQE^ z&oSU&ngT&aR?Ff40b1k*4^s2wxEyu3HaS7Ph*1AX8H=mHfDVQp7nHE=SUB#LVU|7ZGl{P+Wn6ZqeI=EUBG>!9N{p zN^L)O$(>H96|E1h?-00>g@)iU0Hi*3k2Yxn1&pj)Bb3p%goDH-__an6Dyp zs7#qf?7};p@`SEC-ip*om`nbAUo9}n7M+-A6Rvcx)BqX#In{j5=WsS)H;`52KC%@P zL-JL}l;BSm_wO7@)q&z`efx^OlFYzQ{BgM6=LyW^ZLmD;YS~0w8duaS8@T|(o6_Dt z!e&NG)crK~sd`v8lV7H*be@m%JZ!LbUqCI|-|JJ?pZ27#KkL&NAV)RAPdzRZhn{~7 zE+7Tf2~FKgoP31zj&No0H=M58I3c*xXBes)z-{}_ONupcx&O7Ql`gvh?0}+9G6gsC z=MNhff6hVaD(YP?Ou?~AM=$(M8$6!Wgj@RQsxC#Mh{j{HK@+e1t9-F;S@GH2-Agii zls7-pd|9Z7dJ&F()wz*aI$!U#*kfDuJ(A%4r%MRaU_X*zFIp^wJH7vVg$UR4nwiU1 zB9Fy3%f_Fn{|2FiAizW&en+pbtBZ!O!=^g&6Qx1Xz!^^uRd}!V(j`dS7Fwxf*dYIH z9lwkwGWWXifE8(Zo=ScT1*lA@Z~>jPzytEWZ003+eqvc_c_EZ!!o)PJU;Crb)aoBs z6eR?_XGvne_RtZXr9G9br1FunH7pi1+x5|Bzs(ckiHdlULN(sRF}!$bNQcsPk@>Q@ zkZ!WxdS5weiw+Rzgq?R6qpaVm+1D;rRms>yYw)-r-@QY%(nLw=6w>SP3gmr;+%&fh zAC1V{HAY$Uj6PN-*vm?dOLgm6x^AAuj{1KWA;R$#+-{Afeg8g*{_lh71Gv2Z`mFVR z`?G}#-5MJVfgFXC7jWq6PG(IQsA}g08EXn)39R32){GhuF*-;MwmL_yE7M~u@RqW_ z5${bIw~k+6pc*}Qb?gMW`+M`f$L7y{UqoHMVkyfNs}bm~#puYvWI|ag3LoEzEp9z1 z#Z3Uulu#a$c)eQ|5{z$I`4V`!_1}$$7ZyVZ6}HOctRuUJUMH=TQD7xo2P%Kj=DL7fv|JUSIst1I@=asHIj@aP z%B$kkh!=|1zD{4B*vPOqh$MM!*fk$Z?pDbAt!ks#jtmkeRIR|SQF#SP3=B=+KGv`M z?WBd&EK4U66^EiJ#mPUE@y-A_m4h(Pm4ZLQp!f1xpVm;6Wk8?vv%DYro5BB&cpH=% zw5YWB(@m)cyj2d74lUz8O!L#!Skr^jfh@mzmvy?PsT^5WNJIak3$K8{HOesOmh+1& zA24eMRvI9WM%NNZN&vYE5`le>Hcg3YElR+NP1L*@{Sq|}hF+63_IOYoNZb3fU%N(4 z0~B~d4Foj6HyFR{hiU;mng;-9|4V%g^%0VeC_Xv$Czk9cg*?Peg&w_mtEtcuJjqfx z;ivo|pef8btI3nw8Rt7+Y{7kxpk24Dp0d5jqE1RgMCAJQPXMR|77Guww5Gva9zdwT z7keJ0D1+uT50G6y0Yr<#OiBCj69F&|J6iiO>R9DCU6pIuBunq^4TX1O$^}PWr&*on zlFIvAu|{O^|D*kMJsRN*hSD%DtXD=ol=Q~6h_UjDG&5c^D6ptY=B$=9=}WTos%q?Y!pd-6Pl}9)sE=9F3+|sKPL_y9)#1 z4NZ<-_V?wkeTzE>IzHa4TLFf2s=mjW@_TVW?DC&AT&GqmBB@pKjw?{PjJDc4zeZC@ zwOa3F4$QGOhH@*Xo(X{yVKDK2=l44^PEw2+Fw!w_oa=oo;R_5@y70U0)PN+GQoUdc z2++h7jL;0&rD-im5dox}dvdPaOU}It+xZnxo?tTPHnvz=lueJni{k-Gi%9tA{0#DZJDy;{VCYoR6ucexUnU)Z+&3ke=QOB-w z>Zwfg?l%gMrmC%_^=$Z)IyiEGJKHQCBGsx8C=Hpud!a<+C4yNqvY(QmPKt*5xdkCB&RD%eXzh6<;8%rODs_AW#gk14z zX#eB+b|doluj1)4%Ofwj{3pxH_iU8Wnq195Bi|HG-GY>O^U6!)B)Cc0;F-K~>a$2Z zJquE-P~5P1`v}?0u-~7Yb=Mwjg@fehJhM&t9?)R{H#7Of%;8rD%m*gAsd)i+A3kH1 z&+4y@!Er*p$YBqeV;$Z6(F=7m9$nqHjp8|F+|7Qb;`!qrM9Os7br!fC<5qbz$ZK{A z;*{;F&J5EivUJMQ3q&}WR*X35tRIODtV`)TW?c^17Gg zIn1}qqnN~mfFw3*Rot-DEL-z9v#h>lb23y1aCR@|Ds*~}%~{+uOdon0xlAHKm%l@% zJpnYMc@n)rbaLBmje~Usm!l#t%8tq^3CFG!D}T8j;DF5EJ6pF8YIu3a$%uE5rg1Hb z;406(k;{b5fxttB^w;zjEE2BjMAS~ZUvcY7u&C%)|51LYdIUh3Sw0_mbw0=-CoPgk zlls%B)Z&K{5kA<1v~HQ_)eVnX`U-@MS{$(Zt5cx?E8HC_e6hei`)az$!gYkv&F!8^hvkm zlG`W0X0=2CQUcuB>!{ER`Da-4<=B@4$QF$Eo{x1(H%8woc-6QSB8><)eAiFOnFTM? zM|Si~vvV}H!E?(xY$e`{8nJ#66bcrsL|*!+$SujjlHVJmQ`S03&Zxj9ruVK`q*JJ; zZ8X2f_=_+14Sm@Dx|fk#!zJ_>Kt<;QJdclnnrA_>Rne};ZF;*3I%}6A(6Jpj_Aw2A z=iQ8xE+pczHFeJ+l5fisk8WHkO$b{H%T?kZ1sfkm)5-8@i{ zS9!DAIglA6ofvk%OZhx*pH#DVVbJT@vkI=q44o>TBcLwAvnsJtA)qE%)bs2zjvEhs zm%*sTEHJ&zVWMI4E_b$-UHBZlrq{vYid~d?0$+`BRReTtK$wcYpG8m$QOAqru9{H~ z4`Ec#=s@rO7Gbl`aj<_@fJO+UYa>ciYNihCqIiWA#Ybccr7UPpsX439*5V<_)q-@n zT?w5^PX^cmP1xVpo~aU-cV>{##IebC`{22kjy`8ityFm`t&vS1az-3_#+$Lj1~3f} zdIjf|85p z2}2h7dxAVXazFey7j3{5Crz5xM$ZpMRug1vACO|%MPy$bx_Hg#sCicbvSSG|c>ZgwOm16#mse(kPW50D2LZdtQ~XW!c$ zUUHavkqlwu!_mHOQ7jtmKNo;+!lqKbHz;-?>s~rd#bHDeu6r3=EOuz7n$`?k@Jv)D ztx~h~l0XHO@lR$QJaP!X_9~H!TN;kGDReZ@AKh~&3O#=w+Rm>Tg`voQ%d-@lx#CK0 z8~fXtu1wbUk`K#A#t#WQc}TrgX6hv6g2e4|Qx*{!7j$)XIVk5e zhf{mTMO6rI@T!T0CuByxEP8KC3;OoVm92$4_vma*%ky*R86nrS54OUo6N?y!*i2R- zE4`9Wtiw5*KHesl)OIyHef>om!2vzk4+=SZkcC@0*~u_k5vyw1rJE z8XNf)lRuEz04%1@J0IA^{(9)=T8~`bI#|CibaDQFRZRCr7ZHf;t9S@jYre@N1gDi)-1+_ zqu$|mh1hcq!Jz8xc^`T7ugoW!#!j;?%d@672sTBR-GeXf_JdrNn6Aa!_OQ|)Rj&AM zda{{DObYPTe*v6*L+{pX{`h))A~`1S@(a}ljMO<*>g;!L*_|*pd4%tATSz)$8|wS> zV4EjAK+bJN|w%ShxfRtg= zoCncZ@w>oH^=f9|jb(4ONZ~c-M$1^F5@B`1J2I~|R0l-^6{o!aBDSv3_%6vqVpVP% zm}PzK&Pndh8vijAv_|cU1dyjHRfuhjw=j?Dc2=-PAprqOyTBJzf zfgu&b7qS7vq8Nbd3yoS83ngqU;N<7>-)&XdLxqHUa4I+M?^=ghbu&`diddC7sbo5fl!l*|z}G!> L*qxGFkAwdQvv)d> diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png deleted file mode 100644 index 5430cc882d6f13b376f8cca1664488371934fcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43182 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 YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png deleted file mode 100644 index 12cb8442c5f68c3030ce4112aaae370b839bef1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3132 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 _I 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

      Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png deleted file mode 100644 index f338bd44caeb38e792bc801aca30c11b60411cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png deleted file mode 100644 index a00a64fa003fe5ccace0398f0ecf125d87964042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8309 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png deleted file mode 100644 index e7bbdb0445e7dc8fa31f07d8c862b18fdb853922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9040 zcmd6McT`i`x^KXZD2QxPM2dhEMOu(5T?Ivu-fI9Q^bVnfs)!t^(xr>Egg}Bo=*>z8 z#Xu-h6_5bZTM&3N?tS*zxJLmrOGRDeUYt}Wt`IX=In@@GM)fnj5=pYaXgZf=n zeF%ga51zMA90&g$8)2p3M&+Zgb_;^-<5&PMzd790x(R{2N}&H~O9S3ddfqkjfk4jl zQ!XlXeZEyt7!5a7x7X5w2!iJmkl(1-Ae5$5;8LPu|Lgep?}uX1V#B+3c$+n;T; z!JYDZ1};jUKkmnpo-F@T&6nTEN zkOR+@Vki&yuO_}Oiae%Ty4)%r-f(VdQ87_59wj<%Zf*r{J9{~O)jNN72XBfzj=sL0 za!{zhzrU!zgs6wN1N54#tSnSa94am@0$Pap1iJg$28g)(@cuE#KgUsp`#kV=^7M7` zaOb9sYkS`V;j75QLz(EW-yh!z4{-X|Ozu8^E(whwF=;t*G45;E<-{cA#HG1}=e!{h z?(^!ZHw^<|%j1ETMuUe(YdSZt=ffU&pHMl=kJHF}U@onjreg23q0@^kc8af^CRdb| zg=VP0;rtW&61XBWS-WJX_^Wp^u3ktHD83pk%fy`vb$NA~nwmDExqoB}sl+*-+dmrg z^=z7a?StnPRQE~H` zVX0xKE0D~D;pT>dgpff}a#Amdl)sgVWwh=Zcps=WjQzv?Lpsn|GF( zRTWydhT023AgjeM^XAcLw0P*x0JCbxL=IW+cdm*SH*SPidrZO_d>42kjx!`pP1#h@ zqD+-ooM}&8;Pz-esHt`zH=miA=`jXt(c%xuT^YsSA*o(Pk$=r^sfd3cKBy4X?lk96zMt3)gR9PGpBnX5jd z$O2PWSJ%)NM$!9>z>n^x2^y6?FAWGGZzdic?zGyc$S8%*)Ui@+SBMaDl|symb@D`a z#{KiY1bmG{j)5l1vMHf=DKpm-QX-x&KJX3MU9}B#=#y_azI5LLb+G!D5#FDxC?34) z$tvfInkdGO9{SH^c=%De+==6W3nte4%xBV7M7ibrjaEB(4;q(tJHU~Y)F6qe4F5@n|>HO(s}{cz_% z6chz-;$f3cS;RGBKavqNX!dqOw#C+|h35TjjX^=9UQP(aCVfDuA7g?OZBO8Wu1(Xs zyN%WKhM5a6+T6IkL3+zV5Qm`~{bnb*jk9gvK3VYJI+x@>--2-gx+N^((AUFQ?LXl~ z`|x~Cl_WuF=O`~3$V|i6w|d08MyYl(H>~6veKPE$i9Z!2e5IqKL(FK6P?_^X>U)-? z6OTc$_Mnu_mF`>1G0+x)waE{Q_0>gavw|m&BO@2&WUrcih-1HEHsZip1YAgy+IY`$ z%idx;S6IsX7?$p#atk=vKjhX+7hJRPo!ATc39RydWv+X+F@$mp6E4Q#&LmlUZ>E%x zq*;^K*AMGM79Q&D@fUm36fnl+NfXUM-T5k!T&b8jqWeUX8Jm=|T@A2zA?5=G6AaUM z=>GEhxc_8^NF>ei^^LrlWfHL>B&C3SolyKsM)qw&* z+MFMogWGk^{PW-zuZ9A6BK+$aXW#>-0{)*>x%>&8T3TAEV46%l+rz^{CN?%fyz`*A z1sJ7v?YZTyoQ|TiIw~$MZV*>jcfE=~Aulg46b^?k>^xy$@3QhA=jT<6=leztnY#Vh zd{++l*t|CMfZUla>*L#uSTuGTD$Bs`{1_JkJC`z_7X}j-7x%5RdUZciRaN!-0r-9x zr5l)JA$t^s5-@lQb|OQg(0#mN{oPrejyI9?Tf4xz6Q|#D4M>3%dSZnc@To#3(nf0y ze#?U8q8>$yI!b1uBPEpx22h_(kHdv}K0Kl+X6o$ekz@u%x_&SQe53zLS{%C!iTr`R z@vaU2h7|>0&A+M9weY-;D>W%M=f5cD`|)dA+YMG(?-VQ$U$_t40>!|{NW>wxNa{c+ z-!fgWpD^608|++M&}-MO&D{ke|}zoS3U8bL9Pp zz&a}!7YT2OfruP)o#Ur2yvVyeCmlleHK4>i`23(Q#?pTr@u%MaMPP-Dcqb>PVy2Ld z3*h~ikXTt+iv?l8=vkFRn^>Q2E_`mM#Qz&3X6Ky~E-GIZGAWnjP2Ag4ax;Xiru zWTkyCTZSB>RI<4mU07In7r6bNTt$n~S`UwS3h3?XOB!V44EyO7xKNb7>239XZDS)D zXz|_UQGAhAqaQNz@mz0KRx{XC_p(rk^*mZl#A*N-()D9`^Q(wlBwH#-b(e58t-hi6Ud9u=hBgF)rgf}3Br^L!r7sPH5yVFFHu~v@WKFUlDbn}c>luYD90?9tA?o+yL|^4m2KrpJ3Utv#``v-^(hcy@{0Ea^WP zQoFmimvIKv>-wc>DWj|!YnCQktxFBjJgr=NR@9;=#DX-^($X$px^&4NWE4wpHje>= z)l}YHuATIKVZ?S@TF~Hy(TQrx3=+a8DJCPGde>980u4$aE~ZS*Rh5;R{7D%ZPL%Ye zjV-MQZSz(0qqj)Z5EHR&w<&@nYNrEW` zZA+$h06oz%Y6#iizGg*Hi20sMU3q{x44%evDw@*{4RB~E7jl(!8(D$MY@zO3ZgzHs zvFtM1#Gvh^#2< zQdPf(rDb-DSJ{j2-yQe*!wz}N2=wC83Hg}z!rr*8y5<2bjU42&$ zd9J0;AVC~>&i{?KXS5!!^~j?rWugO%rRPIQ_b^3 z>CTP4obET;^>O`QK-^1nyO{`NvjLs-{80|F_C?T}d zlwtTYuu3CUaG=6g#cBnp-)T+-)Z$ALp`4dxsNo}+Yt5Gv&qrw4nFwNHXBQGOE)%m@ zrzoxl-<2!vhCDzyy{Fo!B&fS^j@G5mR=@c4cMcTY+e#O$O+tz*C|J_cy?7ZQ$0{^d z>ydu#!H15LywKA2UJJ?ex!%l0*w4fL6~wc;^)4a!-ukTf`Zx8EQ@VQ5+m6o8r3xE8 z66B_O{}ou3QK3PJ_CRxxf8gdPwXNNP1f`^rDu?bQ{(I~F1*Ik)^|R+$B^{qxhHMQY z*>z!@{RQ>%-9^=5_m_rWAzP9BmoI0Q2UhC98@+W1SoxK@x6Hr)Zc{_eTu|7esjc0& z()nf8re;oEN5?-cZic2R;%#HDL1g$tl*C?I4DbFIJczkhl1`xo;5bt;t(KUUb^Lv9Ym| z%r;#2RLb|29}N&tFqI?W;8CFGigent0@|O8wPw*Jx#GNS=4uHSQ-k)m2k~UHorRLT zA%uFdW(E&PJox);e=D0(@&GA^Q7cRPo`M{@H?cVr%U}f_0>^?Q8}_Iw zK7$xgJ~;@rAbrTJym0OQV^uY^tTT`suS5v;4i5LW(M{=@GR4?`1d=ltDh9a1e&&af zjc|`2|8@}b8aQVAZR(-@Eu!^CdZx?A7Y|#iSRkwOrj>>1Sq+7;qi{5zX?|UNIDPmA#-Aa5|J^ig@Gp)p9lF zF)X1}%4N_zhP3rrN4az6ear@n`|+mfAB`(%ySo7g`UkR}Q#Yz;E7XjQ)6lBQcKLh& zOb@nRj%Ab5przl^H((|}VZWIVFRXV%)1!_KJYV5*6@xMhAS)pA8N!(8K&Ojf&gcYA zMPx^zdU6k}EtDi^0;1E_;;0KQl~uz2uA?Jrgx(Y?DA;8fNIxF*5dPd zxAyGL{nuH(5Ra3mPp1*B!>n)y7=xJBQSzD7zQ}4+QC5{plhu@i2yzJQC(njmPAVhNa5xK2r0uXTKAtUPtumg(IT3 z?Y!bS6ld5#;)w~2nIku$$Q#i@SWhXZ0o8=T)=vd${zTx(ECHo9hXbCZS}i##$x_6k zrbpSj!5Ww%_Te$w%mPcS%tV07j`OFlnNluuW_=E~js_h07vShR+Qpu@aE(8l;oS!$GNw#@XR!j?e(`7rfO{$K{hlh$epzd%x+ z>96=C!1x~$GJ@ZxLC}PR4{F4eE9jm2ufzWD=#eTgDA|H_EYFz^(b4?26VPTd@74Qm}iK9Nf(-MC7L zDBsc929>;CQLH(=;|1YX3W~uumxa@34xi3;r#B*Zek{|SIPr0R9QXYB1>%*w;QR5^ zWd`~#D_`nAO97iT$&o|QZP^1@vlz(&6H}vN#?|F!UwiOmk-Uh55@IO3wEv^AKlRzO z7YTavpS5%3nB|H?qPDRBkS-qFxUJW0^zpR{?be?Dmfh<^mvbW>hQGR~@qtYcQq9w0&$W|(r3X?LFe6YWh z4r1UUaLey67BfAKjuvO03ORG;%*_0J$s&k>-~HPx=yHVsh2UDM z;M~vy6nZPY0yr{i5m$fPa(e#j*G-ANSyER%zHu;Pb3QmY(Bjue>+>5>wY^5P-h5DEkGdlj5fHgRH4Nk4Js<~#nsy&{eUQa2PiKs-UN1a zWMo9{;}Fhza)}CZE(+i>CHwvD<$+fZ)U0r@W^!IhIIPCOgL z7@u*ZdJzi{+mwoX-SlzU;N1$COuhNTJv=0Q0A$#0QPmAisiBjv9z?<1wH14gL#9|k z79QL&z<&=QggeBs8nNiX3n6Vr(r&&RxK30)wP_nxR=p)?eBWV9}P zw5-Mz#s_k*!LRS$sa|y5Ssp8C4~HVRGaSC{Ooqwuw!zY#jK;>EGI(kShiA~O##^{A zpt;n@UlWu`4r-YB=R&~25m&-%&&iqC+h=MhHlve*cRxk#nYbENG|xl}@m;;DoBh8`6301)M`O8nTbhb5lMHcoiCdi277u z2O^0aLFwn}+sNET#^L36oo6Ha5^ndWQnCEj(Gz5DQiv~aCE9onym3l;X6>q&eaL3?k$FNdNgqcv`r1RB?Q!4hC`Uyl0^ z0s>}5Xg4}K+PgPbag2k;w4|=&+gd~JMFVU14S?a{I%k(i{xL}Hc4q_0C zLs*J`f1qz*UVI;calJXYI32-37FB(|Cu!KmbT$c73iZP)P0 zCFgyKIFv-p2LS%|#hX+@Iw_F6wzf6^zW!-^ytDYAw#HIj+34)U;In;kld*9=1d6tED*m6;2<<_6A^e0bx#j#0s zEzxw{+0wqrdneZO_U+rVJ4S%1aQXTn&fddze`m#?;euFOYEWgLa*I}$G!~e_BnMS? z<4Z-eY~abh?KlCai?OK1VnJpXqHU-sAGmJk!>79je5Qs*GzLIDY+GB~PaoS)6en%@ zpgkS|hdX4nQkNAVv68v{m7FQtVIKj#`}2dzmAOjY>9+?m)6>(~o-)lUT7kwS@;U{d ztUwXs6OI135uX~6<}Q4_6VKsP0||qvD=y3_?LH=Tx#a@re6XzM22Z<#vabl z7*;1CC1qvJRt#`T%|VNy6inGN^=)E;v~G-)w<$_O5_*AuC0&uI1@XKCI5_t^@8yAG z>UnW+;?8K(7)(kVPx+PX1yhwEw5u4P3ao89E9{ zq(J^&fD8iZwYXi!?^eeq?mMB%&8mt4rv-Q;m{`c+-uzaOIxOq}(b?6NR8b+O=y!Bc zH<7^MRtspjt|{8%S)WD(O|Y6=Z}gofmR6_VBF1Yyte?il5)gXMO6Br5g2@Xd;{HD@ zt&aH#EGS$Dw3@+FVe1x4z#xL~oi~f&B47XrV4W)haFG47(gwDJjs?coRHX1;?J5N^*2lt$^~DV4jlSr{sx z|JgGELOpP0Bb9|FuRXk>n%Rz}Z{}JgOpe-DSHh0QT&c>=f;1TT=TD#MQ}hb%bW-rX zOPe-{NPTIukLHsKC38iQ8 znT;r6)4Gab{#%qIobg8g&%h1(IRe_WCrhS3R+SQfm5+W_u~H2g?3_XI|DIa;THIBDeGWp=9OuSAMyQ9s zrdhZrf_&MWs20zWNWuKCzP4{(sK_*r84_soEoRBkumgdsn0hH+2{YIm3xF-r zr)j+PU1^L7PCHDC7+wn)PkG<(+`u{pwk$lFjT|T98Z^eRR`T_vQVf9IN(st`b(;(0 z7DT`*dao$%d}pi33?j#PufJ0_NX6Kz=p%ac!u^NI@~?RlzF9prQZ_hgK1Z|fl$gI+KG2=Qy6oG+zIlHfk+R$s)V0Rl1OduDXSW~gzQb%L6}FZb#g!OI&qDGDBn7sF%b?j2=S9p5S=vkp z{Vt?CoNXF_Ixc3~bAE3E=-F+w>)!TQfEC92JXl$Y3nZN7)^hXF%EZqoAykyeZ!|P( zz8t%!q*g4pir(}pz;NS(LbK!y;$`RthIle9NC-!3#97korQ17?$SWeg6V&nb-An7Ie-0(kSmop3yXfu|?W6>Ca14LG zu}Gp}t+v&HspZzP_V|fU0HlUQYEn*b6js}gc^@6@%tNVOYEO|a;D>Vd+4GV2wH@!G zd>4nb5*{iq+I>)`_&7dln&8^Hs>CcNkJI=uNTqGRN ziTr+P59DuK=boS8z4JYb#i(@%a31ar3ztJUjr?;k7<{QR6$X7}2n{s=HY;PH+Oq#c z{^ZHi6pWH3625Z1Ked|>7Txd~lYR7??zCVjbP#unM9LsPy&#a_v!ISZNZSTII)vX0 zdF6a&{FWe1wprf!3hF=D!W7+@Rz5OQ%ah!HVhGeShH^9vVUDA)ivRxEb`xFTF6F@A z20w7$rCx<{JU->7`JbVW|CW9KpHG%Nd5&m5I;q@qyY6KNrh};8)>g&dvU&7>05~*x A761SM diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png deleted file mode 100644 index b1da7d4f717589dd40d8c1da4fffbcbb5906c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

      3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png deleted file mode 100644 index e19848f65d29511a6ad659cb48439912fdee2d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9254 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png deleted file mode 100644 index 199e62f81ef736ef096bc820feecccbfae30051f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9401 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 AmjD0& diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png deleted file mode 100644 index 480da0bfc5f80fbd72ca7dec264fa8b957907603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7206 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 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png deleted file mode 100644 index e6b76b3b6906644c9063b5c5805597875d38661d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6080 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 From d7d0aadb884f174bfa1506b7c40227f826eaaec9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 8 Oct 2025 10:04:27 +0200 Subject: [PATCH 065/119] New Crowdin updates (#2956) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations properties_object.md (French) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations privileges.md (French) * New translations privileges.md (Spanish) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations sessions.md (French) * New translations sessions.md (Spanish) * New translations sessions.md (Japanese) * New translations sessions.md (Portuguese, Brazilian) * New translations session.md (French) * New translations session.md (Spanish) * New translations session.md (Japanese) * New translations session.md (Portuguese, Brazilian) * New translations wp-import-document.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations openaichathelper.md (French) * New translations openaichathelper.md (Spanish) * New translations openaichathelper.md (Japanese) * New translations openaichathelper.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations classes.md (Japanese) * New translations privileges.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations wp-import-document.md (French) * New translations udpeventclass.md (French) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations tcpconnectionclass.md (French) * New translations tcpeventclass.md (French) * New translations udpeventclass.md (French) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations properties_object.md (French) * New translations updates.md (Japanese) * New translations entities.md (Japanese) * New translations privileges.md (Japanese) * New translations methods.md (Japanese) * New translations privileges.md (Portuguese, Brazilian) * New translations components.md (Japanese) * New translations vp-copy-to-object.md (Japanese) * New translations vp-find.md (Japanese) * New translations vp-import-document.md (Japanese) * New translations vp-move-cells.md (Japanese) * New translations wp-import-document.md (French) * New translations zip-create-archive.md (Japanese) * New translations pict3033006.en.png (Portuguese, Brazilian) * New translations pict3033008.en.png (Portuguese, Brazilian) * New translations pict3307937.en.png (Portuguese, Brazilian) * New translations pict3307941.en.png (Portuguese, Brazilian) * New translations pict3513503.en.png (Portuguese, Brazilian) * New translations pict3541581.en.png (Portuguese, Brazilian) * New translations pict3626363.en.png (Portuguese, Brazilian) * New translations pict3893246.en.png (Portuguese, Brazilian) * New translations pict3893248.en.png (Portuguese, Brazilian) * New translations pict5562054.en.png (Portuguese, Brazilian) * New translations pict5562058.en.png (Portuguese, Brazilian) * New translations pict5859437.en.png (Portuguese, Brazilian) * New translations pict5907013.en.png (Portuguese, Brazilian) * New translations pict5907021.en.png (Portuguese, Brazilian) * New translations pict5907023.en.png (Portuguese, Brazilian) * New translations pict5907026.en.png (Portuguese, Brazilian) * New translations pict5907030.en.png (Portuguese, Brazilian) * New translations pict5941073.en.png (Portuguese, Brazilian) * New translations pict6014414.en.png (Portuguese, Brazilian) * New translations pict6014426.en.png (Portuguese, Brazilian) * New translations pict6014429.en.png (Portuguese, Brazilian) * New translations pict6022144.en.png (Portuguese, Brazilian) * New translations pict6131919.en.png (Portuguese, Brazilian) * New translations pict6421031.en.png (Portuguese, Brazilian) * New translations pict6421340.en.png (Portuguese, Brazilian) * New translations pict6421342.en.png (Portuguese, Brazilian) * New translations pict6421344.en.png (Portuguese, Brazilian) * New translations pict6421356.en.png (Portuguese, Brazilian) * New translations pict6434579.en.png (Portuguese, Brazilian) * New translations pict6434721.en.png (Portuguese, Brazilian) * New translations pict6434723.en.png (Portuguese, Brazilian) * New translations pict6441966.en.png (Portuguese, Brazilian) --- .../assets/en/WritePro/pict3033006.en.png | Bin 0 -> 631 bytes .../assets/en/WritePro/pict3033008.en.png | Bin 0 -> 1168 bytes .../assets/en/WritePro/pict3307937.en.png | Bin 0 -> 12243 bytes .../assets/en/WritePro/pict3307941.en.png | Bin 0 -> 8487 bytes .../assets/en/WritePro/pict3513503.en.png | Bin 0 -> 27062 bytes .../assets/en/WritePro/pict3541581.en.png | Bin 0 -> 872923 bytes .../assets/en/WritePro/pict3626363.en.png | Bin 0 -> 99975 bytes .../assets/en/WritePro/pict3893246.en.png | Bin 0 -> 4621 bytes .../assets/en/WritePro/pict3893248.en.png | Bin 0 -> 3667 bytes .../assets/en/WritePro/pict5562054.en.png | Bin 0 -> 18600 bytes .../assets/en/WritePro/pict5562058.en.png | Bin 0 -> 19421 bytes .../assets/en/WritePro/pict5859437.en.png | Bin 0 -> 12419 bytes .../assets/en/WritePro/pict5907013.en.png | Bin 0 -> 68519 bytes .../assets/en/WritePro/pict5907021.en.png | Bin 0 -> 9184 bytes .../assets/en/WritePro/pict5907023.en.png | Bin 0 -> 9681 bytes .../assets/en/WritePro/pict5907026.en.png | Bin 0 -> 10202 bytes .../assets/en/WritePro/pict5907030.en.png | Bin 0 -> 4093 bytes .../assets/en/WritePro/pict5941073.en.png | Bin 0 -> 20152 bytes .../assets/en/WritePro/pict6014414.en.png | Bin 0 -> 115615 bytes .../assets/en/WritePro/pict6014426.en.png | Bin 0 -> 43182 bytes .../assets/en/WritePro/pict6014429.en.png | Bin 0 -> 3132 bytes .../assets/en/WritePro/pict6022144.en.png | Bin 0 -> 116524 bytes .../assets/en/WritePro/pict6131919.en.png | Bin 0 -> 46653 bytes .../assets/en/WritePro/pict6421031.en.png | Bin 0 -> 103730 bytes .../assets/en/WritePro/pict6421340.en.png | Bin 0 -> 8309 bytes .../assets/en/WritePro/pict6421342.en.png | Bin 0 -> 9040 bytes .../assets/en/WritePro/pict6421344.en.png | Bin 0 -> 9147 bytes .../assets/en/WritePro/pict6421356.en.png | Bin 0 -> 9254 bytes .../assets/en/WritePro/pict6434579.en.png | Bin 0 -> 605 bytes .../assets/en/WritePro/pict6434721.en.png | Bin 0 -> 9401 bytes .../assets/en/WritePro/pict6434723.en.png | Bin 0 -> 7206 bytes .../assets/en/WritePro/pict6441966.en.png | Bin 0 -> 6080 bytes 32 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7e034e246705954b6ed863b28aa91961444dc4 GIT binary patch literal 631 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2321c8b19748b36195f47aef623451e796f86a GIT binary patch literal 872923 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≷~|ab|IUUdttWs`*XSq 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

      yGx|=*%Z2 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˽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

      Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

      *1T)6!Yva<^;l%`7#qPm~I=9AP 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

      O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC z@Bi%!ORwEN?tAbW(d*%<*KeEs51)+x^_lL21K<15(>Ht%jrDDw?c222za`kWUFm-` z+P5R*+pYR`0o%f`{;ib0=-(RjZJdAY)`hojp81bkCO`4T&=+0^p1hcyTD&!-tj;RS zf!L~&z8TBi$ai{=KRxq~M+W;IoOtuL@c(W1qkELa7e=>ZF_Ah*=o1On^&d^^o2Nog#w7PSX4MqI!M z6~jb&w}@LDCNk|rbm1wU#v;fvWl0vaLv_IfH*rNY+_7EQcv2rv8AL3~Dp0n8MJIua zd?0EKiH*jnY|a2esjPAiXrZ*de64d4?Yv62&w99>h(}>?a6a4tfzZPGIq;Y~mn9Af zWt|EdC;U3d=a^qVx&ST$9qAOw2v`6uN@Xl|Kvtd;Y<a z%sUrU`=V-tvRJ9}j`W2mWib}VD4)J8{EC1U%7%M=$uj6g9cT7kiINjL(EGN z%ALz4g`V^CARp$4^2$6$0b5?HdAW|YaeW?%cZOpCs?K~8{2PhrqtWg}?)FTocO_<@oLu_ccOw6F*X2LnGW@|k^Y7gq zdiP%CzWtH6>XT{8y)0x{ci5A! z222dA#{3jsMf8gDy?KiPnY%h5?~B0#MJ-^`I=Q|SjC!w@qNCA zrrO{xmX4((s|BLSRt${tndk)!AjnZKo@x-}BFbz4+rT8ml7ewJHVray45@&{7Seyxapyl~yh4k1yHvRlBlEUly!-!z|x$ zDmPgwsErfn}fOVaP zfE$?C*#V}Cnbgp0tQQWZ{|!`$1Ku=~%Vv5>%St0So7ip&2UBYMrpj%PvIMj``I<}x z2+>r9!tNC1g8_c(s}x(uL94AeLRm1AG8-%O>@g9`6UJCEs;d^o39n1WRMTE++H_1c zJC!AX6OFPKJnY8OssWTOU)L)DEgaEW35Z#y5U@3b%1IsH=UIgZE2}}{knbYR=3mX+Scus)djE4 zgjW9b#o#|YeBp!tc=7EYAMf83qzVNHYJ0qYN3tJ$MX`0}T*3PBm)x$v09wLbp6WVP zD_COq!G*q$UVF_am5&X7Z{PIy_D{e3k0;u%{lt*(A#fD_?9*@jWPJDJcORSo{+_9S z`-|tV_uoI#_lZed0eoA+ecK|eO1wM9M=(3WeLI!DO@8WXJQ5_`ZIAYY!FGiExA@<> zKmBXF=HIvd+CP3~;ZrY0&MvHs1y?5)m#zes#sbZW=-S2ErLPR$`mbNjzJ1&DJ<9sQ zUq8H*HIlF~w4F%WKrC<6%X-8hr6k=`Qz`wLRQkU{=>irh_Pj~BO=1NMlri&);k$HG zh%zD8cs1 zCcFeTGhrT+oTDnSbunsRj5$ng!iJbvz*xSsY}q*#wk28IWVm3!c*$=b4cM@kg4S^W z29}47QxWS##C|Dk9Shng7)*$s0H{D&*brw<0q272TbInP^#pW68hQfaLjOGnm$y4i znIL6(#=t+-QwwwkRLWX_vM!01py$pK62r&|Z?UE`sMuHy>tKC?S==5~l1u$}O29iIpchsv+AwbuXkm_z%#9gV;2}fefHQ`W&N>`w z`>J^DL`c0mP0)2Flh&2EJ<5Vb-H~{22&XSjr6zc zNjN4nH5zS?szekaD`Pxra>}GEmbV(G-YKKR!7W#*WXRQqqaAF0Ale>^bOsdzpoL%W z1fzLxtus0#J%iuUb@W3c7h72WWt`jZb& z{`q55XVvfei?`>K`W05+YK_HO*dqdAOuG`*uEmY%lghIcN9j`Daim6$3iizjz zPDZdH-=uG(&@?kmJq^lgc>b$4M(v5ZPLEC9qSpm@P{YvQDmLu=lF6|<2(7B8N*(Iy z(L>c{RV5&kq*_rdowM9Im(s!p&>13%Nr~#`=OHPp`mF&{010*P~T21ODSk+adcHI;MML0{V zZezu1F5641cKwE31API;R?G^u^(er=qGg%wM(10ireUv{yTu4e*5FDvoILg7&74RJW|r+t)5$Jz z(^>a%WP8?5xh-Wa7tZJq}S@doJcg1tXQzJ&M(=s?& zSgqD!gW@Oyzm*A8lvW2~dB)mSEJ$S%J4sMPqdayTN9npzp+C?lT&K=E)@jJsD~zZF z1e&FWPKiQB4^sM~xYVvRz*Gif2Fh&p4;$=G2g>; z{SVCh9uDSIoCR>DvvE3(NH((6>3nyv=R6M8r4XQt)WxRlDP_*`ImWe)Zk^ z!|&WVci;9ae|hN2N1nKL@Tu^rxm#!FY7=uS*MhgkL)y83`L(IeJ<9sQUq8H*H7d#n zV@WE%!936s4;8D~P9;U$k2z5=Ya#^(W9i8WCT;=7>}&KdS+EIwkSU@}A9NQGu z;@wxAA!BiaCi+g}No$O$)e;{s3K=5_bC96b8I0j(%rOCm0t4%uU|&`(n&eDh3^N`E zH*6+SV?GSfB8Hu3F-j&ITnd4^jB_Cd!+4IPQz24~fL7-OU?xZjW6}<0LfY9^YG{U? z%c?yXbA}Vn5R3D&MDH*?KP(G_O`KC~i37ycJ`pmH`t>6L^N8PlanU{k&Rp(x&p#lTef)B;=$sm`#KjP9v00+kpGVfX0E%DLCF_H<4vJLS7G zRHtw#R*~<*&}VW>symtNPNuq7k`~sSE8O-M8ULn~tVjtnZb;(#7K`>`(F|4`AXBjF zVo9*n4S~c2hs3c1^a3NQ-P+sO1T%QbYV)_Rx56_+Epr2 z#kg!o${-dD#cXUhQnX=VCeYgpSz|t<&*RSpipyE^c|e`Bm}NPj8HONo?_ff?l1!Df zuHkRXKeaQS#L2=Rmi2-$y_yC}Q5}9-XlgdymBL(d`e^Pfb2W{*oHdux7jh;yO{cWJ zK;dcnvY3=5{ypqtAkU}rq%6tl57MKBopsRX^=r`GdEKL|yJ6$e_HeX4r~<2~fdRY3 z6e)dx$y%IVqzVPFhvIwd1%ff-l?j&hM^t@G>5Qwbait9u8CQu+V+!L2ht<|7y<5O7 z1{Q)y5({{mjhuZ=K8U|H9NqcV7C?j-lV* zHT}N5%6)s3x9^Yq;vw~y4k*90FY=4~qHoRjgZJhFq0VZFF!^E<#IG=#xp8v~;P>GD?^)1FeWaR$U0^EFvWsy%*r{>dZd^C(H&_pM32&E8lGTcd@p^p~^VaeW%-hu) zX6d?7TqSQ5>#d?_OXO?1aE_#GHF0G0(sh?*rk3nHIxOx!YWLOjJUR??LC=9S4CiAu zm&9ID&<_jAr4`9`BYJ@_+n}8!9d}MvzzmjY8rc<0MFxW!gP<&`rRUcbI4rKo%>hKI zV3Ec7;)bZ(!2`&AHltKtmuh6auPW(I0zr9pgmu{~7+G3s9OGPcjP}%Bg*XZ0{ zyLmfZGR}{bwj4b7cbhN&p*Ci}LT7Pdt}i5i|1B;?X!s=-8kiYaMt$-^)Q%$ zxij*oPpy9NYlSyFG}iZz1HO-s_uW5B=h&8T|E_4?zC<7R>Ohl72D_A3?TNl|4} zbVtOZGflsi(mYSvdO8+E%jl{aOLovDba;dtwHfHho>NXr_JRgt9FI|#9P11wjRCM$ z!W^Kw17la@`KzaRZd?#Y7JWFX>D5}fEOt?0u}eOhrC&?qLdC!g)!|w1Sn5=UJiid8 z+Nn_Mbf|qMq|-Y@!3kFEy%aMqEA~K?+7iP_5Cw>lNo61q4jNK6`aF`b0Vo{jT?LqBCpv~kl0Y63_lCQK=VO^$- zQ9Lc~H~~54cVS*!SnE-XjEy9Aib|O1-~)94gu@AoMagief#RZ2EV=0oPcaR%0I>%fG^`wim2Iv}B-62SxTHnOlKx&c zBW1uF1(f3zJ0_)OqMWg#ls~qVqRp5h&>fmBgWrr`!CcI;j46#GX5vQ586(53?+l$d)pJ6VncTO1PYotU5!{&TtG@KjPM9r2{0xSHM?8RJqW{6%96_ z60z1P3vGJYS#hB(Fj%Zje^;!1HQt_NxL|uc*%`&1h>y=$^p96~D%so~O*+RXSH5{X zv-=CP|9#)s2e%CT_O_AV*}M1~`$O;Cr@rf8>>UT9Z`&Vx%U<;@oB?8m-n3hJ?H;9X zPssNuhE1~=Grekmq7THiO9g0Qc^}4ATlqYjDepTYe5$=$&PS24;L?FTGOE`evvG-!u`a99GMGN^*Eq+_65ZQ2!jv@o_7@pmdZ znAsB0f`z2Abn;M%fgD2DjgezYl98@3L5rGu6-fr;*7a1qon8VwP+hgDbfCqP*yActk0*4lIt9d{O?topv~&r!2~oh9s*!9M$t7-!AP0iN5;D$Xe= zy1)$)jEjvhR;ys;dr80YIzR)QafF zvR0(FI}pysd=22oZ)s&3I%covFIU#wXhFL$*4Xyhi4Qz*{2d>;^xBV2ZrHfs+Z>YI zDwS&N+v9!P@$Zx5D`sAak*uQqp1#Fq74ux^RSn+CDG_TU{<-lV`B&?gp4Z<0Z2Pyq zRQRa_s_%h`zE51GoFGQ2!%J-^Z@>JutT6-2rwufAjR*zesx^7u3N^0NL9UO&8)HLR`|A)(G& zTpUCRovA5F8}sXMm5{p{V96^{m1I%}P--Ggl#(GhpW9tw?lRu8<`Qp~BK_x?MD(q@ zwk9#W6OIBtQBFf-GcW~5VR}s>5&>pcDiX;z*?rj?0HJRb?H8vRANSrNamr zhR1N+z@dW(rUT5p+yn6indcS#d>9{*76w=%nU$c%(o9lf9(Iy@?d6-zWz88D7Nc~* zGzPnA_iDmrpk1QN$i}Em3BibaEXabMNBx*u#{(?uDb6kjGbb_SjL0R67Yp;AYl}0$ zDhUfb9WgwtI;*S)JxXF2ld=F;=rec0t9(UI6g3-hpvFa-Vj>9?v|(~m%*lj(73@UP zw#U-;Xo}huELa@3B>##oO{^g4dDc{>%Mp3TT*%RD;m?U=Kb0pb_RYd;j3i|3S~*QT zK{&I7IuUlq%y8VHYy-`ed?98HU5>f*neqN<9hib0fuWxaeTYs6VW>zT62Fh+f34 zGTs8lz-gLNVfh*`Rh-p1t!UMW)~tBVja8jk6`*BG)f!B>X>2rB>8d4HDWWwda!4c| z@XQHSyxcI>K8A_@1on$TiI~n3itL4q<=LWCxWZ2n!#Kt?W+{y*p?x%*JG`CCTmEbp zW4`&E>Cd`AwS_#3Vv*UHjfO*K&F9-hJ1}ZqTP*36>nLCc0f9uvkoSb1B5CL(`w3gW z2Hl<4J<7Tp1|kAwjVQb%@~Rlo1|l8L29-8VUBe1jqS`1fn`(=3fC|=cjYivJSO@nS zMIVXKMip(0itX*;$l5s8VP(J0Fs|MV2yBm0Ljw05Mu}fb*;7ehJAWfAdh}*Y`!sw z8}@`>zdQ7X-Jze}8-B|k|Bvrjc-?OQ?>u$u)f*>%FG%`;NcQw=S(Bsz^1jq;CRW0v94lBHIv+@?kd zHz(a_T7^1biSEk$GW9bm%dTWt0k=R+W@UvtSfgG%Xa}%rlyH<*be6qp8u(&ynI93o zq&ij(d_@%y_6K{)q%Sa`oWX4EmZ;K`ktiQRhZRwll(kBxLTlJuq0uTYcM6TQJkH>9 zC%>%Kmo%J+O2Z_`;S?-6*Kgh~tiC+2w4Z-T`TJex{@`Qhe(rw^{n-6;{a~scF)9ac zSA07_H8EBV{$I?uCDu>SB33ak%X4sTQGA;TT~w^Wl+}k--=>&vqtd?-EEMxSIO_ZO zgzpm*zK#CA&4Ip6!TwE3|AXPaPfYhcwBXwsdd+9ce|6^e|2%1YeBl3iVDP&i9eDXe z-&yf(o$~FDyzvW_ANypc?_jEbPqcq0{`<_!^6ifDYOojR74Lf#1W0cft`+@zR8X03 zPw-WH!#}=XdBcI|j~!6obWp`*=e~pSckfkx?qJ~O_r~76b@nemIeCw=e(={1FJ%o; z7fwn}vCI*N*R1uCbXZlE`C80<0z?63JU0=C!Yr)Bz(Vm_7?=m4U5(jSV-}TpSs zEXyf3NAV@b@{x!DTH@ehP@v?0 zYDnrkq0hrq(FG`K!wD)-;ad|zec-e!u?}c(G{sIz0Vwag%-9BBQIc3nwRj#ap(AV9 zlgLxGQR)=8N7c?)Oy(5~FQ{CMkB0fM768UPrOQzZBmi8I;w_XU1}992!vqL1nX#tC zZ8FV)zC8o162$_4!OPV#{T%pmYziQ`lC>w&_DBN21Nbp6toxk|iS9Fnj!b~WS=FLy zMZ~@%Tw$H{)(KNogSr~5rbVX0@-q?roNB_b@_E(v{8x-%1hJ?#qXAW%dS^85j-}j* zG-bqRG7eSa&}Yo2?OFER!ps!LI-(dcnYJZCjsu_xmR7T`;4Lsrmcu+bL5$sjSQw)( za+euD#(1`@0m_;ufKd{|ivqvIa4Umhv{<1?CR?$&PPOR+2O5$ZIy0Ox25Kg!V&LKY0 z*TlDI$5AUirD%hT)RLo;$83z22x+jg02QpnGBx0+Xa!8=#95uQ3&cv)++?krs&x}p zJ6W|86_^u;NwrXH9bbn<0A>{%h6VwC=mVx|#Rbbz-%q?}VeCTQ@O%EQoaJX(1*xon zB@AD50{B6e1<9BshA$E|!CL-2Xqn-N3z(sa&Icb8;Ivwcc~<_xI1=FGwU6}!MLn34 z5JAeR0kp)4CvX*#HDT-5pu6+BM_G5na6RN@kkxn@{>SG~7IMy1Dw|KL_ z1s_*V5rp9FK(qu$RAZQw#mnh%gbXHygJnvg3wpOEqV!+!b`bAei?(JG+HA^N$l}l2 zTgdkO$(OIruN^&~JM`qW|F-Y^AMLpCC)=m~d~fK3kB5HmQ0UhWhTnZq`IUo_Upf$e z`vLW5_eFl@p!zdU#NTj0dDA}S&HL52?~lIofbzDT3vYVl%CCP``S=Cx$M?>>^KCSXkr>i;F4)JfIhYPw=XobO7%+9jZf*C5d!bQrv z<7#R~MSYg&GG&-yX+rVJAQ>fr;`Vum93d{ z`*1I`@`_%&?$G4|cmOI~cc?bL%u-IZWxY;y2dlYC`eOExhgcl+6DpXU)wBSREU^X9 zs+l>VL`Dos93ZXH_H-%o^>%RyP)Gee>V=4WNJ3zVtSFU^^Azv^ec4HH7xuTof?7B} zpe#^XppR_i1hW~xr( zOqm)Xv5FQeYpD`VH1}DR3tP-K4GJ()x!%lC>rbz(7}QwjA;K}S8&dp=X>2@Pq8dW@ z#F3;V2B4JZoe5WFrD+1d3Qg>FTVPVpSM*$2;}quP$LW8pGPkw9UueZGPOaFNB zNB(~L)teWo2gqty3jSFew#A7?JLAME%3YAJ7{4c!H%-7%JV*d76Z_3erE;VL1|U-7zsxBGYh!HIYVG7Rlol5R^FFClB%YuQasE!51V*DNpYig354a8!iHj8XB zaHTyeBZJWxb%d|PB|`wrCQ613aS`+y5%u0d)w~p?j>RPwl_Kwf8z<9-B%7IH#w_E| z91KjElfyI~jCV1VH(}ulT^YE)E)hosBTKkunvE z1;a*}Fc#tbIS|*syVSs46i&Q=`G}6`1y<7nxw-sQWt*2k*KrcvXwn)>S`*AuVgw!Q zI8pnNVSX%_yKeRZt2|LtVV3KF#DIm?bV?W2vN5IPi3FiZK94<A{#ELhDf-_qJ zyn!V!L*`MjLIEgcM=LNxE$dO5!IGf-I(5cCP0_L$tvWHlRTXgMrmCzuny%SN7QJy& zH75c3s&$k2RG^E+ZI}mdt0hxKvlU>Q0boP3Y>Eyy{NAvTec%rddnyh$uWpq`JH*0* z5fC38b~#vdB6(Bxh5j+>8B$l;Bu(XvAl;Ho<@e|GS>}y!24oe;vKAI21M_Auk7kWf zo7_Cl`5*xj^yHE`?X zSmn!ygO5IW^?&Rg{4ZOF{&efrKiou}16ySQ+qSc9*VM!vc9`tRb~{YAZQD(*X|l~- zO_OcgoNW8+`QGDw-rul}b*yz?_jR8q`$Hx?ROcU|>yF^#8ZxzWJ`C>zzq^jNV-`{+ ze@FjY{QC;~)tc8^zkO8r`5gY-*Hg&54(Mt9^_q@@&k%x3@olytw5H zKCo+srjQYj>fZeJ38h`<@$a?_7QIR!P}y`t4Qbav`d>F)PIV?Va)EgQXetmyK{j#6QaA*PN+oz+W=`9Y{`6#-H=s@k#bQi-MchrAW$s&m zQk|tChoU($w@f1mC=O9pqY5fFf0@3TfckPi3Jl`}avhaNN=ve;y^zhN&#Qz>fdj~b zHt8_^ZdD3`o5k^BdU$QoqolM@T4!%U+Br)T`Ih?BMmZ0YWoOgGSqDsFMb8c!4vdU4 zY8Xm~`{X+8a8DHS&^oSbk=Sod149o-jfV2+c%y6#%4JMnUBFp%>ro904PjJp*JBU0(=0qvJ5k5v!cGOj%9-^+-Ad}q5(l+dA-D<@VbeYe z9wZ;w`f?6byd!N$7Uk9U`jA=F;{KYVEK{FckGgX0Y*oiibx*yKr2-l>s>_&8!rwSF zF3Pt(bXW1ooEm_O}epUQhqrCC!N@v!wmbGiN_)_m|+`udd_$ zjbOe&t_=SrAee48i!H6t?4#!BzgO)x>)(}bK3oxQN}9irwXA$x z4ZpwCJaH=6F7aQi{<~Pky*pF&-J^r`cR*^nP~kd-dI^2Lr}lYVynxXPg;ewXoBS@o z+S+l2*Ccs$hHwwrd@rWoE_7AkU0}aL{&v*9og+}%wrjA*C0Mr6?EU^pH@x`&sPVjF z#`3eWXH&$ST{VVf<6QJzl)UIVH%5VBDDXdspArm9Sa3#JhL;j*#AXzNt~sCqF_mn% zVIboS3(;oNkdF@8MnosF#5H7zBb=%V#$z}ROf_+gRa$`<#pF5%0!&nT8l%renA~`2uqpX2KLg@h+L#RO^pQL%Wo)GG)x=qbIJ0D^?J+y zi~U6O4N`$y(GDFhB18oUsf3_rwLAZtrbBT<%)D6UckY-SL%tf7gq_47-)82($_TmS z*_OhkTt*C>iQMK1SS7;TXzE&nv8F_?zSqNi3c?cQ6Q?n<7_DAMZ$?9XX&GUKMCy1N zdX>RynOK@6D7aew@abC*6DI$GdvjY9@Btx#L=N1&9nFD~mC$!Vm`NqZKz`$KR-D*# z%*%PBgzWsgVBrjytyIAr&O`FiKZ*Ipvd=lJ-3H?3{1d?r-}Zs;z);2Rz=4pTDKOMB zVwAyH)PJInJ>xVhVv8!0;AS^eI16G_&`?f4L%(RJEuSX79Or`!^?qNJw7)W;-F}$a zQ0Xx5hSJg-P^mIqUnH4UW2SnCcXW!iA;-GZx=Ie8OH#E9;iVHun6QZEQ>%bdaONcZ za0GzXX-W^2lUtWQuTuV?{SXQO+ zCrH1HcX8WFogyQt6jaB+q$jQ_QE4=ANlewi+5^-$i;5qGbFZtAqs6w@nT`tRMlvIL zGik+P@2hRt`hKbqp&JrN;RZ>?&)1`(*+-jzYQlP@q(P+*SrnD}RiCFji1f0y+#q~N zd&W#;5Gh+0)mG+^Vo~eAdE7mcY2*izrbh?v6xIk7cfZyFQrh?x=s;UHO$aO)>2JN( znhL>p#4$lIOK&Ye^BW8E9}4mspQ>6}-o}{C7*S@Yqg~tc>CuvT2kYBZiNuG~;!w_6 z%dc_lQF!AE-olPx<6nn=(ZqoDo~s>)ndoBv zM*4fP@bk@vq0n`kYc;R;6Mr^WIiKoE00rRHvNU}(H+@0vqqkw?Cru$A#9k`FqJdgV z{YrcNM*EtT=FG`*-@gGW9Gh`;>=KV8KaR{tQt3?i%k7rNZJ1+lxK365?xv^g?MYrL zNWbd~Bq9&kNg}lyETqd?M`uikR>yWq2>7S z$IN131-$V(E2KW5z~rj{B_ z#RKH{wAwNt1l1c&2umRhENHE*rHv3dk!-rQGKV#F1MN7NC-cxvk#6@7VcCSgg%WX! zq>cukf0hkg2hL{d(FhEJ7T97!9V-qu$|V@K=yGyWHDh|Ba`Eq;1LS}-n00gZ1*r85 z99l%_`*{w+skOKy)e3df3_;9dnx7PvuB0^}ViG%>EL!8P0ji_q;a=LQ=saB|?|iYA&ddowqQP<(C8+Ua z6wMDMIk&|wOw0OWl__Yp?As3#w_NS&k0^(Kdxl2JuOEp~vYpxk%8wovUL7llTG}PWU=IJZd zs7~N~NGSOED}6MN_Rie#DvtT>78T?0RI@TA;`B-rcL5St*k@1f7W$HN;?Ccw_~MHY ztTXfJWW(C7n2~mx~~wfn&2^U?VM06xyzITY~n1fmNrURtRIkJ5!DT0wn-2kQmn(@`aS?3 ztDk78=TiAk7+r#t_34~!##dT+hzkNkaUOp0X!2NpF&-W z|LVc247yB$W{xyhvp(=k8g}otm@(yKdC12sdQmsxGd3g%>H(MaWX0y;lDtTm53$}bD^>s?_zhl zqTlvw!pjY5Euk3@gcCHwA90Oh-CNZO5Qz{@&vCA>fY>$ zoy!=U$&`L;tab5edkih;9?Z#JzweLqU-5tHv~9mlkgR!~j|2EOy1zf5hxs2UUHZa* z?|e$X2E>;=oW-}jDBXUx;U3PAXFXkoJ^z!rp^0tyP+Y6Ne7D~qf1ma}RyLIn`gU(*U%AYr-K^UDTjH-~``dc&(S|o#%&mRa!x`HBMf~lB zs)4Wfci)%8x#K|tYwrlmU;<^^-le#HY2Q_#oZ2(cv`w`oUYp2plR2h6=o44cd0c>f z;bUO5*erw1Ue(`5%+Odet7iOg;30{C$J=cLP@AJt!?D@!ggZyV<3JjaqFhju$dqn2 zV}B+whP8jXsxkbXhu7WmTjtQ((hPJ&5h9x9YJW55Z=I%5NP^88Y5J>Po@v&=LO(7; zO}iBd_;X5RL=^b7CdBbx1%CIm2T5XvGysn%4~HxietbuzVyZ1cpYFduEp?Fo)DX6< zeF@Q-SUYNrVL1qlTAtS-Mff@!r(wv2odSNGsd6Fo9q6!FX1hcz2_OplLu3dofmifX zfY+dq*t$#`z(lW@m>R|&5!`^svMDvcutUwHaojf|To$KdCn+Q66rG||cU|Rhg;(8W z)gP10R~Ho*`e>xh0d!F9LJwFicXwdu?wU7kUjbTgS(zD1;~cV4iH?rDftSmeEK_hv zB^kqwquITGm;gcL1e;KQn~-BOxy3RDVoly?ykLzzPh|LX?Dtc@P425(G!3=O7icdY za~oA?G%aIRA)g*qt<8*!R{dx{O14`{>VEF@@qT1!{{1!{AKP))T}J-L|I?gQ>YusN zi47`xKKzrIuH#jTBLQ*#6RQ{EOAjuFtWAUFhs+K%*KnJpuE&Y`VB*~imnR)8oNAdj zWQUj7m8~c;SzCWus{%pv{qC&%c89!3M%XhMVsryCGVbkovw+;@+y-}VaI-AdziI^b zdN;^+oX;zzzZpLLpS<#Y5fmvDWb)YCGlVP5v2y~%Gi5OOA(&;t2%WE|Lw@m@oXmfn z3RDLGQ|5afu!1nh<{Lc3zsh{->%Ht7^5OHzO9m?F!CAW@J>I+Rr z1okGnM(QDwLJnYX_Mptt-WWt&px#mqP;*SEsM(Oj8jMGmyXp1wlGc)}nET>p$owSE z?cv5YqDm9^VbF-NzzoZG&`Zkr(6c?kpf>QmnT2(+)H#q4stZdgqos4^Bh0yd2u?m6Fts z#w?67MvA2C4@7d1Yp9f?-X&%U!}J^agy+Bl^Y)Aa`rtVVXJoh1k z^*s7Kn}GQG8>-@yO37bv8#=aR_}sGa1N0w(yIY7J6^%aY=QG)fX`JM2H)D-2Garsh zDGjI*mP`#-C;7TAEy?WAHHYVD7%M#^Tp5;9y&BnyuRi4Yo_ehCtCKD_ZG479oln(~ z-IPE`UVY6Z0|*z5oI+i}%-P_boU-1ONy8Q5}rfU1}*xA+IXwvY8+COjAt2A1wbDy3p zS;EC+@TfC*dinTK_wDj&4j-Mx=lLj2r}&)~ITQwh!2_&Q-QoQ&J!tb4G==3@-Z z6d&(v^U$?vOT6Y~ah*4*`_>n?{ZZ$5$Xy|G=?d`f(> zdh&3l$wi{%`+~dKK_~I!Eip?x8A@xo(f_X~tY{3*Q>rne(NZ-+KVmb>V-u|JD&9+T z&>*GIdnDk)RsZm|$O^a_i+daD!uQkm>846p4>`g*4V^~jngGh5@G1DQVTBSJR(^OW zan!N{d+2yuS8^C^6zWz_*?U5C6Z$nRk~I)W&)zSV)l(h|$yNKMIV3*j_g5&-U)Y{N zbY`lpSUBVMubP9P{9W0axo;>fgys=f4@mu3!la?NIyg9$E3S;w*MMdudEN-8JFwce zSAHcmgLe5+l*X+|Sr&t9;=V%toQx9ju32j%URCvHK{Lv&d`3Fr7eCxN1QUTVGNBv- z8b^aGLy2*`*p;ra9$ssp!a|JEcwticGBZn__hYF#)R+?Av4Zkx!HsmnDziZfz=&8bf^B!%8^B&MjP8K(B70GncBom(~?QU zHgEw4!%{t*m7=yU+#SjDZ$UD_I>b&CE}vCh6%Geu_jW&j9H$hEYTj{s+Cpf9R&}?7 z$qFtgiC@buNc?QYN%Pn-(t?Bbm8D<**tghM1}X?@V$|?7zjB}Nqu-8h3iV9Y z6;;puV^P*1R9%m8^5+1fZk8F{Ke;8BpNWVVx$JOLtJ54h0&D^2u5WG}=0ffoPlJ;2 zoiF6fb}jyi{0&raa@T0J5Jh{G#ftej#JQ6330n|7;EJ)P z^6jnG_xHuoowo1Agi@h@3u_S{!50W_SHpOs03eFU&4(StTO?wB-&dIRTLfTMZ) zeOv#@$L+@Ag1Gx4OWNO^;lxl-Ic)s1>OBL-a4 zy_3#nDyxF&5(TIaOLt6}@$4aXfq(Np%o0LJV|`Mq?~^Jk#-S`jAexd&hP`yW9^*dg=R!1w@0vi6 zH1d~m3|65Yto3zq20Kli|A0^24_FMg;sga+OxdB6y!?MG7RiS{A%F=h&Qra>Xl~`} zKtU3?cHku=$Y=poLr<8B`jX(6k)?KOSrNJ7!F3SpB;_2VIO-$jAMsz@;2|}X`vRFS zqlD0nrAIlCsBFmz94U?m4HH3!R$~P>YHGAbf#~=*$@LIDh9w{Zir5C>%@y5+RNf!V z)B=UN7mTpPblv#O84N{K0Xkigt^-^03a|WQ)(nO+UtAe6sn{^Pq8_6P@G3#WrrGMs zjesuY6FbV*Dq(%SuX(>UnhL7@8LXk2BUlY=a?w<)N^QQ>CffjE0njSt8FTTJGLWU| ziJwyO7<7GlnBR65wR?%FRt~j2S4hROjLN^t^5_-sWD}dF8Ph<+yysJobs0+<`6F`B zG&-8pB(Nu%j?v$eViXL!z9gXd8ZYG~F!0=_AUgItt|6J&NV9FLLXQC+QMb&Y4;i!q zDa}P61tR|C{lxVX($&fx_4a0AIbrTN-+7~Ru=a3#>hU>yN;q9qEXn4{dV78v6C#iG zyVi-$d2(}@Oe=2oeI6MQ_>O)-{MPrL*SX4mi~lnCG5ZeicQZJie3*E>>iC0xk@MaF z9qsRE@UBR%^H>0VL%zcG5&rV;eQ&FW{5-?|qGK7I6!fb2g8y#f{}>EEx4BW%@epu* z5}v&2$9Vl0KKX$ps_g}%?sz?Z@SLyk_4UjC!RNf=B=r^wy{#W|rs=nBaLe>kV82$< z=BD@vhM!+Ni~syS`B0$TdL3+Z)!1b|Hz^Wa3%5B*SpmUKVR?p``Sk^kfOJR;dGU7o7*OBXEoHb zznNBoa~1n&@Kq?b{oZ)-{U)%>ojKV-GD7o*vWYxz4$2*;$T25q;LIS=3&2aVdQ|h6bJR)CqLHue_$7H%@1XvJO zs;irFV)nvnE#O%@dHg7DZ5~d}E>^WQ3fN%gSa6c9f*Pf(EB{1xR(uvH_Z4hY^gg}m zmr4r33`D$14l>q}Yz>Y(MPP33!Zn#Z`yz$%nEmFNB8|p{NcB~ez|ZK_rjg^Zd;w~E z&#L(v6;rk}NRc=6R~G!4+Wrn)#V-%p!~7U{^&V<|l~E?wYqcnN0*qK-QiW3N_piH0 znUqw@=I4p0BrWG1?-=6USC@JIm#;=zw2DEYn)Hx#P zF7dj`@Ngx^?qyw9rLiwg*Hh~c!fH^W9cM8rqn;T@W^{Fz5vb9aBzy2_+w{u{s|p|` z8;Mvk{T`evY(=bsR=p;gLdM&*(r&Blr)~rO06R)KD%Aa9WADDjB9-T6B&}7gj>In9 z?;4he_7O*PRn{1*bgLhCD_`D${K^<8%9j$RQFHRGb&Gd-MIOScX@)^#QDz=Y`Dc!i zX%)4G^Xga|wgoxDRIXUBvT5i5u>Q~0eZHlA&FfFw>vg`@$y8D=`TJpAPOE>L|7Yh- zU|^_AGQ$=&=1SD|rD;H*<9Rct4aQA79vwz(SVx3@3C`zuJ2e7{%`_S}${2?I6_u4G zj#0Ty$tN?}PvVOg6P+(bg(QSFLn?bY#tm7|^bZMrm(6p6*@^&Zqc3pP=vK^!h!;E&Ked5rb~1Z454hF9dEf5Zv`cjJwhx3*8w|QyPn1TF5pp z9)O1sn+)4GGYRjS3MUa>R#lRNyUy=Jn%RPoYOEL&{RNokDk7s9nW->hDuJl|9S6}w zYOmHRBB7qfDA55HWVG-1qfJL`IyVxOO5j{)u*Iy1Gdwl*6O2bFXj7H5 z7qYe6a+|5zg?M-4((#IB2}>8f_^U1i$dD0tpZC$v4E?^w={_Gg|@>Fham_|D0u4{4;@;!sZ`{HIrZb|hW#G9Oq1 z3fT!Y3)FLUC0>m(R@Y0zyG7}h*cIDKuP>7M&F8*Z=QS|%uz!H9*#f2mu*Rj-pbHwS z_OG?&kmZmxh6BT#Ym7N7Zc(mWv$ZqwWhbKDfPpRpxL}4zv3gEUYcY^q+p zbEUm;k4L9|qIrd@s3u;H#yZZW^qT1s$z5(mBg!DWS(A;~WpHIsedE_O<1f&dTED}? zBjSI|=YN6qM*(kb;}sVt4oc$v@U6czKriTpSKU4EU)*z+s$X1n~jQ|>w;6td*GMkMRKLhHbvh>!Mk?vYjl<&D)n!w5@Qz6u$--E>U5dupwKkX6?tLIWWoL`)-hBMCzANzg82VU| zKYOJ%$5F(Wz%nrFz7LdvlYCd&gSnK7@k7UZ*VlXQeI1D^wDgAT?kx8H0?l@5*Z*!~ zC`>ZYBo8&y?EU6Ev_!!aPvvpc-Pn{*lqHpHxalpRl##UUb7f@I)Q}FTVTpV+Ay?0y zGGoqm)?Znd4u0cdO1BQbY1N)l{U$))x`AU})8rwai;pniA+)7xxBPF*JMzk&unPnZ zPEp0(CczNRaILt+)fJ8!H8a#=VLPl)H9$(zG7>4#aQu^{Z}*vC+qZ&K6i6i;g{lT{ z=%dt47}SQ1gZDGbocJ`_5kq7(c*}OQiy``sO$cBY%n+oFVwngBV6@zAgkSU z2ntmS$}p&)g!H%m0uee~RM0A(lgkJB}M|Gl+MexD=2;Hb>qi`B;1;_qt)<`rQPB&?wEC8s~o%p=LQ z7iVIaH!b+UNf{=${QWo;iv}s}jZ8MHIcG~RS%+30YR984AXvCvL^ml(&dC~bNjPQc zFXeb^J%lEz)# zb^6jZ!gY8B35W&PPLLD1^=5yE>z<2P8Bm& zsu&`W7nslktxMQNwshnm$q9K9FvvXRT$F`w+~F%Rttiomy*+WIL>&7Yja~3kPKpoP zP9MQ_0-o=nCu>$@05$uMDsuYGDRhkN66!LEaDv1i1PYB8r$Se0Tm85MFtao$tI)<( zV&^$xhD=>2`ETyIgEym_Gw27g#%ea%l~@q{dOB2fx_4IwCvvE=Wq|;}Ec~uTm4F;= z3{S#Baea#xR>kWd1>oceZA0jUs9xsH2r6!ta5sXASNDDX#16@_YD!!jRLlebuhfip zwu1)T8K6iBV}#ac!&^ykVxheE-9?bjHlE%s@cOnj&1~RTPdTk&eqjATDOq6Igc@~z zG*9La~H`1n7*n6R^LOvOmOw{*&laS;1H$!G+IW z!}hs`=1W_IR3pfB9*RR%mK5okL}HGk-GGxlWD>Bvp==1WGY;F}nNZ@xlnRS;nqilr6+Z6oH(%0xuxiZ9gXo3_Cwu-!!MP*X$q7JDqmrJRcOs}KJM zl?IE3)#srz_Zk_NO(~t&H0{s==fR1qN_={kZxl|rLZ;KylD__m$w~g!6-cA1PuKLeM{piQ` z_wI)a^tbN7q3|38|I50e@azb`t*b-$Y$c&rvD-;;=JkO8a z5psUK_x9ifArHoDZ$-M!myql3@5lB6#qWc`+nd}to|9kp+ryLHNmVvHf%nzH$1LOs zZzKPqDM__5RvQIMoHc@dbB`H++(qUz!*no5mjObq`mu`dW~L#TQn{ zir<&)!2bH59EX?+QO4{BmVe$Hr>n%C53|-6UiH^uiv91qX+&>-p?!7C{e4dk-)qKx zch)yz^qX$GHJ?@_Qh;=A!$rLIJ z?|Qj%RG-RZ>FA>-p-D)A4`>e1i6qj5qc=UV9@BziQ#S4H!9x>B%S?o>&JU@!qorpI|kltXQ7Xc&Ype#Zw94;4PaHB|_DxCHjfj zBHo;WpqX1?yM;Gf#PEp68C7$5Tcr%~eRPigFb&Vr$pDl;6Sb%vnV6#0?yGM5u`x*N zcT2Un@z}L?aenXrZ1UDH3D@B(_Cv0z+*&{;f6>0kic95Ntr8#PN+s}2rm7KgI6(!V zV#EFyyw|M`NVkV~&ZS4M<29TJE?xZ+U%%Iu1dbvF%elp-*hAGmL6y8GN^G2qT|JZk6ysvTL=R98T!E^oa zdy@=%5p;~Dj}D-GPTMiT8oQ9Yy@-j7qM(mf9ka)V=Bvsq8J?&WX2hwaG=1Z<{v3wA zlvJ7y+g6VMbk4n3CEDIerB|0TB?!u(VO6x4$j&uO-`U1Ja>DtbkKOv7u2hh>+@}tz z+WT-!g?HW;D8Kr@xJf*VsN$gAtr;Q3MC^N3+yhCY&lv--Kdv$V8J;Htd#buSY=N&Q z>YH|g{)R0SU07pqUsriQ!q(aC*LiQ7!Y5yECE@hkJIUX~kZV@6{wu^#2&?>$KW~V8 zd-2mXu?vZ6AOCcREpp@0)rE62__k0N;L2e@ex<_#duj}M0Gi?rix=fZ*%ZL#)GDC2 z$)XfF`mJdLF}WPU9O}h~e^^Ut3fXMnA{;q+tSiA5l6uHxYzsyDJ8j0$8ST z3oSFnA#neU;cSvAqpGGs#1e=3C;~^wJC$EJTlFATjMj23PIk`-0NEMX6sa7rUk`C)GLf~s>iQ-rA}Cc*DL=YU z@)5pwS|m`iN5hC7x7!C=)`EpJSkPpA*@zTKTy zbIVBni>&PWNPVV0XVHDB`cLls9wgIHz&Bc*2BaA^A`|t+9ZI>eASMz9%gWyG@T73g z$?ZK9#YzioC`5Ct8eQDzbhu{Egy^IJQB+}+^wG1T#3s~7Ff9J3o7|%3C<$G*Jj2HW z$h|~i-F*p8d{lftO7c5jK#$Gnq5cP~`$FgF?+bZT7yM*lZwtl=n?8)!C-L+bJcS(( zb%!;dTci`#JA5?y3vQgJ(9dO5cEtKa`m+Kfe`(u|(j)#otpB#~CF#p|A#aM;)Zm01 z9t_VDk^L(8o-U@^g;jJ0p+7>e#xIngsbGg?&Gi8EG}pPN|38D%H1vVZX4CUYwC7G& zS0=|@x4K<3yI;$hW{|nA>%%`T0$S=T6sk7>jC@5p>*Y_^p8b#Qqy?Y1^xpGv8H=a- zuVsoAH6OaCuJFM%zAoGItHoUWE=3pb6~5>{f^8vu&v0$)d=cT$Y*U;D{(kR(PC$j9 z(|ZD_tFuZz zIU9+}v~8*%=L8}KC>z|8rfk-$v#YYEV}y!uHpFmDPj^r0np4iIM2puQqi~xDEEl1* zRLoh-|2i9}SJz)S;Tn^eWv)4v9c7*ZtXdT8lfXUfD-`8esY<*U^z$@?9|+>wcluFEx$ck2RD9Z}l+G-4wf1pHE8<`dc3OL&*DsaDPO7 z-+!0s&b4J?d4R@PZo&Wsr56R*dl^ia9vH~V{Zc%kyzZOiJi#-Vse16cK_$g$qOPED zL_|gZ-_wO}d5wAYo&TWy6YNRdf*x3=s9d!qPG;uG;^J+cz>q-iN)SwA?5&3W^JymhWEs1?Wg)YDquyWV`yCyx zPRD~ocG~q0o8bmVSWOsxpLKG*(9t~O$Ie3B4zga)$8Uiw-_@+dNk3dc`j-dzmn^i8 z{e3M;W4d=WnXf$2ERx>WctX+p>sQE};jV%~u-*t>^`~h6+7aP8GPXGps7)Vx;%g!j zl8@144J(=3|Hb3yU&>;JYX(L+XFoFFWyVpQ^u%sQL)1XE^w_FKe0@sMrB6&@a(nM{ z+$1Lo@9;jkV%c1{1D~}E*^^s(FJBKpzI0D?O*3Cu*JxkZoxPjRZ`*JBUhX#Ml(w{2 z>@2*;e^_p{t`6L;;!Q#|l|jGOT3>ls2up&yfOHypgd&WhR0aqN8p-~ok_0Kiv39r4XlObZRPIG+KqmdBMhlfMdTDIc@gW5HDu zvB?Dx+omv~jSW<4&E*kBj*d1REyF!i!U-2ua2>hHt8-{EoZvywM}DREY7)w??0mm! zmeqpC_XGy1K&Y+#y+O&H(?MR#yjfdC?pbwy)p4$!=oB1m@1W@5r|saS?ck*C!dp66 z7yl=abeWwXWPlSeh?W`JTgy=|Yz?8^B{j%8iPTWlh#>|+HvR|3=PrB29q9DY3!(nO;Ah1Gcxvh8B@i^(r>wJ+7}%vZyBj$utae+)Qv`9f&hpBok}}* zBz^tnI?ZU+r-R%g<||rxE3TnL3=KvyL@sMUS%}XKWxLYO1FG<%L`No+8+Ebwq|1`r z0F%h_$uRp2IE@1uj0}9q8WOkoaEk8;c*2ye((kc%NWSWhV{T`$PLtxVIf4!jfg0{v zF8kr6uek+N=J;MDHZ@6S?g*gO5lEB%yrD13VqfP<3~|vH?04bvgxn}tchH>do}(cQ zfI(hH#zEO#M&c+BP@7wS8Y{&CehRa5)nZKh`fpjF!v%` zfd!liC@iWll-jp>i#1tC+B^CVGVfJObMb;{ zbmReDxi|qLbmkm=c@3Gl0*hHX zrJ>XT1q&ApnvbHSuA;L+ZD`n9uM__XmTDs>IEfh&)|jAc&6ZjtRl-xkw)uKqRw~wH zAdv*^hhW^sMblzPJ<=lenoT9*RG_>D#a<{tusG-eWDkVAzUl}02i;IpYpS@>it7hK zOI$-+6p6dbI6(6m{thFON7{}d(CcxC18GMx(u<(%1>mwaQo^Nfm1stph|S%MBTY9# zOu^>v%U^+%X(xJ|kaJ>4k^sVKYCKB$|>F++^?@`TZldo$$>1p)eD*Ywnmma~FJMW{(3z5HmT(BoO z>!`V=Z!Y2c?0+Fk88wOJ7TuHd6y^xZJ$ z$ztY#-xT-9j@rg3K6cx&4s0@(DB(sY^I+W;7V*SRI9)yCvu58`>kf<5tcabv`M*?= zZN%_bx5wK+wWl|^qw(7TK;Fzv$Ib@qc6`aTkSEnuisZU^bB~;Lr4t{&^JA5xr3hTDI6w;d>d*Qsq)df3Nm^jBL)z`c6MW zl|k7rezEeKT_8N7U#`{J*bbuVwUCzUWbQq4l<VbAsos(hu78(nVS7($^- zT#ivaV(=Pt!_Y6jBgdVJKDf|xIMwwNsAz+`PY%%@@f>Q_%}pG^79iI>9zsp&o4^2r zWu5nE#h;-_gEYLS&7T#G-F|@qBoIX~z#3aoW|%_72#Qp1BmZN)PW;1FT*D^sn~ulw zHmyZ?Uy6Ia6Lf3mD{J}{JF`K$7@2d$Pl!dxv4}kipkg;R6o)7fTE)qD1HYOZ7;oK= zJ=)DxNQ=1mH|)F&v_Ve)7zC)sV7TTns;J#TfkYMwt~kGxp@0HNX*sk20<$^HQ5?|v z(YJLbB5Rc8KdYaVe=|&Pg6;WC7$2>$B9&?pT zC_m_I@sz!CA{_uT$VpL<{VwwvJEyb#<~0+(x|%Jk-C0Dx*<+!pPS&3I@par6f79o< zN9U#b&G|yTIac4{VNYuw8CMEl%pCoufFD@UOL+g$O*B5={=1 zGna#=#VJ}6*C_wcrw0+dNCv?PEfF?b`!NL>!c0mr;7g!jq4s)>jf&C*VXq77dFI@t zWrZHtT9tIZRzKa=kT?Hss8ZDIltMtdVRF4Q`$6S0AEjl|rR*SX{)nW>f!OWU0waGJ zHb*TPR}WQ^kT%s&Rnxm(`z^695{k#;Ny9hkyYprqcI5y9@E+6j?JmCa$A}mDmQ^-i z3tiXsI?w%?=Y5suIan)|;9~`4rJ`X+wxQ>yVTav-eWrnZ=Eiv@`er5?`IXo}N|&GH z@to4X>njNm`GTqbf(eS~DqOxx?Uf$cKau-at#&nT(_aU$# zE+cRjB38<6fiQmIi|V#73^12QjBQ*>8~@5wIUU7qEr#AiQaKRAd91M)vMyI1w8{Ui zhwOR-Q8sV2&n52{r4rt%wP7n0gtmpYR+T&}q6&-_z&u6*iP?A^NKCdQ?<_!2GKj|A z@+Cip>j;mQ|Ftq)AHsrrt(;q8C+}#%rnE= z`z~?JFw9)js;M(0rKv_FLyUh8iLrn5(!axAMwZf3nm%!>)m}O|3!246U{81%gl0i5 z1fh8c)GTR@)$T+veh~_nHp+BBfGczf`;~iBiHfXp<(4m=H>?10XNh8l7)>J@4?;i= zhCo!cJuk>3Vo+Za&1Y&Pd~uf;3<8G|a!}qu+DEYm1u37GqJUrn_F{T;;Vod^ln=8- zTcEr|wvm9E$v3$s*x_I3ln26D{a_V;-F@Zh(L~^ROaoHjVJ`N_u&|<84;6aY%iIpa zaEDlgUS%h5O-8-rERdm6KT4^@6en9q#1&D;6zV7D%Q}565Yw0&LJAwDHOPn1sW+k< zH};f~(@%va&>QkjLYXMt;V)+W8c^o+^(w$I%u`q-abtW+8Edfgb9`1^Lf{Df)q^5l zZuwaT-9mz=y+B}tP;11mfH0gg0LCYWs={Ew1*^j2jlz8LB3Sq?rhT-!3@Vp1H($}7 z9mvR)7s3sNmSo=yI^Vp7wY;l@V5U|S-#j|+!XrSb_O9t2;MLbNfw|Zhh-Svkc^jd- zGv8GEGq8^{`JF3j9Y!nNt&uCJvn}&^L~nKRex7QQ`Q!S5ag&Fb@S8|D#yFn z-0PT%$3|Jtg)+el=8i3P|1=!pI8psS+QgWQCW4&)wYj@24@rPRK`)%l_4@Nm3V%7DACl8H#Lh=XHvx(AG z^n`PzC#ya#n-@rPCTw9l3MSz6Uil!5;w5#7GSY?`1Y2RyO?EvhFQY@FL3#wGD}_8? zU^2ewAe5wouufKKRGy@Gb0~U(K_J9f)SqJX`Y-}!>D$<*-&tu0U>l(gbRHxYe7aq4 zn<4f>76rQ453`|0jM`aQ6R~z=ohYej*;P2`#bzlrPGcMFc2gS53a_a-Y-Rd&V**@mG3QueC&*#1UJAZ+M$u32zqDelSBa^nOW2?B zN%t?>y!q?fuDQvtt-M=W8nn#+$+~&=3a@rk)->gHPdl1j{p;6w))yyPd@m?8{VfF? z9=#EB7}2ockWJ|rpdn1eB0ytn0rXF4fgjlxQq?FoRT|L z%lU|H#wYW4yFJ_O;K@1s0eJ~{#x7@9kEu+3TTW!JL__btDEE5c`hyExZMx z4Q45T@*iFhlG%@TOz?y?6TxV>3ZC0q$#k{71Ep~nfjlZ~etIkG2X59&%tj zBmzvR^7!#*vml-hnf!w3@`Bj`ewvV)1Z1-L!(c;qOD~JQjjgwhceGQGrLB(QbF6Cz z0t5sALV{F6ywpOxRs3vBLi|iZoHcFyEFGe!cRXu1wgtCw(mvh^{@#In1~}-y9*tq@ z6jY${7`IDdTOy!4puRug@b_DMr=SEurCdpN$E+z+{hT2z!TW@22TR0Y@tYY{Mf|E zESyzKrd&?mawDAo2dY3-zfcIC))Kc+OoF_Ml6{@1na;z?DI$}2%Et6!AzgmNMO4Dk z3B%2KIU^W4f>1BP7DP>ODug^^i?DQIJxqd{1NaGuh*$w0 zIsoSau5(942j&{__NZu$Fc|0+;!POc2lycvk)1dz&_z^)?s;Ikk48ik;=qSkR~Ik_ z_CYX1xWah6`5;PD%#yG@oKgo^qYt@j5q8j2D=>-=Q>RcK&@Vv8W_(!wc)^F|VrG3< z%6Z0Dm_;ECI2;uYF=hr`QUVo3w-p_P@kD~ca=_^NV*nay3~2*`1xP?>1Wdxq2@?Z0 zz%7_4g$6qV>tgjM5^#v<3oqfYpw|ue%H0yEs6U00ia61S-u>#bf2oB&qP2;DSj3m57r(toyNMC>Ml%QX=f{M{#xx z9rPtcXw4s&f;~;UJ}4USs@6lmEyxm9!pZ9&@e$PfO$-=Ba!+TlT&bFwpan)QwP>&VeLfK1MW`} zRKw80Jcatg3qqrSbz@(rM@JwR5}jr%D~ zzS>Jtu*mY;d(Ge3X90uVzO~o-t-bU&_u9YOL4AEU{q4Pu@9eXGd$0BDdmUfcLtoc! zx}w8!dAsG~yJ^6xFYmE^xr6>nhwX+o>iRb8r`s&owow-~na*!8UeQW_td0Ie8}-Rn z>$L{@vNrn4Hrtg3>KZ^VgY}CB%Z-M)BQ|!mSc(_q(5f6<=Kaf(H^YbFbCl-Y%TgpG z1Xq;cy6jjMEm?6oCJ%;%&VcZmQ+}3`?l-9|qjLR_*f1g*M&*_fxqVc+Z%%p2D!=Sd z-i^pztLkXJIKpnc6WwSVXa4a8@AVJRS2s_dRW+{LF{Z1Ttf-sN*U#!2XLYqx6?NnK znn`{2*tzwy7qyx%ZZlogV!pI$@+&(=f7dqn-23L<$?UX~UkIr4esR$+8GRgl85+I$ zS?}5+mZvK$2H-Q8vxQNu&J$b5=-;JcaHZTm7QXk<-nS3A95E%8FNHITFUR!X4JGAJObw^iP`Vg_ zFS-N~H;?548TeL|MyC=Mx?uP6v*z`I@d(fY<>hG~?~cgsuNcnTYFI{k9$qp8i z;OE#8m0`t|kZlQ-3J8-F(>J?vpx4#$Sl=&p9RA*2{olR4=exJ|Tzl)#x!Xq1sh+tI zJ`Sz6E!!r}+d1{)s?p!HPyM`R=6jHjvA& zXrN#Vy0FOQBXJRwB7uJx`$y8N5RJgFd@uk~70JS?vS3N#Di|?%x=CCga2FDnCJYEW z)Y{LW8XC4)1GGcp33r%vchBkWp1ST{&u_X)-+ZgErC|}PDO4|1+}8JvCqgfJ%KZWH ziSF!oYWgm`b3j);Pjo?1CRE=9Ezea{Pw4I*I%~(sb$jWn>ZbGn%!HQ!vGgrxyj1{5 z)n*MfktESzJHQn*h5jxW2i$`BU8sZse5C`*Ld2r=RYrUjBL)%PKBBC@{_!_VS&RJp zi|j!lAF}{vZXtfBLnapN zh!K`3#c`ZO3?4Ew&^Lf3*m9I8XJC>QX|U6ZI)R#=-bqXDBvCa)N0xRL3pvD!SOtuS z>hnZ{9&n3vgB04LIMh0~U}>o?8u#h438*tc>T79*r(gw3e$k{*81bH+px}xC`Ir+_ zzRS+^1LQb4K&)}MFyX`szcXG`7sS6FQL7!D0AMK5Mm$$A%SR6q3Ah5YhXpFi*iqL= zzySIr%+wiY0;aj>PQhZYK?IU%FF)bM#wXpFuLaOG;$ncc0I|j$+^B=ml+baDn}Z!D zF?pJs@(c4GZo!RVdkYxz4d92VHRQYqTJVEy55rT`FS3RhQ;@+BFVr?bKM(q~05;MKI7D_CIq7hUCHi3qV;xc0R-{1X=oP)KtWZz&8Bn zm31Z7VIAMH1fWa7nPS~>STB%bl%ybL0t>SQ67Vw*E37*scru(j&66eTPII0N?@hB{ z!8q&##8tpp!4$70V&O`PcVmV+*1ZWOIatDOD8ZZ}$du;886mR7$5!~z5*u0OBUz-Z z_=*yT75vX0c98rD%w-SapU{OsoCy$7V;}zA%XngI-uOBe$Bg7`MEwF&$)lK1;Q+o0 zp*s#B(}n+_7o4GWd#FG~@-S8u7Sn`{j5VCI1@k!6@Qx7OVf148h(=ZbriOrCSe_dp z89xyiK#O^LsGpIy`f{7!K_AZJBg*}e-C}* zKI;$ep?v zn67LwZEZGH*3VyPFkfM?T;6Otuhn=lRt2SXE!Oi|%vZNrKWDIhsdoC-*OJtFafvU6 zRwaMB;7+lwH0NJp!a2pa!g$tmuDs&TtM+x-l;OuB>`9;amR)*wk$-5O-#0Jro8X%! z1fs`t8BxpTF+E>;>Q!y2weMw?Sh7pv$hSKRl9ISvu$g${nBRJ z=W8dvzpeN8b-nFR&OLw7_Fligf1xnvk!&H=7Ah_V;cFQ_P3u&!K!@QQX59ynvtA5l zRbyB_HJ`q7ckfSbKKhHDBM-kHd3zvm-zyW%_YLfRVDO>m#(GDiu8fE_+^tQeI&Cgrzdug%$!GX3X zryqQE>g~hE1#{LPm!jEXWUZ7S`iJ58nm@AYj4csWkCnhG=S)g{v(b0DozEY#JpK0E zgRjiiKRkSAbJxy}-Y4F$92*SG*zy1>;iXa{i|+k!iVMWo!*RwNUG+p#&M>;UEJ=1M z%s&zF_E?iePdu`R|O*I3*-qCy0%_qNdXU{jQ2d}?t;DSGO>uwpWM8BL_w|!9$ zr~{N$jnRET3zY;X5HNshG{;meDp+7CD%eg8R!GJX*$oUcoe(WF76Q;BtOW$M>7hcQ zKN18;iVoZKyU0c`05J4f5jR&A=4IKz9x?6iIZyUIu)0NCcq1$%vtV z+eWtT>ig9G*%lGcvlR^{5-4cIh(UCVY1aZ*2ZV{PD)d>^nRJA* zHm%M?5DSfv80-dJHDM%Sjk%)USWyS3h88}etpAJ0-!5exGK+vc7)nRU$F0IqGk4G| zyuZl3ZxX={n9v{f?g9(!^xUlY*rfO{@YRHL?}T*EguH)Bd03DNK17P0D=6iwA0MB?@P{ zC|iW=7i2Km2FU?K<6xFdg-B`*<}&d_e~%6s3R_GNe=l0SShbcvN_Mkaq?Fhmf*hPlO^EUd>^(sak>VFQi$LzD10K z%SQksOEmJ1z|N@f0dL3umL!Q{pdg_vEHDLl=|u5#0qd(^Dt2D0RTWGK$S_GHt6)k% zp}z!h5#keY5r9?@QzpbfvVec3C&WMsi#&#sLI@KcaDS{Qnq)tqETVe>fCR^CB}YXV zc~lWh@<3UbYL!s|qQV(5x+I0NJZ5C2rEpq7^vWpVWr@_+67bX{7ATO&M~Iw;C&{?c zBZtL6fwc&3ks30jfQ*wcl^uncbIx!95X%#S5eC*`TtOa2#)j!?tQ|%P|2RM|78y?t z?k=)~r+A0MsKOSafx(&3g{7f5i+{|cj#i%beH1bHVLd*)-=iPxvHjgX`w#Zpf3%OX~)%Y##r{{q${zmLIezZ^z4zSk%ux0JEqeecjB~R@+4#)U_xfXsc|q zT+(9s)cx)&_u4DlZRfX|E^ehSXr{KH#NR??3tibtUDQH|g@)+Nd|wlp3WPWXivto;6geAVIjjuT5ed)Dek#eIv? zqrhE0`31lFf`@d!qO>urmM7JX1^F+t-02f5ARocW$dc^{2Ydf8BZV|1=E#xOVvay9RHn8oX&&-;ZnhZ`$7b z{p!A7RQ0vqJNWKN=kQ#-cQW?C>$AT!9J}=QNA=srFK?LA*Ux>W+5DA8^MyOd&)z<= z^-i$9%3B61Zyh-2_TF#YcKo*8BQL&ZKh)rHx{2;kHnvxzmc5M18+l7tx zFV+tKw7UPdwFCdOt?M7|?)mne12^0;@QFM7FS)(|EZ z6Z(0e1G)zM$3fo${DY#G=eIdNWuQN|oBCoCy>-`|zRJ9%)^dKM`J6_Ju8yi~a_DOo z(KS>B41?Y${Z3d1s362uhlPDN4Pk>Ojx4-VZ3|whwnR7ACTn3kXJP`;ucbMrh=+>k zs%x*}OPUKy4=W@H5MM&S7UCIty0k{BZTcGG%ObRc1c(#|heHSK`W^G1c{bZTzH#?4 z;r!ZR{msX(Ze9H2QEvbA>D}GA?eC}l?J?@=ZJqks1>~GsGv<#Gt(uCei61@gdD6Ji zyZo1V<}Xv3@@r%1zuWcJ`Lz@1q{2Ka7!c&8|GC%(I|dK}Vqppv#uIKLRy`puco%SI z5==;Pw=krz&QjTALzTkKz{3B}{T_WpS@<|XiKnbWw@vJ_iQP7#%O;$(OUJC@VGDo6 zDq!dx013hmh6O%7Ek80PJunG~rR*P<_D#z7PD%GoqJ!)4Dfy`>2`KB8S>eqE@m-?` zfOHhY1xa~ajj}Yim35P{fUlr&SRTP#EbibUsu}`o9We`V;4upzpSCB~&N@cQZ~+u` z16k2RkB#rQ^L=16+izog=zI^2rHzlHdLiP|DcqR@Y68PzQ#QWW&Ue%3&O*c@;u*M` zh3f`bA{B~zDYlm;)qZUSENu+9MWaDGr)UH=Ex8N&bC?_s{pq0!Kv~0Jjsj2?K^=CE zDEL`P1eyj^WD<|!fd~Vzi~s|G!6a35h6D$!WA+Z`Oi95wX6AU35|E55k+Vk`DuR`) z06CDgh#vYp>Y)Q`ahSa1=B6+#ke_w)GcFcv*2T@Z3P55r?)*Fo0dos}!Q|sj&?`U2 zF`6|CaCVqIM?{1@m=*(Rgn{VLmxa0!L@@&9$8=BtEOAAN!Z>mT?~n1`IA@RKt*C{- zkuq7Ej;zfd5`#|81(*d=j|=A3&}~306KY@(!_Hui7CN

      >TXu=jZ+6LO`0sI=@7-5rZ&+1c0w#OAL_-MjlKi)SSyg^qFHh-l(it10TM%h7tmBFQ2@&F!x>2}9azG~AP``R#dt+b z#=shy2wLz~!i@(O=UjmIxCH>L;EEKmQdWdTgB27LD>y?rcZl^w7-xWS1Q~k>B{6`( z(2GTe6ig#ndzi(-$5`MPh?k==6#-Zabp}03T9t{`bhoaLwkI9zehj4$Mp|; zY(Kfj_LKc!)KB))Ki&_lMgL$Q^@F|C5BFGL`;YgSf3nZ|_xr4{@}vD$z_6S4!V*}^ z{@vZ?@3g_v{+->X8|vpiSvUTJN31)$)}Hc7!}$^|6_?B9wbP|^v3M#a{{FzyXCDaY z4O9A>NnOp{*>%&1Qv2;6e=>I7eYVP0qt0N`wcEBB>^O63^XOacl>l9h)~l;$zEeN{ z-eNAJmcy%pYgwf;vN0pgq{Q*0II}FIDpQdhEgAX>WnP)fI}x58jM zuf=vji|ykE^W`nnd5zXfo2{Q}F@C4X^qt1>f36?d*4W?J(ZA>MsizJ)pFQq===H@% zURVVzE?fWvl(-c4)zJWvlgk19ff-b!n6R;+lo??ix97 z`_Os2M$f%#`0_vZ-MC|*?ST+W+KK`;+s3Z0!B{w%-3!-}AeM z!MpZPH9o#rfB)#8YEFK?Zt$zsW8bKq`d0nu*Xt%eT|4@Tn&HpZjD4+k;kw%Siy9WM zYq5U3(ekNg>JtXrH7({(8q8mAp+4J8U0k*Bv8th;H%Hrdksp?jP<$_k|C%x5RKNl{c&Qh^!UJvu&T_)YO*-Lg!-qf-1>yGg|@0n@H+27_Qx82g_2R2@rv^i#j+Jr$>I=QWpEV6%xpM;M@mrc) z7aDBmwg8-1Khx&;bcf?JyIt4sc79=x?TfqVYw8wttyE>Jt)krpZ=9~fr8C&EkQ(|? zVJ7X;)jM@{_KHSZ1-f_8^o{m&n;jQ4SU=rBeWKpHwR-;ST?>^vO}brX40QwBWzuh7 z(A~YL-)25{+rrknXLWas>8fWds%Lb&rYm+%>9;Rd0RPkwbU~>Jx4y|uoGNx?E#m6g zEGpFiP`8M_HEot}fKP;dYn$!r4*REeJ3h15acw&me}h-`tu};>M!FLE+2}xZzG}^n zM3Sa3dJz3`7${il(A5!V)Fx@bMQxT9KC}G{SwT~^umd`>;8m;|dMe-A zTEJmF9*ZZ%K_-=p;XCRhU)KN4<8PO;y3x-g_Sr>%mO%&CZ|C|Pau@OW5P1p2BtVNp z78JU8VNQ5#hENvRxODG?eD9?6z!WBHJvA-8Fekq}C%ri@yt~LBGE2uvMix*?kG0T+ zYJQqih(B%-j+nqu_8p)Lx$8{k)j=b7ND~hvQtxO)4*s~6J!KP76%f_T5v!o919oNr zI&4Gjhi+S;n=15Jm@X`-%$~y20WWd=u!JijLg&49rW^fTz+migEM$yTj62N$fzU%h zECGF4fLjpgZkoYv+wc;=a6l*^Kn4)&FmNDT2x3^F-@%|Si$v}beLO^o&2?rjub)*BvuW#;8V^K7F;kHMWqCo!E=GQ;73Jo^fS2Pj62FWA{gohyn&+F z{(_OjUje9K7#@&`mzzVC2wY-u6%V`MVP`zdw2z(DYFq};U$o$7jXso}KtGkH)aM7x z0OZ3oB;X~WK1&#RNpndVfph#E(Q`+k2uDP8p|=e+$4Pl8h7J_y0JI=lg1{|;6-6l! zjlhf~XmB2S2v8T`=g@NnD1~k=bZel3g<$pz#5>2#0b&J#8~J${G~6f{eS$fFIak1< z1dX7Fo4yf}c?Cm<6{v`spWukW&;hKX3k!^}7Rf2X%D;jwBGPEEBG`eQfX9HNf&jgU zyV!UL4BrKKQ=lE#AK=Onle}RGE*YCey>-DI72L3l@hBLG8tW3t9S4G9Q2;O{_|u{< z%?5#Xl0aD)&IhnW+*3jjcqzk!MN(2Y#YNLn7(ol5NCX2Ui=~UOKOrR!c8DZ_wZw1| zD_@0y$`S>@ry!gNj>7G5I6B9$eb^zTv6)0*3{Z*-#knYoG6R*ds49k(1ut>IB1)RwNWC%Yjv8u;7d{h{Z91 z{|V5dFAMXs0I`B7bC2j1<6LphlS02AK$-(n6ESy-xDCvL;u}=>hJc`KO(~JFxmay zKKk2xsc-DIeq*2QrakuWw41-uG;@9JP}uc&mX7*R`!VsWWhR7&OiMlr!F zzJh92)Sh+asc`wXQ)@qcf9bQ2#dW)F6>ST;J+u1uNgdEv^K?Z$0NAvyaZcY%rjM=m zEp^5VtH%HE`pWcL*_SWclHzng=nIOcywdT2*q@MxlF~p-8Vrj^o#IPo{^2QhPhW2T zAp5#o>R(l-3#B=!Ji!!4R^$^2`K^HZtW$o-B;7l!>=~2VCd8(3v2|Rn9}@5A6@J&n z{pu9=Z{6bWJNf_W5^wL9YX)*1!{URJfNkP?6yNWWhke3GSQ!dPCp_{2T71bOyyj5e z@NN8P|FEuRw$eaf-Dbb8#ddkC^}IHEOB;P&JN?ajyx%ZbKG$UadiBD$>KDJ zq;~exjq~4Zoc_wLsmmIS*R|TNHJGn!HD1?ZzN*!7UbDHf1wfA8(rD7P(7I;pMa_0B z2HirPYp`8nz%)5PFCCn{j`~#X+!t!+zSLm(qQQP`o8|15MJ)8(43kb2%horV^(_>P zfUebo^I)t^gu2+301`WAuV}V>p^g5If%<04!cPo~zpfwqO=I8h_YVH5rT6dZyS~#f z^o{1l>!F=mlOF4sEkJ{nE#~tL)@yguH*`>++e?3KpY?mY9pBqy`~DvK=ey0nGR*&? zdE&>lBmdMe_HT8)f4+C@<_AZuR z1iS<=W7gHqRMgL&-)#NWtINN8EBooX;Vs*Hbyd?BG#K^GWJoXV~{q>K(UCKgSaTG>~Y#kVpRY2J~pcg=w zQ*_~kt#E<{s9@eVa<9+J&&~>uPGQjC0~5-Flk$U8(j(L2Gn%~nBL9v>c+Vmnu<}PJ z0d*;CKrC43shi3H1p%>WL48L|7$tbr%!3`lOe#jJk#(3z3m&EUqZD_9VxfhTR^Xz1 z7tQn_>Htlx_uF&*_QIfp8MG5obz7kyeNbz?RIV3QE7m)$xgILtOXquSY(Fjb*#O4Y z`|O22$2uH-iegTnB^jNBOOhG^w&Kk(kL>0gq%3DG?YdB{P zKNTkA0NRl(EF)}( zjkv@_9oTcxpI?L%5&R?hT3S>j@pnPT;4(uP?*}JEPat|uaQY4_FsFxcfOViOpeY9+ zRt&StJP}MHa>nr~j3%laFjW5H( zK7lM3NlReiG>cr6W{{nT-wB}$H2?v$0#gBdme&0^dj`lH~bV3G;K8PkkE z#gd9xs2qq1U2zuuRB_G=P!wU^(8(kZpbq9s3!bDVUC6tWEZkt59jd_Wqla-%?^JsUzqOD0@^16>?WT_# z7CvTJ_+0b+7n`R4_36;P!@1sM(O=w1m&(y%DJrP}QTB5JwZ@G`*1Da!5%}!qYq~04;9}20D1WNbWrQHkMA5Sgc@O<=&`~AAcMSb;@ZrjND)iZzh zRQM&gIF*$K0^%t*f6~n!@JR2ug=0bSWK??B$-hVmPn(4Mri8}Mm8#D5hZgwmWyMld zEnI0Rt-S9RpR>qM&hYz2`RcCq+m5aL;pp=(CpvAa6gtGZSiJ2Qr!?Ec>DgFWeo2hvYY6&@X4 ze{xcIJE-pOUAm%iw4!PL>JI0}+U?i2(^mi_z*V#^Ubfrv$yUpSZRU@)S+8qzoNKUL z)v1B)8ZA zT{g4xVeX6nwNo%b{McUmC)({75)FX!njIf+byPN)E2T^l6JQv9we9xn_PRdNX1l6>?(6s4cF!qK2g}(m%Yq3#90L4C{3m1{kL7gR9l8$J z*&X%^I;e}lcGKtYrZ4KCFYIsta^TcobHY@cb#-PEgGU6`tI?r^ECf%HVE_rB+Yaa+ z`mCT!umW2MN^Rm+4T`q^kLVxv7LK)6RFjZDBqah=08zNyL@bOC)F=y+wctc#1@p2n zQW4n+iHrEt$g8*laD@?uuwA1pATd0@B7+8uR5eqvW4N+@u@abyq*tMq zAY3efBCan~)Xi;aHeGI@zp~rthuJN zPtHg$&daYY$Zr{?x6J@o!ZDk8!X^NjbU6^NdhGn5O+d<`nLdi^rG-;g?xc}DyvQ6f z7LJ%W4BJDu5+*)rSx>NnY8gcIuNwvZP&vJiX2GyQTfQIQ3T6GcAv-hdWHr{($_Mx3 z&g3X7-$(NUu!AEvY~x34g;Bcz>v%boc*?||Fy(>kj#{}>NLiTZgo4CwGkawVW^dnR?UlIgJrPbAbD9%pasMR&K+O(6Cnhg^2Q4=tMWehw+?-~02{CnW|FKxHU{;Y+bTL_ro1F_M9vOX%{-DE<^yKn_NPP+aiG zpnbs?%_EpabAbJhNWo32c>-wJBaABocPWZ2hfytB^k>8%R`C+C!6g}MCBp?KL>McS zRU{Fo2wkMk=H_?Mhx7P|vOWy^>^}O7jdNdZnfYAP;+LDIKi52UO~=9)?xDW2d;UB3 zEdJYb!NwEpy+g|GKJK3%qrX%;_SuH%Pc)2wqGjrnhPfNsXTEj6qhok|Xtfk9{dcx> zdbPB%S}J8rr6oo6GKw*+I3(4hNC^ctZsa#Mm~xpd71@m2 zALCnln3|qK%_+X6Pk!7aoLZ8s>R;v<^`Jv|WJcIOBs2_2Rj1f($MSzTmj6ws`16y> zPfm*e)Fb_>PyRmx@^1#@pZ6#~>JOnDpm<>DOJ{uX=>v_elSF ziuvQo{LP*D+k0|5y0TTLmK!=Vtv%_zgX{N=6&{?(KfO?T&7t0TFkD$PtZ!WSbUV!E zXD+B7JFj{CoTf2-)llWm;fh`3TkB>k3>JN}WlKAKezWbWM*CF_)MW-6V8Erj&DZRq zE^jwo(Qdi8!*W5J6_^Jm&=oL2G}w`U+F%+=>sqZ9O%|M^!$ceyrWNRm-eRD(w8F&E z4C}D*JUFn`rf;xS7#x+&^p+O-tXAt;E#|GQKx;rj<}Iz}N`tww#ZuV@jaz}Tz_4;F zAQRA0lSNO$s9>&tcBAdAMwo-5t4ezbCYRWy7V3gMt_uwGc?KXf%VrBO{e|5ONQU?n z=*s{-q_F3;=89bl=qMoDFKf4ayq&(j&HB0B^rzb`*Ba2Pb~TWvfj+y9u572_5a{;B zE!J!HIi_KL_4NV9`dC9^UjuAY|w&y23Dzi1?$>2SvP3NL&a}&^Q2$=B*-O zfdrh8rr=d1Lz{+D_>@on8#k9gQ?Ny&DcGX%)h-HIYZuA90UpFo5`cK$V^30c9;6}6^{9Sb-<&|9QgOx*g2vi|zV-!5g1IM^`{KjGqGIp*Oe zJt+S@g*tWIh!gpt-@yQA9kVhA%!fW&L^K;U(Gvd=z{EG|9`)2WoMLJ4}2Wj>g zpoks7gYUHqJ$9j&E_9gOzgi0JHM zkqmOdaoHV_ zTo~dg0FnV~*@-f~hEFumEWs@opi~ej3$~*}jF{wz%FdWVmZFo?1arm;E-W9+U``ss z36Kdeu!NwMV*IF1fnkBbQ3y_`W+6t>LNuj>F`Q2#F@b*Ns*L*RZWRg z%N@;Q%2o`uF&tqOAq2#7#(8f%=Lhmk3&D&W$`aL$Wj?UV2jGgbQZOTh)6k9t*B&53 z_9QNm!&*9_kMgoUtjCAIib8IkA}IaDadWfftpR9-F?!3w34R4%Ed4Mp83o-V7v zW2gVJQvOR+IUQEZiE=SoEXTx>HLnh(<*u0Wx(E6o?ipmNJ2TY-{60#2D=9AsB}ch9 zStz{~5bmEAT6$L-yQI6j#Q*A&{{6W4+f%~7bPGT36mL8!{@p3*r=7yz_ewwR6aJw` z`cbd^lRo)(qsq;r%55XcEyLojQT2`y@z>q_kB{X3=@j>mht_|3X!VyzbH6#h{+}n7 zZ|z*W`{Z&}_ex{`TKmxYp25}qL)m9$<%7QB%}3I@nz75aP2Y5{b>FyfI9WOrm+v)l zcTKSW@qX&lyXVfTU(oFw*VWI$wD0V_p3B?a7kAJXwK=YAw_n|Ey|SIYs@-{ItL>Ur z>WWqxrhOL}?3WoF7aMHnv>{Vfz)Z1)!nrs~HIQ{6D@@u!+#)!HVhI%(t!G8`JfMyi zTLp#!5^KW>%N5N4B#z29(wgST0+470Sb{?cXu)I`r|d8_ho?jn0*(Tdf~KGkz#G*j z9Zcw(tXqI&;Jk#guqkM>g+Kz3Av6ms&@!~yU_m3O2ABtZt2EfpZnK|dpf4~0Qd-V$ zvs}<>zPQzLUaJ+@Pv44hlIOM3aN$>UIMDOfN}bK1i7Cn~m0>h7M> z-#MYbYqH{wiAvy*U5mP1=E_=XOD%e+^nfe%4tRIa83MC>!dDd}_>lOoXdohz`h{-? z?$%_hfR~yb7+%=q0K|ef7u7fbm0`q?QK>C$mMeGLFKx4)*KXO;VXf$ZD?Rgu0xDqp zNEGN`sk2trVJPGOSRE;fwaHh+wRPqtZ6mUi_Eh656yzY<6=&cIVX}tOlXbv0f?hxx z1fQx%Tq01@W+5zsRe)PN&3aAGon&EQh~Ni^rTM;gqM{(c6|ffI5bDLZy6}Fh!X&qf zor@JUBy9}GkPIVYA(8t7_(5^Pxu3qa_MrK6(;)lF`mu_-85F=k-FZMJfJU-29*Ca; z^jv9Ug}6nuF350U5TNGcYCxG2g35&DP+AbrLNeUU6;(i7q^VuTif!{Gy9`j!g5zBG z5oP^fJpOhmYlvosoy?enMKy32Gws3hN^@R*+Qp4I*&!#>Ys&$F9Jg`@O;~sMt$F^{ zdG-}zugzmc<3ncgq)h?p=(CG`cA?+K^^zng)Q~_?ihM6nmK{R}wVWtmn?okslQx;4949I%VU4uR19f_C%R=E8Al&fb~)gEc>i%Kb;@2v>!+ZlkvNsln&k*1yew1Yd)8+fNP)Hj}-Tv(a%$b)!_!f_*W#3Vo;4x5>iX6_Ug z-~tHbdn}lj1#s1GXZq2P$HL|G&}^5T>vHg&cD~0U_S(fBo6v6;haBRtgC*WSz&Z2* zP642LxG5aQ!YoGXp^P;NgcIh^C_n&lnTYGg5@4wSgQZ;wWno49)Ve1j`x4r}{snIu zYc9bA8if|(oClpYSiZ?d^z^JK35Y6rSieXUD~BcKR2Gy zpfm-C5rAkS5Dv++;)6*hfVzLMk&P0~KoTE_V1}ty8K5i~RWX+2XjY0X$&n>OVi|0Z zP?mtYf@yS=1xS>jF9AS>^}ApR<|WF3K2q*8nBWj^U>WDI^GWCu52uKxm}r)bWVl#{ zk1g@Bj2J_4LKbi1+dg%x|?jJyX(GR1{5G9p$Q z%km_E*3wKQ!~0S5gZF2lw{TGipTQ*bgvZihG1iZgh95-?eprtW@Arr=D_jY~`~pfT zD65H5F;P{m*rbzwHGjwh9om^zhJ=hsSOt4dE=?OReO+2TB39?Yokx#dTu zx!nWIJ>Bc~^%Zt^vn@SLZFk|$9`V*L_Li=~-Mw5*58v9)-8UgVG$}kjFTT7Wyk!-R zxTS8NFp`kwvMRl*`tovySF=)SRYCO1m&!|}QdCmHLMgy19**%#rGTUc5V@2rp#@wp-npJ+nDD0gQT1SPte&y~i`QHu|{^i}(pS+*{#=A>jen0n> z&z?$CNEhd3L=xo>yn2(wta2ky0PA3b&kG{mO&3^Xst&m#)QBX`s$-wOtJ; z)k>Y+xNuRc`Pz2+)9tov+USi9NQD?WV8npe}BsE^MQ8=>9^c z!uHX{hgGCC*Bo}?c(d{2Rm1hCa==u^oY1o(zMB*eEXgO=l(B+r;#FU{ zytvFXbT9q$8|h!XpZS*~ng1MFYq!e}`PIj~#rw@l^K|~^p4ESRKl8m8lHYzh{Eer> zpMSuALF0n{jm=B;W0e1fMo%+Z3;)5Zsu_!b~&>6;O>^vzCu z@9-!*5WRnmFtC8W#!C#=OWLjH?S{*==-MeHXUs1m5Q5GYAP_h;31uXHst>SA|AD>* zp()L~^}lU1=L!weu_|GILRLskWIIxp7A2_h(*G+R%f87@_>$#}X?z7O{Ez835et^+ zAkv}oA&P~d(+L9?$+>{Ib{KIxI*Z^ED0F!N($rc}KYhny#dZraPqne4X8H>cI)3$9 z=rfJIx~gG)1E3m_5Uhh0xFIpXj~I!Ag|~ow1n^Tp=oiOComEtuf!1vk+?@c$-GXaz zcXxNU0>z8FyQCB-1cJL;aVTC~iWHY3#Y%xvxH;pF|C}-Mn!J5U_TF>NW$>Xog^x@Y zt38^r0N>nbKzpPb-D8Ybs8H#?kAaoqWxlPBX$p1qTlEjYR zL(v=9Q;p)pS~weXF+7*1zuiW-ofZ4LB6fR^@VzH#b8vLX8gnjVO|v8nefZu9W%wDO zuz=SB~-y|ZIw+U%>QGam0Ec(ji;d=61VIJ~o zvZ}w~R~;4-ZKt$%6UxE{<<{KiiydYQ;}(Aj7%muz`kFderMuyGQ8p>V}5 zk)rUTL!X5t0|Un8!NfyyyxzhHRK$4mRm4kA;q}aS5*dBQk%7&oMLvLhnRgKEf2u~} zSn>xMkwyblhS|PRqi?Zx5g!up_J(MrCP4Uw@lsL}Q1U{-69YPeFgqxTt-{Q!aHIA@-!$Gzq|}L+(o6cN zlL%`pNWkTtbYXI3KqwkObugMVo+MIPFmsg6Xx^Tu8%uaZo=?n1UjYFEoWpP&)k3-L zl&K^`Q{(|0jGMec9&8+$|BZAMcVF@W9Sa;yC9^;7Jn|UpKE%o!EH=!{XTwI%m=~j` zkX!-mD9$=7(WBakQ&qC9rT5gP8KZTT_by`DOrHxR#a_wVMKpd3NY6biE?i3_wE)=| z1HYp)yoYe)hHH3B(|xWSq&f*Vp%$lx_dr4AC=knS${(mL#(y?-bFiKnrzIQcXp{hzt0Q) zK=S8UCxuix#N03Ab8&4|DWihnTP2ghsvoMx70o0hO8o z-g3dAG6C);!M2$ntP=x+tFMMAUcb}*X_pr{Nl)#0=!+LFNOxF(!lTAqEgl9an~5xk zc3rJ{Y#4`&3kqFYM2>lDe~%tfN(26uJv1Q3^hNFw5hOLkE@V{FkZV=lF*#D(BqZ>gG(V&qY1=xk{O+C8( z2IMAgcBlcT;pOM}WIvVp>sHhG%-4l5iOlZbo_8yM5dHg(>%>poMUO%}+zuh8l+#2X zWL+vO-|p(*yp0iZe#CCM%a;!>B-r+0SJbgFv=E2rQyJ@p{R_I{`wPcuJ})iLAY>J+ z9troy^i5j*Gh_dqBYw|bt>E+fHm_}gnr|+zLz|>c_qcUKE3cQbc+>>Q4k5H};1_0V z3ui%iJHQ|eH&nTlpc`c9v17O9EAta2oGoTOu*i`#!w{U1%0I;;*=Z7NEA#@nOIq=8 zv9KKno!H%u)uP6=<>CNukTM6e*%-vJmZS3Uyzy??Hs*R_))2Wa{H#A!ayimXA`M`* z*Il$HVJ*d=xVW+(g}Xb`lR(WepGK4_85+sBP1$_|MSa@_g979J4dMJ|>8--mObx^!?Y-|S2wMv9EPV>KW8XC4+J z#+*^z8=gZ}fp3QC}p$VQoeFiEiju(-pqSk?Z` z4zs`5?>yuU;?-jZjOPYo+|(t2Ss%)`cDI?fBcu z0UU#vL2smYisrRY{u zi4Y|_-c@|JyMsz`#(Sf_ ze-~?L_%tt&>1`x;f>5Y&QVmTwffCaLc3H`EI?db2sSK`G)n`VSopC5cyC`nRfc8+fxH@Bu5GezLa?I~v zt@>qfN!M{qTQT%ZFjiO-FXXEH>pv~EN4|GnLGQGmDHX;1-T@tvmmK}QZjf>4dU*&={KE0-c$z_otjV&%0aKVJ4gTV`Toy~?MxN9|NU!Y=+T(Mt-h#(uTYx#_2-Jq z@1p-+#-9?ZU|H`U36nNiO-@P}gjE}ePcIoy_{j%a|#E&7DZR|o%y z%1Ln%ZF}-U;t!9QdN&z{i1|)AlRsc&ZEuz_OCE9#EIMn3uEa$WlJ*}TA4SHj1GKA! zOSPL$Y?DJ*C_uH+;0uh~&~R)>e^^H9D^PY9WPm(gqnJc-IqlH;CN(k-0pkERz+CQK21LzWMoYS5=@g72JR*{K>rG0~(s%xFIsiv8O?F#2 zqZL-~>L3FfhRqRiRV1x$gLB?5T#xL6<=6({vKRIQjU1u$Ja zMkDJ&!54w`Ya^O5l^-V#aB-07ESPVJILrCF%&ntd<+xXgf!u^I#_gpUi-rnKoo^ixl)Q%Skm8(aYrjB%ViEE04cq zpVP_@aJTXfOTW^41>TCD3wd-pX@SVwe)G>b+&mk)=DfUvXzYTgp5c z$5>%3npHW<7S76!gX$P+iJgFcG^%_9kN;7}R4?6Y2ku^mp0)!Y`-4VbDbmBXxL$9I zpBnZTe#OGVsIyY;k^-&&~K8ZzJ7<6vIj&}y!fmz>3r!m5#QU1bp+q~@N+Nn;;n7(P9ECgY#5hBQW}@83N;-}j z?-DZ;Rz!dIk;Fr#CL(aomdk_%o1zLix*A}^h%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a 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

      H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png new file mode 100644 index 0000000000000000000000000000000000000000..823fcf7c97fbcb9a5aae329aa3385f72d636fbfe GIT binary patch literal 99975 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 lvDS^NrOKhdS6qL|5Z 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 E1*gt_c>n+a literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png new file mode 100644 index 0000000000000000000000000000000000000000..84c289b866e8e651e297905deb9c3bb03ee3c887 GIT binary patch literal 4621 zcmd^DX*iT^-zOtuCXBU+vc_1akfp>BVkm2N292_Z>|0$-xRJ6BLc~aRGAV{3 zJ1NWv+4pTcqvw9!_j&K*c;652*XP4|oY()n&ht2~^Z5Uc-*UwnUDsuS@ImP4=vefw zT{WSjqZgzN9`G^Rir)M2+q8+^&qP;~uHp;-EUf_DMj9gN=&F;T`;LsXn)&WED?d6q z)(=O6{*(8MTeL-vd)k)wOub$11v>g-=yZKC7%#s&-uLXy!L%dn(Rx>rWH_@m^!$kw$d4|mFQ6{p3m&R*YmqH^qBh10K`f2mt% zB_2~|hk&O6vq5QwuD1qLy-?V80IeShxI%)%2$es8S(lTqZM#0)o0LEMEl9v_v1O0=DjPBe!gj)|lSBKg7$ zkX5Y6Dt?eDtV|0g%|zm2_lS%<%#S(qR+%q1n3B1$uwazQ>P=i}ZQS~HS~4aVl_8s> z>JK5ARVArYw@Zq1A#$I=LDZcYhp?3vqfD-3lgh?T>lgeX1Onm8!Fu20+bGBQAt?{` zK?XuB1n>s~WI-H&768yHV7#DZjG!ee0B?lw+z=zjB=`0_yC?Y~l5~r8Cv^l5k9JY& z-q$c)dts&;ZtnAEruc+^hj;-ih?IJUan#|nouu3KqJ)>>KeT485P6enV/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 Kezigq4g3RhOc*Ty literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png new file mode 100644 index 0000000000000000000000000000000000000000..c21d5b60eeb1950e6afc9fbfece9110e91a77bda GIT binary patch literal 3667 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png new file mode 100644 index 0000000000000000000000000000000000000000..dee167c5ccf7c3b2b22b3c6a75527871aa7c202b GIT binary patch literal 18600 zcmbTecRX9~|30o%wUo544qB@^RI4b8T0wQUR_&D_lp=QQP}P>&YPGg%Yl|6s)t;e< zjG_b~32G!rh;RCOzki?KpWn~#_s7YdbCPo&d7k?|_w~H4=XK|UzV0Jl?u*=PY;3$w z9^Ze##>TGCdf#^Z80%HmeO{H-9Pxhf=pI}7h|mga=cuEWjusnRWjxQmEhlULgvVoZ zZ#Fi*j=$TH`b3viHnzv=Pws0O`GZ!ou+Xc@)$e){zE8#b09x)-$JJ}OHh**B!hQ3k z!^t1sC4Roc{lJkxi}rb=n_t8-98nIJ7(4 zxjGf>>85+3)%&XhM0!TPBR%){l+9KV#LI8><=EJzA2}eS--<+rYh{p z-pSw|p5%o9>~>oOI7dADBOW}vV&A&01mP=@zDa1_9oA zX@`7W!yTW1r|kl6NUpavabd0_^E1!zXObY`SqF1?r#LLKiN{Fwb+3h5WX3Q64y-%@ z{ak4tV1i8MC;eIWm(FQyj!4pp$I2od#Y(WbQ;oI))c{R{wwgVXD`ZT+AT-+DM z>B51ov1l7UQM!tnj!+KylL30_UEq@*Xb|u*{i5Ou==9-Qh__%4SWhk!O?%B)m9Y|^Q zUUm-e=09R)(N6BRQ{b|PJptDdZf(V6s*uZ5{mKk+giD;ie;9XV>{wB(BVUfP z$S}uNZJ`#Q;--ZEt(U5Ce3#iWAVP)JQ=^Ij03FO|L~266pw2sp>vKI-pBnXtA`+$$ zKg^e`z+V&m11hU8V+(+Dy-Su54MK{aAH4oB{PmyCs>q6buQ zf)lyueCRY*pDJN4j?i+weNI|Q!oBMPQ9DW(vh&N(;giKD2vl#{af+|ODXkgc`g6}r zvElB$;N~(jZ~gewJxY#*m=CFob|G&LM3SLU^u~h=n=?CFmKr%b`z4q>-f|Pg%Hy() z|7iGt#tLXNS!XhYOc)*FrP0NZ@?lq(-yp5-hrxB8gY%DtSi@xZ-dR`KIQAa#j=(L> z<6e_uW{-PA-BIy7b-lzk*d5KF7uK}~n!ermjQ+viP&d7uow@=IxP)0~a_gnmdXZT! zE+G<4`NmjaNb|G?Fs)F^J}WLhclD2K453^<#G>tEWwc(k=k7my@Ad;4+os8{n}QYj z?4ShlrVZ_3;P;p;Ue1!<#dAA>%F;^p8j%iWNyn~@W5YeiY4yJ-^EcMBthInD5=vCl zna)f~MyG~e9fMIYfAC{U0h7CrM()AWt#i6z(XutNqZJ_`;&L-FuSybI=2!i!f`FcHj);jikDoxL93 zVa2rAV7upK;C@WM6JqY!0{><)j}aXC0a2#?8G+=zaOzR8@dZ^uZWB~;2^fk~!{-O{XwpX3)6KV1T#wsz*)12J!azyL(#6`##<-_o(*HzGy zKEY)(Hw|5NH{pMyMDj~Cg)CPA_h7?(tT^ji{Ja_ukhB_vVmTLCr)&uV%Dv1Q<{R%M zFm^HAp$hM$+``q5#`PRo$*bJ3E!(2K+>GntbJQU5xOP%^XB1&aV2n(m$~wYmK@=sd z{)PrCqTNevh%KH<#j{nrYm{`dZ{S;dY4uDgP~0HznnvW}eOkN9|8$xC2Ibb@9($#c z|BKX1_fRiRswq!t!6AKS<6;komre%>atP06&72bz?X0eBq8M6OI`sk(=(b>2;vLrS z)(EgVT065ua(e!EaJr^z3A1x5@Nu^(&VDa)g^0v*{K`8bN`VQT)lf{Jm<}I}sB{}5 zR6eqEqJ&lcwAP0#Hl;#(X|L}d+xof{Oi4OLF+ke2R(n=M9GkWzOTOvWIxJZ&C^h{w z!)tq)`c>$X$0)8IfzG#XBOZ@FE1ts5+*rSlFiPgti70P4H+%6)Qpq{FOftb*P1Vd& zMYKDu6_mYB2P_W!`j(DzeuOO{Phv+2f|9_%Q0kGzDNhs0 z470Za*4)A}S*G`=P-FFU(TRlD3YVA7UIiV!RzlC7AdP*x%j%#Nod^WTCm)OF0YLF* zvu1v6eT%w46OHBA4`b*LV-kf9w$ZcN$?j ztFQ+sqI{C6aYnT-y82r+X0wShP5pTuins0;?qNSTp#Etp6$aM9A+Jgre#_(?jVy>e zjVstHUqoW+nJ)sWU`bOhoIwU4?bM{`08n81z9Mkq9A*l1Nzfa7G-_RYZF72JwWj(t zW6*o=S(UNNJR0NZ`~cH!7fp5CwIw)Eq!3F<gaj?1X88}uBiTwief!2-fC(Tdp% zdp9GDX zddgm1Gd)!3FfX*F^KfpP{O6iC)tEtw&J21ReBM7SYWEJ;lRwu7+wq{>{j`P$eO$Q2 z5$CDvOtygOh^qMU&z~}TLzKZk()QX_O)XD*DY~ihC+HM=?O|4d`46L8v498Z#lNJn`PrhZ$Ws^~>FjO!KKc&G4 zp5*bW6>dCc!p+z-AqA0ET8l(JnofU(DDC(KNTrTS8mE?DuNfdLP9LBh*Y2oqKUwF$ z-PV})zBy}O-bMrsn!0{7K9>;de0aT+$LOuf{-mPkJyk_!cD`uT^rcE$VSAmOn9s$A9lK>q2IVxdXss;6 z%3p~qG}-76`|`+J`GZ!YK?A5`^eYm|Eper7c_X~A*p+-`KJTwv(MaJpuo*&iNz17- zN-_ZQwUTRO!iZzic%$jmTorctKK`bPFXYe*Y;TSY%q);gGJPqA+MFQ{lluaT`lkrb zYS}hC0>7Vj;O(j)S#g(yxPWg(+-Koj9v>U;`AKBEDP}$tl1e9E`8(i7Hlz z!M$%Dgyy)%@5I*;+n{$Vbc$#as(=MQ{h9JP&m2pR%0lwQ5$x`kPiRx<&%}0kiYtY0 zrhE{)0Pkt38lj7>Dw7e{wyR5rfHuaurLIIJ%uN?t-G$5#VLzw#82kQBp~0<1F9v-c zsr(466HUN{)?BM9NgO;i0dnzEVR{EOwzXlC8!`zZX@_cU(QS3aUIsqjeR;eppT6lC zt}cP<$!oS$u94O48F_eGJ(vc|o1b&72;2@49P|nHpP?TtKa0(;(&;;>tkk%8#TM0Y zw{GXNkb)y2BaVPOTw#T8o8Effy5Td*RHhx8hr3r35jkXP?jazgSfj2M!_*57dr?_} zI2Wx9*a(bg!S*plg{BPD2=Gi2-L*$7emt?QugNMmbIq;9A{w|L8|iEl6jmiSzyp(z zHE6L6k+?o1GPRcETb>22L}wCQFojEGv0Ieg6U@v zA5FAJx4U!c$I2K3dh6e8!}u_&ZpbwBdu)RS@@0Ha-yG-Dhjw~c(Sh#WcxAy^pCKNj zqcZxZ*Djgsgm*Vc`CCS=<&rTlKG(;yndY6m6tP^I!~t<3UrjRTHN)5CRs`AgWVPq1 zDUA5K_t2hNCe<%qvA}zB$n@*Je#noVQvR9}pCBCQk zlfMxoWO{AwIXryW-I}2x%t||uTu)pQ%wM*pj>5}ieGuBJu$DV?peo>7ye{NYo9$aufE?b%0p!kh&UE+|`Y7IEc%5zjg zr1*TBCsG=$LrU5*a2ImbZJ7X)WQo=_nZbg|q*xu@bFI==YDSdW(u;m)EGNA0(42zo zTZWA%cqB~AiuUf%elUG97hlb9O}i>84hbk8&Nuw{7qg@Ext_?V+<5v5-Sol;xy%qc zF9>X7NWGg`D56I2+5rR-wUi`Lsb`s}KyU#0+PRWCM90BmyDwa0WEt>QgYUq`E z5yj$zin|J+&9T^th)rj20rKWgcKX&`-O4uD7mUxUeht#XdffLLhY#x0C;zl5&y&rq z$z^MAK48x$8#vGVjkQ%j=vF4R>{09h_JmW(V6UB~T^k1<)ll_)X&0rvGBV$MIBmjg zF7PnyB0FtjN_R#v#{~6RcHn}yl$#l-amLh&C|^_LnoN~Uso(LZjL~YS9pLsi*3@q# zj$kPifb6GK9wM^%v&VdyUSI_+q3>7K!taRlvB>n^5lkoj*AX4yM*_fqGx4_Q!tsBP z_CXW&{_T6~@^)_9C zUrDg%z8}BX8u{`JH*<19Fo~F$ApeJ*s%52aw!v<^6Y>pU?T5k31iM5`HD3z({;a!$ zD}|x*x`g$ehxfskcR@96Hm|A-Kn+w%5p9 zu*<+ku+?jlyOa$)Sk_s?7_G3#LF-^1<5sa=i6E~2^-H4#F5U7t5+pVArH*4;pB? z;Y5!+AR${!%dBe$Ck8&gf@EUe$#Rq3TRcRwc~y>SqR1TE?{0Mi4J=dE3;?{}^gs$Z z({2>cWA4XHmX>*`zn!bpp+qmlm0+i%<*z5}W(+N;@M;f>+X$Iv57WSxIR-gKu< zeqH@-W%%=GXSV01WlyIcP6Nsxykem*)zbC)jb;Dw$vj#K8|d0KsR8?z9{hqpT753= zIU!;nsH>&PIQgY$tfto2zy|8x4A0^WDQs;eV4L-?xTDO*Kv!@4!St+CeD2PQ%9uB9 z=2Jc<&TODjUa^lMF%=kUS-1Js>&ixYmC}UTx>s~#Iut4Xe!mg0KTEu-IX@07PCt#T zbfFCemXKpaC3?{#netv={O!H2OC7G8xR_Gp8mV{3W4$*;?4P?HC|nres}LogRRLdvZB!4`T~v-)w~kIb{4g7o+IltD{5`0;~- z)s^_>ogi!Z;uen3<2Fg(3IAcbb`P`^tRUsQO9Kn8=uySG>pOr&V@mz&z*2Bj8CX2x zDX?p!o%YSLSEQ0wB*59qJJHyNs_SL+;DNTW#_v#RD2zymuSh8SQ%uhx{P9@HCmZBy#5I;3=j$`8@3Dz z7OG&DWAaJp@@KtRa~j>^*;aB)*800ef_c-(6!=zCxbI8H^)Ug>!-az?gKYr5S?VS# zs(tOm(x;Owf>ZeJh6ZP$sm$Za3e5e@nY9}-5+2h-`UzS|6hMc`LLuZiw&!s#7k?o( z!GL41dLdymsH*cj-=?-ff}?dj^;uX5)oc6- zK)D_|a4ofxVR7*^X?+vlfXOF0b*F;DxEB;WmsJNwTt~MCd)pODRAaUVRx_+~t3oQg zj=;m5f#qc{o2z>#OA4(#RjMAL?S@_kmrbwi4sbptmmpML?MTgRvR^}`$2+e6+%iAF zR(JFZ`nJxq*OKbn8e<1cYkQ|kfH}=&^}eiBoi(E!F(BxC)yl(Ey}$S3bH~iIm>Hn? z#v`Q&w;004Rn@oQ4RW7FUWDkai4K%tJUe*p0R1Jga|%s0!C@++% zJ~8}r722UT$T*kJQ>hWz6anUG+zh4`ap&rWm2Z`scy2y~qTlJc{ z%GOcR>7*%ap**a9W^gqp&*M(^ws?2j(J^uj z>Mjv@Tjfhh`MNjEdU}?R13DOm5B|PCAsbC|4oZ~9iyVCzvafY*Io!*!u6dsLAa&yB z(~lZQ8O$bCGshF;%2lwXMRxP?)y~l-^efc`2L~Kcp$%jJ;kUfPvj~OWuDXq?{vN32 zINYzY7i;w=7;C2=aHCMAefLAw;(>bw53M0Y-wUFOR13_fD^86*iy$S&1~r;_n$*ETN8LifAjS zBog=&M2^L`FC(8=gx~83ec(DCa;>#$6`VTF6*5vs$^r?4&Rub<0Rc&GyOLE`??eJ zd_?fk*-Ag4ShMDVCdu79uWmQIKcfAAqwKd_!5@B>KgdBIU%py-igodff}QxsvX9=SVVEHHvOu z7&eq~Hi86a!h#JR^8TyOO9&fcF8oz{}X5lAC zS&)s@wk_cxeJiglL5Uh{L!6sjR1AGOQUJQb0U>UVYT+A8ZILZUi*~7)CoR0fP?CMf z75vc@_w53rmuXN_AO`)U16wip#7eOE{E~O6MjpP*jy_6VNPBZ}U7E30*C$N&7Dj^@ zR^9sI#=KqUztz5U8Nd|4Q`2aI2PdhPdp8Tj-#bfhz$fC0m99vp%WwKA8v(I&X~LLN zC(!s=ee2`i^j}{eo#}qG_X70vkv7#&Y>)>ReQA5&}Qc!Xe! zok0N_q#<#MVxa@C9z=WfB%eKeah>tdpbkbJ)w}?mt!hIEL&oo5Tq8cUm>{y#l%a?! zcek6{ou$$#J9qhW55|EKSP7+CV?1$VtFWMz3tOyfG=sybEZT8yGQ^@cZ$BF8tuonb z`w$Cpv`je>U_xl7-JjiteC!Hw)IQ~X&Qu;@_o9P-W}ANV*|7WVN+-tX&U3DztjIag z+86q(`7#$M)_Kt>Cxf?IF*7GD#IpMPh_3>o7rpbwS_XL%i_P3X*#^H*ctP}Wmk{N? zo7#d0aw|sxmYzUXtpdBjhFgXaUA6sZts$trKywE9aliQKW=-g;cQ@bFT^vv%-}KRl zco58B1P3*THme^>t%om}yWr>KjBn~kfFtP1ZXLpppS4-K?EaTEe^?pug?&2VG&KW) zX&#p-5OGxj{;0YVd78o>iq6E0I($POlRH$KUR%#`3njIq@&TVU+}vJQ`Y7a4u|hXK zqY?T0_oUWbw-ge4xu*t$uFHQoPz37gp+ggent<^|>|W~&#k)%?XPtAb)8Z?+veX4E zO&{TaWcdMH4+o>YAH2|@xd(h0a!{q3F}^M+AW1xfTX+6B_=7shR|{lA1%z*2i6rC{ zFz^S48qhbp3b%cMaU9$D{-GU^)J?Uz}&cd6Lft z1lOBo<#)ih?7584ch(YQg+RH<@YP8lLfBX6(~L%aVoB+@K~Qe#NF{hL+{@51{1beE zb70r~-`ITD4MM;^Va_Pr3sIgHkn zGa(Ih__1)KNwd~JFH>=maJSvc+5BB8$Tde-BOok__23_^WpfdGz^nMj8_#jWDZBQ3 z#+MeboPLD6$OO^nx=wYi{AK6*Y1@yO3`K?CXk!{z#3g2_Hk;Q+T>4--IyY^ChNG*!) zdk1tk=r*!Et_E%{oE612z~7R~?={&m-+rS`ILcVYB}F|zYUN~gSQl||vDN9Wvr zUNU}JQ$Cme@_eXjpI^kSwGzz3dqXo~swbah;V~tA{1DL!RkhmC$Ym@h8%H7(ZEQK= zH^gdPKi0yEqP`)^2C5;~0Hj_KAMr=hZG9t(DLHR05^L+)VNWQ2imu!Dsh1`MiW-n$ z>QPKC6zy^@Y~5Fg+)fwuZW0iQY2^A(@l&R=gdeSeatg#=On>-_uCN{WW6wfhB z3A~yiFY7Cib9R9Fz6@dAVk_k5QnN1s6l~)D#Gg{#=-ypkZm5#}{8tj12WRVA9P)Yh z6pPl0t)6mj>!=tW6Fjm+^pRPkH=mtZe^KvmreklNBPxeh@vfiXu<2`VnjRhu(|Bu? ze?xUJdsfF0Uo7Z=opzYoVComgUL!|%Z8x>PcUAjk7j%Vz_D)_LBe(m-n8P2m9`p8| zeOU0hH~fbBS8iCy@~_1stI}0nZP)(UGN<+7WMBCxH;fbS7UV%`4N*@_f}X5jt(?VH z*vX;ogm5lJW{pJo33Cy<=V`PWZs1`4ZSUxdT&en+QG^;}m~g2a%Iq;LfAb}PD_TOHr* zRf~Wtyfi2s5)sU~K(;{)M3XXJXzPPbdi$i7l*{;2^eUd%p9>;79%IemQFpC6;Wzg6 zzA`xC65{qQJ!z;)4ffs-&<^2aRocV%?{B@+5F$lnv}vw}RBJ|F(zuh^3fW?RaI9@Z z@>rimr(9{9>Xdhp@ux5RZl z->?_RmYXxs_5GXi@qac{Lw_^723d)F#9xhowLM7G{=z&X2;RWI)u3A@wDod6-RPIr zPfzP>mgka)-!6w7ts9B~%4yP{+L&$gbgmqh=OdbEh}pTI*E zAx6X;$MR~D<({RWpFjRORjy`fLBX{ot!^XuPV!G))D`*z@{xsG(@br44Sihq#u17l z|FIeZ=dg6+eZO5XWVAaeel)aX61<#|%>m|fxcDX*3zvzquG41VrhLphMFr(y{ruPm zOB@q!89x>3v)5ny!vYG=1VPmKh389VR2?}~H)g+C(H3fp?7aOGr*}jKtdJ`gRZ`mu z<=VlqeNt6D%Hvtl1Tzfvbsi~`JitQ`Tm_JcC-ID_8>?CUiKqho5@4Mbhh&#;U;?UGE_ksc_%{=_M(uEwzn>E4co=F z$cm?`Ka}vsecyk@xE-<_^wROFBS|86dQ*fbr{9(mEtdifW6I~M#Vb2<2MEF7-yYur zPintZb1=`aw7Lygmg&)-S%=u3$}qW<%tyq(FK)u9bQ`q=3Y+9q7QhbC7d!l6g5OKo z={MIs-QrU?0>@h46t^V-5A9j(R{wz!mj74#`hNgV{a~f@_@sX0XV)>yy`tDWH%U>4 zKB3*KKws?I?S~oDVIEBf@PF&&vrL-jHTAoj+CTPA=&V9cu_|AMjNT&#P^*n6gp9p2 zU0vNCueppa=6@VxL2Qepc*{e77-f{tF=-@)`mF!{?9nTO-3#kms~gM>TIt7RMnOky z>vv?UrRwBNv*Kb){M_WsxEu_`u5tE1Mg2$TYVy@*&d0{*$L}n;%2#eH9IJvtzY(@J z&Ulo!n(jfn4!#5Cgxp>Byf`}~nl?*I59|ub6#N_JbQoglI3i9Mm&d2CMH~=mefoXcWxqOz zCCNp9n7+=`zLk_-Ty=RiD_-YO#)ymekm#(xH`f4DZWd*nn*NZe@DiQAYn`eC)qL;)80Lc1`+90~Ji9X`R8| ze+2gJCb)V`+_pAw4hdEjweC*8U_?04=T9o~8lTkSxPg^0IXXVU3` zCto|C*>w%pb8uwZ%NBVjaH!?}6j=S^0uolO>BN5Zc5u<|uMxfb(8R(tX{hbx;K#(N z3ACR}0WM=|>GEhnpLYWaoA~P!)J+nd`u$4Wm5&U4*~;gu6}2gGEpEwKXfY2XZW6x((0!(Zcfo-7;+biG-w%}ZM)%n`Fp3wI?$;jmNiiOKcxew@KO*ygY{qvETg^#dguU0ICBqpj9no7x)_JbW4 zn#_!A`H)A2YNu3I4`Zxd*yqn+3rOFW#5d>anQvbX%D~a4pECkgR<`v1a`hH7VhR5X zN&3c*A7mX6$XqP`SP6no-12{XmCN#KD1?wLerBh1W&*Xr_ChhEp#hMsOqp8_wr>3Z z*yJ}LBosCpAYVB<;Qc{Vhlm4a`v<;KGv<>}(lgPIggwN^!+=l112LbOe#(~*sg)e6 zw~swY?E_z~%pMRikFMmf)^!seY~>IoHg4YBtWZpbwmp>@KAdYH?r5zGI~!Rw4u48p z%&92RNrJT8xU}AK#}NjPw-$zEQEt<84#OL9-KQa7ko=luYP@aSf&%3@*;Z*ykt;Os z7iKc=gYtyt$)3`EP0xr!j=Vf2e!=fy-oxvl)o znu(|rGWuU_LMDf2fr&D#glLurl-o!AUm4~a`%wEiM^T4*neG>J-2bRwUGduwzP+(C z6wF3b4T(I$jLb(zY~zV^NZfesmO;ak-`SQEhm_~L;(yp-r>QJKEP97YPKXW-`$y!~ z65^w@s8_RQOY$n`(_qzsup-2ii0?>he3X=ozVi1G7=SuBsin6P+j|X*VNp$t`KroyOY2waj0(bomX%-i<&G!Eq5= zqI?hl{j#W8<*lKns$Tkc`yDkDU2a1far5N}fWmbhW9*|Ygt@%+w3UP8^g4txPoNyN z*QIH@neI0OMNu25mv`U+IV)=2!1L|rC%q#!Mk2|)WW}I7y;o%=LVYFJjGpcVji_gM znZxbKR7+0<{iPql+)YB;R_@F_VcR`xJL$vH=t*id(Hdr1;JRBnhI&%g_O6fVyW1$EKln>Pt3_;Ps_Ox=mFaW zf=OY?+36$4-jxVSJ7>SGSRUp|RP{Is3t1_p4OPZP2s?(Xc;X9|q?QK_bibqIrtC>~ z&+BJ5_cok)%y)1;$xptgxe4<;1HL+;F0O}sPYF({?l-i~SbW8=7aO}$)xY~1sjM32 zHudp?S2`e9w>ua2MukW5p%a32i3DfBw%}6#Uf9OS>88|p90LAaaD>=tvE%FDSp>Yt zyi$B{$q+kdmrV3t(Ne|#QUQ46j47eBhoX`2aeFd}Mog~_CC7XUiHC`G)j zu6_L1!3Gf1J%%|&>82Ke2lya{i|ea<8%)~nejRVpF;LYNW!@CYBa8h(FqoWWRhREYj%lkj1a|n-c^+i`2PNr`iS>0}!rjJ(2{!pO8 zPdV1~4h}ib_WEz`?9u!W{atLg$eGr;pJAb7(=>0E=naxrZe{4+J#x?#(Fo866{XNmVO17J;;1;-*3 zfR^N$@;lN72g265#c?7$zj79$5ORwVdT~F6?=EkW8>xiFIwELdgSPL{?jWuyPZsWCA<>$bd7&+6OPilJ{ zqh#DtQO|sg)Vn0ASm=?Op-N9Sxd0enVBR3;B_4>~9W~git~w$*7&nIKpNG0C*n6V^ zE`o6>p$ffHA%W5tVOf9_D* z_$<1ArRNQ&saN^xC^i@tPykDTvgC)cnv6wGMPCa-GXJvHXg1CCqW>kAJxuaVAm=JS zZVvGLk;mOT$|~2jP3%$IhI}7puYs*+0;LfSQ$VEncc)!7434MZzMh#X&Ep5|0u4h? z54^-*fm%GVdb2Tv|DeFNGEi83Mp0Ls&r%}+sKiV!+6#Ljw)Pp2WSz5e(Gz*)CjU$5 zKkn2y!fpDX%dOfFo8jYuLQ{ds8~UF;(1nV9H3vUbL)%>$OoKK(mlBTXAP^tmE_k!4yL&?7g^ z+MT-BdYy%Uf-J)B)mOL2dsb|rpyPj|w_7h|?4#!PbNntuhaXhIzEkk>#ZznI0r}&A{4;T*VIArB=-OX z;sCPTi1)fCuny4q_i}0|# zs*N#^4tSeVbp~~#ilcuQu{9N_IJOC6F4p;plf7WB%rO@<;7ODYqC15 zsn$65n#eUE&E^H661~*4ZcO-gxTxItk>4c=Z3sCYQE(9e?&uK%h+>6wkD4y7)}9%VQyF}B1M4r*hD7F{hiO}z_+?`7b_qsiNF{2gbh8NE^)z! zc&w4S8AsuzJ*}xic30@8vI_bR;&S#OQfMT&Ka2XHTW@Dx%vgq|j}NjMRLs$SzYMUm z*_H@ZRJ@}u!9&u&y%o@QeuAD`_m~CXr)@n+91f<1ZmsN$X}a#8;Bzgn;yV5xlbdjE ztZ+h6`U`zJAEoo<|H$uU@)v7&{)69l&*R=p*>iQbD+1Sw*2BdQ|24Zg8+eBJ{R;cC z`4aLu7TQ|9A?f9l%x}!2#XC~lA%r`(a)P$NRb`#SfSVMg5*$=A^vlcIeD;YnpU_b9 zHKQ&~5W8i;jEdv_t@`FK(vmX5qSOg35nFZKS!!RDLvlnrU&-Ja52XWGTWDpWkyN>J z4RIlMq^YFf=_L-hcZkJ-VrrO3!fCvIMWE~R=lfYgO`!hh`L7V|i>znjtB!}yZ6Tq3 zH+TUsEoXb%<-Gck9`+G`A-!~EAbooj7@(Lw49d-%hOBq<80E#KoOG|7zOn@a^o3wK zi`8A8L2p%84*Mx0y^aR>UVii_K)F$KxYhtZP<{2VL&ULU0P$~NjzNkG{-3MQPm~PS zQq$rP*17f}J@*!jS_TzO!wUxop7k~s1Vgo-fB7^}UCz()@voY1-53a8S-qDMwt-}@ z2T?c&mh`%}?blL;cX3lOODs&Imok?2?~uvC)h=D)C3wvHHbiJ#WNG;Y=*`7UmvH48$)UX2B+))!_}Y$nmPK4zLrGXv?Btk$ ze!vM=Ug{gQG}8%(Md8@fj$2wHN{SEEtAe98D;)df7;+liFwxyFcFqUSdlF@$bNSB9 z2R2#^3T9PEm*7`3Ckf74gar)s=}hh2gTF#hBD=+~Ot<6V?3;rQ51&7Ed*(w`ZPJP; zzq{~g=j#$CkXN4?5GxjhuGR_ZX(#F*9A@bvvO<;er$NQ6WF6P56*B51NcKG!|K=i| zJ$qBz$E{)m8Q9sWXi{e~%k+s!5?A|{|m8B4Q*Q;a%Im`;K z0LQ@QucmRx#YX|mrapm2*XH=1V-rQF8@6DXf$O$QCHT8(I6Aefg}gHi%e!4uyPsev z%{@L-(qPz{%s({jPyOqd=N+hfwPPR!Y0cG*wGI?S$E9Atv!Qyciv`h*Djyvs>k8!$ z)h?<2wUy&N_wycs`a0gd559)Ez5rvH%lqoWMNh6DW6^7_{%aX;o7w-G<9t~nv)kVl zX)Isr|6*AhqC14EU#SxgKKW#~Xf|iF;jn<3hOP)kjWC;#t%Cb&Ij9~~aT|g~=nRysb5VUm zk-t#BL47JCr#cR7-c*jhKSOqz-@mYhaQXA8gm|r7V<({F*`G(9JQFT^9c^KazL#n^ zjLQ%aYee97`9?p>_T(KluvgDBVY-yUY%wg`V252}@oo5>X3f=h#IzFs)f*H=(FNozgla+P@Ui3| z9}lQT*97N;2wNfoUIlJV55a_^1|MS2tjU;V_{w@vd{h~J0jnW%8nu^`dT8(Blvs{+ z4K$*;QRCIgKxvVIbR=T$a*zjQETD?!Y6~0ye%DhpxObGYTDCS6_d*QpB-IHhveXPF1(;7v)scAH%-cc5y4PN zdTneO9fJe@Mhl5d46?F_{pRbN7YI-g{*geGq-D9j7`?2hZ9kd(4 z9U$_wMYgA2$qcWY{!+n4YDk)&$9#tIaw0HIXLXNsu8Tz z8p4zt%Pq2Xe5bbZUDym!1J`gk0oS=~Yry)g*JMWpge@65(r+5RA^Il>=eR0^uwG(^ zS|jn0iY0QUaD;57q86XAl@4XVDyi&Xa&tj_u?jM+x*Bef>H9Mk%NViG< z1;G;01jDhS5&iAXkKH=t?N2S%rcU|&1d>vjUWH1FP(Gv}i6t$--dGcit-@n}@bR56 zi|#g`)y_Bl6?SLTtNK{tj*Bj>Y>EEg!uNsHdX`?Ur9xt5|Em1IE5|erZmhpCdrp~) z;cA~T4OmadcT<8(s|1p5rbX68-BD6z;--Zh6u@Sk560gf5-Rc1*KzNkpHy_+e*w8< z1xDj=3Xh(?G#C_w@G``%>>wpXWz&j4viwxKT79|!}ip z2FJ*IS63pE_8oSG95eg|pVWJA@qSo)0CmBAQp2RzW4Fhd@n%=UFatT+3Gf z(zC}?1zb*Av3~pl7c6F*c%?PM)z+b{{T9geZAUOoRX3r`Z_!j(@s9sYwnMnOvy z9T!uSUbR&j*33U(@cR8weaQ^yfkc*yAB5tAJ_wXTKZ3jO6xJ_?yr7A64foEjP4C>q z2`pB6TIK&I7$Z$7If<*c?wK~5*|TD?DZ6QJGXTgi{@aa3>v@SBuye#Sxs*GK4vbr> zq2#R#E;{%sk%S6A8 z_eexTGb|kmRY73Mclq@~LyX-k0q`uVsF@0q2b~G6=bOrrt=; ziBo+y{aacG%E{D@1ck^U&YNmKB{F(UebYI9D0pSf3MIp&E!F`omETG40}2ptHk|g% zmPiM%QZM7p>bLHY+%c6q{;xmp-|*p!@0s^AlDwCCxRg&@xqZyvCL5>^`S-gyX@8jxX6+5OOoF-)k zE=O0HImIm{9|%Z(8}D@zwcI!d0RA3nRf1ZN-yOw?1gM0 zO}iAT7T?pwN}eLm+TEz3(_u}LoQ>RV=jfk;cCDjcoGX0gwEs*}qG$4ygdXBECm2lk zuvE{@c%hJviDj4!iO3O!wEkP2+^UMn~W?I}e}NxQ+Yxl6ikWQ#-c3 za~B|M&u4T>$EM!J^7l*=%{_}}E{-EaI8<}+m1&ZM%7-ARbdl$!k14URSnd6i)-$yw zn-Q&w*3?pISyz4<56fr?NPLTr%QShnRfLgK-8>3phv?|H1^eDug{ z_d^GnuE%?vC}?cz^;3T1Jc`->Sw=Qp!PWPOK%H8m$M6~eN{90{Z!%$g$Hj8^{7yR) zkAm);P-dCh)_dBRf7~=qH1JHsH|qQaY1s);%syun@n{1}QeN-5?lcgn9|NA9N5De4 z)dWt6Wlx9Vt}Jl>Z`Pep+@Sb<4L-fAF0v54xy7{GKC?AKJnpU2%2ML8=Jz>Cn|@La z8bxqzAeNKV2^gTmWx&LFO9Fv;c{v(1qbf7pfZNGd-yA8Fd2_4YUt$)x0*?Joj67^i zE(zXk_`_ivGs^|a)$N$oY~ggB&%BsJcbxP$XBkx_z5T;p1b6dHkmnlyFmLy)vqDuR z>AfeY-V^z)JtXSo{}?1~q?SonS^!4I6ft%&#VU+I*eEs}5d1>)XBf!y$l}ekKRH7B zqH718%p=>|v2#1+_3lT}Y46UPet^%K!e41@lzYDUC=+l7n{i;^`hpQC{99vk{LS}X zey7@T=HBNNKjAY+APwl2MD?bNEGMJkmd=hp(3RV}mD6F{LWqV_d6+ZW)4FC$f_hr| zF5i9FhijU}oj<2=PBeLH>yGo`+M&_&&9vp$jircdmc7E16{<2_G2Xpn(tFE~qN?&} zA?N&st&(I{_!m(^076Hfvi;+06`@-J?^FJ17x>dhQ0Z_xHJ60Nyz`C-xJ_BarL$r4 zQ0!jtKhpC&Lrd`qOCe?F zshS6zu#V2Sr?mh7mZrNE)D%TYu{-%|+yiXb8R-Nl^(BN~FeUHu78vf?KBDqsyvGV-ue@?abZG2F={^ixn+IhfMCusW{ zKaY)yPa^m4!w*o~&2cl!q0`JHtiwymt4u{`Vesgq@M3rzS5 zOj%7Iyykt|_c-DEj*2CwQcrbOpEu^2dF$Sm={a|%+%x`GVILrW%w^vCA1?p0`(CYn z1zZ{RZ*sUtT5{U)jlI=_Kkax;v)>~eF;s&ns5iTkqq zrv2ZkrFSLek8kD6b~(EGI^(g!f!B|icH3$GRkZt-(S2Ha!E+bC{`0uyy$Skn$NAA4<3eaOU`~4 z!?<|uS5uK&&Fkf3K5xBToyAl1Y|hr}a$eeb+AgQnq|>iHX5xj}EtxV&5{WY5$)iyYyeg9kz`AJvTBsIqzrW>oeb`-N;Dk_6=6QCI9Z~x3-em zIq&D#xlf6E{QXOKoCN=g{E1s_jj#R-x_|Who;)t&H1B=?{j+`l$4z_R|6-4$ZMNU_ zCpC3O^42@`CozPvE(d~GjiJ>L6H+lmwRN8~3wvH5m*iR=S)yEXeI z&Yjmk629%P^`})eE4)`-IH&*Yd+|Z;E7qTW>;34Q@<+L%vC8t`!@s`u7C&}PpK$-x zYuOX~pH2N)V87tQpI<$|db^IprXjBN=hc7Zf8I_$aR1SS^G#PCy)wV{G@Yo4?kd$+ z);>D#`~x|G2hMzw1y-R(zx;RIf6Em5KX-fe-%bDf2S6FO;PNe zSN0B?=OJg)*a5ekyMF0D&s;P0-!DGCzqL+}nYQlReE8pHwx>+2@w@9^?Y23SKOd?X zI4$pbrQ3h!ho0z3zrt=jU<$o zcf{;dhF82VKlXj+mHXoacs&0Ts5E~RDy}iJ{x55mg19Dd%mH`?&UxV2fZ+c}<^j@B z>*Rsf#q4!B_@6oS_~ZD8b~_xd{{I*gyUzyFikZ(3+`*{_T)}VqXWjX2^{v<2A>#L$ t;}+OiBGe$WL1*kx`G6kPyzT$l`B_%pDGu$72c9m(;OXk;vd$@?2>{z6T-X2r literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png new file mode 100644 index 0000000000000000000000000000000000000000..f84f46638756cbcf1bd4def00427914253e6af03 GIT binary patch literal 19421 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

      $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png new file mode 100644 index 0000000000000000000000000000000000000000..8a546866502013d4ce2f8add46dc18cabd9924c4 GIT binary patch literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907013.en.png new file mode 100644 index 0000000000000000000000000000000000000000..e233c502a77cb25165e8e73017821dd9b043d034 GIT binary patch literal 68519 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 G4E$fwgRB_< literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png new file mode 100644 index 0000000000000000000000000000000000000000..6eba7f2baedff6cb50411dd190879363a5bc26bf GIT binary patch literal 9681 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

      H4J1$OST)I&8P34}J=V>j+h)iz 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png new file mode 100644 index 0000000000000000000000000000000000000000..1454f02b49f34cce7b6cd8a93a4401025dd388fb GIT binary patch literal 115615 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 L*qxGFkAwdQvv)d> literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png new file mode 100644 index 0000000000000000000000000000000000000000..5430cc882d6f13b376f8cca1664488371934fcd4 GIT binary patch literal 43182 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 YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png new file mode 100644 index 0000000000000000000000000000000000000000..12cb8442c5f68c3030ce4112aaae370b839bef1a GIT binary patch literal 3132 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 _I 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

      Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png new file mode 100644 index 0000000000000000000000000000000000000000..f338bd44caeb38e792bc801aca30c11b60411cb3 GIT binary patch literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png new file mode 100644 index 0000000000000000000000000000000000000000..a00a64fa003fe5ccace0398f0ecf125d87964042 GIT binary patch literal 8309 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bbdb0445e7dc8fa31f07d8c862b18fdb853922 GIT binary patch literal 9040 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 A761SM literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png new file mode 100644 index 0000000000000000000000000000000000000000..b1da7d4f717589dd40d8c1da4fffbcbb5906c9de GIT binary patch literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

      3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png new file mode 100644 index 0000000000000000000000000000000000000000..e19848f65d29511a6ad659cb48439912fdee2d77 GIT binary patch literal 9254 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png new file mode 100644 index 0000000000000000000000000000000000000000..199e62f81ef736ef096bc820feecccbfae30051f GIT binary patch literal 9401 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 AmjD0& literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png new file mode 100644 index 0000000000000000000000000000000000000000..480da0bfc5f80fbd72ca7dec264fa8b957907603 GIT binary patch literal 7206 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b76b3b6906644c9063b5c5805597875d38661d GIT binary patch literal 6080 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 literal 0 HcmV?d00001 From 73a45e933a8b7330e46a4d43e8379a7fc483e6c4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 8 Oct 2025 18:01:37 +0200 Subject: [PATCH 066/119] after closure events --- docs/ORDA/orda-events.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index 51552b941fda8c..c20f5c28a028dc 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -137,6 +137,12 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description +:::tip Related blog post + +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) + +::: + ### `Function event touched` From b2504068c0578e38735c470be964280fee6eeba9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 8 Oct 2025 18:28:23 +0200 Subject: [PATCH 067/119] fixed error handler components --- docs/Extensions/develop-components.md | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/Extensions/develop-components.md b/docs/Extensions/develop-components.md index e579d4ef83e37b..f777b12d03c500 100644 --- a/docs/Extensions/develop-components.md +++ b/docs/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Extensions +title: Developing Components --- ## Components @@ -10,7 +10,7 @@ A 4D component is a set of 4D functions, methods, and forms representing one or You can develop 4D components for your own needs and keep them private. You can also [share your components with the 4D community](https://github.com/topics/4d-component). -### Definitions +## Definitions - **Matrix Project**: 4D project used for developing the component. The matrix project is a standard project with no specific attributes. A matrix project forms a single component. - **Host Project**: Application project in which a component is installed and used. @@ -23,7 +23,7 @@ You can [create a component directly from the host](#creating-components) projec ::: -### Basics +## Basics Creating and installing 4D components is carried out directly from 4D: @@ -116,7 +116,7 @@ Standard 4D IDE features are available for the component. You can execute the fo - run methods, - restore from trash or empty trash. -### Scope of language commands +## Scope of language commands Except for [Unusable commands](#unusable-commands), a component can use any command of the 4D language. @@ -158,7 +158,7 @@ The following commands are not compatible for use within a component because the -### Sharing of project methods +## Sharing of project methods All the project methods of a matrix project are by definition included in the component (the project is the component), which means that they can be called and executed within the component. @@ -190,11 +190,11 @@ EXECUTE METHOD($param) > Keep in mind that an interpreted method can call a compiled method, but not the reverse, except via the use of the `EXECUTE METHOD` and `EXECUTE FORMULA` commands. -### Sharing of classes +## Sharing of classes By default, component classes cannot be called from the 4D Code Editor of the host project. If you want your component classes to be exposed in the host project and its loaded components, you need to **declare a component namespace**. Additionally, you can control how component classes are suggested in the host Code Editor. -#### Declaring the component namespace +### Declaring the component namespace To allow classes of your component to be exposed in the host projects and their loaded components, enter a value in the [**Component namespace in the class store** option in the General page](../settings/general.md#component-namespace-in-the-class-store) of the matrix project Settings. By default, the area is empty: component classes are not available outside of the component context. @@ -227,7 +227,7 @@ Of course, it is recommended to use a distinguished name to avoid any conflict. A component's ORDA classes are not available in its host project. For example, if there is a dataclass called Employees in your component, you will not be able to use a "cs.Mycomponent.Employee" class in the host project. -#### Hidden classes +### Hidden classes Just like in any project, you can create hidden classes and functions in the component by prefixing names with an underscore ("_"). When a [component namespace is defined](#declaring-the-component-namespace), hidden classes and functions of the component will not appear as suggestions when using code completion. @@ -311,14 +311,14 @@ In this case, it is necessary to use the comparison of pointers: If(myptr1=myptr2) //This test returns False ``` -### Error handling +## Error handling An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. In the case of an error generated by a component, the `ON ERR CALL` error-handling method of the host project is not called, and vice versa. However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -### Access to tables of the host project +## Access to tables of the host project Although components cannot use tables, pointers can allow host projects and components to communicate with each other. For example, here is a method that could be called from a component: @@ -344,7 +344,7 @@ SAVE RECORD($tablepointer->) > In the context of a component, 4D assumes that a reference to a table form is a reference to the host table form (as components can't have tables.) -### Use of tables and fields +## Use of tables and fields A component cannot use the tables and fields defined in the 4D structure of the matrix project. However, you can create and use external databases, and then use their tables and fields according to your needs. You can create and manage external databases using SQL. An external database is a 4D project that is independent from the main 4D project, but that you can work with from the main 4D project. Using an external database means temporarily designating this database as the current database, in other words, as the target database for the SQL queries executed by 4D. You create external databases using the SQL `CREATE DATABASE` command. @@ -425,7 +425,7 @@ Reading from an external database: ``` -### Use of forms +## Use of forms - Only “project forms” (forms that are not associated with any specific table) can be used in a component. Any project forms present in the matrix project can be used by the component. - A component can call table forms of the host project. Note that in this case it is necessary to use pointers rather than table names between brackets [] to specify the forms in the code of the component. @@ -437,7 +437,7 @@ Reading from an external database: > In the context of a component, any referenced project form must belong to the component. For example, inside a component, referencing a host project form using `DIALOG` or `Open form window` will throw an error. -### Use of resources +## Use of resources Components can use resources located in the Resources folder of the component. @@ -446,7 +446,7 @@ Automatic mechanisms are operational: the XLIFF files found in the Resources fol In a host project containing one or more components, each component as well as the host projects has its own “resources string.” Resources are partitioned between the different projects: it is not possible to access the resources of component A from component B or the host project. -### Executing initialization code +## Executing initialization code A component can execute 4D code automatically when opening or closing the host database, for example in order to load and/or save the preferences or user states related to the operation of the host database. @@ -455,7 +455,7 @@ Executing initialization or closing code is done by means of the `On Host Databa > For security reasons, you must explicitly authorize the execution of the `On Host Database Event` database method in the host database in order to be able to call it. To do this, you must check the [**Execute "On Host Database Event" method of the components** option](../settings/security.md#options) in the Security page of the Settings. -### Info.plist +## Info.plist Components can have an `Info.plist` file at their [root folder](../Project/architecture.md) to provide extra information readable by the system (macOS only) and the [Dependency manager](../Project/components.md#loading-components). @@ -508,7 +508,7 @@ On macOS, information is available from the finder: -### Protection of components: compilation +## Protection of components: compilation By default, all the code of a matrix project installed as a component is potentially visible from the host project. In particular: @@ -522,7 +522,7 @@ To protect the code of a component effectively, simply [compile and build](Deskt - The other project methods of the matrix project will never appear. -### Sharing your components on GitHub +## Sharing your components on GitHub We encourage you to support the 4D developer community by sharing your components, preferably on the [GitHub platform](https://github.com/topics/4d-component). We recommend that you use the **`4d-component`** topic to be correctly referenced. From 8f934c5b90584269f7cefd5790147d8270f8f114 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 9 Oct 2025 10:09:23 +0200 Subject: [PATCH 068/119] New Crowdin updates (#2958) * New translations clientserver.md (French) * New translations clientserver.md (Spanish) * New translations clientserver.md (Japanese) * New translations clientserver.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations client-server.md (Spanish) * New translations client-server.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations webarea_overview.md (French) * New translations webarea_overview.md (Spanish) * New translations webarea_overview.md (Japanese) * New translations webarea_overview.md (Portuguese, Brazilian) * New translations sessionclass.md (Japanese) * New translations updates.md (Japanese) * New translations sessionclass.md (Japanese) * New translations vp-move-cells.md (Japanese) * New translations vp-set-data-context.md (Japanese) * New translations vp-set-show-print-lines.md (Japanese) * New translations vp-set-workbook-options.md (Japanese) * New translations configuring.md (Japanese) * New translations wp-export-document.md (Japanese) * New translations wp-export-variable.md (Japanese) * New translations openaitool.md (Spanish) * New translations entityclass.md (French) * New translations entityclass.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Portuguese, Brazilian) * New translations sessionclass.md (Spanish) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations updates.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations openaichatapi.md (Japanese) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaichatcompletionsparameters.md (Japanese) * New translations http-request-handler.md (Spanish) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations entityclass.md (Portuguese, Brazilian) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations http-request-handler.md (Spanish) --- .../current/Extensions/develop-components.md | 34 ++++++++++--------- .../current/ORDA/orda-events.md | 6 ++++ .../current/Extensions/develop-components.md | 34 ++++++++++--------- .../current/ORDA/orda-events.md | 6 ++++ .../current/Extensions/develop-components.md | 34 ++++++++++--------- .../current/ORDA/orda-events.md | 6 ++++ .../current/aikit/Classes/OpenAIChatAPI.md | 8 ++--- .../current/Extensions/develop-components.md | 34 ++++++++++--------- .../current/ORDA/orda-events.md | 6 ++++ 9 files changed, 100 insertions(+), 68 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index d96d80140f3e3c..1c54d0ac6f0dc6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Desarrollo de extensiones +title: Componentes de desarrollo --- ## Componentes @@ -9,7 +9,7 @@ Un componente 4D es un conjunto de funciones, métodos y formularios 4D que repr Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. También puede [compartir sus componentes con la comunidad 4D](https://github.com/topics/4d-component). -### Definiciones +## Definiciones - **Base proyecto**: proyecto 4D utilizado para desarrollar el componente. El proyecto matriz es una base estándar sin atributos específicos. Un proyecto matricial forma un único componente. - **Proyecto local**: proyecto aplicación en la que se instala y utiliza un componente. @@ -153,7 +153,7 @@ Los siguientes comandos no son compatibles para su uso dentro de un componente p - El comando `Current form table` devuelve `Nil` cuando se llama en el contexto de un formulario proyecto. Por consiguiente, no puede utilizarse en un componente. - Comandos del lenguaje de definición de datos SQL (`CREATE TABLE`, `DROP TABLE`, etc.) no se puede utilizar en el proyecto del componente. Sin embargo, se soportan con bases de datos externas (ver el comando SQL `CREATE DATABASE`). -### Compartir métodos proyecto +## Compartir métodos proyecto Todos los métodos proyecto de un proyecto matricial son por definición incluidos en el componente (el proyecto es el componente), lo que significa que pueden ser llamados y ejecutados dentro del componente. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Una base local interpretada que contenga componentes interpretados puede ser compilada o verificada sintácticamente si no llama a métodos del componente interpretado. De lo contrario, aparecerá una caja de diálogo de advertencia cuando intente iniciar la compilación o una comprobación de sintaxis y no será posible realizar la operación. > Tenga en cuenta que un método interpretado puede llamar a un método compilado, pero no a la inversa, excepto mediante el uso de los comandos `EXECUTE METHOD` y `EXECUTE FORMULA`. -### Compartir clases +## Compartir clases Por defecto, las clases de los componentes no pueden ser llamadas desde el editor de código 4D del proyecto local. Si desea exponer la clase del componente al proyecto principal y a los componentes que se están cargando, debe **declarar un espacio de nombres de componente**. Además, puede controlar cómo se sugieren las clases de los componentes en el Editor de código local. -#### Declaración del namespace +### Declaración del namespace Para permitir que las clases de su componente se expongan en los proyectos locales y sus componentes cargados, introduzca un valor en la opción [**namespace del componente en la class store** en la página General](../settings/general.md#component-namespace-in-the-class-store) de las Propiedades del proyecto matriz. Por defecto, el área está vacía: las clases de componentes no están disponibles fuera del contexto de los componentes. @@ -220,7 +220,7 @@ Por supuesto, se recomienda utilizar un nombre distintivo para evitar cualquier Las clases ORDA de un componente no están disponibles en el proyecto local. Por ejemplo, si hay una dataclass llamada Employees en su componente, no podrá utilizar una clase "cs.Mycomponent.Employee" en el proyecto local. -#### Clases ocultas +### Clases ocultas Como en todo proyecto, puede crear clases y funciones ocultas en el componente anteponiendo a los nombres un guión bajo ("_"). Cuando se define un [namespace de componente](#declaring-the-component-namespace), las clases y funciones ocultas del componente no aparecerán como sugerencias al utilizar completar el código. @@ -243,7 +243,7 @@ Un archivo de sintaxis (formato JSON) se crea automáticamente durante la fase d Si no ingresa un [namespace](#declaring-the-component-namespace), los recursos de las clases y de los métodos exposed no se generan incluso si la opción de archivo de sintaxis está marcada. -### Paso de variables +## Paso de variables Las variables locales, proceso e interproceso no se comparten entre los componentes y los proyectos locales. La única forma de modificar las variables del componente desde el proyecto local y viceversa es utilizando punteros. @@ -305,7 +305,7 @@ En este caso, es necesario utilizar la comparación de punteros: If(myptr1=myptr2) //Esta prueba devuelve False ``` -### Gestión de errores +## Gestión de errores An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En el caso de un error generado por un componente, no se llama al método de gestión de errores `ON ERR CALL` del proyecto local, y viceversa. @@ -315,7 +315,9 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -### Acceso a las tablas del proyecto local +However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. + +## Acceso a las tablas del proyecto local Aunque los componentes no pueden utilizar tablas, los punteros pueden permitir que los proyectos locales y los componentes se comuniquen entre sí. Por ejemplo, este es un método que podría ser llamado desde un componente: @@ -341,7 +343,7 @@ SAVE RECORD($tablepointer- > En el contexto de un componente, 4D asume que una referencia a un formulario tabla es una referencia al formulario tabla local (ya que los componentes no pueden tener tablas.) -### Uso de tablas y campos +## Uso de tablas y campos Un componente no puede utilizar las tablas y campos definidos en la estructura 4D del proyecto matriz. Sin embargo, puede crear y utilizar bases externas, y luego utilizar sus tablas y campos según sus necesidades. Puede crear y gestionar bases externas utilizando SQL. Sin embargo, puede crear y utilizar bases externas, y luego utilizar sus tablas y campos según sus necesidades. Utilizar una base externa significa designar temporalmente esta base como base actual, es decir, como la base de destino para las consultas SQL ejecutadas por 4D. Las bases externas se crean con el comando SQL `CREATE DATABASE`. @@ -421,7 +423,7 @@ Lectura en una base de datos externa: End SQL ``` -### Utilización de formularios +## Utilización de formularios - Sólo los "formularios de proyecto" (formularios que no están asociados a ninguna tabla específica) pueden utilizarse en un componente. Sólo los "formularios de proyecto" (formularios que no están asociados a ninguna tabla específica) pueden utilizarse en un componente. - Un componente puede llamar a formularios tabla del proyecto local. Tenga en cuenta que en este caso es necesario utilizar punteros en lugar de nombres de tablas entre paréntesis [] para especificar los formularios en el código del componente. @@ -432,7 +434,7 @@ Lectura en una base de datos externa: > En el contexto de un componente, cualquier formulario de proyecto referenciado debe pertenecer al componente. Por ejemplo, dentro de un componente, hacer referencia a un formulario proyecto local utilizando `DIALOG` u `Open form window` arrojará un error. -### Utilización de recursos +## Utilización de recursos Los componentes pueden utilizar recursos situados en la carpeta Resources del componente. @@ -440,7 +442,7 @@ Los mecanismos automáticos son operacionales: los archivos XLIFF encontrados en En un proyecto local que contiene uno o más componentes, cada componente, así como los proyectos locales, tiene su propia "cadena de recursos." Los recursos están divididos entre las diferentes proyectos: no es posible acceder a los recursos del componente A desde el componente B o desde el proyecto local. -### Ejecución del código de inicialización +## Ejecución del código de inicialización Un componente puede ejecutar automáticamente código 4D al abrir o cerrar la base local, por ejemplo para cargar y/o guardar las preferencias o los estados usuario relacionados con el funcionamiento de la base local. @@ -448,7 +450,7 @@ La ejecución del código de inicialización o cierre se realiza mediante el mé > Por razones de seguridad, debe autorizar explícitamente la ejecución del método base `On Host Database Event` en la base local para poder llamarlo. Para ello, debe marcar la opción [**Ejecutar el método "On Host Database Event" de los componentes**](../settings/security.md#options) en la página Seguridad de la Configuración. -### Info.plist +## Info.plist Los componentes pueden tener un archivo `Info.plist` en su [carpeta raíz](../Project/architecture.md) para ofrecer información extra legible por el sistema (sólo macOS) y el [Gestor de dependencias](../Project/components.md#loading-components). @@ -497,7 +499,7 @@ En macOS, la información está disponible en el Finder: ![](../assets/en/Develop/infoplist-component.png) -### Protección de los componentes: compilación +## Protección de los componentes: compilación Por defecto, todo el código de un proyecto matriz instalado como componente es potencialmente visible desde el proyecto local. En particular: @@ -510,7 +512,7 @@ Para proteger eficazmente el código de un componente, basta con [compilar y gen - Los métodos, clases y funciones del proyecto compartido pueden ser llamados desde los métodos proyecto locales y también se muestran en la página de métodos del Explorador. Sin embargo, su contenido no aparecerá en el área de vista previa ni en el depurador. - Los otros métodos proyecto del proyecto matriz nunca aparecerán. -### Compartiendo sus componentes en GitHub +## Compartiendo sus componentes en GitHub Lo animamos a que apoye a la comunidad de desarrolladores 4D compartiendo sus componentes, preferiblemente en la plataforma [GitHub](https://github.com/topics/4d-component). Recomendamos que utilice el tema **`4d-component`** para ser referenciado correctamente. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 086ad86ee9d7d0..4b5104f5524e66 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,6 +118,12 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description +:::tip Entrada de blog relacionada + +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) + +::: + ### `Function event touched` #### Sintaxis 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 f3413bd8478651..a884c0dbb73572 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 @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Extensions +title: Développement de composants --- ## Composants @@ -9,7 +9,7 @@ Un composant 4D est un ensemble de fonctions, méthodes et de formulaires 4D rep Vous pouvez développer des composants 4D pour vos propres besoins et les garder privés. Nous vous encourageons à soutenir la communauté des développeurs 4D en partageant vos composants, de préférence sur la [plateforme GitHub](https://github.com/topics/4d-component). -### Définitions +## Définitions - **Projet utilisé comme matrice** : Projet 4D utilisé pour le développement du composant. C'est un projet standard, sans attribut spécifique. Il constitue un seul composant. - **Projet hôte :** projet dans lequel un composant est installé et utilisé. @@ -153,7 +153,7 @@ Les commandes suivantes ne sont pas compatibles avec une utilisation dans le cad - La commande `Current form table` retourne `Nil` lorsqu’elle est appelée dans le contexte d’un formulaire projet. Par conséquent, elle ne peut pas être utilisée dans un composant. - Les commandes de langage de définition de données SQL (`CREATE TABLE`, `DROP TABLE`, etc.) ne peuvent pas être utilisées dans le projet de composant. Elles sont néanmoins prises en charge avec des bases de données externes (voir la commande SQL `CREATE DATABASE`). -### Partage des méthodes projet +## Partage des méthodes projet Toutes les méthodes projet d’un projet utilisé comme matrice sont par définition incluses dans le composant (le projet est le composant), ce qui signifie qu’elles peuvent être appelées et exécutées dans le composant. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Vous pouvez compiler ou effectuer une vérification syntaxique dans une base hôte interprétée qui contient des composants interprétés si elle n'appelle pas de méthodes du composant interprété. Dans le cas contraire, une boîte de dialogue d'avertissement apparaît lorsque vous tentez de lancer la compilation ou un contrôle syntaxique et il n'est pas possible d'effectuer l'opération. > N'oubliez pas qu'une méthode interprétée peut appeler une méthode compilée, mais pas l'inverse, sauf via l'utilisation des commandes `EXECUTE METHOD` et `EXECUTE FORMULA`. -### Partage des classes +## Partage des classes Par défaut, les classes de composants ne peuvent pas être appelées à partir de l'éditeur de code 4D du projet hôte. Si vous voulez que vos classes de composants soient exposées dans le projet hôte et ses composants chargés, vous devez **déclarer un namespace de composant**. En outre, vous pouvez contrôler la manière dont les classes de composants sont suggérées dans l'éditeur de code de l'hôte. -#### Déclaration du namespace +### Déclaration du namespace Pour permettre aux classes de votre composant d'être exposées dans les projets hôtes et leurs composants chargés, saisissez une valeur dans l'option [**namespace du composant dans le class store** de la page Général](../settings/general.md#component-namespace-in-the-class-store) des paramètres du projet matrice. Par défaut, l'espace est vide : les classes du composant ne sont pas disponibles en dehors du contexte du composant. @@ -220,7 +220,7 @@ Bien entendu, il est recommandé d'utiliser un nom distinctif pour éviter tout Les classes ORDA d'un composant ne sont pas disponibles dans le projet hôte. Par exemple, s'il existe une dataclass nommée Employees dans votre composant, vous ne pourrez pas utiliser une classe "cs.Mycomponent.Employee" dans le projet hôte. -#### Classes cachées +### Classes cachées Comme dans tout projet, vous pouvez créer des classes et des fonctions cachées dans le composant en préfixant les noms par un caractère de soulignement ou ("_"). Lorsqu'un [namespace est défini](#declaring-the-component-namespace), les classes et fonctions cachées du composant n'apparaîtront pas comme des suggestions lors de l'utilisation de la complétion de code. @@ -243,7 +243,7 @@ Un fichier de syntaxe (format JSON) est alors automatiquement créé lors de la Si vous ne saisissez pas de [namespace](#declaring-the-component-namespace), les ressources des classes et des méthodes 'exposed' ne sont pas générées, même si l'option de fichier de syntaxe est cochée. -### Passage de variables +## Passage de variables Les composants et les projets hôtes ne partagent pas de variables locales, process ou interprocess. La seule façon de modifier les variables de composants du projet hôte et vice versa est d'utiliser des pointeurs. @@ -306,7 +306,7 @@ Dans ce cas, il est nécessaire d’utiliser la comparaison de pointeurs : If(monptr1=monptr2) //Ce test retourne Faux ``` -### Gestion des erreurs +## Gestion des erreurs An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En cas d'erreur générée par un composant, la méthode d'appel sur erreur `ON ERR CALL` du projet hôte n'est pas appelée, et inversement. @@ -316,7 +316,9 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -### Accès aux tables du projet hôte +However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. + +## Accès aux tables du projet hôte Bien que les composants ne puissent pas utiliser de tables, les pointeurs permettent au projet hôte et au composant de communiquer. Par exemple, voici une méthode pouvant être appelée depuis un composant : @@ -342,7 +344,7 @@ SAVE RECORD($tablepointer- > Dans le contexte d'un composant, 4D suppose qu'une référence à un formulaire table est une référence au formulaire table hôte (car les composants ne peuvent pas avoir de tables) -### Utilisation de tables et de champs +## Utilisation de tables et de champs Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. @@ -422,7 +424,7 @@ Lecture dans une base de données externe : End SQL ``` -### Utilisation de formulaires +## Utilisation de formulaires - Seuls les "formulaires projet" (formulaires non associés à une table en particulier) peuvent être exploités directement dans un composant. Tous les formulaires projet présents dans le projet matrice peuvent être utilisés par le composant. - Un composant peut faire appel à des formulaires table du projet hôte. A noter qu’il est nécessaire dans ce cas d’utiliser des pointeurs plutôt que des noms de table entre [] pour désigner les formulaires dans le code du composant. @@ -433,7 +435,7 @@ Lecture dans une base de données externe : > Dans le contexte d'un composant, tout formulaire projet référencé doit appartenir au composant. Par exemple, à l'intérieur d'un composant, le fait de référencer un formulaire projet hôte à l'aide de `DIALOG` ou de `Open form window` déclenchera une erreur. -### Utilisation de ressources +## Utilisation de ressources Les composants peuvent utiliser des ressources situées dans le dossier Ressources du composant. @@ -441,7 +443,7 @@ Les mécanismes automatiques sont opérationnels : les fichiers XLIFF présents Dans un projet hôte contenant un ou plusieurs composants, chaque composant ainsi que les projets hôtes ont leur propre «chaîne de ressources» Les ressources sont réparties entre les différents projets : il n'est pas possible d'accéder aux ressources du composant A à partir du composant B ou du projet hôte. -### Exécution du code d'initialisation +## Exécution du code d'initialisation Un composant peut exécuter automatiquement du code 4D lors de l'ouverture ou de la fermeture de la base hôte, par exemple pour charger et/ou sauvegarder les préférences ou les états utilisateur liés au fonctionnement de la base hôte. @@ -449,7 +451,7 @@ L'exécution du code d'initialisation ou de fermeture se fait au moyen de la mé > Pour des raisons de sécurité, vous devez autoriser explicitement l'exécution de la méthode base `On Host Database Event` dans la base hôte afin de pouvoir l'appeler. Pour ce faire, vous devez cocher l'option [**Exécuter la méthode "Sur événement base hôte" des composants**](../settings/security.md#options) dans la page Sécurité des Propriétés du projet. -### Info.plist +## Info.plist Les composants peuvent avoir un fichier `Info.plist` dans leur [dossier racine](../Project/architecture.md) pour fournir des informations supplémentaires lisibles par le système (macOS uniquement) et le [Gestionnaire de dépendances](../Project/components.md#loading-components). @@ -498,7 +500,7 @@ Sous macOS, les informations sont disponibles dans le Finder : ![](../assets/en/Develop/infoplist-component.png) -### Protection des composants : la compilation +## Protection des composants : la compilation Par défaut, tout le code d’un projet utilisé comme matrice installé comme composant est virtuellement visible depuis le projet hôte. En particulier : @@ -511,7 +513,7 @@ Pour assurer la protection du code d'un composant, [compilez et générerez](Des - Les méthodes projet, classes et fonctions partagées peuvent être appelées dans les méthodes du projet hôte et sont également visibles dans la page Méthodes de l'explorateur. En revanche, leur contenu n’apparaît pas dans la zone de prévisualisation ni dans le débogueur. - Les autres méthodes projet du projet utilisé comme matrice n’apparaissent jamais. -### Partager vos composants sur GitHub +## Partager vos composants sur GitHub Vous pouvez également [partager vos composants avec la communauté 4D](https://github.com/topics/4d-component). Afin d'être correctement référencé, nous vous recommandons d'utiliser le "topic" **`4d-component`**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 1f4e78f6cc9c23..d9c694cc350a75 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,6 +118,12 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description +:::tip Related blog post + +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) + +::: + ### `Function event touched` #### Syntaxe diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index 2e3d959f5813b5..dfc0801a5cd8e3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: 拡張機能の開発 +title: コンポーネントの開発 --- ## コンポーネント @@ -9,7 +9,7 @@ title: 拡張機能の開発 ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 また、作成した [コンポーネントを4Dコミュニティで共有](https://github.com/topics/4d-component) することもできます。 -### 定義 +## 定義 - **マトリクスプロジェクト**: コンポーネント開発に使用する4D プロジェクト。 マトリクスプロジェクトは特別な属性を持たない標準のプロジェクトです。 マトリクスプロジェクトはひとつのコンポーネントを構成します。 - **ホストプロジェクト**: コンポーネントがインストールされ、それを使用するアプリケーションプロジェクト。 @@ -153,7 +153,7 @@ title: 拡張機能の開発 - `Current form table` コマンドは、プロジェクトフォームのコンテキストで呼び出されると `Nil` を返します。 ゆえにこのコマンドをコンポーネントで使用することはできません。 - SQLデータ定義言語のコマンド (`CREATE TABLE`、`DROP TABLE`等) をコンポーネントのフレームワークで使用することはできません。 ただし、外部データベースの場合は使用することができます (`CREATE DATABASE` SQL コマンド参照)。 -### プロジェクトメソッドの共有 +## プロジェクトメソッドの共有 マトリクスプロジェクトのすべてのプロジェクトメソッドは 、コンポーネントに含まれます。 つまり、マトリクスプロジェクトをコンポーネント化した後、これらのプロジェクトメソッドは同コンポーネント内で呼び出して実行することができます。 @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > インタープリターコンポーネントがインストールされたインタープリターホストデータベースは、それがインタープリターコンポーネントのメソッドを呼び出さなければ、コンパイル/シンタックスチェックができます。 そうでない場合、コンパイルまたはシンタックスチェックを実行しようとすると警告ダイアログが表示され、操作を実行することはできません。 > 一般的に、インタープリターメソッドはコンパイル済みメソッドを呼び出せますが、逆はできません。これをおこなうには `EXECUTE METHOD` や `EXECUTE FORMULA` コマンドを使用します。 -### クラスの共有 +## クラスの共有 デフォルトでは、ホストプロジェクトの 4Dコードエディターからコンポーネントのクラスを呼び出すことはできません。 ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開したい場合は、**コンポーネント名前空間を宣言** する必要があります。 また、コンポーネントのクラスがホストコードエディターでどのように提案されるかをコントロールすることもできます。 -#### コンポーネント名前空間の宣言 +### コンポーネント名前空間の宣言 ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 デフォルトでは、このエリアは空です。つまり、コンポーネントのクラスはコンポーネント外で利用できません。 @@ -220,7 +220,7 @@ $area:=$rect.getArea() コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。 たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 -#### 非表示クラス +### 非表示クラス アンダースコア ("_") を名前の前に付けることで、コンポーネントのクラスや関数を非表示にすることができます。 [コンポーネント名前空間が定義されている](#コンポーネント名前空間の宣言) 場合、非表示のクラスや関数はコード補完の際に提案されません。 @@ -243,7 +243,7 @@ $rect:=cs.eGeometry._Rectangle.new(10;20) [コンポーネント名前空間](#コンポーネント名前空間の宣言) を入力しない場合、シンタックスファイル生成のオプションがチェックされていても、クラスや公開メソッド用のリソースは生成されませ ん。 -### 変数の渡し方 +## 変数の渡し方 ローカル、プロセス、インタープロセス変数は、コンポーネントとホストプロジェクト間で共有されません。 ホストプロジェクトからコンポーネントの変数を編集、またはその逆をおこなう唯一の方法はポインターを使用することです。 @@ -306,7 +306,7 @@ component_method($input_t) If(myptr1=myptr2) // このテストはFalse を返します ``` -### エラー処理 +## エラー処理 [`ON ERR CALL`](../commands-legacy/on-err-call.md) コマンドを使用して実装された[エラー処理メソッド](Concepts/error-handling.md) は実行中のアプリケーションに対してのみ適用されます。 コンポーネントによって生成されたエラーの場合、ホストプロジェクトの `ON ERR CALL` エラー処理メソッドは呼び出されず、その逆もまた然りです。 @@ -316,7 +316,9 @@ component_method($input_t) しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。 -### ホストプロジェクトのテーブルへのアクセス +However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. + +## ホストプロジェクトのテーブルへのアクセス コンポーネントでテーブルを使用することはできませんが、ホストプロジェクトとコンポーネントはポインターを使用して通信をおこなうことができます。 たとえば、以下はコンポーネントで実行可能なメソッドです: @@ -342,7 +344,7 @@ SAVE RECORD($tablepointer->) > コンポーネントのコンテキストにおいて、テーブルフォームへの参照はすべてホスト側のテーブルフォームへの参照だと 4D はみなします (コンポーネントはテーブルを持つことができないからです)。 -### テーブルやフィールドの利用 +## テーブルやフィールドの利用 コンポーネントは、マトリクスプロジェクトのストラクチャーで定義されたテーブルやフィールドを使用することはできません。 しかし外部データベースを作成し、そのテーブルやフィールドを必要に応じ利用することはできます。 外部データベースの作成と管理は SQL を用いておこないます。 外部データベースは、メインの4Dプロジェクトから独立している別の 4Dプロジェクトですが、メインプロジェクトから操作が可能です。 外部データベースの利用は、そのデータベースを一時的にカレントデータベースに指定することです。言い換えれば、4Dが実行する SQL クエリのターゲットデータベースとして外部データベースを指定します。 外部データベースの作成は SQL の `CREATE DATABASE` コマンドを使用します。 @@ -425,7 +427,7 @@ SAVE RECORD($tablepointer->) ``` -### フォームの使用 +## フォームの使用 - 特定のテーブルに属さない" プロジェクトフォーム" のみが、コンポーネント内で利用できます。 マトリクスプロジェクトのすべてのプロジェクトフォームをコンポーネントで使用することができます。 - コンポーネントはホストプロジェクトのテーブルフォームを使用できます。 この場合、コンポーネントのコードでフォームを指定するにあたっては、テーブル名ではなく、テーブルへのポインターを使用しなければならないことに注意してください。 @@ -436,7 +438,7 @@ SAVE RECORD($tablepointer->) > コンポーネントのコンテキストにおいては、参照されるプロジェクトフォームはすべてコンポーネント内に存在している必要があります。 たとえば、コンポーネント内において、`DIALOG` または `Open form window` コマンドを使用してホスト側のプロジェクトフォームを参照しようとした場合にはエラーが生成されます。 -### リソースの使用 +## リソースの使用 コンポーネントは、自身の Resourcesフォルダーにあるリソースを使用することができます。 @@ -444,7 +446,7 @@ SAVE RECORD($tablepointer->) 1つ以上のコンポーネントを含むホストプロジェクトでは、ホストプロジェクトと同様にそれぞれのコンポーネントも固有のリソースチェーンを持っています。 リソースは異なるプロジェクト間で分離されます。コンポーネントA のリソースにコンポーネントB やホストプロジェクトからアクセスすることはできません。 -### 初期化のコードの実行 +## 初期化のコードの実行 コンポーネントは、ホストデータベースを開いたときまたは閉じたときに、自動的に 4Dコードを実行することができます。これによってたとえば、ホストデータベースに関連する設定やユーザーの状態などを読み込み・保存することができます。 @@ -452,7 +454,7 @@ SAVE RECORD($tablepointer->) > セキュリティ上の理由から、`On Host Database Event` データベースメソッドを使用可能にするためには、その実行をホストデータベースで明示的に許可する必要があります。 このためには、ストラクチャー設定画面のセキュリティページ内の、[**コンポーネントの "On Host Database Event" メソッドを実行**](../settings/security.md#オプション) オプションにチェックを入れます: -### Info.plist +## Info.plist コンポーネントは、その[root フォルダ](../Project/architecture.md) にシステム(macOS のみ)と[依存関係マネージャ](../Project/components.md#コンポーネントのロード)が読み取り可能な追加の情報を提供する、 `Info.plist` ファイルを持っています。 @@ -501,7 +503,7 @@ macOS 上では、Finder からこの情報を見ることができます: ![](../assets/en/Develop/infoplist-component.png) -### コンポーネントの保護: コンパイル +## コンポーネントの保護: コンパイル コンポーネントとしてインストールされたマトリクスプロジェクトのコードは、ホストプロジェクトからデフォルトでアクセス可能です。 特に: @@ -514,7 +516,7 @@ macOS 上では、Finder からこの情報を見ることができます: - 共有のプロジェクトメソッド、クラス、および関数は、ホストプロジェクトのメソッドから呼び出し可能です。共有のプロジェクトメソッドは、エクスプローラーのメソッドページにも表示されます。 しかし、その内容はプレビューエリアにもデバッガーにも表示されません。 - マトリクスプロジェクトの他のプロジェクトメソッドは一切表示されません。 -### GitHub上でコンポーネントを共有する +## GitHub上でコンポーネントを共有する 開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-component`** トピックをご利用ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 33bc7539dc0b38..f7906c3d4d2f88 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,6 +118,12 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description +:::tip Related blog post + +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) + +::: + ### `Function event touched` #### シンタックス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md index 097dd0e8b7c0ff..c5a5e4be2c6c42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md @@ -9,10 +9,10 @@ title: OpenAIChatAPI ## プロパティ -| プロパティ | 型 | 説明 | -| ------------- | ------------------------------------------------------- | ----------------------------------------------------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | チャット補完リクエストを管理するインスタンス。 | -| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | +| プロパティ | 型 | 説明 | +| ------------- | ------------------------------------------------------- | ---------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | チャット補完リクエストを管理するインスタンス。 | +| `vision` | [OpenAIVision](OpenAIVision.md) | ビジョン関連のリクエストを管理するヘルパーインスタンス。 | ## 関数 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index 1ebef506067400..3a8476b40a366b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -1,6 +1,6 @@ --- id: develop-components -title: Developing Extensions +title: Componentes de desenvolvimento --- ## Componentes @@ -9,7 +9,7 @@ Um componente 4D é um conjunto de funções, métodos e formulários 4D que rep Você pode desenvolver componentes 4D para suas próprias necessidades e mantê-los privados. Você também pode [compartilhar seus componentes com a comunidade 4D](https://github.com/topics/4d-component). -### Definições +## Definições - **Projeto Matrix**: ´projeto 4D usado para desenvolver o componente. O projeto matriz é um projeto standard sem atributos específicos. Um projeto matricial forma um componente único. - **Projeto Host**: projeto aplicação onde um componente é instalado e usado. @@ -153,7 +153,7 @@ Os comandos abaixo não são compatíveis para seu uso dentro de um componente p - O comando `Current form table` retorna `Nil` quando é chamado no contexto de um formulário de projeto. Por isso não pode ser usado em um componente. - Os comandos da linguagem de definição de dados SQL (`CREATE TABLE`, `DROP TABLE`, etc.) não pode ser usado no projeto do componente. No entanto, eles são compatíveis com bancos de dados externos (consulte o comando SQL `CREATE DATABASE`). -### Partilhar os métodos projeto +## Partilhar os métodos projeto Todos os métodos de projeto de um projeto de matriz são, por definição, incluídos no componente (o projeto é o componente), o que significa que eles podem ser chamados e executados dentro do componente. @@ -183,11 +183,11 @@ EXECUTE METHOD($param) > Um banco de dados de host interpretado que contém componentes interpretados pode ser compilado ou verificado quanto à sintaxe se não chamar métodos do componente interpretado. Caso contrário, uma caixa de diálogo de aviso será exibida quando você tentar iniciar a compilação ou uma verificação de sintaxe, e não será possível executar a operação. > Lembre-se de que um método interpretado pode chamar um método compilado, mas não o contrário, exceto pelo uso dos comandos `EXECUTE METHOD` e `EXECUTE FORMULA`. -### Compartilhamento de classes +## Compartilhamento de classes By default, component classes cannot be called from the 4D Code Editor of the host project. Se quiser que suas classes de componentes sejam expostas no projeto host e em seus componentes carregados, você precisará **declarar um namespace de componente**. Additionally, you can control how component classes are suggested in the host Code Editor. -#### Declaração do namespace +### Declaração do namespace Para permitir que as classes de seu componente sejam expostas nos projetos host e em seus componentes carregados, insira um valor na opção [**Namespace do componente na class store** na página General](../settings/general.md#component-namespace-in-the-class-store) das Configurações do projeto da matriz. Por padrão, a área está vazia: as classes de componentes não estão disponíveis fora do contexto do componente. @@ -220,7 +220,7 @@ Obviamente, é recomendável usar um nome distinto para evitar qualquer conflito As classes ORDA de um componente não estão disponíveis no seu projeto host. Por exemplo, se houver uma classe de dados chamada Employees em seu componente, você não poderá usar uma classe "cs. Mycomponent. Employee" no projeto host. -#### Classes ocultas +### Classes ocultas Assim como em qualquer projeto, você pode criar classes e funções ocultas no componente prefixando os nomes com um sublinhado ("_"). Quando um [componente namespace for definido](#declaring-the-component-namespace), classes ocultas e funções do componente não aparecerão como sugestões ao usar a conclusão do código. @@ -243,7 +243,7 @@ Um arquivo de sintaxe (formato JSON) é criado automaticamente durante a fase de Se você não inserir um [component namespace](#declaring-the-component-namespace), os recursos para as classes e os métodos expostos não serão gerados, mesmo que a opção de arquivo de sintaxe esteja marcada. -### Passar variáveis +## Passar variáveis As variáveis locais, de processo e interprocessos não são compartilhadas entre componentes e projetos de host. A única maneira de modificar variáveis de componentes do projeto host e vice-versa é usando ponteiros. @@ -306,7 +306,7 @@ Neste caso é preciso usar a comparação de ponteiros: If(myptr1=myptr2) //Este teste retorna False ``` -### Gestão de erros +## Gestão de erros An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. No caso de um erro gerado por um componente, o método de tratamento de erros `ON ERR CALL` do projeto host não é chamado, e vice-versa. @@ -316,7 +316,9 @@ However, you can install a [component error handler in the host application](../ However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. -### Acesso às tabelas do projeto local +However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. + +## Acesso às tabelas do projeto local Apesar de os componentes não poderem usar tabelas, ponteiros podem permitir que projetos locais e componentes se comuniquem entre si. Por exemplo, aqui está um método que pode ser chamado a partir de um componente: @@ -342,7 +344,7 @@ SAVE RECORD($tablepointer->) > No contexto de um componente, 4D assume que uma referência a um formulário de tabela é uma referência ao formulário de tabela do host (já que os componentes não podem ter tabelas). -### Uso de tabelas e campos +## Uso de tabelas e campos Um componente não pode usar as tabelas e os campos definidos na estrutura 4D do projeto de matriz. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Pode criar e gerenciar bancos de dados externos usando SQL. Mas pode criar e usar bancos de dados externos e então usar suas tabelas e campos de acordo com suas necessidades. Usar um banco externo significa designar temporariamente esse banco de dados como o banco atual, em outras palavras, o banco alvo para as pesquisas SQL executadas por 4D. Você cria bancos de dados externos usando o comando SQL `CREATE DATABASE`. @@ -422,7 +424,7 @@ Lendo de um banco externo: End SQL ``` -### Uso de formulários +## Uso de formulários - Só os "formulários projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. Só os "formulários de projeto" (formulários que não estejam associados a nenhuma tabela específica) podem ser utilizados em um componente. - Um componente pode chamar formulários tabela do projeto host. Note que nesse caso é necessário usar ponteiros ao invés de nomes de tabelas entre colchetes [] para especificar os formulários no código do componente. @@ -433,7 +435,7 @@ Lendo de um banco externo: > No contexto de um componente, qualquer formulário projeto referenciado deve pertencer a esse componente. Por exemplo, dentro de um componente, a referência a um formulário do projeto host usando `DIALOG` ou `Open form window` gerará um erro. -### Uso de recursos +## Uso de recursos Os componentes podem usar recursos localizados na pasta Resources do componente. @@ -441,7 +443,7 @@ Os mecanismos automáticos estão operacionais: os arquivos XLIFF encontrados na Em um projeto host contendo um ou mais componentes, cada componente, bem como os projetos de host tem sua própria "string de recursos." Os recursos são particionados entre os diferentes projetos: não é possível acessar os recursos do componente A do componente B ou do projeto de host. -### Execução de código de inicialização +## Execução de código de inicialização Um componente pode executar o código 4D automaticamente ao abrir ou fechar o banco de dados do host, por exemplo, para carregar e/ou salvar as preferências ou os estados do usuário relacionados à operação do banco de dados do host. @@ -449,7 +451,7 @@ A execução do código de inicialização ou fechamento é feita por meio do m > Por motivos de segurança, você deve autorizar explicitamente a execução do método de banco de dados `On Host Database Event` no banco de dados do host para poder chamá-lo. Para fazer isso, você deve marcar a opção [**Executar o método "On Host Database Event" dos componentes**](../settings/security.md#options) na página Segurança das Configurações. -### Info.plist +## Info.plist Components can have an `Info.plist` file at their [root folder](../Project/architecture.md) to provide extra information readable by the system (macOS only) and the [Dependency manager](../Project/components.md#loading-components). @@ -498,7 +500,7 @@ On macOS, information is available from the finder: ![](../assets/en/Develop/infoplist-component.png) -### Proteção dos componentes: compilação +## Proteção dos componentes: compilação Por padrão, todo o código de um projeto de matriz instalado como um componente é potencialmente visível no projeto host. Em particular: @@ -511,7 +513,7 @@ Para proteger o código de um componente de forma eficaz, basta [compilar e cons - Os métodos, as classes e as funções do projeto compartilhado podem ser chamados nos métodos do projeto host e também ficam visíveis na página Métodos do Explorer. No entanto, seu conteúdo não aparecerá na área de visualização e no depurador. - Os outros métodos projeto do projeto matriz nunca aparecerão. -### Sharing your components on GitHub +## Sharing your components on GitHub Nós encorajamos você a apoiar a comunidade de desenvolvedores 4D compartilhando seus componentes, de preferência na [plataforma GitHub](https://github.com/topics/4d-component). Recomendamos que você use o tópico **`4d-component`** para ser referenciado corretamente. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 2d483010e8a237..6ec7771096b906 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,6 +118,12 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description +:::tip Related blog post + +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) + +::: + ### `Function event touched` #### Sintaxe From 08b64dcabc8e74e7d886a5dd3bbcb09f4925bd8b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 9 Oct 2025 10:48:51 +0200 Subject: [PATCH 069/119] fixes log recording --- docs/ORDA/orda-events.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index c20f5c28a028dc..51552b941fda8c 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -137,12 +137,6 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description -:::tip Related blog post - -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) - -::: - ### `Function event touched` From 40309b8ccf7d728d52341b2b247063c4bc695c50 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 9 Oct 2025 18:41:48 +0200 Subject: [PATCH 070/119] Feature/winui (#2960) * first try * Update forms.mdx * first draft * updated with vanessa --- docs/Notes/updates.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index c6dcc535e548a8..f75b4a25e1907b 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -115,6 +115,11 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Developer Preview + +[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. + + #### Behavior changes :::caution Index rebuild From 8109eea28c75f4c5c3c9c947f794af24a848b534 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 10 Oct 2025 09:36:39 +0200 Subject: [PATCH 071/119] New Crowdin updates (#2961) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (Spanish) * New translations debuglogfiles.md (Japanese) * New translations debuglogfiles.md (Portuguese, Brazilian) * New translations overview.md (Japanese) * New translations openaichatcompletionsparameters.md (Japanese) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (Spanish) * New translations debuglogfiles.md (Japanese) * New translations debuglogfiles.md (Portuguese, Brazilian) * New translations overview.md (Japanese) * New translations webserverclass.md (French) * New translations webserverclass.md (Spanish) * New translations webserverclass.md (Japanese) * New translations webserverclass.md (Portuguese, Brazilian) * New translations forms.md (French) * New translations forms.md (Spanish) * New translations forms.md (Japanese) * New translations forms.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations http-request-handler.md (Japanese) * New translations http-request-handler.md (Portuguese, Brazilian) * New translations overview.md (Japanese) * New translations http-rules.md (French) * New translations winui-form.png (French) * New translations winui-setting.png (French) * New translations fluentui-form.png (French) * New translations fluentui-setting.png (French) * New translations http-rules.md (Spanish) * New translations winui-form.png (Spanish) * New translations winui-setting.png (Spanish) * New translations fluentui-form.png (Spanish) * New translations fluentui-setting.png (Spanish) * New translations http-rules.md (Japanese) * New translations winui-form.png (Japanese) * New translations winui-setting.png (Japanese) * New translations fluentui-form.png (Japanese) * New translations fluentui-setting.png (Japanese) * New translations http-rules.md (Portuguese, Brazilian) * New translations winui-form.png (Portuguese, Brazilian) * New translations winui-setting.png (Portuguese, Brazilian) * New translations fluentui-form.png (Portuguese, Brazilian) * New translations fluentui-setting.png (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/current/Notes/updates.md | 4 ++++ .../current/ORDA/orda-events.md | 6 ------ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 4 ++++ .../current/ORDA/orda-events.md | 6 ------ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 4 ++++ .../current/ORDA/orda-events.md | 6 ------ .../docusaurus-plugin-content-docs/current/Notes/updates.md | 4 ++++ .../current/ORDA/orda-events.md | 6 ------ 8 files changed, 16 insertions(+), 24 deletions(-) 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 ac82e4a803158f..8631b7c6f90353 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -169,6 +169,10 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Vista previa para desarrolladores + +[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. + #### Cambios de comportamiento :::caution Index rebuild diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 4b5104f5524e66..086ad86ee9d7d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,12 +118,6 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description -:::tip Entrada de blog relacionada - -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) - -::: - ### `Function event touched` #### Sintaxis 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 6a9fe062d0af73..f03e57f73aeef6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -158,6 +158,10 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Developer Preview + +[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. + #### Changements de comportement :::caution Index rebuild diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index d9c694cc350a75..1f4e78f6cc9c23 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,12 +118,6 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description -:::tip Related blog post - -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) - -::: - ### `Function event touched` #### Syntaxe 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 86c6b310d4e076..178d4be2d6c911 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -159,6 +159,10 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### デベロッパー・プレビュー + +[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. + #### 動作の変更 :::caution Index rebuild diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f7906c3d4d2f88..33bc7539dc0b38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,12 +118,6 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description -:::tip Related blog post - -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) - -::: - ### `Function event touched` #### シンタックス 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 74a8babc56f6f9..43dfdd3934ef18 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -158,6 +158,10 @@ In binary databases, you need to select the required components in the 4D instal ::: +#### Prévia do desenvolvedor + +[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. + #### Mudanças de comportamento :::caution Index rebuild diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 6ec7771096b906..2d483010e8a237 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -118,12 +118,6 @@ When an error occurs in an event, the other events are stopped at the first rais ## Event function description -:::tip Related blog post - -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) - -::: - ### `Function event touched` #### Sintaxe From e62618a409c680b0bb2e4c05ce8c4b3fd666343a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 10 Oct 2025 15:20:40 +0200 Subject: [PATCH 072/119] New Crowdin updates (#2963) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations develop-components.md (Japanese) * New translations overview.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations installation.md (Japanese) * New translations updates.md (Japanese) * New translations webarea_overview.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations develop-components.md (Japanese) * New translations overview.md (Japanese) * New translations createstylesheet.md (Japanese) * New translations updates.md (Japanese) --- .../current/Extensions/develop-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md index dfc0801a5cd8e3..767a504dacbaae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md @@ -316,7 +316,7 @@ component_method($input_t) しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。 -However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. +しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。 ## ホストプロジェクトのテーブルへのアクセス From 0c0e066d6756ab6327afe0883ebcdff95effd297 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 10 Oct 2025 15:50:54 +0200 Subject: [PATCH 073/119] version 21 created --- .../assets/en/WritePro/pict2646292.en.png | Bin 250329 -> 0 bytes .../assets/en/WritePro/pict2646294.en.png | Bin 454077 -> 0 bytes .../assets/en/WritePro/pict3033006.en.png | Bin 631 -> 0 bytes .../assets/en/WritePro/pict3033008.en.png | Bin 1168 -> 0 bytes .../assets/en/WritePro/pict3071271.en.png | Bin 9191 -> 0 bytes .../assets/en/WritePro/pict3307937.en.png | Bin 12243 -> 0 bytes .../assets/en/WritePro/pict3307941.en.png | Bin 8487 -> 0 bytes .../assets/en/WritePro/pict3308424.en.png | Bin 4088 -> 0 bytes .../assets/en/WritePro/pict3513503.en.png | Bin 27062 -> 0 bytes .../assets/en/WritePro/pict3513505.en.png | Bin 921 -> 0 bytes .../assets/en/WritePro/pict3541581.en.png | Bin 872923 -> 0 bytes .../assets/en/WritePro/pict3626363.en.png | Bin 99975 -> 0 bytes .../assets/en/WritePro/pict3752166.en.png | Bin 14438 -> 0 bytes .../assets/en/WritePro/pict3752176.en.png | Bin 11223 -> 0 bytes .../assets/en/WritePro/pict3893246.en.png | Bin 4621 -> 0 bytes .../assets/en/WritePro/pict3893248.en.png | Bin 3667 -> 0 bytes .../assets/en/WritePro/pict4619596.en.png | Bin 7207 -> 0 bytes .../assets/en/WritePro/pict4619694.en.png | Bin 7602 -> 0 bytes .../assets/en/WritePro/pict4619865.en.png | Bin 7203 -> 0 bytes .../assets/en/WritePro/pict5562054.en.png | Bin 18600 -> 0 bytes .../assets/en/WritePro/pict5562058.en.png | Bin 19421 -> 0 bytes .../assets/en/WritePro/pict5761667.en.png | Bin 37054 -> 0 bytes .../assets/en/WritePro/pict5761669.en.png | Bin 12782 -> 0 bytes .../assets/en/WritePro/pict5761671.en.png | Bin 725 -> 0 bytes .../assets/en/WritePro/pict5761673.en.png | Bin 8037 -> 0 bytes .../assets/en/WritePro/pict5761675.en.png | Bin 5840 -> 0 bytes .../assets/en/WritePro/pict5761677.en.png | Bin 7016 -> 0 bytes .../assets/en/WritePro/pict5859437.en.png | Bin 12419 -> 0 bytes .../assets/en/WritePro/pict5907021.en.png | Bin 9184 -> 0 bytes .../assets/en/WritePro/pict5907023.en.png | Bin 9681 -> 0 bytes .../assets/en/WritePro/pict5907026.en.png | Bin 10202 -> 0 bytes .../assets/en/WritePro/pict5907030.en.png | Bin 4093 -> 0 bytes .../assets/en/WritePro/pict5941073.en.png | Bin 20152 -> 0 bytes .../assets/en/WritePro/pict6014414.en.png | Bin 115615 -> 0 bytes .../assets/en/WritePro/pict6014426.en.png | Bin 43182 -> 0 bytes .../assets/en/WritePro/pict6014429.en.png | Bin 3132 -> 0 bytes .../assets/en/WritePro/pict6022144.en.png | Bin 116524 -> 0 bytes .../assets/en/WritePro/pict6131919.en.png | Bin 46653 -> 0 bytes .../assets/en/WritePro/pict6260026.en.png | Bin 5454 -> 0 bytes .../assets/en/WritePro/pict6260033.en.png | Bin 6736 -> 0 bytes .../assets/en/WritePro/pict6260036.en.png | Bin 3095 -> 0 bytes .../assets/en/WritePro/pict6421031.en.png | Bin 103730 -> 0 bytes .../assets/en/WritePro/pict6421340.en.png | Bin 8309 -> 0 bytes .../assets/en/WritePro/pict6421342.en.png | Bin 9040 -> 0 bytes .../assets/en/WritePro/pict6421344.en.png | Bin 9147 -> 0 bytes .../assets/en/WritePro/pict6421356.en.png | Bin 9254 -> 0 bytes .../assets/en/WritePro/pict6434575.en.png | Bin 2045 -> 0 bytes .../assets/en/WritePro/pict6434579.en.png | Bin 605 -> 0 bytes .../assets/en/WritePro/pict6434721.en.png | Bin 9401 -> 0 bytes .../assets/en/WritePro/pict6434723.en.png | Bin 7206 -> 0 bytes .../assets/en/WritePro/pict6434756.en.png | Bin 4332 -> 0 bytes .../assets/en/WritePro/pict6441966.en.png | Bin 6080 -> 0 bytes .../version-20-R8.json | 1042 ----------------- .../version-20-R9.json | 742 ------------ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 10 +- .../version-21/API/SystemWorkerClass.md | 2 +- .../version-21/API/TCPConnectionClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/Desktop/building.md | 2 +- .../Extensions/develop-components.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/checkbox_overview.md | 4 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/FormObjects/properties_Text.md | 6 +- .../version-21/FormObjects/radio_overview.md | 4 +- .../WritePro/commands/wp-export-variable.md | 2 +- .../aikit/Classes/_OpenAIAsyncOptions.md | 2 +- .../commands-legacy/delay-process.md | 2 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 4 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 4 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-21/commands/wa-set-context.md | 2 +- .../version-20-R8.json | 1042 ----------------- .../version-20-R9.json | 742 ------------ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/HTTPRequestClass.md | 2 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/SessionClass.md | 1 + .../version-21/API/TCPEventClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/FormObjects/properties_Text.md | 8 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 2 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-info.md | 6 +- .../version-21/commands/process-number.md | 4 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-20-R8.json | 1042 ----------------- .../version-20-R9.json | 742 ------------ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/EntityClass.md | 4 +- .../version-21/API/EntitySelectionClass.md | 4 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/Desktop/labels.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/listbox_overview.md | 14 +- .../version-21/commands/compile-project.md | 3 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/folder.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 4 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../commands/new-shared-collection.md | 12 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-20-R8.json | 1042 ----------------- .../version-20-R9.json | 742 ------------ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 4 +- .../version-21/API/DataClassClass.md | 26 +- .../version-21/API/DataStoreClass.md | 2 +- .../version-21/API/EmailObjectClass.md | 10 +- .../version-21/API/EntityClass.md | 4 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/SystemWorkerClass.md | 2 +- .../version-21/API/TCPEventClass.md | 2 +- .../version-21/API/WebServerClass.md | 10 +- .../API/WebSocketConnectionClass.md | 2 +- .../version-21/Backup/log.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/dropdownList_Overview.md | 2 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 2 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../version-21/commands/session-info.md | 2 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- versioned_docs/version-21/Project/image.png | Bin 0 -> 14867 bytes 184 files changed, 404 insertions(+), 7538 deletions(-) delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033006.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3033008.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3071271.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307937.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3307941.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3308424.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3541581.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893246.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761673.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907026.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907030.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5941073.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6022144.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6131919.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260033.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260036.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434575.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434579.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6441966.en.png delete mode 100644 i18n/es/docusaurus-plugin-content-docs/version-20-R8.json delete mode 100644 i18n/es/docusaurus-plugin-content-docs/version-20-R9.json delete mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json delete mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json delete mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json delete mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json delete mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json create mode 100644 versioned_docs/version-21/Project/image.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646292.en.png deleted file mode 100644 index 2f6dd9ff7667f9e033a3d058e8a8b443269e31b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250329 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
        bZ!xLg#HCV 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict2646294.en.png deleted file mode 100644 index c5706f5b23244e3f467bffbafebd2ab35f6f7e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 454077 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

        uY;isboYEpx(2vzq{jsKOU4r8mu5&UKl| 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

        Y3m9DcKx z^nY4R9Im9#-lbAL$qD(9r9bFutQA~kcz3pB?vB1QVx=ES zAJdOj6-Q1{6V9Zbp+smVHDT4DbC-=&F*li2c})<}44O0`Kag%C?8hC@K7{Ek5dSCO z1S(*6UpO5)Vs#w?FgK>9TE zt+lnu#+{WhM~W`rnC+A_|J+0Wt7d6wX=G%C8REM&&q20*hQYoF*x!VTrPG*KW5}OB z|DgX>*WTVvS$1EZ(R7?KMB}w|21gea#RTlY5`q7XyMO2Nh*+=Oke0lQeC6YLP&TOf zTSI`9gFzf{Oozzf8#|$V7IP!bbK7a*x4$XVHf>qFe#eQB4in|mXLI*DRZpD^ua}1>!cgfTQ1=^6#q6dQ2M;Vos;Cj$UNW`9)$FB zQ9d@dTd#i#5UkjgSo&k5%4&-4b9~fmZMg92TIUz+8<6n&Gb;zrqJI6OWF|3*>ONK2 zwyh{%r0y?|NKhiq2lizqIH_A_nyS2U>b#Ptgc{80UIXfN>%xs{-ICi%>(9n}SrbEj zY(F(hv?hPh-~;>1B(u~CdDQiECbBm2|9zdahd$s^Zm$7={7&ZP-aWvyS_e$9s7lM@ zy!*ZAcTA5*IIM+w9Kmb-DZf?uT01jB`i%|ZiJGu}z_Vi3j|l=Zmgz!Q@0qi@*`=EX z;p^|Pb`~Vp#QF#|J|BzH+|`^H zAQoFm@OLPxlrKLx*IFPi8-cszuYW=ZX(pL+>NHcaTbROg5Q4{-AaN>qZJF%a;&@_; z_^qkUO#h#$B>dD9Ze6%q3j^xLPaU7xl*rXjFnF`*8#nWQ^!432>4E=q!j zOVtE?8F~x2t0Rjxb!t_{1Be7;Hojh8PKv@_hRHGr`0Lf%v>XRt&WzYkWZ*%3l;rYq zkjj8ZhEQ^x&T!FfXe*Y&x&IdtkVqsf?)~BZ76YO?WdyOlzqN4FWfaTvtDaJ~?d>rJ zD!})Jg+-zM8_Oe=R}kwz8yMCBM`hL3C+pKul*!Le4z{H&dLc5`gns-X>o&<@?#EwYU*mdS9|pAAM^2;i2wiq diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513503.en.png deleted file mode 100644 index eddf97544e05758b3da1514cc27a43f739f424cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27062 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3513505.en.png deleted file mode 100644 index 5e8669f5c2aace698617cb118e0686d8012dcc92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 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≷~|ab|IUUdttWs`*XSq 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

        yGx|=*%Z2 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˽DYS$D{t$?+FbAzXA9B6FeQ$+9j&7(D2X+2)Qew=s`bF|Fk zx_PmBqaC!Rn^)_Dmuz8siV(6Cbj?&!rM}v#80ke?3^VhiUXR?_G+cHwbdWtm?m1_V zm$qZ3(J#RyhF{kXCgB(~C?5&ds(=9#5{wVLo)5};*>$&hqXhYPw6J-z&{nj&VShbf zg|aL|1ZPQsio{GSR5lx%Vks~hM1{U46#{)z?{>$lsqNdZO1mdx!|M^iCsT_)m2@}# z+F+Fr>6i&HLvKLl*;O+ZKARe+P6J{?Bp{1#1qSq$d+L)hygLb0>2PH&3XA)_?tgjH z{q?;GTED&PLD%nlth4dU8~a%atAIv@i1aME0`$6GnzhMVG+5kzR_T!y{9}hJ3&byV ze_QT?vToi0)i!V6dbkiPsb61~`!`FK(8Yyph0L))FY8_eQyI1BIg_2Wn93ZfDgTB2 zm#m#Q(AkJ2P-OD*#XL$=Wx3@m45<%W*H4A)M>4s>4v7+3Lt`7+kXI9+_5DCi$vWU2 z-lqAc0|R+8mxNGTlLe*5M4GNt?`e7sOHC2*TGk)x$MuctVkQfU-!>FV zww1|*t2a+pjc)j9Z3tp#ER`ezGC9Tq=|Ncnbw+ILfROg@HmO4cIS8uUwvVb`R!8LT z(2XfUHLlde*vRKl)MhYXF{LjoDYVnl8)$ce()MO&{B}DvE%wIm091RrZh%bi*wrJM zt>qt}G#Um(fwESP#w=|{d>||SxI6v;?Kf+X)z5@CmI1t&ZeNM1wsb>fCPKbdTtSeXM^vjo1{9>2DpyHQ*Bv6tW+KmwAh zq=^D9II6U2dzbY_Pd10oly@2&;g+Rm`++uXDEy+Jh{h>dT-;f5<|4!sc!T{H6NtgT z<{tMryg~5Fp#`XOxjg|~&Do4$JhzkKmq=aIp7#gi z)im8+Pm2OZEDBODRte@8-RZYGYXF4{H(*Kb0F)mmHHLcoUcsB3)8(5t@1tfcM9(zZDO%ccROQt*K>@f}3$(YRMl zQO>5Du$7ZLLsOs>fGP_sA|EXQprx^A%k*xGXeGX)S~tdfgXB<*!5O)$d%n+2&H)`Q zOh2%wVDhYV6K#T~uHS;My0?{}RdIvwQeg0nrT+jw3Et}gX~0n&J6!JFE^Y~s7Fa3U{d=w)HB84?xyX8h#)9GQw zi}G2?W977#EVGOd>u(YY2xPKNuswoZR>i*}5E1{vX$xq5fcLW0oi+KeJ9)D^)WNks zUe~6scWC!=x_ddcQpM$X`*PYlkGHBi6rTk<9XIPh8dJ8CUIm9gA8($IS%SoXH=9Bo zy;$aJ#my!1Ics(RW>FSdZe4(&CVK`Vj`z-|sFHn4YiQ92=K1fr30>Szykr(|7qgwl z*ni&iF1WV|P_TE|?45WUo2H5xvY5M_uAh$A4h5WOxAQxL#T{Ot?kq4yf(E6)2DoTa zUeVF*U>;3fonFCL%02%kYCvK13Vfx`U8Uq;VusAYe%&pC5+I@C&Qdr5#~#e_L8G8+ zqfDem3pw~H{vSj$8;v8V7&Bp8F4rABMcwatHe0Kw^##i?gXjle0lKo=U>^L_4MGe0@`i&TU}Eik66)D?F7T%_vR3IV1MSgX}Q=4(WZazbTU zV&Ii@@nSvRNVTW#_;KeZElGUgj0Zl%^S;xw+AX};8b9CCRmCK&jjy&Q;^)4>y{tHS zx0@vce3-MXs~J@Xg~u6cC+_KnnTnyJtLw3}#ETAF_AzHNUR>q{GqHa$ z-M?r~K1~mQo*e$toB*_bn_T=hy}WMDO|P0>4yTv5)2rLNPdCly+rj7CVQBQ(p2c^+ z=*SvgUXRbO$H%wRlk3UR?G(6mdi%Y`;9v3g$3h zQ6+{AWLmv_wqod@0VIX2KwRn5C2ZrIs({9yXr5oau86_=N*I5aR8mn%qlSvIz*kRI z1&k+rl~V7?8BmLbs$gJc5ugx)~{dpep>|aq(q_B{E~)??3wR7F=Ss5R=*fB^6l;tv2E8*MX&!A>%7;NvKrFTSEY;DYuC*lxK~@E;(j)_NeSh>i1p^I00!o>cG=ZbqaX786 zpz0+BP${eh*A-JGl+H}8U4Yj3;~s3;9lFOhu-d!0JGh!2UQYI|CVQ8E-oDTcmB73y z)YhD+D(z=B8s0s%MukC!C*$q&yUlZV6IrqI$+#L@!Th5mnv|tU{$jFo+3a85f#~{I z&B5iL_s^&1YsDefi>oRZ&3TTSwPQOb1MvDmYv4L|*uA{#UQT)!%>h>jo?V#AvaR2& z>0IbfYr7JsoV`M7%bZ@*pDNhWJ|ePHc@YdVv6=}C({WKEM%v7$={C=-c3{@l@2d@k z51aW6G_rtD+#_;GPRmE+3+fcoVTBlV86>6w5q914TYFAPA7=aM71r(5xf3ClutAK$ zPx4{zr)8dQfr>K&ROZV!RlvqeL&|rtQy*+|v$Sm<6oMfA8%+R4#w~TLrqq!4!%xUT z-i#?*2K&_s+u+98x+k3P0L*-WJ~Dd-N7W9??rae$#7(TXo&=#*zh*gFj00`CJ7#6M zg;**o_rxRf;5>CXsia5^ULC}Bm09(coZaQiswBGPn~7uHr@m3Kg5n8$FTYVf8T%t2 zS(ebO3sv+W%V+5)&esPu-G3m~rG5j}GF%W84d@bjIblmjT1fSFCMg5YvB#XfM_Gy8 zT|I6#P9~khF@Q?T#nBkjMsQ%wFlKJ&aOBKodo>DosZW?0v6-0L!>j4;&vysE-ktn5 z1!7(N_UH4P>DlcFymT=bT@5FO2o9#7ZU(;$n_ouYtLe|TcPu|yEn|FnJvqC%17)54 z)|}pOlIHk(CHKGP?+=W!;+SG-qJ{MLkrGrMtxA!4Xmp=`tym&|Q{Wjl-yT)OdNR9o zg*^pmeJo$rm!}`UJYD(nNR)N`$ONsFD2!XIMDG(3mp@ghj6f_;TVhpTmdfbu6YZwT z^^ouhfK=Uz3wIR?YFDxaRsxPvLp7>UnDlCe?e124%22Y-KC;vnR^<#|*ZmjvRC^Ym zf;hRX1o+e$&#y;6E_SBp!99Un`ZVPJiidD6I8=mDP!0#GL9isQ zvY2{MbG_zSFHU@6Ls<>m*npy^J`VS9Yp>-NM~QQUG+m?kmNtJ&>#A!*0m~)DPyWlE zAfLFl+*zrhsZY<(pt6T8Zfn!9pa|R5m-JF9D3Cx(vp7bCiV`ch3)p5=4E<%r ze^Yq1`GHG$InUjpN|ku?HI@>M2}LKEp)Al^37dQJ9%cqz&QMp(MI-9i$RP1WX^&(C zs?;*xHg4|^uN4ts>%Yp_liKYrtqov^NWrR7Oxr2H-Z;Mu8dRfIwPik{&ZZo;04bSN zP$|9~k}3an390+eTwXr}N@dynuGn>Q~K z6i}lvoY1j%PfQb~K%hHcS>)sAo&cp7KgG;h#>pwZswF!-bXlXQ9ZnfC+&x5Bn~JYagg2X~ZDv#pR8DMrRY0pE2sCUZwooUS zWd;ZQWb}dfXS#QJw|_C(y|lF8cFF+u%zYY{BWvsIZtK*->!^DAqb~0f&g6lc$HVM1 z19+z*E|vf@_OI#}hhQq8(dWCp3$WbX(be7V)g8wgF8KM+oW}%}1R@s1;yf!>EVSTZ z^0=mEjs>%&+41!F{H{U`P3z*WPMXe{@@3^{45Z{SkyGlsktwg0Wl4+bs}RrRogB4R z0;0lTXV54Dw3Rh4QuB$81`#BCYN1N-=fIMf_vCJzKZr{a9M@0YS}T31cr3?8D(MtLvXod!k@On{O^birCopLYvI1hg-nf0; z8NU`~S+n;t9(X`mh;#p>j|*j&`m_XSW* z_Vg!jZ=eygKlH|WH--J?J70JMyoY+UqFU#X@1rFl5oulsQ(Hm2q1b90XQ2rsjmls1 zVvD}M+sHUyRAd<|>^YZcj@py&n0MZO>-;MPfyZI>H5bb?Ey$K@z^!sV2f)|Rf>4%H zfu>ms(1NN0O;nxn#>uo7+XvHDa21ztStXb|<~?fl5Ltn~g0-A_WoYQ?*BU!Xf1Muw zIyu#mWy`E{dt^12H-Emm8Gjy3KVMIOxw-rGw)uS1e7YTdx-m8D@@BxVXTJ>rSI56j zkG_o0zcc`|^Isbd|BkZ$^1nYW%F+b5GDv-=(z?Jopre~7AFrQ$G(HeOWp|ypxgHta zH+)d*{JO@k9wJhLTE~>23yAgnquE){R&SrT5rg`#o*4)D+Y>I~Rs7eQ7Pj;;W8~os zWj#q);4`omza}Om;uhS62td&oQPj_ zXPMUWWWzdF9_4N*4G97)CR;ItMKib6@5y2V>yk_=`Y~iUbu|Y}n$|1rVFQIn%wyRu zqj$xS<_AF038 zRvL72rfsfb-X~kS$=y;#(0HQ>cHLvg?+z#L)FCEs4I?y$Fm(uxqS4lf(3)8mHA8Zr zrSxx%7rPBuWjQq}bRQWJac#<0Wl1SQpk!ffj$ZeT9SlJ6MsW^Dav5Mi~7qT}gMSvcR-e2qpPSvu+;;zYVlFRW?0<>ViZJ=NasDiRO?YBevATg0Xe6`ly z;UOa+ndb?LeqQluh9u1Fo{2+4mc0;G!80X81KiW-wPKPEm52kjM83;cxhTSYCLlPK zr~@R!BY-{1zMy>Zay&(T)mA8cic4y2dQz;48u+@y#a^P^6`GYB%tk9@6xQOL1)m^0 zV#g1L09~&0^ePO*0DI21#BP9%o@mPY76q|U)gh_^N5)Z2FZEYF2u^! zIRlf_!!r|K_L>**WwCsfS{L_N%b?JiWu!$}u}6dCU+)^t+t&HqYu*B}_QtCRHo4gZ zJ|zo_WuNKERE@)VGb`1HV8cdmW7H%Sq?$*poQ$@U56L8rsbX~a^XSC(S>u!6n$uq= z7uVB^Ynxwvx&~b7x%xb4E^nJF@zves;LjJgcjsRwr@uC*zfDhmX>3)@fnO%)zl_hn z_sjZg{{FZq>*31vgO8S`c({_bS1Z>^sk(Uxq)E^qz~*aMpdPK;HZQBSWEb?3o}|1x zSSV>-W>uM3wPLna@Kq}Iu3Dx2i8xBo1ps@x^5r=|&Pp2zN?fzvMj}s)3>5Df-)}Ty zl12bsqAzB?2&#~hQeXHa35_feTs1JnMQdN4Z`iq*J=yZih{S7K00aMWNOa$zvcNDv zmpwEs1Yb*cnDuyJH>0#=-?FFFLMZK4=F-fCH;Js^UqBRh(|X62(w-Af7+w=93r&nz z2@%{HE$)t%_r}Zn&D#X`BgWQe#hqXWYiSM1M#%I48}RF`f;(&;TZ)$@Izh~wDXn7& z3Np160$52*JCIR@sl$6{(c$DCw0U2PmVF=3ZGrt#FSS2@-fx{+JR>)+ealEZz*XE+ zonIF_zb^N_2yEhIDoR`*%Nu(fn@M%O(7m=dV#lGOHZ1Cg1s*b#>C&e?531|-aLY^ zL=I?&e=W#s6{$w$EOMm;bG%X0Qgd5iy^yL=5LZVxFhtEZNhS8!2 z#K#r2U=svbAkd%8b!6EYJmx;jz|lrn6~xNy{#`g0)M~~d^xeO;4956@W)xjvHgW(d zeS{kfgSDbkuZ%@j8zbm%*CDW0^HV%pe_|c9R(^~Xwdy)^%Y(kn-*=StE$Efp62>da zvT=Nvv-UMdf+jXafRTZsCh_^&=!f;O1Y%!fJoxoNQ&yW4cQFjcKLD;QtTF_XGY&;r z!B=Ab_+9lF$4}*iWtq}~aHL8pdFFDQ@@0_t3W|}7iKc>%I*xv3g8uKaUd`Ky8aKZ^ ziJi*;B&!R`1}962BY3ypd`O?G&Z+oEMGc({e3cvzTTTTO=~H5#Lk(L75ggkK3j$)T zA5OtAYX@VX7w6eH9dDW<1zc%%F7Ecu@AfVY?PH7Z>DhE+cs#>;s=_pAU;GKN~qM~z@j5qB|5a4w3sSiN;N&4({O90L*$N%`?~xPfMhOH zab~!2SCkdyUP6O6Z?@o5mCnl`d2St}LKLnDy@H*zkr_>@>DEKm5$LdJ00V5+s|!3r zaB>|oUYchSba}-9x!g9AJsmQk0yE$`gZ+{a)gS3u+8QAK7JD~{PN0#Ebo-O}UW!ZDv$Ag#>qbn^5aV2k(^;yV#uzCyRVQo9h}lYRyqp|Z zW^jD`b0huI9Eq~5?QRW>FN4e9hM#VyS2t7Z4UQ(4!^!E*`0QqUa@~Nk&VDtU>*$w} z2mUfT`E_#od2;&mca-&4{QYrJ7QjaO7-y8Vp8U7YIYt!t{Ea0H9#v7gI`{)r4d#-4$rL*D|#>*t=CFaak~X7zRAvGjLs%|vjbBGb#wkB#+1@Hl&_WBE1NAIz zj!f{ZmjFssT(Qm;?&n$LT*cNWdt1%YXK~c2m^uP0$}t`@=y_tRP+lP?cpO;| zR;(N#r7ICrUUyUSvI-6XlYUw=u+U_ff>kYKlAe5&Gd%pL7ozsBa6y#phb^Wu)~mb| zUal>S@f~G-tG{n2k2GKb=@Uxu$U+w|XCt~96{)%ombSAZAgY{HR-4qf+58B6S^=vw z4A?#dgZ;p`S{VSp83_)IO5chHtbkU@ATgEhDb+G~X_4_@y@~3w-jcB5mLW5VbizA} zVdH4wK~_s!@-h3f!)$wrK|+~}7e&Pm7PoCs)@$(9PP1T-UDG^P_5n-N^%R*XCLA_v z^br~x95oK8rYu=n!O~6&rfSfj+;A?-_<~cZN&WcAqRDN31T$M;Sa%y$TqzHNN>?L0NvF_%TeD z1Cs=a-Lp9VZRKz5N)ZYQSs3Xo>Lh2dn?+c6G4Pqp4Z)vl%(OunDNr5)U%A^8E2-*+ zwPvzaF^A9AIK&7P`ExV`ZBoLvY;3tYOXYsbHb{x}Xbpw(XANWudY)oISCw(^72r1~ z@(J~a5dY4lv6Y^y4uTAnHB8|UwkT3lK5Dq!H>Yc9Yp{sy+qzlYx_P~Yu(N#blI|?e z5a-nxaK)+SgjHN?IM=zg8F6ZF7!smP;pTJyye{x$-kT4Ya16FT%fFDX8udwP-NL?G zqak>8&d0~d6ftVOb0=WC;)ioq1~9iDvHgOamKj=a&o8bqch32!J=Z+RZ6~8%xLN5h zLu~r3nq&ip)B-g&b-#IcGpGPO3CMTZZw+x^3!Yquxi`0m^_&Ot9$$G~Ei^I2Dx^d?qgHxA7>2Ug~~6F6_yHQR_= zw9Od8zGTpa?S|j%7|M@$UOzyn|Jg_t)0)d-s=2fTwqeI6VNW^-_5Uv4psj&Xtt2^V2&lI%k2f#KE+VNyVoK`m1Do8kq#I^0FNu|5q;hQbn%b=a` z2w|6&fJbC58PcF6V7a_$F^qO8;AvB{Kt%JMFUS=m-{iA1^y}A=l|PS?1i&byVfI=+ zQ+$=mtrr0~3n|kFtqB@G8l{lVM*?ZTFqUPRO>X|%&}NXcvvnvSfQz~;J2 zXhcHgWmS#`x54E!ayhT}TN7y`D*DEEE=5x<3mlZ#~Uq7d+6*UF~ zPi|}`vsw3+pa^E=Wp34d7)$k2i7O5)La4I?Tj~yxTQ3b{_0D||-(*QLZY)p1s7@|c zL9ALn4$6u;tKXmyR8h2EAr?UEhjkE9a<{VQlLAY@OSLmBf@R=SMTk{umMDv5t+;=J z!Dh(K?JW=bHhKj0H5pH{4uukRSkAaTzX zkdmh?Uqv9bAl0r4AhwZbf@-3Zu~cKT`k$Z$ zeU4vYx$LR+3b<7eE7?=<=UQQht>ek=>2&+VV(U7Wu8hP3VsWY+^}k8~c(QevOTLUXh%9DnXp zKmayQ1;c-DAOkRI@@`wKwQ|sGa05rv{_!36Jfk*ig#)=6bXIP-dv2N;53AI$w2~oP zuXl&9_ohpGleac^PE~Gw6uPji5tk1n`bFI@R%~#%yit%4L!L2j9ZMqBKJ9L<@UdXa z;lon+8yr}teYiB(AO#h|mbHJ$&$AC?={#1#9@*1zwKjUPZfiA%Uva-GR;e|r#UB2f z63U$LNvGmgA{RJGPFuwNmu6D;_Vu=F94Z+O@~)zj_)dI> z_3G-mUUnw;59J$Pzs<{3YW!W9D9U=|%WvO&-fEdbv@(}kD)`B6b@#4~A zFixWLbdx)EJ9-gYpjy#Taym8_(W;vU3hrJu%*}(#@zLke(Wk-D)!^v!;ON)!!Oz2e z;MT9xvzzApdUSqceT%c3>Dgd>HTW~Qt8HWqvii)i|T%&`;M}*A}}mlZ9BTU-_FsK|Jf zV}0DR54hNPe$x>DMdXB*7;Cb#Wnoim){NWAVdpAfx-Zv24lQhrmismvLA1*|+A0@i z`&72s-XRhWLf~ywj`gAO$E!z8XJ3@XPaQ*zEuLf1(%2wjAIkE}>E6|!_dnf1hoA1Y z(yFC@dADgEmo==qahh)?&JYfzcWa-Mr@?W;oh={F?e)h?psYNp&w^akmo;3n`d{nF zlKV$0EOw9t17j6>H;c#&?P@7Rp`g;+^E|M*=ozSWeeif4Ff7Y{nJ<#ElVFDzq$=+4cr1-l<+l>|MetB!;hQ6<4E_p~R^9r;G^ZZ_XL_VljoMDfM7B3or zo$o%Awe=IX!A7@>vbg`;umZ+CfnnZWhEOsJYVh2TqQoyHpv7BSFTBK(v0)8E4)Lu9 zWkF^$r(#Ne${B!pB_{bdkCrZQI>DZ7SR}W-=Z??9Rmvn;Rf)OJC#6;Vy#j+tbh$74 zrt6@5T=8Iwh@v;64gVDV*j9K^d{g;d_mq8L+=dScYVlAxV-&loE z)F$X{WeW#i39+KgfxB4793~jh)72j>C7B)tPXEl24Kr3Ps{R#a6(2@96RVt#3t|~= za9+9f8o8l;gHC0^j`v>ijV1zNY)naQVu!CT{rbwVR(M*Ojm*TGS;vZd7ndtoo|w|6xZmI7 z^S@_<@-BvGI;z_S(A>ggt7dFJ-YC0L9IEWkft^Af#s$n)S^*L1&{EyA&u(ajma-Vj zw82?QH!lH%|FUO{A47Mk+q~W!zwM2!(3tQ-6oa6w2)I6y)bNnyzA!BP{YQnt*vOzo zye?YWv03Vjm(BG`?ZH$*eChkoTtMU{@;tXx0TIfkk|24X$THER5+pBEGTb9CHjjyj zF}$e6;{D@$pbq4E)pgE9?nImFO#+WwnF~GR^L33B^%KW`wXm&+YJS@uS+BPAYdKp} zlg83kJavL=%$D3Ww3U%&WS|z1@#^ukGxHTY-Rzg$S_B-Tmy_Nn<`=Wi5FV}7XO?&o zZZQi^Ml+N(?Vjkx+P$>O%fb1S>FLVliDHT{c`DJ?Yd2;w^bn?pxKy`ULy%1}S zL0p2aFO$nJcNf1-&p%C$KaGzrM;3y=njT$F_b*M4YBz6@PzZlw}^2MJBXO zg0%+rBR2o4a;sQzhX*Ea-1t+hnCvFRTKyuR0$Bx&J^46*;sG=FqdlkHs}#&_*3(+> zRnnY{`dhzw0S4nIAk%7`U4pJ0rAq3*FHuZIPzDFi4s7vNkQMu|abWUgAelO-N&qyp zbu640JzlTW=!LO=o;LYi;gyLNi&4jjg%q*S@Mc_fjAt+PR!zbp4Kc221 zPc}}C6|U@Rq;ChgsM9Gm1CJ-0dr84E830i?GNH50;A-GI9MwA&M1iUHFQ-RW(}RnK z3D0u(qS*s|CBIVx57Pa#>7*NGWVV_CXI@KJO#|-tbh3d1g^q}a081MYDn1QtSls-w z(A8(Pki6dN1zeyjb=z$l()Q}LX@(J=ffLoqQ!h`nFvLJ`Kzc=vidBN3#&1Xw0NU^ZI}@|KK22ivS&bCag_`7GA-H^*0P!1wc2MbHVxIj^64b?(9Dn`yws&Q&1ZDop9C z=BT@u%@(*9YiZV1C`K+Sr&-oZ5O?uD8Rv-`loWf8XW^Fj%mcP?EAEU5z6j!(c*0iY5^x6Vv~H(!6FVL5Xb zIM^6++1Y*m7RW8u%Ge0X;&4wQPSfpakm2SSjaj|i`IUaPs%T=Qxzr+C?8#`&sbn!=5jiuYDXb|98ctzPq*9puTzCUMSi; zZU?^FVre*}kVcVR;n3nMh9dNg5dxRX(2}251d4#6VY?0%P=Or|+e|;31SbAjL%>D~ z^EfgMOz_tlrGP7q2-!b;lIuQ0XUINJHzsvLkx7zlQ7{4|;JrpjKG%<=IIz-HdV$zM zu|#LbG%C%Mo8!f<(8vN#imX5HFKgnohxp45!t`EV`%QtJ`_f zz}i@!m77Stym?=Re!n2D1YzpMQZdNG)+fvKbmj)^@ly>0Mn!A*NDohI&!n}C`jW7! zS?n`&1Fp74Ra+&+mTihq{X$a@i~;%8BmrsB5H&e68TLDu(_UJ`iMX^2v^iRBUxZWJ zD)`gs7&WO97xzw^U6i7W#{9-lll`ml;Z<|=X>#-#$TU8=8XtXXPJXts#rd^ygQs66 zCtnN{Jo|NW{@e8Qm*(hm!y#a*y(?~@+5ddE_i4QQ$znG9m(6#S^_TzsaZ%RORoetV zwctd;_Ey>yDc1R^CHrFCBx+d?5=%jp?S@Uenvqr7AAkH(7%5Jq`=30@SV8HFN;dx{ zw+bpB7t3HLmc|N}{;f{Do<_r_V4+Q3L+IIh=Ql#0R)rYV+^ZNCDCGt$n*qf7YKv+W zP}xMwIya3OYaLT6?zaEa0xEY9Yaz%JwV#j@*o583T^CbXemzDP*gvz8+Mc}WL+LA`VaD{$_Yv(z#vi1eWrdm~mM@|6mKKFzAEGG*xtUj; z!=}5h5pf+^dnByV!FANEYCyd!zGJX{r0>DS-Qnfr=wf_qVc+K9A_b#TO&DRkeW}J^ zr1Ir7`C6%^anNiaR#iB3YQ5eczujr(cMKYoOD6mvk>7(Qa8!z0=*S9x2WTyIuitEb z;U`cQ_(98M;e^&%1n>}Cr8rpG$q;ESMZYTaO2p^uvT`Fm3N}|I5}C_w06SoQR-U&H>RkP!2%pf+fb4$PjE;iWv~?L+#js~;aNEFI=0#&~;^-3) zitq1~;NRn}vgy{prJ%IYU+Oe#C@vmV6Rmb*nR*5yF(^KYCb>HLG$j80o|pB_{=S_& zda_|JEMo!IRmB)ljDg1~V)>|Y{8pR4O(m5d*T)Z5hIX%FNOUF-I$FCjJk)MkN&43C zht=Vq*2aHY8~tgOrE#Qxvh@GxPwS%}Hb(sPBZDfA1$DlP0c**wvgmMdW=&l}sanop z724-^pp@F%cnQv2%WVskv7Fy(AY%o$w3LGlKnMT^W00zF#nHF}%e6Gwc=HVQJKj7V z1!$RA-@OQ_)v4iaoJ=NIBcbFdSNU9)vL-nT(k!}9PF?QOVwrL_zF zFa9n8l{U3xUWu>L?MGIh)`;uDepO4uh=!xd`ti8L1S;d+neDLp7vQLI-^Ny=yRAeC z!s=5ha0DRaR^j%QLWZiENI&qE{sF;N5Em;SVEYFnGhXcdHC~O64iSU&>7JO@!kGnx zEKhw#Uf28G(HpSA_Tcr-aCv8l_Uy~w8ZGn(uk4e{XF|e`jM6kU%UrB5H%OzH>`u!j zJDa;Zx0%vMF_yu~>em-3QxS$77s}tECV<~~zek(nN8J&~{BdV!CD<7*DxqHl3$koa z*qWpjz{A-GJ_b3ed1xI$aHY& ztV>IhpvnsE6A>+RZUIqB&;HH)))!+m3P<(RSU+~mWvgEd7W>zWTb5|I#sAjzazDkN z?A?F+%AWX!atL+2G_Ti+6x<pYf+(GSO)+7{g8^uP_j;wmaC_Ocm(Jlo^ zzT&8@)9LnUvvbmH3#$NHr592)6ozHIg`h+Ph zz^dP+WBKo)>+IG))gTJW((xUXb$Bs>M;yU2_!pq{sX4fs9()Q5fEQe7@6;$8c(%n! z4jKbg4yP+eR^xcTm%Q+x&Acwl)FL5RE+Y}snqxkxy>IMZWk%Lw2fCeCkcbvyQEUB; z^%WpKfp8@no5U97R=&QGZ@>dk%9yc{@nAAu5Xe_TkZ?}xApC~`N_EnT3QBdh3mRQb4-A2yobH%7Ii*LR8al;@(%VT7~{3NoPaBO~33AO=oxPR;1 z{;YoALaCx+#Vwak=+T?)5!@K=?GCjChP*Q@AC6o!#may&vR`n^r6zD4Rsj|2bI0*+ zCE^IMVO%#F-r=a5#-^Pl%Wp{}Wo?VgT24{GA!2(HU% zi**NgaiJv5&SIh zReJ<=jy2Npq_B686(qP4U%6hj+TzetDp{f4;C79q5F&WAIDk*-{U7_P3_=;?MN#j zHOVq~gB`Mz0cQNeP9v~fzC>VwH;^^42oyI)7#ZWBdq>Y+K_Fhp;wJCMf5jLb;bp2^ zFqp03#Q3abs$U>d^Q&Z^{YC3%h`TCB%V292lXw2wW^khw!->kJRqd!nI#`xt4CC+K3Y}^ zYw=u6%x(LEE^QB)p8Wf6TQ!4~#jTM=kL?YRAl}{ad%Js2QI^&Yr-|G_FS^?}9<@4> z6=fXTTW5Er_UvEW71q*Qm5MK&BlESGn^6B`%p7r=oR})PlMumO=8paA#AZ8}CQR;J zXcG}-p)Xw;I(YPXa{B8uh1$Vd<5V4Nj(;AWe4d=J&!?2MN#vo)@Xo=}*7=x!b0^Jr zl=YYY{h?7-0WDCL;AbUEaM8?hWCJT*L)TB&zgXgLLnl?$41Bsie6gBjr;rYZYJIUhWoGk&L z&GzKY&UATa5_Zrm?oC+N%^kVE3|ol{3l6B%-<^Ee9xu;g@ZKZ9j;E^!=~Hf$;9a4n zl|;HDO-q~?Z9)ke?3^H3NA_$v1_HH$mYrQf2Py#?U(d!!T-n4qbKWlI$oS(c@YVS6 zqS^Zl%V>75#(P(zgHO%wr}5U+cw4rj#;^^aI+^x?dBC}S%WNP%jRx74Me?rn^7R4< zga@NJ%N)t~mo&whF}2*Yx}ZIXk(6B^!R?&g2~9LA?cWa(jxU=|TsZ$eZCy+%Qh))$ zRhF(WFccMSp{FD)CHlewyWkmCkXxP{Ov3pSk!bV+f|-qqv|v0|D#1y?kb#k57M0PU zM5xS=fhaN5NeQAzxL^xu+8tc+kc`h;V=W@sxS|Q%+*pNAMBdB?$(Q^y?MgBvM$)?3 z_^*hu#YhlWxnFTz+!dK^y+J00{RztMkegwjys?d@ogksSUa8<>$yeu8FkzO!%Ng`a zV4=z1Xd4=Cfsy>wf~z97pj)uQduw%$vUk=-H4h~8gkQg!ieoJR-JkRI^n zYPxqd*+pIZe0T6^D$u%=4nMJT_1G{43(_ioez$olpSPkQ%>2kQ6~*Bpz*XnK>@1KE zVxoUI1=oq?PNuu3YISIhs*gwG?Tb4LtVO*mLdh#T8s`MOZ5-W+vUHBQgy8cZ59RhB zTYLr33Zmn3hpMx>!V-=Jfb?v6MUhZ;6^l1)`dS;JFL~bg?-wybWNU0aJ>;Naaz@I* z8(G2o(sHMncXa6cX?Hy4Sqz4)O$xkJP*^)SUCwTi@EN90G9TO6%F!Hn` z^NM+>^}(x+CPu)5&0IHmXi3vD_@xZiv3)EAYq9dCKVIHRnC@;$E2mrC`>oO9-gt3$ zw6xctDJ}0eZ}!T+YR>>PB}QqcgVi`$G9a}_q(UGRpcNfPPgITkgzD(anmV~Mqn&P! zWPf57Z;6GBA@pD7GSla@>8T6F0d)!DN(A7i>4`Ks`(+AU{PyS5pC@OZC+9!^ndOPG zg(z2(T^lnrJ7*Ice4mbYPsTc#b(-l$`;M~y^1nYW%9=A~@5^(skocV`t#N=24ak1Pe7UEfOfQD*RK(>i*x*&GXeSFW0W;Ov=hnUp-OLP1go5 zgR(fG9T)&$t7g0a?KD`HzNps=)!C(2$$^~enc+_|g#-r<;E&H*ieIZZ^6$8bnte)C zvHr4W4I;y)Q(B$LZ&wO%MXP)}(?L^lZIl=ria1cp#5k-nY>FJfP7xCdyJ6u+lXsd?B?imimSZ!ts|n*RKUy z!$pK;S0Ln3ymOd%U_-0-17L!C+uSDw7^GB_p|1n6fCOcD<0Fm|{vK4baq~hfqzvY? zz^x#V43f=T0Jf#o;rog@KQ1eCz^(Y5O!QLfD2cgZ#t$-vt0*7?)hyJ(QN{<(Dj$9g zCKPl5_5fxH$upa4Z1fZo8d1a@`Una0i>$RK3d%%ui{R41f~9*AsHqOJd5vUUF2|s8 zn72zk(4(@}0D4uBR>KGtVB-#NUT(G}<7ZH6=BL$i`4vH_f;jl4LRsE<`=0OLZT5+s zveXDaO`*^vHn?)HPq1e|SCo(O6Z3QA2~Pr;(O1w^(2^f^Mh~;?E{C!7R-+~wbjuYeehMKFoH9;IUm7C|64N~H}n^LuE?C1jnR&`Rb zG2YIMsEsBi3K>X3Cf2RRlF=gKGR153W87kFsZqp|leEN94oJtX%IkfsLDD(ky5*;G zDfhNYJEW?&=a%Jdl{|U1_A(1Lz`)hqYw)!BiJk#f(hTF zEO3q)SsE#3VVW*KAvoAscb1Bs=6N+d`M;4-qAYs~-+>iHiMdwmBGXI8Ih7g! zORyHK{{6lMFjkX=6>pwb?;f%Q%LNc}T60>0IU}KhvLb_01B2HHUM-Z>ew6rR7W%{F zXvNr+WGy&bF}HNV5~A2FvCYDQ??raVy4&4asZmX?$|RR%AW%?H&`vnp%+Xp-c!!zD zihWqR8-sIm3=%VpBFxR7)HgUMa)H4aYl0_tY{NP43lF-pF02TVut5$nC_NTHm|<*! zf{>Pb%Z=gQdD70U4^{20I^~!eE+|X~_PnxvmKkdZ*2O|uCL@gA^oCVdO4(}n|LUg2 z%B??HV9?NgqxXa2N{aCUxgs))d#;--s<#xC31-f-3?Df?Z{+q0Xe-(?t#oJQ)g@rk ze-X+S&TSvZuU2vdQK$@6YV)P6?pxB<5O-bzh;e%|zuhcsrypIM%&)C@F?zjc!W9t9 zmEDnUtL@S94iGCnJe{!StFP=&7+Q=~hNb=7PJ~#RAzY4=Nnr$U$W~V(D6zs)7@un)sl~%~e$aU$A|ZrT?aWVEM9ij)BtzSNyy3g&n|1?zVo7QuuUL zRW%tSgI8=xS@sq_0ng$mS@zwsiKi(9{3_X2&wHa+5zUTi));AfUG?&9}I#VPB(T8K?*=X(9 z{APsQ%8>;ykn{+xVhS5^bGriqPXN}2`zv&hrX_t9!xnarjWgUQq(p?jlr44-taUX$ z_&hxLG(7w?I{I{{G4)FBaNzd4{fnWI#FtYG2W$IjI+h%?bJvGm7~*&V=-6!*^!w?J zK~5xj_jcX}RywZ)TJ|RX4Vvo>UUh9iJa57M+xd;rD9GWph+aep zxdVkq^q(bj;Y0M936pRJ=DiFdx*fiAZCRC}2#%a!W=3`xBztlCt1x zwrK1upr!a>sKg&-s9^`_qE*$B74E4Z5mpJP6!0pP+{ya&BRzWvE8B|nt1j2E!b`O`lWH0h~dGDZsG=0x}#*X$jZoj zwhOVulbbgX^Q9o4fG5p}eL1|?DwMy@8*cRjM!PZeHrn!#Rz}WVqZPFHA_cJ&%qk^; zpvLjLvCFTwPdd&@uBD2M!Vxov`}+nE%xtk**H0T}*QhjC#9$!S4;#`?P{)c0Ef4xO zf8SBox1cs9240Fj$|N$QqlO9}S`_pEG!-WmklX5Q;H3>U+DCkGR5~V$bEKHSJ&b2c zP7iaNG-ks&CG@Sbd>a9HJ~_N-jz8U< zT%llD@%ivmv;S#wcs^y%-S&{mr`OcApAtle9B37a$-ek%a`5TSbg2|Q6Db8{p(&c9 z-63WD=%3o{GXf)*Tz;;1?Q7|oJfWs4CFTd~uteX4X$W4Rk` z0Mg8-N)^Eh4s1PIF6|NGc7OHixr#D{JFL`~OHKaWlXTWnf3=q*ux-Vd!wEnO9eQ!g z%(um@$x_U4sd@)^Kx8xv-6lmK;^8kevY}-P_z^>r#R)Z3b>;0cz({Q*MJ39zY%NDI z6Vj}!)R+ZX(IOM{pKxWW`DF?O%&9Wz+JkzUhj?Gp%fjWiX{Ks97X3QGo_Rqq0#vS zDtr|$t1H?UOu=Fnj~S?xB6%cgM?AoNb zIkbe}=m8U4!CM&9px}Jbo2KxnNJz4#YEgY4EuIma56e9`AOw$VDx~|F=uVz7m z+07_H(V8A7uU-&KLh}QO0kIM;*e+GFzh=S|JuAhomg|E@YXB-)gVvh+`tMq3;EX7v za)*1A)vDm~KHUYHe^SSS6>}~VF}SpY^wq5LCe{Cn-tC&6#PZ|rWMvPbG6h^!a0Mc8 zEhU>iSeMUa;`i(ytDbeMfNDW0i1WGa)KF3(ux#sVy(c=K?A)C5L;6lIMTc_Er1$J*iAzz#zv$I|#(jYD-AlCSCPr=D{Ngx#48*+5rc=zlXi(nyyoW~C; z6p3sO>vuSTn!@xUR@fK|pPgF-THO|CMSh6rxT|~HDtj(yvC|pFAr5;*tb%hkAnl-{ z#|CW=2$9&Q$B6TF!{kbav4X@!0@bCFn!E=sl-}o%!8V6j?Q6C)-g1L|zPwu-&UG3a z`FFr$J`V4Ydr$=lvE_bQ+v^zxpBwDpyM^*rzoM*=(6rtvFbVkQ(=jXS*K9|3$ro`# z)t(B@*gpL<_3XSo#BC~l`7gq|)s;&s2TjG#z&rVIb@(9aa_fiyl*YwTUJf=Q%Ud4w zZT`NatZzZ}xmC;7wS_Sq`0jkusxJ6r8muud)Nz@-orWp)xZ6C+TvJiYh+^2(pnBf5 z&EU&WTcVvEqQyShm_Uvb15m#Xp|;I&B2M`?v0j|V$*c03>@33&tSC5sV*ufJ-ZY`f z@|Jn_th-FXp#&hP=gHC!CN_dc#|l>Ip)dic07X|OX6%2O9$unI4R(yOwv{mY*1_il z1zb&z&+qm>rNPd{9kgqSzp*tZ09vW_XBgpyO$)V-xA`7!>3_0D#qP0XhqT0_qFvtY zrkilGtt><&lZOsRYlp)PixTP4(x!$uh}#XkB-BYlSMhDVRq*fxN^u_7>t8OB9X5`K z8>geS<3OymUR*nzBE^7MNHnC_nm#UJm?b?BC<#{Y@^XY&-m{J@m)>Upp}qz7Ts^Y5 z_J;#ypV62J4@*Sc2rm6XAfbQ0Wnx(gB)Exxez0hRM6FbEHVtZmg!$SMhNi?fbX+zC zJyJ;steW|$K|!X{IDbI{x3hPE`!h*If6yta!d^;M|O!hxv0?x#!lC{QISkGkdhz z1NuUIlTLQugD(e$AIEhGN1g=%$DH+}C^h_`iXNUW;p?w9tG{rwfHuW+i?<4er>aoC zH8^N&!d3JoCLr72MZdC=3OnqN(LGiZ8O!K$1jgm-*gF{&WMX|woDYl{XN1Rv8=$pW zBR?H$RA!thj8b(f)u%u#ffgq`Oq5W}9I;$*EfuGnGcMw@W+xeyO!Fg9*45zT^6pT4 zH9cUOUrqMT#=Dn5GIn;Zbxyp5C(pb<4cj;wuN@6HkH2>%{wx0e&?pOFqtd2B$>IUP z9wU(iKex%G0wcBYgza($iU45j0M)G1Q<0-Q=lU?1swHxIY>A_T z`KgM`q;<9@VWyNt9TDwG1YKc{@&$Q>f>sXuG+fd&9^(&(6*pMgJft|!%)i&CIS*S3 zXsPv@o~wASsC{iMu!F)^$-j&Q0$*9>22ljD@-ankAaRb8Z(5X}EYJtb0A&HsG~4tm z{kQFI?z-`ZwuW5YS8%pHA6jP=;%#cVzkn{NEQ|1qb|u+aVIQqMvOt%HnTkI-<7~=B z#NpQYWcTV0?r{1EK-Fey9bSO15=?mEdRn-cd(COPhm+3!WYrFUVFM`xs7$@D>zXh&IsWG8Np}Fw5g~+HRXz}i z{aKol8}1MB>-;Rdjdee0maONq%F~O*M~qbvJYRN_e_N~zm-5s0IZ4a4l;T}193@#cV_}wB=5%9YnR|1GdAEhQ@)Ddx z&KlP52~EX!m0#J-sZ{eKyKxmJOUz>s$SOLzEQ|u4;v*YY<@iq%j?AHf^Mzh>M{Dpkj9S zCh=6ee>-hk<4C&&g$zcaQ9mq^0Stvd&p;PDhpRiBY6zv(^$+VdHP*(lCM5GzeTziT z#a?EVS~~4ic+#6~^t{x4HBQOw*)o~G-X1NW&+U!GS21IuffYWnui&{%(tzsElLNG? z%jW3w`1I4=+2=b0|LP}81y1)r+Ye{&a03;OMKd&w`3kZ6VZ0POiHwD(voQ9tWV9 zqvVtp`{EEiQ7%0sj?>nb1QWYACl$%J>yX(B)DA_@;5kbw)lclk zV z$;C>q|C_e%MSr;5A1Y8%_hPYgi>%R+Rnp;JgxyyZn>~>bamKFe!FdYq)@Na#m_@8u zqqFY*K~$xX3&_^`E}kud+wHA1j{w?ivzz#r({f&H&7Xqolc?jatN1f_o`yerO zC+!-YlM&agdn*?->vr5ZY(9QRS%1yn9~x!707s$ES@*9+LBgc9FE0!uyne-U_4>ui zmlkn>o#L$$n+cy>FV*c;@RAx{%DB$}RZg2T7kQzz!f9eHe|0%9IRrG-7J?t>XILMh z%)y?VuF(ZKk3G0LqettvkJg7(Z@M^a@m83{3&=X)!>1`sS3JeTQ88!AsI1&{tR!@n zkDDz@0wpvk>vcTZv2>1?_w_gdw89a_Yp{T$$w#?>j6ku(y0U7rabl0WjliL`W5e7d zw33&#uhDdQOL>!6L=&$~{p3P>NP4~JoOUf~oksd4a0TidjuMZ7pjE7TW?)skXPqD} zX7BpJIFTfJw~)9RV~)nU!eg-M9yNU!$5C@|K0OjvwYk@#EQ1D9tMuY-FMjr|Q`4zA z&uV&2zTeYvzqCD`-ySV(S)Vtt4R%{zL{#)f3mV>l3SSm_KrCeB?JKZW|CaZhRwpb+ zqNcBUzd2WOb4`+?=e<^d6~ETDZ7MUAq^XqRm5KWkAGiIWEcu%CWjz*1FS0`E2Pxf4 zk)g5vGrdjOmQSC1P^frC#(5A3*gk*|u#tE?vz}&_IfL;=LagaskN$}t~O6r6BboP5gA0C14E?&+itUM+qONqCTnNg)->6!oo(B;-DKM}xrwLu zJLmn*e|T`~TFY}hhmD**g#H-u5N9egc^Dqz7otAt&k*;6e?(%~q8kjhvDnMdm#`Dw zOWuP`LXMtR6z%GAyi0~i63(5!K^tq8D$EftgkoWBU;C%XP&_1(9NjTk==W`DTTgY2 zp?6%0vq;kn?B#RRuSS;}GI@S*rlqA@;Kfxy-Ltlsa>m6d!(N8r^9e@dATD@#&g=fq0Z453 z(8;@|y^HJwWhnkaU=gXr4&3CD=Hg{;VC;3Dv_{4Eg~0FE?{_h`QuvJ2w8Tc1>$mlj zU;6cjz*cK>>`Wz#ip!CNL2l93?4q9E&&W%AYrevmfO2n(r6p@`e-%%o=~KZv4N7}G zoSV`~nh7%P48#Uovds~ODq;n0m03X=XC@SxSrpbGA;vvD!oUCs|K9rKIeTzrU?3ZFMlnSZAA zf!As5i(kD7HeRQC)qMk7WBqqRZYP#WeLLk6(8Ss0xExaCp#y-_RrWP`z)hs zb}LRlSqc9dolU4RTKZG=1DUF-=WQ}E;OqAX@NUn=G)Ne}!MA34yT)Jc<;1})R))NX z^x5NJ;Fr_BPghHbUtgq8^*QLdh1j@)2OD_|xqJZ`@_Slb8;whq$CQq?2?i|3wz;T? zq_-XG*0|crk$K2(i_bnt>|g4?RCWwK`3G+38Aq{)q!;ge#tBdt@ZYEh9H!@hi>I<= zApM32n&F^v?xv~jLvK80TE|li!)mvk+YU|Wv=`MEt5CeJVYv6!;#h;L<|+mp8@W{c zxg(vqH|}XKSQf1qq>Y9b1@pD^+a_2b+igsxXlB6sbm(`K*Z;D1z^EdUzafEEGb|7^KcBIq6eaymebZc$)-U$L`&`(}f)xBe0aecX{Ss zyn@d*%QGyqM>wTV9;#UCi0BE*-s18ngY>6Als~CcfIDrwjU0M4+r*#i@oeK4$7qny z8{6EU2|GUFzw4GmI>dlIB272qPlH{%438wbM_ZuJ5qxYd1Y;>QHug3!6JnFOawz{M zlO?>Dx&g^I$bGQonI4TGvTGdKD_9--aBII%wcv$_9=ED^ak$aS+8T9p9Oa_lMT#(4vjdwuA=N;w()M0FkzSZi8sUggUamxKd=I(%wt|L*sc4$Z02ojML49_X$G!8IC!dWQthva7h!*NLHfWI5Tw6+0MNq~dZh!e4 z03}+RI%DJcw5Nn2&?%^Io{kq1$Ap8s|oH7BZ8@p8O1v z;a)t8m)91AuD^)8&sOYQb11Ku&EQVsenj7PbA?V#{?6Q&cS_dp$cMF*4XEb+56;|i z>(xzu?d}&{Xkk>50=Kn?%^M9iRs{?Caw>ZF`(6j4_5bJa#L)|JrEA6=ba65dH&rIX zK}fKtu4H%32Bj7ND#+In1_iW6XW^6Er=cS4CL2sH>yioe-Bb1lXkJ|;y5 z+ZIf)@JGSPVX4he23c20sdZH%h^J*GY-oLw_{=B&-e1ix%$)uVVdL>_4QR~NDg_<%KBOV0_1#^#o#nCv#XeBH2qxZ9}lM-(mB^@ zt*!u5V{O&CO+pLmi7J>Hcl${pEzf?WP*-!*o=_)^j-Sf-{Btg2N1h}iTDkZ=#IE_! zobNYTUI?5Z>pv5AkiihGH3C8NC>5d)zY&WHR;o?fp^1Ai5CWiWO*~5F_jY^Ff$aCK z`n#H8qOt2{q6*bZezf;;wcFQPEdUx(C}w&FJ|xF+J&-_fIy~jK^x5RFCjfWps7vp# zRDj>158>qJ?)PH)sh~={dzs&uTG!d^H#C+^6b2C0b(vj!XCqMbD2T= zeEFyj<9=`g;cG#&!Sm>(js_UI8D_F^bU>9-fprm~wwIY;VZ9~$r&gs#7QX&Qr{!h2 zT_G>O{RJoFEVL{ukBx;9rZw8dci|4_tS};<-fW7)Hqb3jsbLD|@2i%Db7-sBUpGU_ zKE{`B|7@Ny?HSstK&3-{0D-9BK09i~t^H!%b%24>hzc_D;9*U{hZ#{O9WM#p zXWHA*2K?py&U95K!)CNKiY6ci7@rK%5wJAOB_ay)OsV3+b_6 z%9*b&yviRKP+0@5sgQ-9Tkx;g8ZIYd|CW*4l6K@p$K6{tBI`KaJ@4Msr%TjKt{uUM zFkF0*AtUT-qQTenX-odSSrvWRx*jVb3-4H^25Y7I9*^2Fx-mat=#|gTba^{qC(L(V zCC`P+V0yQfP9rlk49YnFiAgEl&(%>J+My^4c&$y;g($bL*+^5rqrUB(Z2tZ~Q`8?hF;49N zgNIb-G4^4+*7*77^?M8Mpw)MCfI|aAcQ4u(2A?@+m~V2}?GCzE6TZS8e7!=?&kGXg z;RfF{8F>*%MhNJmD=OrR^p3CwtzGY`T41@85G!E*JYwhlQK$l=w3T$p_Ak^GnxaeQl8th)s6>I8EB9NzEn^o^)hj(N}3kPGgUYF=@JV%YGg2`3k?sZe$2}StXbCN;sxTYrRd&FU%9sx|9WfToyGJDwpM%-*o-V%N3=Up{#^lR#1A6(BnqW8Ik^M&}Ci`lMx zYOCgDMSg=q<{qV4S>9J}2b*A$ux))#x_J=cfL#BQ~_! zeO}u)95>{AJGMIiMC$4pm%*eNtQIl+=zs66nt_`kkfiPjpMKohRV+Rq@;c`9rM2a( zBUFkzh3&CCX;pAhl!iY#H?m+rf;(1^VZ3|^#?o1*r}Yk88v^_9oksAMw+RKV($-@x zVWfU0I$kOTpi4s3SpYI9ym~+i1?myDyp)Q0w|9Ld$*n~?!KTv_C~?oUkt#7@0FGF} z-n;VIYLRM1j6QgB&XuC7)OC_ZL9-_N!C&O4yY~!kd9=g33qXqmJOu&UR^?+Xht|aD zJTW^`eSQNYq3*794|&QB2{<8e!h?*1>_UU1kIdxE7zUl^-Ie0o$O&VryM2XwZ;v}H z(_!(b6WK;*GXFdvc&7%_i* zaa+1YJ16DAo0Nqr`%SOds-yv@(u^WkicW^>i`jMfs?YEnuDX1|9?AjCHY@9qxv{kb z3uO{LaMQNt#B2GqrKST=AuBp`4!cd-sq(tY_d3;cvCd+|)x*X#yaURiJZ)=tf0{H}>% zDkIBZIn@p}WMNj)B}Sh6e7oygW;LW2xtq@tKw0nr?-OXME2=Maw)$6-iYT^rxklbj z1mIipFWB{dd~@L&QT;0#5><@XmogiqUmazEHpAX3 z3Zti3h{tmOU&d20lgz6rMby0l+Ol|H$8m+1l(bU{snw#C7{Dq!yjG)*GVrn5L2y_BgPl3tqqeEYOK) zWj@O-QuQ|!omhain#Z10ps)zC(n7#;K0E~g%dxZq{}5ViVj6EY{K&6jIh46If^xBa zzfwN+Dt@1CKK_jyj4W_{KI&;HS2M17k(9eEDbf=*)hTbSHmJ#UIQQ2fY*Eemcjr=H zKqVtG!^hR~>Erbnj2&spo{OcY&WXqROim^+RAcA1xGW1y?%x|rJa>xw}`xN;rSZy zXN%!yGmHYi((FB*qNS&o!I@L=3JdQY^2y6aU*8ie)iRdIV+;_hrRFBIeS;W}i7JYq zf4kOw)hvASQ5Hep!QTq8R!ARsdsxhuS6^Kr*R$6uP5;4uEmrWXN$x zKJ=C*hSoN|41Zlcjw4=nahnh`*jN-_l{0j@<4Ykvy$@PjjTT-0Dfgh}Kppd`E|?r! zbwPMbfW=ETiOT~iuXM3MvQrAM;bi%;EtllcA)SbW^+9`E|4^4E(_9I+x5cx{VH)8t zj%7UlF0R}1Z4qnIQe)jbkwQ-H6=Ql3X&GY_ebAW zvKrDC7N}UlP=L{AQ6Bqxh=r3nu4LxlmB+#IbR?(?&53Hidw*DVO;98< za>#Q7S);m2-9Y`%WznMx3DdA?(guTGDA0it!2Z@t^*+iCF+?w^V5 zejizOD`tBF%|C5EM$E{DXc!jmni5C!XmcyYo4L{CX+WI6IG)?gB`s_w42rD%?V6r3 zyGrni^(AVqg)v3&DHXzzr5YM`N0`b{`-IH8+zOKSUSk!b2CZOA{zT6B<|6rFN5JrF zCogZ3cTYaivYli5@@!IlHO$SX5TF;<6G!`qtlL|l2u%5t373!T z{I8dt^6p0~jl^_bAiWsUC2rP%P&RGC^i11SNRyiTyXF8leMm`@rMp8UO4Aw{Bru}Z z8kW@Z5jZS`ZFDy62wS4nSx+e(^SLKJ4DzL4lu{VCyFsI-aX8{bm;7iut(b+<@64d1 zdr@B8O|cF871-cuvINrfYon`1fo-K%3c;`OKftfP*+)WR{(Lk-3<<=g>gav8uxlR5 z&&Yxfi5PnIM8Mk2gFGL!K8DRSHz9_U+cm;^7B6*}1Alp;h42~&>STET((xXg=j=e} zcM$IrW@g9M5Cc|J{*TDcQ)t6&b;4Qg+qBrLHAshk;XmB`yufBBhLcNwl>)AS>^@Ca zKN-S*)$+h!9g?^lVY$^a7585h-Z~5M+n4D&^n_C?N`d;zNxsH?+YuJ_nbx`*RKFUL zhdQ!wqFy?6*T~eShOi=!TF_@4;~FCOuydu{NeGkqNl_H+SYh@bt_MH=PA?m_3+sks zytVO{ztA8>vsJwBqYACQIca|k$>*<`$xWb%_s|HDOtJyQOm1wyNh%(W+XUHkJkc@o z!KTJk>fz6d!-n1Hdj=@GdagUPILM6m;PHhaI_7q?b|FJZK$Qmo8;^(-S{pZu<%Cv_p68?YFU{L!B=r4WYKXM;Qbu7e0mVm|t` zmQ88FR0CYDFw zJOUNRSY6Mrzh#q_XtNm&ENJGhx^6|P=@@J}Uyj^k;Ky|!jMJg6R@aB{lb2y6u~M{% zF38X~##j>$;cKtK@|61b(Z^F3-9;Ct*LADe z2$09kX3)q(U6gSuO@uvE6Opjc?zuIzhW4HV@EmW)_y3Kezc3)w z1%Q}5Pw6Vg#76k}T9_8LYr!i=L{8q@|B3-H;~LhM{`|;d@$fK&xrMDlD?b;WeTf(Y zJsjIt&UBTd>qC)yj?TQ9RIy$3)=t(^&j~LkJhIpq1%wwp7<_2oS4SxCK_6DWiEqC+ zq}bl(#IzlhQFxF-kwu_R#c77cX+T-&tgTC3oR0$%SJ$}6FSr4ybbk!#J(Vy((b3Bl z?JS8`sx#xzs~D^I457k6#3IEx{m}*W1o+Vr+bkJm-Dmi2WV8Lj4NAazSSdPCFl#~; z+(N}R!?(42DyrD&(U)uaM*Z^y5?T{5nFF-DW~|6jCwnG!qjnDwhyLQ;iwnh=`WCWh z4{l^j0KiQk)6)V>rF9KUBUm35%q1Xy@dAtry#Tk+8EHiRcF8jy2Fu)UZ|--}=-?Ij zL8{pctgscL)d)eD+iBd1RhcX9&^ZkD<+jZtauCI#&s`fVP#_yD?xDB`F#wWhjq;d3 zj+eY*iI4gFX}H?3tw=4<8tWoh(Zs$GW}LsZ9X|imQ*SITRHV}ecH9Q~PQieswd1x# zfUIO20}AIavL!>KkD-kN@O64c<#2c5xH@A)DRv~mx#|xGds^yprX}}g>AX(eZxzCq z^*8QKy1LkPH*pzCZ-zGnE6cjKh|0(NeG*^_s`$Mevec|?C4ck>R79&N08viaL5r4VT`lJI`X5&SvX{A@mNTpn1>=T#~M28xrPSTFrhA!!p)8$2X+cM z!>AniDF)?R)l(s|x#?C@YClpM^U|tO7uX>uDt|ZWBlQe_&m$)NQT2!~U>)eA>#Y-2 z1}nMJ9I1a5Pc*tR&wO6X>c={_GlgC1guD7DDr80A9v&QsfJWAGB({is3*}X>%27l$ z+D^m(Q>v%xvrSBlgjm(L0*^?T$?V4DzIikkS4X~9GSTvM8F7QUKC{vr#2!x}Wap#< z`N2>5t>SKH*=e89Lk$X3N2XsB1E-y--_f1hmhVd9q{~_Ip;jr0;E7X)pN26EXh*8m z0G0N=fT~X96z7Q$W}6S9Rch=z=CikutGl+0kzobbHs-2~ZEh_0VB6;9WN=@xvJqh@ z^wyN~)-fN<)AdhhmkWP1!U`X2K3^~^w`ltDpF;2Rf7DW6oxkXg+x>90I9r|c^8JhL zQ!*%H&)bY;5Ds8_r)mv;z;cRbcCn6s<3M~Gj?VDHzBKy76g4ZGZ?76(nsaJ)iU7+o ze8qxoTI;en-AO=GodWCDE===Vt=n?O_r2HC(&m0-n?d49J|wwmq`jP5jYqVFZZoKp zdq+5mnk>uX5QAi(O?CNiBl>T!RQe3->odneKWfTzric1D_F8)_@5J~Sf_!@vPQhVL zSW*myaW#=*T2ke$!P-LX_;2f}&>GV8@E(RD3^~)MNb|&sNYJQy>^4Z>pQ&t0b+75R z5)1eVzqhs8j$Ie_vdS;jvLKx%k#zCSfEA$`E^SzHrjC5MT1k<)Y46Vo6SjLo)w$?# zxVH4T0K`AMgjK{bo@Bg8vf$2SaOgKb=L4S>D}$jC)iCGtwRa$SqZ*F+f*{j4mAdwY zmyQn6oM-5?2>vZ;l|k5_i(nXX@8- zwJh_msHVEy*)#r`yj#`)`i2X1swh$Cd<9YzLNr}hO&w*Pqy#6PYqT>l&%NckInkb~ zA2y%6RYy&9wQkA?!VlRT(g^1kK_O`S7|mxa*Q6J5(vu0u?9|bS*fm!9K#vJ7mH+=W z2VH}8S;auq`g}ECcNhDTcrhO856n7KAGBoP9LPg8PlFm3BM-#r(*-{Q8(P*~pf9uq z+Cw_hk&Ag5%L*Px`{?(8<6sbd{%@TLF=X9xQ1kKV<8AJ;6a%Op-qtEQQXMB3acCv> z1Q`2j%wR)}gX@ap?CUuo03SX;zHJ4ZJV+4I^`{V#hWv`EP@4gvMnTW@FSDUV1*q!`3zpXcvJYYn6ZNtiP%m-;O? zGn?KAw{R-oTN?^?e$LrXX_+RHRzPLAzg)K6FZaslCXSjnV>tWTr zd0FCBIRM!X1u|)u);i+$0f9AG=f_;&-s#m12{whlO~ho2NJybG&31#>P0ULqk!vOc zmx@a#^E>f_O>ICjuzBM5u={*+fa5$IP8sdgT()SlG}cUs*7(0kJ4*UW&jF?&RSGP& zIc*{wWi(|Rt)q?*9dS;~(rz#Ozu@Wi@ys=O7G;*phv=E(=wb3=A`*84=7L%HrOUw} zm@qbsi^f)17Kn6k1zcQ_vdYj7L~Au zft8Y%MJHaSP$s`0=!&aBBwXUhG-$uNMk_6|&JyN(o?uW{?rVMXe#!M5ikrNKRs$N2 zw6yJgGL)|yMP)nk?voEI>W{JnB54Gj~ zm?yb+-MXyxt%bniO-ql~*6Pz#5V_7LxBrtE8+m#t3ykvc`Eg7rok`!|+Vo?|_2D}^ z8uj(<8n8jq!n{#+w)&H}hi5DQA@Wz{Ov|3x`RmXLvs~r}Ek&N+TFWdNu-ocB^`44%aAHwFT`MRjMf!Hg~cfThd~ak%`JbkUmBi6Q%X_WPjt5jD%ewjrFx< zx?*L9}g%oB(?G`0UWz4RW>@Y)phl68?0!7JAz`K~R z%6aerJ>Z5&5{^pjImZ=+FlNL1;>7*d;^Rj}Uo9b@Ft6#PcU#hy>c{TLMJ|^=)8V29 zKK;T2Qz=Q!%vzhzylc|jrm(0&W`8kP-#-gVCi#a9NR&`703hda9i~2ko~({HKFOh& zMM1ON_AEAL)kFkEMf1y!4= zVH0T}OH`()+?0CERsQIVMe>0EJGVqt|Jym6mt|=KoQ{pH@v!FHp75_U&ybz2S5FxT za8pEPfBEUmQi{qcM+821K7Ige0mco?_B?nhis#lDZ3ZO6Z5+Qx4`!laqRWEoDrQ!> zD38%ASEggPlP;XHrD|mc(eordLKoheIYH-W)qC)2WFY3zAsmQnexK8r*ou*SbfJeY zsEtdd%W{fgnc*hv#5ZnwjS}T;P%OeIx-zBJ&mPDZG%Vx{Io~)9BLL#>LVM8?=#CO#lu%-Is~( zCKYL|mepYx@Ca0(u^9FU`<4Tw6esVlEoJ15eOJVGAXsz&r^LJ3r{!4HDcBM^Zcrg! z4X6|)jW*Cq3B|zY&>I!=tAl>aX=|(L>m$Nl>yyPHOq=eBK5k^Y%OtQyRBoxD$E3Yi znGIDSVV@82v(yc8DC>I+SD)Vc0fNOjo(wR!zR(J6E9~_4G=nB%@{Rm-`ZN5>p%vPp zr9Zy>-_Qk{rDH(|>rm%@W8hG-ej+3-*_KE98x7{m)< z%O;h697w%i zd{rU9piyI;jQ-)ZW{B@*W&=fbjHWTd`!BKl?%MAZ z$inma@Z}5+NBqi56p~LjF@mM$;dN*#(kA~T-K&$17B@#R&0e=n26xR_L>sTX2@JnN;T zKblZ&ZDhB#xTnK2rNiH(Lw59v1AxtAgm^TjT7}uQ-X|@Y?0Cz`K0hKOJL+BEV3z+X zY5pNVuGzppZ~S@47&lwy*T|{ev^s9N=cE7s=7O~LpvUv9&GFiSeMLpf7!lbI29%a_ zls@kEk#OJlHFSp223v@5JsnIbnChC82X>huVuIrUIxb*k%rfXwNj znN#XFy$;{HdFk>WD9J~*Va$CzvMv1?)gkMlcpGS_^Ohz9?!#?@&k{5o_~bGI;REirW9H|TXr~Alrx9Ru{8d2 zvWV3v5K1cmDV@GQ8;PKfFo1VAQD6^q$n|e9?YZpw<%b<^26p;1Z2D!ppjgLdD}9sl zYdQwjU9ot}lph5t*0493q}#7S>`kQY&j^jAIsBJ+VjrRRnb}lMwyKx6G2vE>RFL90 z)#b$z{oT(LOvId6E@Br=vtn$EFhX_#5vqIGbe2CqTkLN|v>Ye%Ea<~I{`oBf5=7xy zw7oPo8g+^cNfvJ)VJAr{v6Py*y21&1{l10uDE!!w{yauxj~g8MJBx+QFX~z~JBLu> zLacV)axiLARuu-xb4#JA@$F)Sn?Ya>gB2ILc(#Kn6Z)0-W&G(|^5d5&O1Y$ zMei>m7@EmD9Iq^I(~Tn6(WtHdM3fc&DjUjZ7Fb5Fcd{GCqy+eXfBNft7xA6JBl@bc zFKA}QI~P7Oqh3|HobMmIls+b%vDnGOkFp(sJ_|B9M{W8IH4z{c8bsj68;R6@7ym14 zMnM48@95famVU%(`ul)Z^|ukTHSPu0*9_EuChDQaOO57vYCr&43efA15N%@+0fvVH5AttZl;c8POLw1u<&%M@>#q(x}rj|O;BIZ z)^LX9KIVXw56gDW{*p%0v9~9}=n^*HpN%;%n@R|t9^s(uMwg!RNJYcmM#a#7^suz; zddUE>f#xT7QY<@zqlqA=@|C@lUHKHGQuVp3wMyi=`ygGRqtyi{(uxRxHC=RmOm#Xg zH?}0yr2ikNc6|f&De98@`{yd0gZA74VhZxZj4O#IShp`P-~LMjd({z^`pEd3o^VaY ziF_{uzVWjfzu`vDKj#h)*6pAC$AeMh#Rd%M=Vj%L-- z{&ipcM>(`!uONxZ{zVZ7)MhhRMprQ1D}eVG(?5I2bKwd|D1Xq=fA2|Q8)p52RF7`q$@nAF?*b-=6^wQAK=M8IPgD@UI;c|s(ej|h`TfL%XCdA0a zAi;o;2B49_))}Gf01g@)8lF$XvC8{>MsOZn|C=PuFNH11$Ix8Q?m#k(E)Gu4cWNt= z`4UN`=dmm#&%i6Yf-$??E#6CXO09dFN5i3qLnv1y_G%HQH(km`SV}t8vuStmS<(E! zt1;N#Z=m(df52G`4;GRdn3&1>=|7fUYpr=(?H?NpdV?CYeK`x)e?K|oSB-{RZ3%%J zSBrYr=hPSs))Cci2?6lah)j5}_FYD13i1k5aB13j>!Ib=d&S(P(%pi71q)$YO>9a& zrrJE4Zr+cR0psXNjtI}fU>w*WkdV}y=5ie|F8M!kvkm2@!t~0E;JX^g;%j|) zu8GfCZ=f2T6eKidY87b{Cm$5J6F=LPLpDaB@gt0)8<;MWH~k3-V$J4`epL1yp{uqU zK?};=LLgd$R`6rc;FW>=E`O;0%OK7M_BbeHOQ@gjnTgRCE~ZplslAC&C(18%n1=OO z<&v3}%e71v;OLb3j->ZTQKcLpLNYpqqNVO@uv{CUM5W&laN%urWMgHuhE_a!TDXQ} zwT(%NT1YO&E$R(L<<*`Z89JhYV`xsO+3g~6f*{5EcZ#60McIsVZjxeCtY;)1wnR3X zUl_KM>xvCw84Qfk7Ad95@}_%f`rgtYVI1M`?=INb8X# z@x@HHg$BkUW(dxNV!MvMo1AX3z5{A)^4Vok%~kqJd)Yb6PRB!#x7`0Gd`TWcJvvog zu`ygH1%`Y(I~)@Dw8E+u5GWrju*|M3%LCYcRGX8k7-wM&THwNu9W1>RE{7>{#i&|_ zEkfOEYAt*E$PP+*VwyNr*S^o*u_=4 z)|wx1;fS@2^`K}r3^wtcsz9|jc?BvQ@Q@A5#Y&F+1ZM{gnX-W~@f}v7eB2~H38>8) zM7Snmn~Y(Itq9x)6q6tIXF8#B(Tpule0r?~uP@U*q)`!SiXGBzuJB;Us6Qk_dv}O? zH;5@ar(#5Cark}p8Ce1lWQ$2SP_TO|bnje+@)%|Mz!};nItk}eG2zm-Fgwmye6>NX5(c$)ZXNW*PgL^V{TtLr!97FH+y zVLN=~8y>|Vh#2_0(G1u;u(*Xh@-dTl))r23o^ZTgE-%Jl>B);)wT?g??q;=s zRs4fP2O-TUpMezRy`8$~1axm|^J|hti|G8H#sFB%M-onJ)ms;=qoJaOfwU=*8%q7B zIW*l{(cfqllH~fW3A3j|8fanS0%5-yd%v~isgI5wtS`?-L2Wd8^Is0{>tI1-WKb0c z|8}<_s*V>09iC=Od`^-uB$)X$+FN`W(ut=O~j!%6cuA<$p$i@BbMAx~O|>G+g#}U+VTs z+lg>U_o6~<8RIbXanEWs*pG_>m7kzhhpCtMD+{P?R%l5 zIqt*&ahgF51$XNnIFz+3UBNDtT(HWfq~(Z%*Tf?sk7MWE2j6E3!ZdMLq2snIfdwbB zX=+Og*v%T&N-_=;tSI#Tq~$QWObjm)9$9UsFEDJYxx0yDz!j&l$vUAocOGp@S&0UULzXKZ%JzR=mSYK)!F~=AC?iAO}lbOsb%^O952YI6DU^ zDQoPrAk`>6G?Jmp#3v&VBqd8~oz?-8n)Hv?x7u}5UfQeI*-;IyrsY`?Dr93p&ALW~ zC}nmHy7AyI^QdNwS|-1m<}l3ws6~HxAiI3luPXLUAbE|2HM(ZQD{I-Jf6s4-+hZX` z{6-K2DL?knKi!`4s0QB1&Q?x6Yn^mxwC_eTBl4K8cL=XEG?h$<5)4x<`u+{0~6b*&(zJLp~GSskuD0-Zw~&R{`@YnN-KGI%I&ah zmh~X|!Ubu@_@^p)ETdf=F~2xL9w%0(v{k=54<`feQY@%Od|6C_Du#!`+2^W3{R${eK&QC(u>Ch&oGdguI( z)gP6H)q@FwM&R{RW06od&$5i7F|T6G>o}} zGa2AEc8VYfZ@DGZa}FNV2G5!vg;Ii886BT9D5N!0O?k8 z41?K+Y7@0-ATRpb32@G*L7WpK_me#Y2!;|MaTz06CVmBPfvuy{H$~e&lv3clRT_P* z!kr6$xW(aY-&u8d@NT~a=Rr$s0&d`}{Pu z91h8#XHTu(@%Nx-@;_t13-#yMqhmz4<@Z+yc&cgetez>m)wor|0XKMr0#|d`ss{2D zb*5!#=7rFg@z-Wf#=vs@H5;vAjF31+fBJc~z)RxJlbA885bB8~-Y1Ea^7v5ly0I=3&Nn{Q5Ys_IJp-Ltuc|7KuB2n3Qmh`8+$&F*E zzqMisf+q9H9?9gBgo)FTwb7u+XZyBmVc-3Aqr)Y{D@2lNKyqK&&|CUMR!<+x;?z^{ zN%~cWY)~gw>rcPGM|z6k#d)&ZjVZ$vz1mZRfTe0Me+9$tJ(eS93%gMXCZI!czH)I!EQHMR{%Ud*|vo7FxD z&k$u|%oWUC-4;0fP>GORD(?BxW=jY=S|6Jt z-YNwWoS&M-awg4dlqa31r@qY$7$|llE}qFzVec~!1$8x|<(lhD6v7BEJ};3ieUabY z@5pIdr3Es@E2xP`-(}!j^--s2W7+>Cekg%fJmV<|vuGI7@CV}mzT zLEgd~#|1sMy^yEiU(;bkbm&jCG}pRyCAeN2asVN!M?{f^St0JZ+@OUIH-p3mhq+R! za^M|Tn<8`_O=nh6Om+}4OD@L%uU>g15^sTQ5?G#1#eWiT+0tRvS0UI+OCOG8=B2;X zh^vLt#Wh=3T31V_)9b@G--4Tze1FCC-RsdeZ3Jbsr1m@Q*;D`D8Z!?rBH%{>9J7v$ z!@Io?4BCs~8NC05_znzT2SU-$Y3nQUDPt<_6D%<}{{%K$h{OD2r^IHp)WUUZpyN1% zYgEmh_A(3jY%OaSbsU<@%wETU1~sx~CN#bKqPN;KrYVwgXQ3jsS?^;jer44hsw`_J z$Lyn&T({^1OW9b(+Mpd7!?$qwA{o9-ta#gASH}6Kt3p6k%Wau<*({|QofKml7@_3n z#`tso7~sHZBCe7#`xNF9&R7g2fffOq^2~Nd_0D>dq<{M%XOK5bc$Z@W#GX)a{YQEejH2h+~UN|%7<;>UQTh_($}*Rw10hoiNq^_t?L)`_ZKMzPaMP|L`MVd;Ypy#&s*)uvj>QuV82Fs~l26 zXiWwZ)qy7q=r>y8MZ7MZWU}&)2}>=_SNb?k)s`7@NAxX#8)=eg(Ct+GBF2C{v=w2& ztKIAo`wxD%ehv5Rzt#|WFllJgxLRn%@u>G|Ypf;L>vAx&7c$g3%GZsROi}%gMY%Ci zn-?;a*bBUW4ea_*=4CuTUt;Ba7jbmKIuN!G0IqxicG00`mS;e)CEFZz#R~HaYj4MN zuprHn_p4QYq~Q@2bi(POt_6e}@+R!eSm(q$vwR?{CmjjaYZ_&%HNf`#Ur9(^rIuE-b^Vie={jm1Y*xbWEI3KiFLj_hHbNRVUQeA+RVn5Y6Q{D#q zSN6NyuS;PKKr!3F(+B{R2J}nm8q=SnY^{YEY0xPxn>C}SSBS-$aTi|f9vcIvGE0J?#(Ok(VAe6$$2L@>GwR&t`<|sTF zWuFu<3@HYFx^aV7zCyhK`U|Sa>oc?#B28ixVt>oa8Hoiv_o>~cf!D7ZKSPbp{QCJU z%l#Ul#e_((z^W?SDeoT2Nn$|X_k(*Sy?slBp+#iVkxlAbW@jMW@Qa9GZWkiQV`Udw zBF|3@K61>ua(Mv3a@<|#t;vXmvVg7)jOZ70pO#VQm*hO`4=L4?RV>@S2si_$fk62h zoZ}h>+GI?lD$v^Qhmr*6h((*}q-JGbqER*F>;4gtQ@%3e=x#PeEL;s#X8JImP|hfA zl>s?u(dIlbtE=9O?tjlAvDt^>pt+lit_%k7Y2wb@Hx%0}8teFSwnep3SM15dvV_2s zy9oUVm&*&}fpN;d`qzeIZ*ZmMK(27m@F>g=ZNewiVW$f3e-c1}l0AV_ zhNsT<`F}Sq5}F#+p~5(tEp{?0O3QCo^KX%Z>Fwgyt&S!Dd&%S=Qi43s5Onq+Rp7Hk zt=D#L8ya+S5?M(=* zHZE^ayqoI?YhOg9k-OsO#{QV&Q1valLc#d#T=ei&{ws%;jfFn~nCh=p?gzu8G1Ff< zc;~EjmTj~aRDD_$zith~oqOGJD&OmY=@^QmOAMGaoFN?B)B_Xu1R&idON&;VN5e}R zi)^Seqa%-lXU7RfsD}O%@$~_BC$LSqFieNi&pZ-NsPrWDQRBBKXScPBQ9C82-`QB^ z&ql=R`18VWHOfh$0;~Wwv~selq=X~?HDVups#P4Kf47dW*YVH~g82R6MJ?U|#Ku-S zE;_a)cCzm2WhBX;KFO4=d+<~v`D~hQFH&tR@vBm?$&9b2WFF@7&RlH2xt$Nq`>Ab% zo$@vP=|xZ{En$39lRBTn+@y&5{ z&YKVltufwO0?;Ia_ib4N&4D&&mf0YmM)T1>)HCdkcVFzFC~i(3mtC!Vv@;a9PF9R~ z$rp_euGyU_497vIF6md#RPv`}Jc|)NGYDtGeJ-rmDNm@!s^o-KIcQ3RO_>R{NBVCj z%8EkaNQlR#4YlMFUXbEH_seQ8e9;}LVtGOu;RpRrU;}~|W{x?;}z+San`;!*X>o?3dW_>>y zHRDjrRbx(%0P-{g|%TQQ%sL~1ymmsf$J)#Q!X{qtpvjXS6h|dWWejR>R2K_*1H#(Dc`h=SaX?%`y z6w51ntxh!gN;mkg>RkCMnI$~J>CPhwiKH@XvI^M>jJmk8-N?$FvuDK zwf_ULKu*60u{TpPTEW(8?Gopa8HIx*4q0F5YMJ9IU>p7gb@Qut5*A;(DP|%&*+H@{ zpV~|;))9^Ox3OtR{nILI)^>anitz8NjiHX&!aP9{X|Fs0!_31FgXQc6ES}MImO@ga z#aW=y63f6OAsP2Ddlp0Q1Zje$S6yJtZBCm#Sq7=Pe-Iu23jPCT#5uw?ok+f9-clf+ z?f?5GWmWa9)O+L}JTrF=RzxSL_s1N9LeVjV23=>Wq87V2pPsQ1eNGmU_1M?I zQRvEW0My6+#K|5bS|vxdlPlq2j4??Kcp`ApwbhhlDU=22yRJ|@VH;wCYlSC-3vqbe z0QiS9&ztZw@mluc^9B~#5<9&?P^mpDOH2k4{BTyJ-g33emRXWPIdOu})T_eNxM3B2 zF1MPoWv>zz&z!kcbn)_WAOT>iV4~eY$UBB>+oZE=x=<<8DczDvX}id zqX=%JAvI3arA=Gv%hqDB~MRdw*jc!vv9~e9PxDe9(k6aRv_+7)Q+ncOGOU~DlTogYZk!CxIA5AW8=^!n+H<> zCpZl?gV(|()(`HGSiW~8g*2XG~)4a$Pxy}T3WSIsq^ z6y}^Qypx5RgPD4)6qLofjR6d>bcgm$R^1nH`#~ZG6Pc-LV85+t z;W9T6lqK$k1?j@ly{2}@Cu8~UKvd7oR2MI+x2JTOdKyz8O9_0Hi;P?r6LR}_s!+P~YR4h`fWs3!^8e^mXlI-`gDyKZXMBQ6>#tE`HR z+&eCW;R<)lOR2tML{0utz#K*jFlFR-0rj z+pS+&3ZD{DuyZ!C&ikpzYX8)ZkmbnYy3o#fvvWR%IE34np{y|sy@>UkVa)l>&a#HA z`)FM|F$r}&wiyjS+vC^PbJyZ{AA5-y)5p?l%TA;%Rn&zNONgT0=m~7a7`9O=E6B28 z+6wgm-S3ILiA&;OnE81ZWVIPy(X1f7eVlM~J43^N(d_Ym05Q~!} z#sC@9A^)0I4B%=|?g(^VD=$ham0*GZU2If5#bH(c z3TL7~%jD0D{P>g8Q_=a@vEz`;%72}<+(SJq&+=YiX&g16E9}vx#;=o;BTmS2shyYw?9nxEv_|0XEi1*b+KPp zK%D_mx`tk(4F_Wg_M-i35JcnTTOiKN?@x?YMP8(oMam!r{6yc~Jf5zj@}8!$g(a%3 zpOzA8NDu{w^2J(t)1#m7PJV7cPzRsJTNi={@D+k%WpDIh*Qx;fmv=|MPR@Uwoc@e> zQV13X+dR5kJDhS?X6z(=1sKU=s+%%MEK@nQW&hzAbn(GTeZG7_RN9(>vQXAJ5RKV< zzr3zFlU`b13S2s27a|bfBtt003>6uUF6%bE=*AuthzsTY!~I&c55c>PWep)g;AW89 zi_0-`7>&SbU5I0wum#Xo${gy!8=wU@xvLiL3s;L6TU9U8e-qu{%s1RSw#{xLFl~m3 z@D*jnl?U_%9;01w2EI76X~pcUbQ=?z8sJ*P5{ZzEBfCz&HZMJf$V?gVl9XvBS)bh+ z70>$)@6;iTeIWyq_fu93hA97Ju2>4Uc$S?J8&@5ZB1wV$k+C+_|C5(sm5ZzCt`UQ1H4TGDeZ~MEvoJOpMH#)C z2~s@6oT$BMWdU{23P^9})Oxoq%3_5Z(2F&@4OKo4;gveb`Eb^;0K~2xI7(d)JZ42Y z(Z{=@k5`KW-!vEU{BJGo1HzmvTP9}&;LJ-iQB#hj&p=UVu4yt(<3;$Mm-Sct{c%y& ztIqY@=9k5dFKBWvJ7B7txs96_>pHUZU!{Za)5@x{TA(EXZCbTDc%*L%e0BS5{r2(7 z^^^7CgO%%ttGAEV1`k(<4>v|X+1ttr7N9K1xcRm50}z+^$_|nbRvVW0fKA#MSv-&t znP|hRbzybE1n&R1Az4%k@u_(LwpdztE2N7Bgx8c^L5b*0NI1CjK`{wmka;mPnKR<3 zESXnYl0wX6{)Jx@(1Po^)Ic)%psXG0;M!+4j#J_@#c<5jbh&*w?VZP4)t06Sb~ zfi$LUiFW!IlkWL=^L)$_A!Lmmp-xG-);TWnIcs(RX2K_7+m@m5lRX0w$9pj7^QLcU zjo8Lg$?)6gl%ToVlaTB^; z?A|PF-Y#}-!B>E;>^7JO|8#@Ug1)@rAd@(nX8x-x^4`_KWj?*I3fVT8-@JXvnY#m! z+alr(L?_G}&Osa)Of}cNk$SflDe`jWWi51X#a%%`yi8uH0#?XvC^Bx2Yz%d}Sz<1{S zOzg-RMI@wED=KNTv^RXcJw_=+NA%dBsWQxSo;e4Gw3NUEgArurlY7MuQUwfBYE3+5 z2#;T^gSFIP9&L;tD4vWbH#oxbHYFzXCV5nhK0+zTd`RXOY%N+N8YJw<9Za&S+6;?n zffeV8_rIKYa&F#gZ!u& zKPt#Z>j#4k`~PUIx5g5}1)iULV4##)DBADG20NtJsx5%fK9Pp|y-P!TxzM1Pb) z=>|pu61ZE{WuqC5hkU;`VVoFvBFGd@@UXmm-~TR1vVrOq3Dp1?J0@TQe)7hA=k4Is zdL`nLtp!WG>R5kY`&}Xip_d6#t%6DLPgofY?TL)E6>VChdgEsvA_hj2eziU1B}2*9 zR%n__#zXB{V3QTg*%{zB;-|HJ1gm;Q$Joos*2#E_ml@IAo5h=SPXM$4wpjq@k>CMT zzzNamtyyCIeYF~%D>17YJC^qh$>U90$j`fa+D+T48}D|9Zx6&*Y&3mQA5?Td9l1ia^`wVcklhN>nhY4Ij#aT7 zpCh30P-8?o&Kb(|E`=`8BvFuj?Yy5JLfHw3P&V7GV&>yZe^lOeG~Tu5!P<9U)?e}W z$3L&+d)vms^3wIqY^p~Qu?W-*7V3vipGxcNi%uOkdLy16)!e)VLj-Ke(W@lDo8qZ zCd~#6>nzpLk(6-QDmjQOFIe?E?p%gICj3XZUZyJ(%$as*{JIjz;0K$H#6vA30BDJ+ z5=zGe24!Vd!%booJhp+=-o@R))zr?6SChTVKW|^?hDu=G6xyho6IG@C%tphzr`D)2 z$na#meSWuj?rtJ0c0L(bc_`qP`va>Ch_~y=&SkTIc?Y8F+e+fk`{&kvP4z-kzk;v4 zqUSko*5Y1=gKH;apTs@yUf$Ux@uE54>Ts?LQ@OVFn>8KfWm-?9emzi84 zpD0z^6O@3c^(N}PNUSEzI-xji+?|w6Vt%zYZfs^KF6u4`JZqJB&!G3iEqpkG>+%uR zb#w&rFC5=xkQnPKRlPFBH9!2*H~&TO)$izE|DSyPC#znaI}u_D8^jpp=K&AIg*8e| z_7-NaGdyv=d{YH%yfh>n5;Zk?xzrD0}(cdK~GG)tP zzdE5(Dx#~_J>h%@VCD<-k*nfG_%b^zyR%ga0b^Eftb5xCJX5n|Ia-VZZMi#UWx0h| z_Yr`3sLg~WbY>BQL6tnUw*N|QnSCQ3-|T;Pt0cPQo2g>DPkp0e1#QaKMgk!7$=Kh# zEWdbsV!2R753+og%oD?Ml8Ih(b7oSlI2QCs^R~aEtZ(=C?c`Bux3(e-$_j}$;1~wv zpmObiwT4oBSz(wG8mBoq=%8pn2_{S>Sd}(-iy?*jZ4AjnWrVC_v^7~qu@lJ6AQmX) zp3j5==?4r;#vbD1;fA)kCmWN>0WSM715z_w8EB$$)|f>3_R>4EaA@Z#YWif6$q1Cv zLo$PfU@9P%ZH3!ZBBaUEE~>U!^-30_wzTWNO^o{Me)F0$r(0veNU$PHox0A2N|kYT z@GlotsTGyU7HoFR?Iq%?5T+KxxU-O42(mW^qm)}P)!qhETf=zNeKgL%A$gxhlp(ML z0JasfjXpB2sxMf9Js}Lp2qUk`uy{BGWg)6e);*l+jzE`9^^3KX9N^fki|O8{$^NJD z@#p5~V$ip=1AC%9TOCTNu{-==K{o5=_0L9#r{2l5f2v5`h;AKYW$=SvpQq;jElkJQ zV7uCRVzGc#JXB#Y%YlezJW5Z|!8GqYEn9$FKu`|f=FJDTZI2c}9h}pU%M?rs$$!G% zO04*A$k;-bN~l1Q1ijmaq%%&hStnz381vJTi?wTU=85fU;^pI41}#*tYwgf{s-iU+&h7i% z!3TNH0Gyu$`^mfA6zSQs@9^8*>o?njch>L(bTPWB`V04#x-ap+aX*}mlQSI(65n59 zqYYK%axkd4mTvrU{9vW|jBk!VB~=hkm1ZzK$x4YFG_MY?flJUX?j>oqqyiC9xjvpu0n3q|Wh{ zVnAvAGoxCda?))6&Z(szJkfLt zEoa@)|N7s%SMi_xJOAw3WY&w34B~uhG8NLr+$XsM0%q&%ZYzD?6DN=^dwQqH|?4r>k?_l{-%CjP7c9TK%>uhdlz82yQ8bS-K#sTJ{QxS&wu7Ti9;|@upk!a zS+TT~1rL+QWo9h`4`h{Q$J68Uy9zZlt&6*Yg`J5xSB|O(l?v0n_JE?$n$Y4CS464b zptzT!QzFWL?`4=Sl$pWI0=xO?Rg!<8g(|_H169^%0?#kVZk#`et62X_c4)=G>^z&t z|EvGe{mZ|nC;zQ~{7Wk^DkgB<5)^?Sg|Bq5l++XirnxZaWo}ca5C|u}EZF4$WF;bM z@y|VE8iTBWSg$v3Uw6i@MOlO8{@`^Vz;nCYwGc(+ahW6#yI^dArfP%>UjxQCoPXH| zOobR*L?1E(B)T1{fEOLG+k*AnXV>-i20G39LvO5iQ`m35^QG`-Jz7z%^T_wnl8~Y_ zFNCQrjI{i^wE=bOfwGc#;IDb}MS)l?tg7-D^Fhe0uxIMOxBJh8bo;IIuM`9xhgJN{ zMSM+Vxn-%;AepT#5BfHL-%-}LAT(N3*o0{n#1fp8&Zk`_S`M0xsv!_-M;reKv@Vq! zdGGr|Tw5xpsEo^ox0PZvUI@dn5YZOYyzPTk1afJCC=e=?bw5g>40U0DF`Pu{NDM`0 zIxD43mVhWDLNO@EVJ02=A{4M^?1OM62~n!E1_Yu@Sx=ltQ&R*tnr0?@EVJFxF1KxA zhN^7d97TDkh)LhG-7T%&8fm`Cb&MrUw!G0(&WgtKwT_S8M~BgK{E*H5a? zZu9&<{s&gSe}CnlZTgKE9=aBH)a*-U}hz(Tg@6X1jf9 zb^L=-e`2Tn^c7#R46*{sCrS_)*5*^`MNO={txH*dY>A7uoyfCl=x*sJ^kCSWoKALN zzyD~2!Ce-Hifuj?cjYdl98Mv#h~Ql8HOmz=Y-RQ|E^wW>!6acufvm(Ky*8t9x^W_~ z=>cy}o31%a%Z95Arrf@iktWU^6h`&_gwXVzP6BHJm8bHaW3L1vcp4p z!!5ABd)n+@PIf;{cR!7HF2{f|E3lW#EA`xaM^ni4is(4A^abbSZ2Ojco$P&@99&uA zY4@r*0?S=^&Z(14+wgAdWV{P(yJ+^$(p5c>52idMVVrhP@nF<{ri_cqkrT7e4MB`#Z1*reilT* zt>$h`nlCZ))S`K!4v-9w0QQ)9absoJU03U z5T^3dhA)7reykua&uNJfJ`gyq&ck*gR<6z&n4}(_nW(isCRLW&*Q3M~8M`&JjI=!H z+x&e;S>J->tKc6|#KhR4gbzW*Z_xq^YpH$iS6;Y=ZJB3fs0*|JV4|$@XhjD~;?s`t zZ-EeQly9e$98+ewZ_dokm!Wg)pQEIB}i*1Wuy(MqKS2NoaWKvcFhrHFD5y*=Dmr4n;E6TXN`L*hKUHCkgNWijR zXnwVlgqpFS${*0yQzUazDLN8$9!9;-tjNh5OE%?F9 z|H_BsK${^G*6UYZpu|4HT1SfvswdSKfsX-w(Jl&gcv{CQUzr!hwNC!Sf0fnmzw>|p z4aWW|SjYzyQ>An`DtnLs_xW0XO9144tHkrXObTBDufmci(@drDn*+y{NS>o~p$zM` zYxXfPxHs;w1TG{?pRND?U*?N;w|KEMgk_|)0uB*2^BdQYW5oLEW>}Oh;EH;0+?8(C zdjE;33o;p*+7xiY6A5_oLCxB72n8LPJ(WBtfR^RHN)k=op)G*7T3fPTxqb zAowbEK}>2eOKk>w-tP{RGnuP|llaoC#4~xfCHi_RFVZUUE*vKNu-)Q%@HeZ{ z->wY*^c`jWHGh9(ly&oB<7O@>>-pL(unHh<{#E(~gMus!Xk?(M2?Pbc`eA)6twGIC z!Bn6rD7Xs%HvR!{Wy$s7Pr+BBtl+DZUymT%Y|2li(Vb=FBGRQ&N}k1ll=5Ye_)5W} zRR&!!RTCm9VT;CFM|QrHL|KZ@?F!}B7zQ_7R7Osgifu7x4()Tr^tOJej(b+7l@n#l zsemGVO6;RVNllw$dtpILLgRN2e*3@vZ=d{KmOB4`df)6^+`%dK>@cWdM)-8DC5AHt zw{}ma`)2?okeIC-_b;Y zt!Zj%KES6cum>h(oDAZ;jAs*skku4KM0^NC%M5NoU5GY=f?oMlnvL5prJ4>2zzP6( zU=;UtA=wK~#Th#P3is5%{ZGbm(SZCbttf$T4wB>l#lK3b{hR;zmlP5Vfh9O(-R8V6 zfC1~E5wBiWJqQ$`L&i(Y@So<891dZBNc)*?76MK4lo zF}oEc>w(IEbGKRE%$ZTiBM5q5`b5GWp46ADC4$EV~B(G*3i8FkEAvPVn5t}90(#Ppwv)&wQX7yNKEJ$&zqrQK&jm+c+5M5P&ccVnmIXQON-;# zUn^}G^P*5#8SqYrzR1c1EtdM{ZASrxqedt0+Gx%dW?v>$&DJV;EY@k<$7D7302mNmWU24^SLBPPE z(3G5++prQw;9Q_(nP;vAl6)fxDIHh+(OV;KRQkDd9-L8Us*mq#xE$Z9YW@D?-NEGb zL3YqN=4*j}W^4d{7!?8P4DVD>bY6sl*x|#;$O1P;BG-H=%VzD#I>Qp_<}=1`?20AC z1QJ}!(VM4W;(TE%3^2n*wJ)FZD-Ou8dsDJ z>d?Nn%yLzbRD&MO{d_H~?z3bpv0Aw;Jv z$XXY}hpRUaRt7(=4u4o3|ILTN-+mna0ML4W`!C<#{>}UEDC@8I`{Salm+QALHf~?6 z-#lLfg5Nw{16k?iOi5fTu$SKx5LHg9pVk0c%@6C%kHDvu@dKSyY#)Nbepnm*X=U)k z>JTJm3}K~j#RFDA3-D(BKrof=DQA1J137|;921AELNwNwm|j3xERC!{+cQc~gAFor zX=}=Gmx;?mkztj}9G{7jteJz|+fd((-O08j;xpzo1R+R>~;y=?I+A{>v9a%+5>k9t|ogIqn+~+ zJ8YFFDxk4*BL9*v=s<@lAQA0?WlRXqs5JEwTS0dwmGTmj)@89HZsv5facC`jSx;-f zu~M)NKz1iEcjMgrD1+yzS215TzWH83S$?4SF-(>-$4R|`rQAPwtlcMVn*2;|Q6G9~ zNrt2U<^S;SztVr}pXh`s{YemBT2#i&-~2yc|HHhj|C`MKMm9W!Y=k|46cm9Odcf_{*3IJ9&Fih(Wg*s=CEZz`A$NXMHlDap_qh$y$h*9!c0CMq~?L4$OCQ9yF=8Mx7!1Y zfZ1hh45bSEFl94_ZvZemCPbkki+|K;IX}2d9UZnmFFvUW>sXa7Y>uC-YleF!KM{tB zqhhBpN>*$(b-2b1_ab=|VxHMJWK2eR5;T?)X*!k~IbbPTd)p>NL%u4ec&xoQW;ar1 zVfSVUHF{6~QuO#}%*G%3inz*LYz>GcCTtv8t!P8=6_kpumJ*#%rXHFx8vpZD=0vD5 ziJo@{&$_qIdqcLAA;Ub$-mm|M|M2fw{pS9I$I5XofeOC7#oHdf-y0y#Hjk%f>c*+H zm3-ih)8R%?mWahtPdwl)TK+r?P4yaP2$O-`HH!c|c-MCG7Cdt_d3$Ib^EXO|1U_uT z0B;l6>?8B-=6MPI$ybQT>#~5YKcTF{7RpBiVBkf)>5u9q2i>XDzhY&31Rw!{fT=25 z2Ki-Ml&JFdUp5yA06Dfkfq@u7=_ubjBeVN@4oh)DqAnex=5dXe_q`KK^X;f7=&`8* z;K#~Q{nP)=KQQF|qkr0BPF<8$=|l*}fIR*W{>OiR=UDxId&Vc*G9Pt;=h_~Mor2OA zZPYpBCg1Yxyukg@N(x9W><+Eu5le9e(>k2uHIf2a7+o+`A-aQH8Nnc7Y?ts=n_~Qk ztaR-%z%)S5>|(4tM;Ki_t=Lu_j6)SX#!c3A@O3#~@(JMKL0>KYjB`?7uH6Ds+arE9 zP_9KO8AZont;~0=Cox!r39t?ySlMg+MWQT=xsSV`tP_*fd#NI}6|Jd%GU^}eCWVYA zwA;;iSU?FD9aES&YyItq>$eZrZXc}P{`B$Y zry-2RLA*Z<=E?LU8a`=7r1-j(>T`1|9ctXJ!|uTYZKZl0{& zK3la=`y*A=#&A*{Q*FrK149HwUt+CfTj`#%RG^WBx<`dxZ7`v~+77Gsml9j3gUkAX zL0Qi?Csj4U8ly45sKvTPeJ-g!sjI7dM14+uy{wWcePbj>ni0pUnyCG71ow;uy#g&n zS!Gj6aTKozIV^3Yxz^#H<31R=6|LEmEV5yJ) zwSV{RKRdGeMeH%2Y6pG+ayy=E9p(}dY`Ye7*NFs>+laf&n}MOQ&XzMH-C-+&K%dzbvQq_I`+#IcK@7bq-0BoEJG-%+>u1V*y78`4^!3`Wu`^R_2-?wBW zbb(C6KhpKMdk#nQVG}oE_9-a3{DuYJC9e1i;|fSmuID60x8lp>WeQ@~rq^*8_N%75c`H3t75?<^_yWZl+k z4!`xrVk%XvG8yoNH2hartue7rI=8vBE*eg*S~DZ=|JjjOWm8mt=rfAo7es88TuM5^==`3R%kPf z^Nv2TI<1I~i-P(@S>6M`@)~njTExLuRp3!AEtm>=*_qrw6#w!>d6}ZDSy6j`DwOqz zpYpaj+!xZCLJaX2qk1-#Lavy1;=lLANw~D{hgpnHS>Zsl7#n7y>#F0ftJWmbrsYB3 z=I=Yo`WD1jD^hR1r!MNOPA!+)lSDlk`1IBS0M-hEpS<0@eY)F68Q$fh*vAZqN2yGY#7t4#Fve zJu??R#!1j+YoGg@XSd)e^+*UEnty-4G+|81B3h{B!Y-ORd~(3O&Eg5UZS}LL;GTq& z*Nb{p(;h*Y18dw3h5i;O6d2gC0vhNj3JKud)Sg0fIOQH$U5T)eRuJ#&X;XORv1 zhMC>q1lyylaYAvzh)+0*#{`WmM=yVkbdH!_QcP!`t#%(@0$P5sE_=R-*_5ALwxf%Y zpw!+txO>2RrEiv}(v(ke*3d`lIAF1{M|o^Yd9A!wkSlol1l9u6?~@ z3^Ej`z!;QI=I2ZA3SN%F*H>2o^Qkx`%38g7uy*sO)mz;R9|u3YzxmsD*Z=bU?SJ~= z_CI<5+kf)z`agMh^UvOXM_GTx-yaucSx#{E=Gpq~vy?}FT7C4_ENfB8RQjXr1#GNf zAud*gOo39ca@#?&zBS;0a%i_eySuc;8}W@F!K$7jUvO? zxaG|17gZ{~t_Az3l@1WjLb`3vara0UmXu#PR#Pet{Wk=$q!eEMgd ze?<`Bzx7W*O=wX;1;&&%Rg+z%1l=NqC?UaB!cZYgrZPm=#}Bf6nBLY7?2PTl8^3d? zvOfo+uar(BoTwGS7*{EL)uOE2v(H||**guSAt2VodI^aF(ss_!UFtTkH^*;#V=FYy zDrE&_38j|%gT?L*Xll7H413eJP+?)Pgbp(J2aA?=Y?eCXWplk!d$8xrOd06R1p^(+ z)s~lu_7gP7-Ing9`W5u}e3r>AS$W@;ddwHPyap9jSR38$fqax!|EqJp+Ayb1O{+Hv zJm%ZADC?PZ1+|j;iP0lPQ0gD^+xEzM6@#d=HNqR+%co9rA@*r`(6{;fjFbtj0^Z);4?@xmyORqXlSYJwJ1Fso$+cYrU zEe4u-XBvc98``Gnq3QRXZhE@M-WfrOLISOT5ZXW`w1U<`Lc3I@DydX^X63$T#=ft< zMfkpld+dAU8WHZ-x8%e7|DET0WM)JNx>c4RYAnN!UAuAp`t^IC`#k5I|5=5#e3Zpc zxFz6th2bUZ^yq78Xv}WS?vb-@;O(){j1eo90g^OG=18ZBaXt67k$s#KdUNDkvBpq_ zknG8JnwdskBP@xNwV(#4+U_xYjXXd_JfHX|Th4g48}5hp7=ph=WOLg*5h2hfqwVSR zr24M53^?nZfzl1QLDrZv0#*x0*Kw*p&uD^MTfGtYn)Dv0CA=&(+ANRUtrM&T7wwM# zMXquG!iVj`7@T0nQ{)=nMw8;)sSQ3M}^C48{0yY0T1_|JP*zsIsClDsVOQt(faq$bVAh_wPwZa`Zx?P*JS(wg;?tSsIKbz<2eUObBWlrb!^*wG@WfZ}SXP<2dN zimNxq^jp2{lp++K4fHNxzlE@Beo9Be!0jT5U=cow_TRF-Tu9J;4xJ}Z@-QV>b-~aA zHST@ejd2*A3rgIJ_;!Hakc7JTTIGh4Iu*z9eaOKeC*n*S2DdJ6;T zYJbwz))v01b;i8TxOXL1y%McnitJvVst978nc5b_dVsQC(ch~VWeugs)1U_*)@!Ta zmu@(p01B%Bm4KFEB!MM7SAt%dhPG{Yf$yHOlR4)~vepUKYV=q!cWPiH`N%>Ib%HQk zqc>NV#;loY+P3wpMMZ;CNd9R*PyjoPQZq+0o1pyQObdT~+tvkBFzJO;t6(-W9VeKC zp1BsAL??$S>qjndWwtI?D2X_|0uCi}0a=OL{Ic_9QSrR60mO2+OCUsxT;ED90*b^D zrcVT4`^Ns)zHR6q-^+rbM^nL##+>mB7xhlQlm4Zah67P`LKB6rR&-5zji;9AEG{NR zpLnqqE5b2Do%iP4MypJMvH(?cW}{KwAW(2tL`ipI2xm8HrFA+E^DC=()pe_4d``?n zVK=02Y9Fp7hDd=X_+4_jm0D;(OH}xv@WvXYR9(p_-D+l)W*0Fsl`+kVD;eKu(vV~Z z*6gIIUKSd^$V@v9fB`&kxlpoPvUWUM4Oo;NKr2UwsPSxthQ$tL5hR1#WGK7(=mC`V zJ1^7GPg6@6Y0xSJT0xYCApw*U5LCv`^c%plYCc%a!wi#FC`*%55Q|UUETuo76<=xN zE+MxebL>Ewrn?}>#Iiev+vOjIi6JD&(AX<=J0M{#>Ojzcnczt&76cR0HB!(hY!w9s zt8h=1s-j4t8Yzk@p~6nESPjp3l!_)(s}>Tj&dw{a;2cavsfeMjDC}dKmYXPcmQY#PstVupopDs6v3?!<@6HO6*EZl-BIfZ^B zwGt&MHVXzzxe6JUbgqw3h@Il=B77`JPg;~T&PnMy`f2MA;Q;@bmIE1#=4!AYC4HB# zJH#b1VKRa{=iYn_;DiWd>09jZP*%g5#mEI+PLZ@LNKne2T_jnft^2z08`Uz(%|KZz zUDp9}=!^XB43$D8$RIaprlJY?u=Mf{z4&Uewql0ZIGnx1*5Cl;vq=*b+#j*!#>yWe#>er)dcdM;gBDOn`l3b~ivwjXBw;mq@Ul8X zfH74w5HJq~x?B{W1(%vl+ze#yr3_o6NH?lt-L&#=GiqJOjjc!r;o+|8rew4!RBl%L zvy^?)tfWC{ZX4+tZ80)#(ODn2XsWn;b&Y>kZ$X-pj`+Sr?7TuOQG-~?xw@e&$S`v& zvqUceXH$kSd~1h)^+L0YwVc)N5^~Edw!r@wi?JYcWyov+hJ^wU;)aEFafkfSsKb7YHKQuFtcfi<}Htu@L4&06)Ll?4QIMG2}rt$d=urzL@m}#R)l9s z3OE}&04ey){@16~9KR{VO_}{A+WesHL zg*89}Vqa&~>g`Wq-S0~~XH?^g^{whk*LxBk-K(V0W}7|PnsW{?$ppHj*IM`C&ZO6o zs&}Mn9Z79T;_49YO4mBlwa!dUA9WFwh-1OAX%UhGqN}V}5`4kWPIg(NJ*pTjkQ*AMM?^hoJ~~OS9CbcgdUjnIK&b61!GszvakPlA zL8*$pt?XISg5H93i0T-9a`l?TqsipP45=3fxT5O%Xs$Avaov7Bp{%idh0LPdE)a{h z0eFYpr)H3&*UeyV`7o4aQ%mzOSMST$gv{v|Db1seiyU5ZglE+pSw30oYLJ!na}zPE zHStna@E9Mt6hY|_)gd3JxtK$TzO)u7DdD0D#ZRRTNTnMxpk;0xSK=H8mz1_iGPNA4 zbfJA9qRA{3-h+Dl;_k%EcBrr`0!I~h1*m9wj62I*Tg9Eg3?t`57_2y6|w8ldvUv(wvh z)gkM(WgWLF)Gy9jeqEMAi$q95{>c*a(x`Mlq(n+=Yqd)JNU1Hlzey?HjY!4xk7y1^xwL$A%8tRNEF4HmPiS6hC;?PbdZZZ(Wlag5x!QD=>(6o!VnM%` zI6zX+y~kW$`XPNcKxVu&q$*PpsBc1qBpe!2v1ZYFB~zMu1SYcuoQtjDfiKiTX3@ih zw}-M2KnT2l0#Hed4iNid{CqNCGN&1t5`mFFngZel83YseyH%lT(SpruD^F{bt zva=tt^;06X)^yyl)^>26zDR)|K`h#<5Yv14h2TSP?0@L3LqBpa^MpQ_JSB#p#Vam^ zK%_E+1cWunYEnRgGS+0#M6GywbdEB8!W+^u$BV3Sag2VrrT8aSQ7kWQqURDhnSjP| z!&I6Qd;TbK1|7uY)OOwIRq7o95(;&41gLRk#Te|-@YGqCFny6%V*@TlS@)y+#2kqU z5~-bEZDdz1=3*5e7i0~N5;(Fnh4hS`mF%-{4Ac1AP7LYU)QH1b!If*)F-cm1m1Lln z2InWGBrMlcODhLa)|*dThL5gkAs!;D`2mubaMa9%;|aZ3?h_~rrb~C)rNw2@7nqqeZpPVZg_O2F_ae%2WVk9Gd)UD z0NqKSI+Vo(W1NNO-Rm%^f#lL_)xlBtHu;J+IW6DJN`0`hY^7-Y!+756^vo==2K64N znIXVe8(!R2ASmlKnq6#W=sG1hMDYo$o5iq4%UEoQAtJ4g697>{Wy=(EE?8esN^{|> zv|I-8b0fRt31wv{4NoR~0^>_P(Z+9PxDmJ|L~v5e92=#kH>DRbtXSNQ@KV5!`U7C= zjYnolgfkE&#=^dUu7;hUO~R73buK%-NAWS=`z>+^86rFf2QPA#D8Xv4-$K^wiB~Tt zcCN&CuEZ)AW7SL3yO$z6mxZ#zJLe-ir^CBvLOW+eJLiHAP}VE>do`mhKTOECc02!o z>0v@yEm*mWh=~@sE$S>fB`m zaFUD7w1o}}#?bIrxP_jH7AR<-LL@}g&cdWjtu-TW78YyyCCZ7?#!+XE#Q$e8+;_+O zHd>P}P3+^sqJR9=QgOBBykz?BjKJG6{Yi*3wjhUe{`%{*!;`U-O|i5C80=Q(w5UF(Lp40zqE~FuWYz`_X@xKArE&)CQtA&J1s!xl;Pl zi@DE!YwD5Dh5zFRMqc;M;U9T;;8&kqb!fkzG8px~*v<39n=6&8h+$+p?~|Q zBmexJLqGJ!@xScX2~ExUuHMoo{&wgL@~{NB*(J`now%WK_cDyCFM#v4te?nohU z0!()fm`vV0ekS>W&j)_(ox?x+@ZL=h{OH?9e)5BXKY1c|WDJxgcxhEGG?}fnF;+3Q zR{f$9BoWKXU=%7qEb3=~yIhVI(T1d8FdSB?XI)Rhn9$GMivQD?|~T0O~*$zwxB9J2_$+B;G3A1?F?( zh}2EP1_pkx8QD|#9u=K~bpVrgEil_aIhGQpDXj^wCE(y?&epZypT+c!Wvi5n@DnDv z4scE?n*Fr<6{=Qf{c6RrPHFiC(8B5g=n`o$fof?|!XXnIU?31O z0$6PbcmOB%#vG2(3YDAF^9U?S?evOu>bEGt%u3zD(!q|+b>4e)#u*#wYU2wH%$l6s?Y#FDYD`-Jv zsSdiYbHwp>-zI2N#a@A?9FxjW7NrFZs_CGNyEzs&oRP`xs^*H9%l)sQ&t0romcaUCG4+j%dB&jZg(b7iml*QP46*F zaSN$Nt-SRcp#L=uY4jp^acC^Ib!nUqEt}bQ4-}c(lW+-CM6^U7Xw?ipX?pV%;t$%| zw>TK0xDHie>>yv!Bg3+!I-1klu{B${IIo!4E^EN_mf;M7vNu)jN>#d2)lO;1N$*nZ z*5&B-m8r_*DIgX!wR<7FeJ*(ORN&U>;P&a@%`<_U4^Y+*{`cxdS&pq^=N4nt8g@wC zT+;m+%fb>mO8Mn3+*Z15f7_Wr5|^cB*+GlfB4i8Smm~jM<_+u2Ht=Ox1wz{MJDu3J z0|wi~GQ^C?@o=U`=fZL(3R?!^2yUN3x_1RDJC)9nKGha`xn*Rzu83O6ARjAqfjh|3 zkVJw{qTI44XjEFG)z#c49eV}C=u)*sby1Oyls4;UzA_|k`tMzwx)DKeYcN zM+5)#v-$JM8U-!QXNB9!!NROJp1%6b6M>&@zov)YJodX!WWMoI?sH$B_-FTw|KRJt zRP4@GT=OfjY-c_f2M-q-Q$ied@mDfR+=YqvlZZE#KB? zj>YS8tJ={cCVDM19!&_yw0EYnYq;+M9W5l%DTP|~qt>i>JY5~jG|0uuIM|F-Hqyz& z^rH>5rJ6YeP@ybt$^~Gc?^>;bT2vx@4#z@JnwE%EZ|7g7XMoRx?$6%?lyyJI6|>Qn z$)K4zL+Y$GLU7T-K=Dw%9?5w^SyMQ}iNnDVUP8eYqlQ15LXR@dJVE`9l|39O)+x(j zBqow&p9^aNy6g&K>{c6{(nnfHk`73L*_N&Yw>RIHySUV;c7&nH5#bz66$S-0pAGY% zOW8qImO}{kuY-|J^<-{Cx|*eU6$p&vBL~uE3?atu}s0q@QxU>X-|Lv?b4~FBqP&44gs1GXb7#z5jCTr^RaiDE3^Ye&WgT zyO@tpKl)f{Ks-5b_71l&4c}U}t-wz$kh<0#T0MFu`>mIgfARV7AAWlBXWupQx<4Fz z&HLg;~#82!t@S?*Iq%$Npo_Rj{e?2<-x;=~4 zKSXbMVi{e(*g}yte8p&|HjX_X``r(Z?pf$WKm68_pZbg7$DS{D<~$U7R}q0EWI$0Y zf1@|Baq)8gsS}w`e>L)sF9iSBca8kiI|g6-aOC;rnh;cC!5i$&ed=@LSTpT{uYJq# z&;Mogn*-P4ru0iR6Ko;~clN)<>i4;PaK0YM-RKBxcJ6h#Zz8|_!Qt0o zdK>sxPpu8*n&P)`<4j{Hv3-7I>-dGjmtV^L)z`ys{(SI%`_qxvnbq%OgUr3rnMU70 z>941 zE!*PNf@Rgu!s^YuYqiAm1_|c@XbG4Jab@vwS@s=o)+K1*+{RG`t^>BkBsdIK0h9K$ zL92LaK0uR1R9Yv#$^8o%)(XrJFk*&3Z)&C{IfZO8Grh|?Gs2q}7FiVlTeggn2;-)y z0aA=L;WhaOXm>>AZ7bLAT}jqNm!mu9V>=gO72&J%Bx3EHjBK9_?+9E8Wt|G#I1^&~ z0A>B)f3Iqkh0=!K+1XCS>kVaPYyF0)gqj>u5*#9>N}M-c?@5z0(`%V9f>=^*P1S2y zi9#PTVF?qUG7tsgBE_rLWp1%OaHTD|UXJuFselHwkV#ls3}sn5N5ob>h6-C1CcJ@I ztfe`V+>*hB)zZiUDid@YC2p8yJhRj+uh1j}G_}!MSZ~f-UBRLqvEEb71s&gPE^f9K z1fsT@+Rkn^XRW@Upx1mn^B;t5-V}VUEX38C->RMa8lY<*{ks=8vui%%hIg+v^Xo04 zBmL0yc;WM35B}mo93^^R{H5c;pV)V>P5=07v%2}>YJDbK{@|b9Q?&OdzBZd&5zius zdE!*)o?gjs?EmpE6vyTP0SDi4rb393wYTa%68zCSABhHj<=aamL{*_| z1suvM)WgMEq~L|E*r3o!zih3LjBmuo}$oiX;n7OT$J!W^P_-X)t;xx!thX zD2erxy{6Td^7>ewyQHycbyH_nUtxI~1l5|=y5nD=tg&oE$jVoh^o%yz)+|fcC&*+h zSJh%1*O^uT1D#JQQK?CmcF9lv*6PEVpe1Sk2kE#bo~`Ip3G*R!K1qtuf+c-CG2cuR zpx^X)(Ea&)fU@ofxd|z9ZWfUyB(uUG78;4wfWaheVcSxMCZxuZ=KvcI6g<~gmrB-# z#)YP$GQu}yE(pyfGf|sLWMO;EJ*&NrC&4sA0efTql$JF~ftOY5 zj?_@}C$mgrs;D}1H7m<_(J1**RV)amR0&A}CY`ar=r3E{xl=uF7PCK|DGWgF23*G>E_Mk5v$4$Y$ zj#R$=7)7bSE;oz6U#&#S;oDq_tv4jh@Kl|kOxB9&&{!+?2cQ*E` zzjxrHhbKNY#GUA&xaZXBS05X@+n@hWKNkDjmvf)qZ*|&FZ+LQ5NYz9e%o6d4F22-AocVijQTWBBdcM5$rB4ihpKy=C zfBW=eeAQ}cthNekt-|^LCX`i}9!mV;zJqts>mOg{ZDt$d%mdx=pFeOyo5nuU+Zak+ zef&$`-|F|d+=Y}sJ=hvv(iTcx{m$copSsKH_r@nOUpbQdUE zmZ~$6=)0~?Mq+{D`(#X5%@V+^+nPe6SBYkV2^gEWzQUG3V)pgx(Ybnrct7(~87N|1 zYd%}`zlpL$Qq7`5_D~ZOUh~Q@q&cZd+*PRP5y37bN#Z5Bmm(}CtWC49kcaFb7JNYD z@D=5GB~mk9f2z`-uJ$JBJ1pvmRW1`HxJ$YA>Fo=V-Sd&1bCK<{;q6o5owLE6GkCGK z&xCePPTo8{dFuhn`oaHR#V89M*8+$$uzSnskPcT9QtC@OWMvgEQuP4~7Zi188a=ss zU$)UJm5!nU(%7VvIdcnEcF|C-X+cW3r%0`_@Am3a2|s^ER|driYh{|cK4muWeTgLz zJ25J0LgV}+Sj-RkByKDrOXj6F8lvY6&tW~rW8Ui|1E-~Fj*6v|w!6<6d{2i*dt!QO5g~o?@%=@se*DX2aWM&I3nyp>vs+*M*g-Tk_(PBMKlJv% z$Ih(vB)zfB_PI0DzkE>8{!#Quj$#thHt3B@QdV^+w{)<^pimZ*$85tCWzhr^m``e3 zJ@HK7U><^`S}#$on$MbqM!DVZed%BUu7MwVWZ*TAjK2BB`HN9-$mPz=|MAv+=b)f` zAtZ>Rd5(%>bKCpg-|olNKl;TPbj<>|ak4P~zIWd9>1*CN@tH9_shPBMyVA+16F@qa zm2NKzVpW61Y6xVdZAH+_p)C8TGMU@4P#nkcL0M#Ek#t)fkbKSDNlO!%V;Mrv)B1G@ zYzCIJrnDqAG6NbPjObdJEL96cA$EV%@FZF?-G>dS>Wh*w*x->p+HojL`r6Ha5RlB@%A&B-{gOqFdjY3Reo#R=ACbfyE31WEmb~c->NkX z6L2NWV4t>~#yVNxil?x+LFsBvKMR<(Tf}pL->|Tl1%z%2S~UZHej`W5Et(4hjlsM? z-v6$CLgMJ1Ni(6FOzu9-+54|B){Re(q4K-+N-;csBS?_8n}~k9=WM zf-`Tw$LiGoV}Dy7#>%O8RO>z#y4UK||6`98`}lRe#HQZeq+~aOyBP@Q-*y+8dgud* zGsTv8MP#uakL4e^*XsAff068-ZRD34x#dkq5B+G5hW_Z% zE$INob(%F<-$++(clEIY5rc0%+sF_Gf@6m)uenAjvHZ1f1%K<^gNLFx$s@hEfov5U zba45rk5B)HKRw*)_mL}$kACnUvif~{b;tt3Evc{V#R`_*w$JK!wlUc5O?>(2eyiUv zKe053w5m@~s2T4KFhlE+mfuY+QcaIQsU@9CYjbM0H8o3dnwXH%yx)45LSl=pl=+~9 znj8se5$q=zHd~L|SDfQoYgR|h{Y8+f&=l!di%pTkS3*{4S4fb&_g2b+11*-7$V?Gl zZeX5BDql4)R}DzVBO198qTmf^${|Cd{#c}1p?*4Lh)iHA(C8o^=>#G(eI15_;!a`? zInv9u*a;psScMfPQ`J`BN;|`5zNC;KF06X5c?+cBP=g>QlvTYHubhi*pO5Zdm=eCC z*2S5KAl9wZpLG|*mI*5YP;VY6D^s#}w*`r@_5!nNiiF0AJA`tA9v4cu89 zw?(rXjq-Boz3}>>_jcB(`v=gvU0&b(+M{=KF-Iex8l(w{@D=qWHgC^bH{rsXa95oI zgUij}@xXy^4gJpX^%!oq)z2Q_@2~x0F~8O*xU8^yDEyLzI%Jl;%xW#QTzlb*`-RF+ zePbT~{u0I~V%b-2J@eUn8T!MKV?e=1o-Oxzh)M6^;NwaB^-kwNQ8+iXPlAem>=T)D zDF+F5MWeZD&vTOp{7z$^=*NpSnj!HCgD#l~hx@XeRao=H^>7_f0=NX@Rl^;Y7Wcris0|hX#J{m@SPoViHeLX6sWQ z-ggd8$kV83s7DjU<&Pe~iogBBwQxPg63ts~SV98cDhoieY8F;Ln}n-5i!fPe>iD$P z#+9(-1W8RxmLOo2#{UoUvhLU4{gX$g{cFzn-W8w7{iAvcAMvTCE)CzPFKT82K^M)O z$!v`xgi?!lsT!cykU&LE>KE>J8hlH0a>09WC$AaN~$nG&WuW68!qLW(yfAs`2a0;Q9r8F%(q|F zQf0^bVp;B1(=vP@eT2Cr?LGTd>_-oMI^QkcC=QmXbzO@6)V<6H`lHwjIYJF}hj`s7 zTF3~vyBf+?h62SuIGEG*@W4ZF9Qc_}CcoCV{?{Kp@ad=X;wQtowNF2~Puz_CWq*B4 z0=h)ChRK=5KR;mg`-?7(gI*J_Okg-vZbV{*H{WaZd)K*YNDynGF}>JGthCO3Yrm!J zC%#%vEK@Z>vQO&!bouI6K5-CD4gT;W{jYsT;B%cDvH50Zd3U5E`mYaK{r)7@i3OAT zy`}X=d9#(@Y~OD)!tT#fn`e$HFjWoe2CFOQJ_Rt?Tp z=nITL7GsUb>edJ`Rtf!>sX0S1){r759%dl;iX+;>5bWR>XA&x3h;@!T~&OmafKUwKY?RLbgJ@I;Hta>?CxfHJoUtOHuIX|^?CUQ&o z>TH-4tdoK3r$RSR1a6!P+!P%T+&pIV0A>B)f3IScWw{(?bnylW0;H9&s3%Pw3m}#d z7i${}%4nfEjQ!heY~mm$V%?5AqG_r%Y^E|4vb*F^8+2if^RqT7QJA5IAt)eKW&3b<4E z;;L|3b8f3u-e?uq>hUvn{9gLUUn%7`TC-~e7S3!m!DHIdJ>X9>P;~A9jCo(;ibW)+ zmun}#x{q~^eR`~>r^uc=kj3==M9(5Aq!!Iw%dWJ#o<0x+^7(?;mQa>1E`XQ3GPOT0 z@%@SZRl0}iCuUbEXJ6`?K3J#zO(#8~nTu4_7X|whZ`glM=o=~NA7(JtdpEPt$XN1! z+ke`?BgZ`#fi}`E4Lp=t`S3xMbrguDdE%%qWx&AN$P5XU9l$d`ZxI?M&zNIvD*W!f zr@iKlqmuOgR0NH1&B1KxZ3hY>|I)YDzFrLdVj|&04U&#UgSwXDGE5t>fx zDbLl!IU~hZxYQUe=~kP8B7Q#tmh6J=99?iU+thZL1ZkG!a8_cM3?GqO-~+LlKY(8i zzU4&4!t!0+sr8Ri3}YXSy!VosW2{iBeg&Lar0}4WOWmigcKNwOtbV`!%xWjKua-Y} zfHObz*#gYxie-h}L*Z{oi!C)K%2wB*SbyrV{ov<+{MtORizPoaG(30hiO=k}`aNsb z(x_FjO9@RKOqY5%_}v^KXA)}KQe5}q)V^qW(NBCjJF-B#e=Wx<6jC3 zVwq9Z5(EkowJR$JeOZ5aR!{*%k)SH0=A<`0FO=m)7Bm~@KJc#n=l}c@D+0GZf2KKM zgJQPBhg4 zQX>H^C)4#(Sd6S7mw7>et}~Dc@ZgV{*HE|8Hs&ISwTSfNpoVm|4LM_hz3%&Bp@t?FlpsRB{dAKagk|am&6mi$Sk>4tZS|1Vv`CY zT1S+(!EL40G-iropzXod5%+*19jC}jyUvYfCe>Ejx{CA=15_v&h)XnK(+w;It3Org zOI4%;^d+i2$!c%H>yCLH@p?zhyAt&-MJac2J`BXV5WaOTw0$OY3kuvkJ9*>u%B?J66#0$+RicEl|+;? zw`i#Zi#5j!Li3cqh*-GbWZ4U0?eM~7ocOVFEn#U$xTjrm)LLt1tuenUbaZ>}DmhmI zPRm#SZei>1mbaRsMbSoMakIX3wTTPsMr-bRYhL^Gq-rf}+@4$C{HC$9-#W4-^fh~} zHLFk8skA=3QhevZ8W;};pP6aQnF~vhOpJSegD%4}Yt-JroplJxN_M*roV4zqD7X1cU2Ht!p|3-sNVTV$k*2d@DM~G~-_Z zD$9pV(omAXea%d_9;NGOrcuLlvsv7Dke7A8{_dYVV%7n%>ceTHRC74p(pDOzNUEfk zv!)ZmLP~tje59G$m?&KvN&5jg!M3pm4bMdn5)tHwo{~OM#!c!Vmgbd?L^S1ScC3?$ zYY17wm0f|0Xupl$d?NMBdEF(64CJ_di6PW4v@UOK20-YFwy~h3n6?dwCf!hx+gl_T zTaiOwBC$I|SYF*U!1*_tK9%Hq)!qj5itssf@x{ zFxlv8eErA)$?~4~O9_mvU8%}9|7O3{@6WGPgw1+iIz%2FllEWmtKn(5PJH`-Jo;?G z-VXhLBlET3<*6UvcfxxU=jUo-FVo^G<^aibOdmv0zkj+WmZDFcH77Ql_@({lgr1qB z=+w;G?L7fkOr-z!{ihB5@fF%pN}v&6`GNRq~6b+7DGV1EV zF2-+oa@EZcTMPa~8qDMmvHEpd`$v;mHhHu?-0J6FhsuEssZU2ACyU{3`X_%|*3UUQ zRH(h-i4~!gy`|xHSd4@Vfqo;iq|OozWKbtH>wBw24lHHb_{srJwsx9@3lhbE#jVVK zO89E7k)8Kbu+UN#>cu7MIu;i=nALWnm04`*BG`gwok^}KEzU&<6G$w4HM48@YFFaY z#G=3SSk82$q&DMtu@=Zz1GIU-ra6uai)g^0o#uSS;z*j4Zt-fLmD{%V5*CMdQlenQSI`8{Z=Y)AWMnWzO0oB%+!0t zBhoDCVUsjAzmaD+Z3!;7{-;vrat+$>>r<^>Te?9zfmjiPSdK6sikwkF@&kp>7ZN0H z;X@-+i|l-25~TleK{6ESVd6?fTl9!!PLuImA|*QFLYUwSwp^E5S&IANzbc8hZZylQ zc&nDS1fOotU2iU3XJ52<)m6D@%wKCPT)jQNb$fQJQQEB2{8wKWOcKy?`B!fWzBr3t zYi^^tu+f~gni;cewbNfYB%=B^Us#{FDjEw{Tg#ib7jcWV=vJ(oS!w1ELs^||Wz;7t zw(fXSewm{4#o>bygQ2HqNhftJ{Iql8tNU-}-#>p9LzFrC^J}y3zc3Vnxxu?d$~Ocw$V&oDj;Y-yZo02F6dB} zXu$0Ekm+QUe?T{qtg>*6?5zuzb02$ba+k-_BeZ-`T5!VpCF1NQW!HoV z<&Ky_Hj#$1t^=FL`eK!NgJ~Vn9M%lS1L z_MMeY;-KgVow#fdPC16;hF5F9I+) zcy;sIGWiX6v9*Qc9()*}V*V=!hs^vjk}`V@xsJZB%ysO1TFF_MqHdDbLo=Qp$6Rw@ zNNXUbr!eQ6xQgAd!9~1q+%~ZxJQwy#mSKG;T^-4+f5LoLzxL$X0Buy@lYJK3-;*r- z-v@)@9u9sXP$LxI;zaBLDId>zCzG?$f8>BXdQZZkte#}8dwTr~U!44zH)Edr@7^`> zp5xcBz@{7BF9z@Vis;?3BRsq1k6H5P%LknQ4rSrGob$r7yWjo%0juBV3W6>IU{eeA zsij6@v6&i6{PMnYtYmIt2`_q76K1|PeF(}5zlaN~QCg!FBqq+aMq#b+_Wh^zzw1In z0$l=H5Q}z~G;vz}+<}O}KRAmk-k~h%82VkyP_XwnyK)d^{lb&0k`&^Zbc$y#xmk1& zWsQBP+iY8H<6u9P!w$3hSqLI?z!?R!O>BPa>yvv{zh8VTcPeG`mKj?cPAz`mpw;h* zWdkSvq9CTu9Lqqg8Tw)g+u*`-fr9iAZaNf{GG~;JvK*7QKtZ>YmfmG3OH#o9?tDY2 ziJn)Bt*q%MlxtsZ6{Vgn)^ju(wg%ZonfYdNt}cpMK*aQ%2fi}5c0^O9w2N3|flz3Q zMQ0vz77JTbJJ~mh33_a3M@r_HRi$#A!B7_OLS*%{Jkc=zD`+6S+n*9udJ{VX7QJE+ z%R?_sdR>W1SA4fCR_%yaJ7QH_SW}ft)4LbKJLkhY=caZ}MQ)uA-#Qt(c`A70G*N;# z%zt(B`1tjc=%s` zP+=X)(yw=A=vmxD8`v(3~qdRSN*Os$s3|#TrZ* ze9|abj5XkDtx0=d(py{Q4YIK2wi;6M@|*QJ{VVpW)9kqL)yzgcPe(kun5V>I7MuCi z+KIz()IUJ)j`a$;0pS{p8?E{EIzfYLjr@9pZpar7i5To4cDXK`} zXYK`7`-v9i7S@8NQXUJ|xb<6g{N8Qs_xjaZEWdU?7y0 z%O3za{l9yxHdsIja|(^r`hm>KLDcldqi7GNvf$eUaT&_eR6H~m!bJ=sW1L$Ck>(9& z58lA&qdgXcZ3#};iPM5E%O5!$Wm#07^eRjYW@T`tW6QOPDP z{4-2!fB8>-P^;fBes@J+OtZxtgWmM$VJK^rt|}C_STkcQj`ZR|l=Y6wjq+Bryh*$N znblfpwU%E#3}v0efnz9(`aLna9+P@%*;%WfIOxmz_KH~X5b-_;5no3-#Oi0U70el{ zB}SHAt?$s-iYHbyuSUQLZMN(SP$t_@t}1PciJH85>Qe5*pKr%p+)I*2S^|czSSePP zMmiNsOw&>b$KXvJ_n`6i)I7Qn9fucjWaXEdS<{OMo-~bx0)v7~bB(wos#a)ZKv_DN zn%Bv9Q!``LWt|5sF|WaF>RSn%S3*`e!KTfsGNl<(q6tK(R5SbIoi%P22dlV4#xj-; zJvg$-g?m`0rOuJ&DG@I`rh{X)gf(K0#JkLYr4>QB=Gj-Zv4V`%WSoxHsJPky zom%5B-A~4Ec3~}^hYzBx@V8NYP!U|3fnM}zp>WWb^}ENITAD3RcQHBf{UQd5`jZ0W zfR;|ySM=S%%<^9zhO+dLvosqKY%_Y8RQpH|OxddTIm@(YL2@$FZ7Qu6AH{ z=klqUEKxS9!NFTWho}=C*-D8~fw=cQdmvEX2=kz8k zy{T&3By4H7iE1AXSj$!tegI%d;i~|#@>Tj5lWI%nVzxyuOm$hy$TbqIqWT3j;#(ot zv)<)hXnmPI8w;S5N*E?6!7K&K3hfv=GP9j_94FBhg8~!Yx8pc+OTZ^v2rPk&*XPt_ z9A6lT9OfCf^=K!9vWD~4cGBWL{4hlyLHP-0l2(*boVDunmS*fo&*cIj#bop?#{nh_ z*3G=cTGrEzWGf@-Tdsine;d6k_MCOL?3b)h2xT?)-W_y^FH0y(XV&%Z^wv6)UPsEK z6qfxfqEuCK?Gt~o-|F|~lNBlk8*m*=F7K}#`_}N230#-sgi6+f!Q{WY`%_1cM!$VB z|M-dg6DM*{p3FaWGWQ*}S?zrLBu8{y^z`73NmB1f-V4uqQzP+%^6162x}@0LT5DEZ z$b|3A`e7*R(rtoPHgC^uH0D;l;#$41wsNp5@gJU}e=)&wi_PdFuKVa5i9<1TkL5!+ z{}an%xpYO#Ry56Ewp1-T#FzEq?uJc8@m`=LY?LrsMW=$XA?1~izwDN#C z7(U6~LRpD<&v~@;EmyQXzR;BVWLOL98!?|I5rAao1am4@e73e1WQhN&T(#sY9NJ`E zmg<67Rxpqf?OFxnRHo4|5->lM#ZKzF%xOns;=?V2Si`n9IiB0q$c$vE6R2hGN4QAQ z#roqB83?kfh|D$w%R7sR@DY~<>(u?HyY75u$=QI?DJ zK*rz%u;?ID)QJ5xTx2l}5(AQLj!bnkHO@&mxW8#{w%SpGfl~Q;AXlHT;E=Y4XIHk1 z2b{0N^z4BgiC89v8@=M}NeUan(=%Rwt}%q&1*;wr!^Nf~kVt|`;wn7fn4F`lgFu%g zRs;_|t2(pX%B~PGn74`!!cM|hf+&u%%Z-dJd!3VCYl;gmUc0?uwK4K5r0mn5VZk+R zBp#si*$LRwhf@7Z=HRyElQa>DT-h}^p6Qx8ST5qVUntIPwwBr?6;mgdHo$VF!+crY z79Z%qm9~zAaNLoZ)mDD>c5L2@q?f<>H}^Ew_=&%m{>uKY!~_56{ZmhjQ!I!S8Y{*s zsSuw||9|fKqEGKnj<4TdSZ^$?l4<6`)3vpjNfhGwRWMj#1^8zO@V0d8%xLnU?eM8t zr!fc#GgUN0CW?jM+kYA;3l+ymvqjs1%*uxjpeDaxmL){_h{A{pmWP3&*FV0jPjx{9 zR{~CgBI3)3NVSjjaE_R=S-DV~#&WBNp)3TFC@|BESe3Ksc6&FU5 zSXlk^L0S9cs*gEs&TH!y6vz!xhcUuAwY1}ohyrH4Mu(H+FdXQ{$^~DI=bQF`Jgl=^ z0D*KVt;Z52v(3!U3Y8qyi_j5#Xj*aRdFDE{RJ9lxSdo)G2CtG9)?<~DC@Mfg1E z{`@^aS@(m6h%u{yqa4bzl11X)Y|=_y^BsB_@&44 zlz#{nwFIhk4i(0LduaBOS%HU#U_$zbO3Gl*p7FFpb>;$PBrM|sOr?dhx3aWe+&a>h z%6{!hP9QPmb4=?sq@*Ld2j6^STPkpxG_-$B*=-YL1FiZWT+7yl)7VDDno?Df89r(* zJf6xQW^8f`5D;jNI|~;ypw*6svS2f+W+UBZB;YV0>UrHG-%a+I1cr=-GymDFe*gVD zhyVFIX@KiU`~Uo%BX0XYSajdLH29Vit`4=IaqVJQ9LnlGm|^vv#1TVfygqBaDxvJ& zX177CPD?T99WOlmwtIf-p^s+INSfO)UN{!MrxyIf;~(p-nvE5Hh{_+jO z`%mkC*ZKP5T4R2#KDW{=tyHlMZLB_au*Tq7IGfm=xcxL(qLDDbAaoI(TlwUnzAVB8 zO?b5#>2U7QJYgTzI{~LNNAjzOp{!MXI*=F4z?$Yx9?b3>KbCmod++WcIrwvrWu6_` z9VxCH?2iJ z*>Y|*8VmKk0vH+)eI5KcPi;U^oX9{z3Nx13#hLiHC~*-jdDB)WW4i2`Yf(+qt$i(R zDSNikS;$CF15w&Rrd!ko>k$(Pp&0`ZDFdT z3j*gLzC4BWVzN`l|24BJ7s~2UtFbOSJDRW~a)qrZ~oFHy!K?_*d zW(e58tSB80(_~@Y~TMmou=y}?MxnP zMro}@5vcX-ytP2lS}>6;{R1zS@5pKuSMd*1CuXxbzg3@=ma|zeZPZJf(s;DfoY{JS zvhLU4{gX$7C@3{^RY?V}cPBtif=}8KU1PCi9m#5E%Il)U)r3Dee~i-=TsGMC6a9ML?tTl3{_~^VT=gu;2Ed3HGW<)}or5p=gi1hgSm-bvU zNMv18s8SE52R!rSIE>|k$>aX7V<8o3hr%|QT6f0lJTY~!o!~>C%6A&X68hD)M;N#b zgL@9Ee({3U`*na>uhqR-L9F(_4YTxneN(Gn_}u7!ch`6S$p@xB{$l=P_jJV__|f-8 zzA-}8M~mYk*HnBd98CSzU0?L+y@|6_E+GdS$z{s=^gJ-Yy2`>f9XAtS(yIr)&eo@g z;s@o?%d5?~Rbo}B4@X(LL-E@^;bl9ARKNIeFK*S|8cKj3ahlIhu;fWQbj5)G`Hm@S(ronz|zu{1pRTLB=q8!&! zlbi)pNTi%lgndb{iVz0ze5p*3h5yB^fk$l4D$QDgmi=prkl{uuNznMykEj6t9t3 zgq4TMz_#m`nj&$Zc2}st*Wy$K)wiSp>*u6p#un?zm3n%GFh6mh%iliO2c!SDj%+So zYtCOI?0a^-C5R%`Q>ZC_{t%Sa%cr>D#KJ^k=&6;)j3CV_#o74oN;9=kpU$s5{#NS%N{=tupP9m{lie! zw^t?#ChU3R_27wvRr@1HEd&%KztYGpuN{mtdH6&{sF+n_!egAS#B~Ckh~h({Xhvzr z0WHYTmv+YTjS=pUK>SfNt`AYB0+Qm0%4G?@CB|L(S}C9! zmV$<&!AiGO6NY^cN7=vd0kfyFe)ElCMh`GNq92kTBjjeW`ys309+}6Wo3_gAE=xBu7B(Amc#P|_YZ#R^*=9B$RC2#xfA>!wSx@;I4l4@+ z>`K%-66oAUerTDLm5x-kL;LzDUh5!h+`E#ji8?r+B%i)SZJ6Ewu;OtV`&K9O0umlg zLUUEti-o5mWiZw_xx>HCHMWln8!&*B`c$?dB5A8UV zg_FEpAwAQebO%67a!P9r7BLDN@n~KmDMm76oqRLFs#Il&AW3kDzNO`9Y=;2gfNs0g zoP;n4I@g>98xsaORiZL=)Izf`NfR?}p-s!v-l<46B7e8RV zt$yRXTfnMzs;Z9_C48-_`#`$<)&rqpuX#B5Hvv#nZ?b`w*+x*f91lTRiRb8(>4$m( zv2-%hxh}cfnW=YV>YduLPX+dR!V7=(kwdJ0ulv)<|NHC7@ATdr6sIcjDg~~@tWY-e zq~$}ce!<5LLhE&hZQK|-S96j9L3Y5kOc01Y674oun;tnt9v$7lmoDKuf33N))mo;6 zVDVl1PwRjC1@UmNyxN#sZ!D}gi|gWD%YSnS%A!zS#>}{hW#e^=q(cj1#O4pHF-YAb z&Bmt0)(BMrJ$Py1kO=k<_W+dpI_vce$*>Z9>d97nGP`}E^zJ~?8%)**5)c`ru%H?V zhgt=RS}*;tD&6sFU)<}6RXWA2VwEdYxu{&3-nlZheR)b-Dz;w^S1yJt=R(3)l)C_B zP2M;gxOry$`YC~{@tcBJM<=$mWB#ifFOS?fI(ADy>&VEpqa)frKv}Qg@70U4@D$C| z$7ZFI`7$g>5kJ~~YdvVeMCY1X2H{y^1tDvzFG4}IN*E(lu=Nc#zKVtd-6ZA}Nzgzt zkpKY_ZQHipq_J%@wry+1wvEPiW7{@oY@@O5#zvDg_A}4r ze&6dCj8Ee@#@P3DTQ|=I6IEXAcH5d#OPcxn;>;}l&n4(boQvJf*(*SQL}KW%ZP5)s zXGx_BhYG37Ql0FH~C>ITA1uO7SnJgoB7DXOcF5Aw`@ zQpq^0{Y>aE^9(yoLj5H@{Qbig0M(k+Whk_&i-o4ZHEL@ar@AXhaZWH7Psh;{fveG9 z`sq?B?HE&1DhfL}Jyl0!C97(_pM7`#8g&HX0?vHeo;kpxZUu{rE_%U@J$L281zaZ^ zF-Hd-hliJ#qFObxi@eo@p7( zO_paeRxzI#sc3UybHiS@Pvo4*mDR%knXwOKPAAItk}6}??;HK1J)sUwIU`g2t-?_f zne}r}0}LHsB5l{eP{@T7#yRsDv-n)Nmp7prA+kQm6g|Z~dVo)&rRNhPs8ZsQ~pVAEgx)^tU1Jn7A%eLb_%$@ahqR)w)7QcwVY{PfgC(Nauj z_*_KS%zT5dSS#}rbHP;YmUAgAX7+bnh(9DZq3VSCnMR2*4Wa$RTaPLp1+d4XVhbV7 zEwqY}qBc$j8;R0MFL{JjKvNNkcz=?&RVNt(eN#K|#ppJ3hnL*s<|lUc%R^_sx^;^I z8kJ!U<_dBoj_)CYG?_VS@V*cG0!Kt?07&^3;0HpG2iqzS6)K^!GspOZmq<`Aumy_oy3C|r`eAuiG>^!xrpvcTCH(DB18r?vI}3r zMwn^GN)itXJx91Tnk4N9iX#$Ju-IfQ89YUVW$lDIlw@ZYQDt|~M59xch4gB5)TEjX zAB$YJUA4ymKQfb^?5kvTvkPX`F_R&N^&@;Usntf{mJ>xGDTO)UDc_|f7j>JfbB(Wz z{-9hvmb*hODCPfzX6*{D{250zj&~)mexq6{to`RK_wPNUal>)^mGobC3djm~K3LP* zC_n2>!p*C=zgC-=n`aT*=MfsbChUWq+&!D9HE>q?c^kbL>+^lszc)`vH_P9hgSZqG z^@P~KdU<*LlXbAMSUlBsZRGe?<74#sSiK*H6B(?YtLB68g8%Ofohlgsm?CC)NMn?0 z$OZpn+HlSR?TtpG}U$)TI{)+V=AR#}BmI7La?=Q^Winj^c{ugU2U zbcbNI227G;$$(MRLs-arNC%DPY+Ea<6c>*N{ERtkGu*&B5QBE(ROU6(TEJT-lv|YO z-F`o(dcsW;558`%S2g%~oJK7uGMooVaC`Q<6U{?MG}`(wg*l38r9!F?CU_Fw3O88x z`g)f8CVrdcU8vXg`5^$;_YIrW;Z0QQKCX_k*O~O|`F88BXBFB-a2IuD!7;Mz1St`^ zbEePVSFjl{ld;pAX<_)F9a*~nZYd}(H)t!ADywJ9s2tyrX;388S<=D#;9`%T zQ4@wFrrqZ;NUwg?pXbyFh8+1LV0yGsV0}cZtQP&T{#V3O?>kB8s{RAKN1XH!L62hr0fM4JIYOSvae(+d{W&2B#aE!tapFPFa> z{5E+8OiflOd~*IUvTiyvsv3Tv1-3y*XG?26B~CxrA>bum*o}<}q-gU>@P^Y=IbikJ{RU>9Mu8JtO{jc5;rigbgsvaC+&o-|`G=!j{Xzkyhw_Zs?3Y)>_rX#v z@ME))xNmK3kl^+#5uw$i=N-{OCeKR7Kg9Tr_C(1F)akWY7c~~|xcc5<(OHNm4I1!W+D=%f zU6F6tMFvv78TSM*zt}#plAgw!%qB<K$zdm6Kfrtau}hPe%1sxUfQGa3|@F)KMI9 zAl^RX#XkQF|J$w#Ma;wKm(GI0((0~hDr{&_M6G6X7P;j!A2;;0I|;oBp*u+*3wuzY zi9CWu4v*5du&^6ro+b$Dl9P(7wQ2qF$3i9%K%}xp^WOM8OKB(dZuxS)!>~Zx^epw? z=jCRpq;ZqFR?TcJyX<6hSq=|^`NzM->a-MdYIp+Ccl-foGg891Ms}YX2#grK?MZO~ zt-BQ|?Hk8jqg1<5=WvKOnf?y#*rVz>&sX7(k=5>>uaMcM3XO6Ynu6}TwM0C7&|4ck zz4d7^(K9PW@chcog_(Kb5c$sVqS`p~jdTn&RKvp-#+4Kk3}{#i(uF@(=rK1zIS>|s z4YIU$XAYfzC0r_VgO@O11RAGyts$_*6!?q0yzMCQ4Zg#)x>g#h%@*8AveyhtLUnnvKHP7 zB%jD=-(zizi~EB{h~MSqdjFa@f58;1=dug9A53^8E&yuY{O9}8u~=+kz_Zh(6Rv!| z)n;fdOA+1qqU)KvrzJK|^_wiJbW&>)28R_y^%F_LoX6${P7$Z3Ay~~pE|1U4O`}C` zep!6v_^|b%YB07c^wFbRq!o_EVWx+h$IE;>L8QryRV7DKXz)ZY?aXAky$5n>54|L4 zRiTUaM7;5F&h8^i2S#>qL#jzvMwH4Mjc4-bo~f;((y`}0ydLB`^+wMlyJhC2@uQ2A zJ5G|ywFk@$)gGIK#)l%ghmh~tw4@sJ_oHW0nI)?5mm?Pdg`z#^RobX{4fFHrwB0jt z$8To1;A*Sh0CawW&Jl92KBtL^JFkE}m2IW8?cA5!@^JJ%e=3ttq>mdPv3#LE9O`8N zJA`cs+ay&U{MWzhyLsCkTpo!y+~fXzZ!#Xke7q=PacxB$7wnG8AYOm!30{jd&c*Pc z=C!I=bC154vtS&z(?0$tPo86gQTx>~`Dv6CX3Fho-po>bu02;j!BO9zV;R~3ss7nx9KG(4WFy`f*no*0?urV zdos1>A^Mj_+3UM0<(0Q$*wC2s#IzL<;BRcJy-t-@Dhg@z)Y-7G+AUk#xP|l5JJqKY zHS$r%CfFrV@iN?O_Xz0t*=)*`62p{*_EzF%mfAAj2XlsB>lJ>_hVhqCip(>8qS7n} z8A)vBSBKLupJE`{b&{S;PPEI7J&e5T*xL8-fH-<4NBKlmKJxqs2j#+~nHCM$$v!<(n&H8s(GwCsDV81S6J%Cf z5VYih;m7i>CM)O9y-83O+F-qB!GT`qjz?nbDY)NB7H9-%ap=6b=7>}=!a(h3W1z=C zr(#0TWfASMYRE*7E*n>l6Sl{Aa@2aA72<66IPfW6li$3TRbMI{zmsl<5Xp*YJ8RSn z^i7TM*2G{j44s#`eQfe$+F-f#%&w~W?_}{{T9Uf;{T1w$b0&OIx2O=z%=k6Z7CLhjD zJ4<9I8MzC?BDF_sDuU<4Hr1#DLx1Y~v6I2Rua28+A>x-{CW_u?=TCg5lf0`QUaL64 zks%Yl`D@v5*Q^CM|0CNb0kr#(kD->Wag&UJvkqi`6xZ9iQ8xWj3#(S1p9w$s5}#8) zuwnDp+Vy)ka{4xOcC2b)ZGX0;)y@#a;P{S0!kwp`rl?ardG=`Q@IjdO94D{WQ{6mz*m2MiL6`x-IGyZ7QxUozdvWCr{2Nnm&d?uV@6aTeo&15_tN}6|NWy;SX+*#(64-^@DIg={6I()#Dfye*qa4t_(7^J5c@z>?jO5w=m8~wa$jo z1Lj((sA}_Z`ut6%toBEoqS5aCw2QgoV)W35(0Z7g-OQe8*&*gY(|G@zK24^HD6L^; z24sd-8Y5vgZF`-kU~gX$`l)--H#J^f1D^|(ItfN)v)7yiOeen(UG7Wc9zI9omf#Q9 z!FqT{k275!ItHtV$W3ASh;2{@)_fM#k9OAB+IUEb1;!spN9>x`)x%ksn++Kiz5;4?aKSQ7;(4WY z0w2q_oMw2>r49`4#Wi?qvWu_~`-PsJB7;NtDNm;{A6xpDK>6=q|0dbKv$a@tp#G58 zsAzHe)P;U{Xi!8_|0SFfia94*gS{W6tJ}{n60hX#e%AB`&;0)Tey*!LFPqZzrw)!o z9(d&Kz)+t6Fmt5v{>z(vo6X0^{Oxfw(UWS+KJf}Dw%v-!=`QamB|odKLsp2O?8CiB}Sbl|?&wQP4zb0F_DVl8+}!$1T*a!l3N-97v|)>LPfJTX|W;=xCbIh^geeS-X1XrypN+N0#7~% zcmcMSY<)-uRRe1gmp}wwyhHTu$boEE$Z47HLJN2tu(_xMG?p>(>@}_ODSk0qDIqKc z<`hewC_g^}atjtfYtiF*`tYV#4fNEd-eHLxlk*ku$zS+$sSkB2YSk)ZysUDe>DiZp z3;}FfaxAj=1@!5(KT9D|`$LBJT^VZU=#AagsjCG&S~|Mtb1=or#q^6EF#{^qGT%3X zyMb>H9$$y^sp3~~IF;hznU#QNau)B_6L@$Pso1_*Lo zw6vTsp(PRGxQ(ydPumn~ZY3evg zjlpS2&`rv1wn*HV^<2;8Kl{K`8-9|Si|#Ur=;$v~y`lGc;~0JvK81Y#TMJTpg(+CV zhhY$WF*|*rY$fuRdXBWlKpO{GzpSUOOdW#8+iRd$YjGsJUsFT9#OdzB$`na25FT7} zjRk%(_7D*JNkO+Q8&82nkWqJ8$6yupZcZBRi&_vt)BEFCnWxpL(oWs};d|1=9g17_Q{Q^Oi2 z@#b|uwHJbshFWCMQq!c3u4R#M=daAAJ5@Ilp`2QmUWD@$`Yfv3uQFQw#V%28{RTk! zZ#5R6sEKxZaWf7UtO=}=eo4YEXUj&7-kaBizS@k0`>Z%M6$qN&0(o~14xbT!RVSmj zg*3jS1r@KxCj~(EEV&yC2)TX?7uqr*7?^{^Wj#s%or7qN&I;Qx8FEMT5uX`3$vwukzqmAQWZ<~jkor^Dl9FS>n76AqfVH%Gq`gL zWjOv=y!<>okGe{_neT*1%wmYPl-$yYEdplG>o(>2&eeV;$+WpUtuK z7(}b9s|zZEg#(d5rti+l_pkF@F%M169mV*V_bx>#ArJni=cf5K|9^SBmma5k17Al> zVh$e~=RU!0q%Pa{dgh&au``+~@Ems1bY{gC>AGkC_R~MT55u4Qo`{PA?la$a^$x?){OKvvl<9x2Yi^Aq)q8{%6_z z2*1*6EHB7p7sJoL_W|Bdg&B^!Qajks2UM1fEa}WnnSVOHFK-*JnVO&j&JQXNI$k@X zI}`&1?j5%MxtDxTr%n4l+HS8AWDGloeO~l-PmrLKgM}UnZ;Hz`AhW|sqd|1qkO;%B_CH;`IHV)s;( zjgqC+NY-w~+_pgHWl;s(dc?F46IgI3mzx?*%~FE_V~JO#Ch){5+LqWC{zQVGOt z&}et%0AbA|dH4GnZq((dC(#>=v@PwP1~Dj&m9QGPUe!90Du8Ut*K+&#g_AYQspdNv z-amb&w>YixD1a7F%%vN(mWeG08T2ePm7q zrv7EW32Wpw;c$~?UM$@rM0+cVrwwHJlVqf>p%SwRYKy(hR#h-ee6%L=rzy4&kohU_ zkSegveIvW0cPWYPMr*wsL=ysZWy3@Wpn0W#GC$W(H~pFE*pLwwwrysrq$Mj|s{=>^O-h(q&w#%(p z72fA;JX4A0O@Ddi#pYBU=PzAC)hG6R{*b}hy&IB7GSu16^k9uXWO4;K#Tn*0dZKLZ z<-M7;zV;{f`8uHv!5f5;YjZV47Gbj|)s`NWJyZ-=Py~idpenPbpc?yL&swpnBG>0P)9G9# zK3TEVkja2!id03~AQM#qJb$bWeV_F-lH_aiU1VcaL)APIE zt9it|pM$$CC(vzq#NDs&-%}m{p9VeDvNq@)SkIO8wLoz$+CrdJWmyY$>3&C(!GT_D z@-VKG2#SeigJjvl%dv~p7(Q5`sA>C}*(iY$j07D9SrWa-O+xfO?IB#C^2K=fZ$wz; z9Med=Wg~j~xh-wIoez|gw?wpsA0pZjr23;p=fh#&)SjVjLcXvZF{C-OjmkRX9wDn? z-dcIF#A8*}lnk{$o=N86Jr>u(eO@A4p?>tZKO}?{X-f9pEYUK|j^qA>z~ZNQqQQoe z_j=WEuf$TYdo+-HfAhHf+TW2i&Br5Yr0ZFmU{Ic_Z??$owOC~&i0peXE&kfi_1L)V zePsCEcavB-o1aCTYn#TEHMy!Y$)$_mrc=F2-T-juahd*ohMlKpK1dJ~wWWB!x)2SM zmZjqANPb+6-NkzC?|PqqRj5~`Cf|J&`3_oO7(0i8CI}sGaN&!;N7=iOBEM}Z=F?b_ zB0dfU`0w0)us@C)7XrfyP#=gy+44W$pD#B2DmXM8p2wCPlFH8e!hMvZXoZc^B;H@eEiYUFE80MWK1@5$jx0W1Cb}{?IzYQ5>V$rrQxm=47f~ z5N<}L^-!!BaE#>Owf8QH>{ zMsQx~p821ZT%5ot=SC>~=aKXeIG_6Y7p7yX*Nx zm^)C**vCxP#P{zQ4TN>lvpWmuQ7~R{Z#}PIV@kh4NIc*v!R^95EENUt#NNTHlOZ8l zRwn+m9Y`1C<)&#BGuJodbwu5Q(IO?^AkTnO!Bi0eRw_7bJ%Evs!}^AD%mr$ck(zNN ztP{#4O9rj8=o4buplN?&a~HT{TeKwAb@Di^Wol8`aif;?fZ=Bg&xp%7n3VI(hkxJS z)9Aa&7f|=&dDbcwCwnAR@F{?^ED@Zd1&VU<($>H-P-HBdA&$Y$EHyM6ISDsVhAJdB4%@Ur1?D zX=uA1ZPu7`13kg_s3~PI=LOa}y=Pltl;{i>23-bWc~AMb2^hAVL%N>~cqrcml2>%T zKb3mC0!8XYfPd`4!K+0zisIa(J)^2^+r zqET@TJ8`P@21k4SSXy2DUspmauc8xmLF<`xdb}GGvnNr{H__8FX{`&r=M`<0di%UG zY%KZk*^t&*2zza;G({>(=^TX#Ds)~S->Ve5=Rsusmd z;Viv`l+lq8iYL%1hjZ1hAF{~<&c^|!(B6tCZlz^|H2_OfQWv2l5N%IPvhW8XxlHQ( z;xAN4fa?(~nt#^2Mj59u7s?!J(;_+q#f(V{`tWJ&>UXATRp@vaOeYtfoMV(MwyaM4 zydTAF3VAWb?)^RX{`|#;CI4(Tb}QpQL=X?!CgOLwDS=<(9R<#yw0IlE^0V*16l&81o`YLa2zAjSmhu4Tc- z^ufl~{N#G2jmOgc_iH?ZHhZh^ps#*>V6oVbtv^2_iN0kicoY0-O1Yk5g|#r*TD;5X zk~U!C0=t4|Pg;?KXZ>IoxZ#RBhg)%2GB-p~TzhP2H*!^GUd<@^#!keXXwX@fkV-y~ z&!%IQ#CSR@b{s6?1f%sgu+x0enlI@g?4P^{wtT#_cAI84Yh;lR6p~Xohrpj^x=Ks= z2G&WntOaUosy@lkRPcxU(-4jAk|TSk+!2$(h7Qc2(}fiU+O|0Wo`UQ~{f}m>Y?jLa zd4alSfoZvfFFQXxJ2C8EmFrkx$fWw2Lg1Qs(EJLmOjDICPFWPT@`|*Wi*Z(Rlz;G= zOUnuIg(D{PXHc(D(k1NvUfEuSk13sS4k6yVht#1(Ga#f{G&L{DuR$W+cu@v!GqJGY zH9!Vy$zrs4^q^a4j1SUwS!m-k6w+UT(ylmDN@-AY|2u6DjW8MM!|OIu85k8c>u~0Q zE;dg&yDLkKSA6A>INca`j1(7|Xb%cXX~-4gKD$u>51iG%84Fsgwb(h!9?RZsH7(TN zL|({+8@a|u@1`Tc`H4T{oe&X`VIk+Lo<|!71`dafePipVPhyvUn|%{a3u5|k_(211 z{vb16T#|evS<2M4nV!ZgT{M;eX*f5(HlbjY+NKjQgkn+E$u-FX#y*%hHCEx{J~ZLh z_+6~v3o_HvghySDEK1A+LD{{bqPoZ1}QWm7#JbYPNIx9m79Nj|^Qm%|1n^ zBKF==@Huf_ARCX6=F9G1d_JT5G5<%W*^oO68Hzo?fUCy zf4ny>As2N}pOja9-%W#J{Pj8ovG?80tN`B2TI4c|jB(Y*%IHWG@z>O|;^!V=^^TCw z?9jD8-OJ#OLW%f;P@-oS*>6p1e4iAXRd=ebKTuLsFsYeEq6jHt9|;b=qn7HKOAC`P zP)L8sRsUGx-9hxLC&|&Sn$?l%7Z)JCW z5-tkU4=~8qHEz*<2c;NmgX@c3R6%)bj~RvQoV?aRVU~*eivV>V{A~eS{jgc6Us^~Y zS-1iA5Lzx08mXrSyT87x_xna*bgmafUXs1LNxGk+C6s(UJa>( zXm0-cKSP;83TB}|O3N8_i=GUzjzs1iEgS}mDQ7IwIr~$+JMp3#9x!x5e!prj$>+fZ zHN4m-D)-DCO()4%A)`>9mjXG_Vn7z_!MK(r=o_j6mLxU1dDj{>e9h@V&J*1`^B8uixDnaE&DV>J&t>jF+z2M@oVnA`Nwryc2^PHUErWL>Y3pCz;`;G8@eqcxG`Rda1-1JN;Iv=w(z0g9(4>~V)7|6R z)ZyRM;oZa0MWVE4TEDe$wPYd-%#0zViwiPdfD5wbFQ-w}R@52SER4oUeZ}z=PHEvl zpGaz~WqN(_=hQne`*`Wa*e7Ln2@=MUp*J%NAv4O*NBsSW#bAnpopPjxYkPkv4Zv>z zN{U|lc+25?>=BbO0MG;1VEH+vv10?>z9L|BPAM$~%#fiJVi}at@$O>khq9I(4Xv@# ztebSpD0JAm02*l2ll$Kx{Y>FQx-a0o4|cH{o5p+~YyjLXEVTV!cShJZ% zV_BoE<6`%kxOiy1Xe_wZ_W%E#K4`t?5r7BO#z8SR63H6)9W{a)y$CzmJ|6VSoc!9n z+}a#uO-4B%a2?GO1__#^dFvTE>nk(uh-%BM4{M-xaAlbYh6amDKfwI8NgrXWz2~@3 zq8YqrB$6ep^m+hOkYnqp37$>_Y!$O5J&=L=Ze8cYYBfogbe5~=$R=6a#zC6MIyyDi z71-H=BLX#VDg`hexnTPSwGT+nWx|v5{BX4yN#sbuGN`gSNGsX>Sw9`w;x?J|34Pzlr~`q=?hmdpktR-mla5VG9y>JTyOMh41w8J(3Ef%c zo5#N;sJ=I?c}DL*3)xrA)(Km9rK4bs{9$l zLy;=}=*Yp_sp-7_h2)*A_uDS=#9}E0fSFSFc2duSC`~xCabX^#q#9gj4+oQxA3e(l zJ<0-9w|1kj$fe#&fOC)X_Kigi*!bYe&)dw*Wq?7E4d$DsJ8Bt(RO2IBGnZb?Nt%t9 zX3AF8Gk}$HiV9i#(b>H>)6h<(-M6FidPWP87EdzrOZSeNfDfL-Nyy}+UR-u$*~-tN z?Hm}A75f8`Du&f#zYW^Cr8kGl+4N{?)E>#oo-eGM%UWW}GP}oq6ob~40oAwH4=D>% z1+AEeu%aYy8ZGg!c++3n!;QFUv`VD#wj|6><03TRM&?gHXON)Na1qIjQM`~f<~pp- zH^rPoNbJ?kejMD1%}lqWrBai}!|3n`JhoO zv~1=AB-O9{SqNO*0FgP7^)3L64oK~fezvg683_A4xGj|4g~$I|aK?4ZM?|#CM{9Xf z+8m4c>j=|(QX;vNpf5zKnho`%9D|1nm28w zb&eV*6LZZfxbJaTY+E)qcE5Qp-ecx$OL0*ODR@N)|UvGk#8CVj-Q0o^J@%uZb2w^1Cr*TCJAEkRrs+LHEI?r znkl({*u8k9Z^mBnFF%!Yj(jFKjiap=zrwt%IZf~0 zJpIZO4O@vjt5h!CyVa~oE+{K-`tQSEheUIsulR)1dWBlb(n@&5A4MC{5wM-W2v zMUp|qSf+$%v+3Or$366SW%F3HhX_bCi2U72EogjY8%<6QMd=4HGjOW=dOY8e01fFz z5@)fJy2ZJst%Bl|F?q~#qIH7bfSLgoztC|q4W#~rEDAqJXPSfB`LvQOGu^&sQn>1y zy2Wo$@DC)t;82n#sr-nIR&Y&0u$TqK_DN`R80A_?$`QrAC9PP?k zE9M6*jk6It8DQ>v)VCT4b%BnpsPj^Kk_HF`R}om#aSH|teeFQiS#y?Z96nK(kV9*7 zD)~Dj>Jo4ri8K;0+Ixj&nUlfg59Bi%i0jQCss*U=X<@?~SkX8|Ii-z10_71l$(sx9 z6)DC6%cUa>_I7RdS@}6)h99y;j_=G@Ogc#*X_g z9-Wg|z-vhh*^mlq0U930d4Ws{hu+GEho$srx)J!VOPNwv{rYmg*mzkR_OnDD2U6W^ z*H&ax4brA~ElGgFWUDcN)0;CV>J@tCLP44O-)CuLQPy{B=?K=t@1=O|-&GWy8m-Ie zj@-j#qZuVLPtfnf5ylZJG^Ms&RA^O?c}*a8=;b8Kjl<+&L@`K z2muhAi^^ha6Kn`(l{mmFqko`AJuay{=|J>*dS!OjiX0>gW4oRfcj4?yCS3 zkUv0L0Mu&NSohOD+u%o*kxc_?gK#iNh9GuKH6j?8thCtK+9k0dm|a?9;nc+0)T)c} zt!bls%`a`pG3x~rC{%%zLb&YI!Uv*3xvuBNlf(DR<@C+9QBzeOQ}I7&xj%Y zgn};^C%cDp#k|TWJ4AqvfHg$EO@-sSGd_DAqgAmn)X_`WzO8kVRgID#DqRGL;6fYJOD9 z_cOz1Kczw-6@D7VZK3H$DN)@7UHAQKNOP&mhriB&b%;KtBv|Jm+!CxN8@N)v$KDpC zF~jV1<1InISH?G&*ApUa_j3L>0=xgcW@UH{w5&ouSdEX{;pTNZ7+ZTFE9NpJ>Tt3< zv)Il`pTWF4Mqmw8sB(NV%Ba#3k;^TE13LMij|akP|CPt_pQu8_dGF$X;*ir6TW;l@hK67gGpfQ@f{ ziubhXFwiJpQ|%Znc5&|wbkrqK)(fktY{&cru*tPZrbCtFN}pBNg+y58iYbfJ4bQYAsl#m zFKQbFz&SoGI|?j6sJ)laKzC@!)bBx@ND^(@rvF)Ruk>mX470poQ*34+=vO5}_wRqs zU;VsVy}XUHjO`v2E;Bdm+-ME)-RjB-?R|K2u&a>2_~fS2Lpm4y&tpuCa*>* zrW3A&RGm%Icb|}!f7{%{b5#dkogX$x7X`Le2Z30vcfjfcsn=vHe$Cu5O}9o*iEld* zQt+lVOs0bSR6~@zJUfV5s%qmjQF(h-|H4jhqFtSDli^;z z^#RTShRTku8=|eM&1shtta~fRnQwXi%~ZM<^CJA3j>3Q znnZu2{7~egJ2+i!K=#ZJeQ#8C&)ndy{VQ+m{i|23M{eRk35f4lRvGxZLl)TSFu?iB=yi+mI{Ua3$NIn{K+PxxcAdw5eGJ z%6xh-O44B$@nM&>%}UwpV?@C1@Dg`;iM*+9V*lonY1#j=du|spRMm8ky3K>W&Vya6 zM8fQPmr|+&s|0J63u6=TrsgTNi9V1`70g|y01YzC=?QUo$!ksitEu zrIpmFRXB06Lkeewiq}y?sg8-=;doh58FIQrSw)DdRFgbe_wYZI38rIS$5l41q6UH| zWEa2-3Xc`iJ0%F<89ODF(N~iB&0kMD7?bb++nDcM?p>0)yFJX#8xHRsD zs4d9N=9LvL@NApIhz~2H-jdG3^<3al9}1(iv{eC$-C$ot3exrLxJ8Mhg|I}kYP>SY z_yJ&5jl{SDkI&z&@q{mVEz%cyU=7b6hlIhtjUZBNT#=el-!3*`2~-#|6+*)d^9X3| zI8z*qJhHBU> zc;`$B6<;nLtA0&~^tP;y2My;A2~;nYVRl3tJg!lL>2~$l*_EWbrP^gAmjVQ%IkHnX z+XN0uZ)zI$ve4qXCQRu3-}|NL_Xh0i_mySIfq*SMSD2`b_>?;dJZSV|pM0ph$Il@AuZSYz z+TwK1s@?|{-et1|1XhLnT= z&Lfx%5(UM{X?ac5y_T~7Gg9$MF4aJ zB<}H3fHD_~mQ~2{Sx_n0KCjvW_HaUn06em&B$ftdPO>+gJZ2)%&S;v&-)S2IhU5y) zK7U=+=ynmx@_wGe8eWn7bKk`O0sf~+%VrJ^uz210=DDRh>ESwTkh%FAJ)k9rjE1$6 zDP|g9axEIKll{V_@%6%Q=cU#}XUTqpmDJDR(I|DBPMfP80f&}aKl}LXXjZf`zd<*` zxdm+fnfhaplQw0HV3>O<_Re&%VGJ@_=8+6JR)WktkQi%>9A!C|89VJy2hlHjUlJ@A z^h_q06j4G^24Q-_TB0^?gxo}^p@4rTQdklWB)1lCj<4)dEyEBx=jrqHr34p2KT4Zd zQ!72neyON+w)t%Z4qdYZ@=8Y(NWj9Wp5=XXaom?)5xJG|_h#>9^;%99WQAg=c=qe5 zcY+D0+gE=5Ws4;b4*5>8>pJ_q<6JVB=ld^k`ML>mR9*76-v@84Kq5l?IKe)dD(ETa zeS3&!2N3yjGNO(CiynE0a@zo)tl?I)%M``lpaE{pXcIXPoZm`=+rX1Af;w3W zGFvuhd}$&|iI~1&FBBVOoF*h(srN_m=2+GGhd?&jyN-R)Pd-lx$NwX zGr1(QAjP0v(+{;i8LM9P2v(%W#NOQ zQz%K57IAOFMksZ6`lVy3=AM*VsFqr39+pZZLOBXPaRF{Yhg->rc!ymHygCfBy6YWCyo_F-&3 zNH@WrgWDoSVs5Xg8HRWr_!S1U&mrh@FP|8GUQR~WjE}bmVf~WBkGI)Uz=NA!S718m zE0_r>!S_M$>$pi0)Mn7P;_|({_5W;jpcJX}2+Ajz1bZZ5;|&SwXsm1$!2ubC*hcD) zw4>U3@zU5#V?iBobDsFLnR!;q+e*3jY!R3{jbggw1B}LFwZb4VR|OcaF%s+FE587u zFq~$BuH)Z$2`!z3wJG=(l=F zE$zFmrqX(3NsVKX;Kb*Np}^e?tQLNWT!gK^cm$$Ka(}R!lEqQ4lNACvmJoP6HRTS{ zMVa|cS*#%!&*Yz$<)f&wbgnOY!PR^u`4ZjrqyuZ|SNJok`?LHi>Q^aVkUoY+(Xktw zRq5-REj006E*Ny^YSnr3k+&-SZ^wqh`RtA4AsE*vM9Y{{7Bba( zg0O6gH9p=|&lLoqB8Vm$v2xKquG((2fK1+6{sl9|&Y?NF#dPk6i7x`n`CF9#M+O{n zygi>q8YC$@dHB?#`F<4D@|}$`GYlRaotKGhB*FJ-x`giDQe0c>SJJlEXPz!G@`gmF zROI*ShyBC0$I_3rm9ty~?sQg}>$03<%vqDBRe?9NUo1;7r?rmNowsdz^ww;Zp*k7` z^GS90;vvy%@NO(0-nKVjS5te#gCpJN)vUuD(<7UA__3i6pyrSMzGE$?4#B3Vbj6c` z7W)6Wj{nsGM}ABT)OdGcUX#9@2g&-w*y{FhAL-}R8f4WPM0)*+^lp2&X#o#jsObOB z$S2#mn!qu}s_+-`=fW#(8N)AF*%Wi|Hj#AGx19W%jd2XL9BM$#YTG;J^w2RK^4J<{=BGUep3@XzvW#pOTK*{jmj64a9u zuqsix&FD?YCaNxd(~V=Pz@ zw}g3O8L(R;k5Wh)dU9JEpR$U<*)9w-C&E%q_TMXV^?Ez^Bn8eF7G;5P3!Ex#H*voe1zdj40Vq z*HN;*Zd`y3?jeiKEq>_HO$&705flrf00z}rJ-9Ss3~>*$ze42>%>r!HSN!*+({2TPLsBytkIo7Uq$X(emmR9pV_ClD5wnjt$ zS=_#OT>T1qJHjj8EciG*FR_{VF?zFQVC)@gCg&MUZS3vHrHskz4{8>8WM6es27t7j zU1B`Mx7~-%*|ZxR59*}OGn>l9WK$b1YRF81^|aT0`ye^bYI@_<31e+>=QM7t4Q=V2 zmZcxJD`3$E$)|2wvVr27js&VVa&No14aY^YLO;eFBZ}~n)+xc87QU6lfhy0s3iEd~ z;U4!24c{)#mM(@+M6=yD3-p3`EIp|k^kE|_ z>Q@@?4rTLC5^ofMraXY(OMad;VCQRQC4f_9-|YH94?g^ zVP<_%n*nQ|H00iu4e9zNDBNVa)1}(k+Jn(KX&lm`U8WWq;oBq!m<=AWK)T=pPiMsO zxp*QPB~~AF-qL%+nn$DxYC@8iI#7O^xhm_c(?y`&BKMw0pIqyo=rP~&0q7km#5Jf# zcZ|EG3p(QDn!|X|?Gz|$Q&%$6$H6thE^CaT-;=zX?|2a9FT_2VkFwJN_#NWPTQn8# zExCB+?hphNQ1P4Reb@VZKVh%E*IxI1UFUfmNQ|RR zXa&|#A#9cvaoh}(c+BPDLY4JSy6_2?2x}Y9i0Ni#13E>Woh;Y*3Ii5D?7luBEfS7p zPiqG8xj^J{6#Vi!NyyH(@|m99>t=1cHN@FIL9_Gtw7~Dvp+2LKHzcto_9W7aZAB>= zOf+-4@Qa8p<&^$-ygRwkt6rmcN{w+!k&h-wr3H%^$v_fwL_T(xrg*84pvmE1F9X0p zD*A`>k?H=Um;CJ=ZZEASnKa0NtkrAROCl>nk6KCRBQiPJR&%Fc7oP1i9vO1nEoBtS zD9e4*u6F`4tA~(r_s>x{{5?60(bEP?U8!o$YtALGV@3OT*xO(4bAZhs9&U@WSW&mP ze5{c78h<9HHP0ajI zL66Aup3#?hu8&Qq)0q&jvGQ8GGDlP;KeczWYec^iSQHG`kCv^S#Xt;am_$u^<3xyd zZp6H@$b|VF6uvXG;nvQM?ZAvmksoy-wwQR>%FW5p$704jGVJx5*b^o9ET@QP)%Y3J zh^4jBUU@uQM;39#kvCwZ5VOYVEKL#`qwR#;{Q#PjqI4<>-~%khhnJsSOZP=Ux6?Ax zNRPB0O_-%)2@_io8>F#)SqZ#V*O(>teHPmE=brG7&^t0UN|i>)Od*Y>PDM5-#f~)8 z`FbjYq%~Lzm+}gnYb5sHAHS<$?b^3Iq-mhL)`_d+WfT(tbeOhgLB02muzFc z-;meMoPkPNDbDBlcsBZ21`o8pL`1G@BWv9S8vGkiHvj;&6Q@+vH?sOU-s@?;Y?U7Z?A891QsB>bx3J zM`MNaV!)rHYh0%*>znu~X3yD`+;{_ni`2f{a#bee=A@0@Oy8+XSG7tmEh$EUyV=IL z&liA~FHcNL{O)A;Yq?wfc0s`oF7$Ga@=`HbB$3i{p5WYIoUg2OM&(Zq14ty9CNh^Q zBTX<3$6KR(f)9cUqRJYOI%Mg=JFSb<9zoSmET_Tm)2`a$3&Spr5XR&mX=77 zw7R4dcH(D+a8*yn?Tp)5ZEvSk@e{&*j=M84+(Hqf`ZE(exI4kBoRdiMyMlB$J1Zlz zRMJi4KeJTAl#~)5fr+5rDK@k88|{v0(v*UN z$LgaJ|AxTo#pMPk@!WL`{)N&_A#?E0Ek?zj6~-Y!2ixT*t+}@;q>W~3&06Jofj(_T zKaCjj%ut;+b$l0SYKN_RrzGsu*I@lfHJPyks*+5nxU?%b?85FHlCxjzramk=PGYl= zn_kjhLMS;CFdg1z2%VCTBiL%q()P6$ui(VmuyIE>YhTK+!*O-mgm=+r9FL zN8vGEmjMmBUJ9!(AUSB`8!5bRdvU^wFDP>ftHH4R+s0XA?%|% z;~ZdVzC$7vc&qKAhlH)EW3e=c9go#9P7+dhGwNp$+$Ydz|H)RKgd;n;qm(4=CZR)1 zzuu3@=#uw{p;*3{mP`dqYPX@!;O^-r#yhTRp0kGPbom#1DIm zP?qUQmox(m<7dy*)l{*TH^Lrb|Eq7`YsD26-HI~qWU$nM7up}uHUq5DZP*RAu(7Z3 zRok|Z0mq_speo>%qtw;^;*b)#SF`PQ#r9vB107Jjk$#D1EaC+t1u=cEzF*;eh(V#0 z{r&lM*k873*Zq@F{T?2`)6eN@Vb<_B1OwuNZl2TzSGN_oJW#c#R#%+o^=(j?r7U& zb?b!Itqw!$xG}_dvZ4%&IZJp#u!382WF^$chH>kvThzNCe~blWE2Pp2vPG+Oy@_bJWfTZ{Pgp!z4`e~J z4pPYJ%@2VGjg}>w7rKGu2HKckBj9|4;|)>JAk&(#!W?fEEWR!snlL3@hrCanvBeBw z`>AeN88dm{A#kJSMv5k6wwrblQ>j$2oFvzP(ul~V@w*p^v_uuGG9d9+Qv{(WPcY^p z#|M)+ErUiy^|6Az6i(jz%;At){Zn&IW^y`cZh!8lc-bflxNVSf0M-(_HrPjAX6z|i z&ut{QH#T`Qb~_()+v%|q!}|n1h_E7R;l#LIJ0F~bi`Cmou61PepPJmXsTaH&eU5Z* z*J`Hnt5941I7t8fKx-&e!}CpCj6Q=&)fZm>@=c}ZIPK*BvU;?d&C*C)*zM`_hn+r> z!DK?Aso#aR1zwAl)MpnbT|qD}RkhBuB@f3J$e|bE-C96Td&YBDA9w zpB5*=57OxWeup7U|5#5h`$WcGiQQRIDKAO*Bq)!Fz#+j<=+Y^}*}BgykYadN?6-By z=Yv<9pCkX=*^{ZsS}~(iR zE|!}~Soe5+K!0E0Hby0}v&2SHzn`#-j2vgMMP3Uf_S84O$6%(t^SRT6LVfpX$pMX* zpsmP!Gu-Ng1==qaA9DDMIVvqoE8f z*q6t+eH}xk3^<|ron6naochd6dT)kQM7y4GBKV;v==Tjr(AXyL=K@lp;=?C1}8^Ufz2JA9^P+CS`YbRa)(GZ~;ADQE6ara?I4 z)^V$p+9TJUOza~mIp61fSrT&c{fDVYa~cqh`nt5Yi7a=WEFC6N@h%!?7o>6QeUeJl zyG!rqMLHH{xjXpveL&)BF2K_i&8m_$(aZDpUSBGkO~Or5W~(P61{T;az26YN*eI~4M>8j40Lyq zDM~Pmisi=`)8yC0sJsSf<}#<3z$l1XmBw*ek{K$r+qFBXmorJofih!dLWXam_tL)@ z`p~q+uVqud<{qhYi!xR=IXF7gN81~Rf_Y)ay3{iu#d_Qd4rKj@`uq=Y0MT_0IqYCD z1Dd4At=o0xvek3AS-x{7(HGZA9Rf9HsPS$^CJ=p;pe9SC3NV`r-0L#r%2M9E@ae9 z1j@FFgh|-?em%*zycs{{82b{!@x$UZ_=sg!sJ*G7+2}8G*gt28ySY&=s|hg%^it(! zo%w`OS!)-$!l_(tv~UBq62ccOy@I5l(~dIa#nlg})cR775rWu$FrJZiPvRL8!~A3eST zo{v#YLS5`BvcoOxYO+kLnaPw3bMorYPEq6hgfNBpsRXUo377uhAUSpmN;>eG2`whG z`DF}j;NH0={*>!ve^f{pjvkuN2e9bZcL+-wkcOtKrUp}TSkYN8QJp99#+m&@Oue-$ z@<5cb!;jhf69jbG>0R(;{QfgqU5-6M=)GVTcmKS`T|B^EYzU%6hR2ilBe^#|bdqUA zHs{_?(W~Axd#h>_Z!q)o?L*Te zoW;GsKQ5-GE+>#nsadKi1MbU9*uvMk!`E=%nyP8e9l$+H4A%L>28t6+w6uNn8NN0F z_mh)rseD_wyRuRFU+{^TsvGu}VNsVn&8t#U97DD6zpc~`M@GkEf5co>O!tdO(Tz#i z|IrH4o?4hzFyeE!z*#bOEx{edh}7!5#qxwOe!k^{sElGlIr{Xat}xO1V;M*=?yQTt z2VjlMk4o2O*m#8xNFH#Mchmf-y7tk?NHiD5F^ z%a(}e<@?mHsiUMa0_T?>8iRk*S6aVQIx^)>dW#AZy1?4nG3LXmOJ(&nGMp(ym~251 z+b6Etip=K4%7dyt#0Xk@e(ZzTsgcdu1~uD`Qt^%u($l+^FUPNowBED9SiI(cz3N)C zT3exA3koEDQZTH4-zO)PKuk~chHPnY5?L3;XC_EGrHw+8ZR@A(_}%v{B*GroqRE7z z4;oc0OyLs{J;&4WKHS8orf@_0Tg9-2irqRs;po}c-Oz*zT`>*G+ zf6x)V4CoP8d+YcWZ7Gjvz+pcYQ$q%{yqvo=G?S){^vaedQo2deqCXt1cSi0@EzO(^ zWn=2ktL*Ik2=U7*wrfqrKSgPjdl3s^Uu2Sx`vrbq0x7ZZl&$SLG*9Wr&K?-P<)2@> z&sY?$=1j{t7V1DZm2lH)K5l5Cak=(D-iie!It~Yg#E%uUNbypIor}Z<+_7Hhj4v1) zI=xpwB{7hVu^U}_-@0VIW~};o^=nY_ux?OQ1ulmV{f5R#6ufAA(u((wTIK@*U%>y! zIMdvGat(n6x=7S+r#}SuB@F;aS`HJ(l@h#_8nn>_m~X;4IC(W}?A$w-z6eeUB?^6v zY2^&Boim@+Cb-Rg*Go&8@Lb!O_w9p@*+-eI__KkE5G!HMo3mn?30|AAxcJzGT6%(h z{+t2Hl#Oc*B_2kzBNgz(4_O>pbpswta1#dDEJK^(v2o)NLqvRChny^^iAUM)pLDM< z_!ThGh@SQc$GY$sQA5@r!-oyb&YkRgol+pzw);#a%q2om8aI)q%cUqlBN_dZ9xnor zi4}WNjtiKQ7hQQdtRz~ADX6lXtHZQ^s)-Y$~ZqhQG5FmdO-?AP3T5CVWd$=eTtHsbU$ z$F+D)@r(?Dd#aWz^esN%z<6F3q{syd0J+>JPK)604M?uEb&BR?_qQgKY;9r}^Qop= z>!6HKTdxI134WQ+u%4dyn{xSbJpngN!g%U~H+-ynRTWhQzGmrJ;I>q$VHEU(hA}IS z3^=YYL3`prd&Qkbl?}UK1j!goh0uVl(>1?%jkSzZ5>5~5hPqr9`=PX(j_$#auSW0t zp&ReF3{%aSu59ST(nU~8qchrlZ`csIQlD$0i`)A{!B;`lwpw#CisnTGm0SG1%m;g{ zJ}y_|Gi7+TuDyTiPVX$lN_TGW(W=eQ;-Z`WERko0$&bMz;C+dtfv;`z^Z!?&g`sYu zu@8Xq9*wY%oPiBtbtsZX^-5I*+#;S#AW0^crTo%=T^`uAMzY*$j0Y^0|g?MO26eR_|F=$bhw78fR(*5wx3Xwl(tE!ooiu2EABA9cv-l zX|qCLaia(Af+tYgtk8n|HVtUHkXTSqE3P&n!Y#DFeD_6aZ8P#CyyV}B<0n&%Hv17s2kggEL2U{pIH*V#MP8Csh)jtes&eyvi}y-YU;=T+eRs> z>E(>mh*~urnQj%RQIhIu+;oJSYStKYpd#5eItePug5lCWG)otd1O!VeRv1l@XU*$a=gY!$9L6X0Ve-H&wa{ za?)Q;tHxR!)IwfLvNe+!UpEO5>5g4ck)1^l4a}FZZ%VSP2o=Fy>rfm37>-B)GRHo2Ct$Ke$RvwD zK&Uvv;wj#~fo?i$bpWxe8A7zm5*wup{+6F4w`cu)@nW6CL7A0};3gllAF4oWP-E=N z<}awy&ZS-j7Np>GjO*yAuX|c^@LziMUD!oXA5II`{WY4F@AJj zUQv~_2*3wa4|U_Z?250z!UPTqK)XnBQkyQOfy@D%@}S2Z>#svG%V+T1Hn!-lH%KkF zLHJ$9@{?nLrHCe`A6cpSlc9hGFgsTW43`(CVKe89QlC2W9ro%}U}3mc@(V>>jyFo< z6g8%pqgjYitNG2TzK6A6G324$TrefXb;pK+^~Jf`&a?t{RC34+@|cF+!Trt3Oryts z?W9R*-TNHfYi#n}Q)7RjHyS!)pmIF)8MMO?yjL>+38^{JUXxGnc&hb;-=G@kD18a%8Gqvm&|IB zdu6y6$$1*TcyRxGL@9;Q3yXBjTi-H26aaHh4BTlkHqa%Qxh!Q6!*k`LS!CjXddC46 zO~t;fGSOFK7|u*L!Qyd9w#6mnLtyu=Ti)i+nQJVb8a-HKk*X8S(Ru$_b}?Vs6kopF zEyA0-FYy`^jS;Qmjc=&$ozbB2_%xq`Y+NpnwP>rJS6fo+2v{#)QuiCOV?``@OQCen z1`GF5?c=2q`VuM&`*rp&!nd}MuJ5b|IIHdd_U$ zPW&g&-VW((Pi?P8j8oFwcOm7`9uO~4e36%)}E$LGTkdcfnk6_ znDI?Hm*c{d)mh;2JynL;k}t|fO$8y0Tjus9W#}I)6#WP9_+YaFEUe1UH!)^&f<2;B z%i4WoK~BS@ymS^IGV0PawgHBToITC1iu+(;M+N0E!dS4g?k>?pSHDts*GW1r9sU!dHcGrH49xd&y9HdC8cN2Oq{X<`= zki5Zh&+Fp?s6DfJ_F!x2euBj}{#td!?HC zZ3)NY&~$5N=^g%IU|pO&r=k{EZxBL>6x^{t=876=?6Mf=+LCMJQdxbf{+6`Ct-*7p zn7u$?hpu-{%`U)J~`}+b1 z3t}ijL8ECulfT4ejXnidveW929Q2V?3CAXtIWm>sl->Cs<`N<~J}}l5vbDzUIchI1 zee>uQFW97=T((n8QJ&RL*pkB+%xX$H)1>fiC|7Np(TRk3tpoW$Ef8lAs0b_?c>|gx4++_M=WiT`h7NO$(50G5NMU ziy6cmWfEG9H9jq-JNRHP+2DSOH&|xgAo{}kTdRkrZm)r8kA!tKllTRbcHaX0kEnwq zwphHhcuoC)v>y+*sjMAFI_iFcr~LrXx}MU^YBsoV=?!Hw`&>ZJnIcy&SCPDLTOE>N zD_IQe9Bw!C*t?DGAmIMv?4l+!WE`Lucc0lJxyIZWYy&m&m%Q<5)>}PBCF3 zJWQ)cu$0l%Z!ybJ$uOybK!*)DV$s$wVsH@!F5$3UREX<1DtTKt20MjS4l(t^LA3hH z=+6pg z@VXHeBj#sZtjWyy8qC?1NC7To+$oY7vG!8(&ddVaie^Jb@51FNux&$lTW3&6L|Vp2 zb%7X!+$gkzL8Us%?3dh_1U2UxVkNznu+~O z${}zil#@YwscmGFMB{2S!_2l3X9cXYwf^~ABL_wGbc0k}Zd$Ud)?dhs# z3Fp00zY87*J9?54dHwz+Px80mz_XVYt6S0z?%1Z!f8q#ZBjbQkeVBOEAiJq*yum9fcH=TX**zMi3-qj4q8G)uZp^th*k;d6kEu+ z^%-&sN68ux)HgG~Gq{AeGv%l+GwDNta;NOzJZ&2_G1-bk6mJa;&{V!NqfhJcc)atW z?Ln7n6B8Ne2|fdx-@aK15*JP}MBVj|08|3O^FwBqm1;?b4M=Tgd)|YC)&_nomo#j} zRx(vi5k?&GEVjMT-Z(usd$xGOD1SIotR=G=w7HRBY^K`egvgOGVxY9YSb7}gF{hHw z6LK>=_9u7Lcv${~zmsN=(o5Ry0XSS3=5nl`-St=2I#?0GM!$%rX1)pHs^Wn6&lVni z-?PpMbIM>i^uv~nm?{`AYWI!YgF2~NTnt3QiLwrRE>Z?FdnUK!s3`at#k~K5EWQMc zP!6w7Hni>u65>y$Q&o+>jX}iEuub))LfKbMwb!zqWxL+M%FJKB zw=qdw;G|?u+%82C;JymY1*oSvZAcXEDtjm?DVszo44X|c$!Z4K6c|s^k8=H$W-MYV zpu)T)DPa7kNEfkyhXmsFTWbX+;-G0UXeZ}kE@4Ly1el%z9q8!;6Oi%_ypT;15dJ+V z%K>#G3?DiDhM82(6K|c+yhcr&>K{T8-)~JF_AS#T%mw7B=grb-r0ZG7Hp$7ZH5z*u zJ75iefE2F+fB7cGqqHo23R0u4g!Ut;i7{uEaH?Qa=`I69Jaq$jG~}=pbY40U8*@J5 zy>-gkn#%ueoDBdVVKQv4w#Z~Kj$*+rn3^8PlDMUu65Y1IZmGk z`&ZWJjH0NtEq)NZmb=j6&~OXdsnCnpZd6i`IG?HTeEF}^k9)$e;@4p zrH|7P{GwBpQ9J6U=+Y%{{y54md2VcwHeR;J@uJzo3Y-?FmLJ-1CLmX#=R{g4Sdo(#nf2Ad=Qu~f4OL}L>*A>w&wY7#hI%CVBjT@H$ z`^n-Llzs&D8IP&=E8duAnjr$B`t|7kbcGlV9`n{msA7So*P&27{brfvEn#Nstn> zG@UDDwkJ(vAxBy{OHamf)hu8}j4)DjjKt4n+RV{Y=l#GYB%rM~^Sk!Jh7~0JBOx|2 zk4E>3zzT76TH&uOwh7(7lj;woTGiPr@sL5tyOvZ4z)j(fpkRN6VW|Bm*eDHqxvePB z`l9`z!$X4a+jcMIq6eSQJ*eU7lP=P>zLGad2)?sj4;8xs9~HD^_CxNNv0Y8xAwXyf zp`HFEFv<%Hr9YEGg~xl`Ry#ki2&3ZrOKt|E5~lTybmR#ODSsVqmYjbpC*;&M3#@J zP=-+arD3*o503qwBq3Y1nHm_PZTv)kDQaH~0@;aL&~|MYlS>oIB$a)0xb0XKLd|@% zV*$-!dS|HJa-b~@y3|W?^;^}+i_y6bCA8(q8@v5I-+8r(ks;SVXqENmH@{q1iq~Ra z=;GfXlZ{#`GH?4$>BQlXoC-~c1J7vY<|C;t>G>=Wg51qXNy<%gIejl=h6>4;S3J>i4a={~q<;6yXH$qHywtf4r5MiuPxrQG`_LFxWq<8hQvc>Pttqd*yh}Aj zTU6&xSqFN&%WUS@$c|)?B!48zWKxwE!L0XyZjADuP3{V8^x|>Z9>nxrtceJOO{S?2 zNY2l?wBAE0l_D?{nL&Z92mz%`mKH}@eLRbfD70VF*$?gsNtAy9U+O%U_rlR}cGL85 zo)G^LjPtSp&rq>(vL9aeKh^y^eD@oibn~)NIx9Gqw1d`T6Qr;hPZH#8%!4zSo_E7- zBP6t&z#~}oC|+L>#fz}%GAlu($E8d>a)%Z6P?*vo^IG*4!O8S z_xGvhj!aoT1NZ(dF_VbSv37Ms&q0Gzi#=JOyflv`lG1?QWhF1Qex$^rPARcbTg$1K z>m7QI-;K0VUVGE~P9wVN?6CGG$7cVOu*5%sfZ`i?omY@&3G-7&r$0I(XS+**&@=je@GZ*#eYRG7Jd-%8P}l%s{>s5NcX7O3@C zE`_63U%zLB2nW{3MtqYhv+EIo>%5nB8d3d>;cZdCj;zLTu*z^WA3KvdiJIQoi;$Vv z`(uOeq9XF?%h)TDBNi;Yju89q&T>s6SqH0>AanY+*I!qwb3HwSOjto130^RLnL|?_ z10N}ULbLeg>1V(IXMq`G6s98P!1&IpX+MzrTS=JN3mGenVP^^&VvGvLRKawvpen2} zCO^iCX^rlv4gfO3$qw``L-Gom;8Dvej_`f&H=XfsUVU9^=LS+V4U-bmyD+a!`QbsL z_t7+Vn8(d4KE2>Hjf#qfu_B{~a6=?e&XSY<^cN(IY~zEY<@*3f)q3kGB4-&g7*FaC zHQf?Ez(BrH#YXWL>1sz)SVpbR!I#R2c!n|id>unlzRhA^P69>itTHNLx^@aj_z} z+&cG+cQZJdX$_a&&1R}U4l;54V3XiBETgY@9_D*}mV%J!*Z8)D=vpzh@v~^~-wG|O z1~r3&gXjH*)7WY+D?{g*l6reb5!EuQZT(2Yzb3oLwmVTxa`V~n=6djB;Y|m8AVK=K zKS(PpE1lugj?l3IN-i2-ah;P@otcSkD2@)&s@I2w#a;#09vfSjd77}-?gu%^&CF2< zyUQYF*_<;lF$C+JL=sp=MG*wn*XSLc`@X{*Ul|71{N#}z0s7e7j?irdF5My_ zRqt_vO}J^^R)>Ecz$)YGW@W_8@fi>0<9zoxiCGovwf)?OQ*|BO0J3$b+C(_q(sB$;4-xI51-XHFcLBDvK9{=t1HNXu*e^bRy`V$FM%g3N=YIodQe44a{=s~*RKt}lc?;yjix z3?uBSQqTShtGeIsl1~@-;V?iLrFN9Iq`E=9Fh{P?;`moohs|)WaqG0k1hYAn9QkT}P3 zRnP_T6{+Ut5~p(q(1Sq;vqt2MQGQ&R>5>gRFAi8Od|D>^m!{`J{=t8C6BCus zJIv*4w64$`N(mjBn+LX)8S|=4u&9+}5`?YU0cq!x^x*?%h`yjGnsZ@4P9t{+X0|n? z7}Ff;{k%2CWYIqIgKy+xsM1zyc~nxdaL&yUJnEFhs*x`K;|fBYI< zoyL7!62H%f5hb99+Awu|dYF7ThtxhaJPVt2JWL*qVGjzuK4J0$op`ydKSL!d*@q1p zE5|Ap=6m9SoX)HXJRGfDhNzWTI|OUu_7h(;(qOhB(KS=tg7Og9R9#~}uMn3)S5l(6 zq(b3f-LL^S;S2ydrmqoOjdK69S7Fmu`y)~2W`rJ+8Jq&KX=;*cu;`bjwmV<3fh3vN4XG*O z5Z+qQ_?l`UZnOujYVHPla+i?!NjnD@o+5otrIuFk?QC33+3UIifCXtNyBxSv|2i?96lyq+_nP&khs+iw=ow%8!x66ZxS63#x3{+Qt*H@%AJN>021*!g%RPH} z!A$7U0f*|&W&X{HDff6KYAGW|pki865Zfmet167|d1&!JFM}Xz{e8;4-e-lvz{Pl` zKUvyyb1_R;UseHjxi%V3Z+h^j}ing3P(@c322Q5Jy~EDSBCQO# z!9)hx)7T8kZ>+zs5P~l5OY$K0kwijz3j7K^eSDomaKP z4l35ooWdPSLXt=o@S@k+$%>0J{7N9mM_&>6`LVf^tsmnasLbHWC?99}eyDjfXnPvilK}rcaM$BG|n(U z8~ZUMg5%D7qST5fnw}0m;U=>IoRo@7=@hcAq8MXPF#)L!K_&1zH7C;+OztY`a-j-ez`2#>G8xF~?K zE-`p2XAUgiQ(I%WkLr|rk?7{MW0V!Mx7w=IBAS|2$_7PEisbLXhN|$!wK|<2v9mbM zeec|4q`Y)`Rx4kTSdEg3jlQ*9wK;uB>cUWx;p0;K>TNr}n6ZCoJzbAsxtW;7TF)(4 zl%9wNI$Vv_g1h^U8o{D4zj%9WbBdaU8E%AG*N?ux$ndry<^p}3x*%tSG!GBzIbo%pDtj1d`ez~f}G=Gr5J>^jgW#N-RUX$WuyUveE}iw!lw z(0pt(Im!GO{HXfxWH|)hl>5E&%{Sy?+X&Brauncmi#Q!5AJ$}^VY~I&(@>!IiP02@ z@gXMpsa?G2mxn#3F@o_ZKW803j5NAdjx5dQh9uiW<3K+eZw!~s{(yY`k2O8K9Haad z+0Dqzw~msvJt~ArQ$dZqcuCB!lAKe|krh*80;*7x;Afx`0Z9GYBID<@WcR~34 zPE?Hsi^Rr`u@LQDS>DGd_e{LZEf)VeM@p%bA(p==ggn~2sgVS=5GL;Q>{Z3QZb8y! zvSJR!>XI8xe}45v8HK@}%*$rB`N`)RDoI40$(3u{xd3eAd=0f7%5n6E;L<%a zutmZcJEK&pv{6?_+Sw1TNpjB+F?pU-Ft;#uPW|;sHIIx;rNEI4(fvfDwr4ib%Ccnl znO$ztL`@7VAc%qdoQJHQr~5ZcktJg_`$te)$Bjz^i^2MQ_^JeAT0~*{7Z<)VJ73+V zabtA}q@f=?8?#U+hswbDI?Qo0uQuDWll<=tq{4^V*QB)^*qxN2ZARBHD|**1RnrNL zNw3*iW1vUP12y3*2arw{I3K{-$_kV?=qsZ8qu!RKQqpDg^NNE?k|88UQ}sjU%;Qn( zx72L&2W?mfqe0mKYVFh~(eRn2b^uf4?vmC??a(Ilzl4KoP|!OeWMye2XG{mCi)>8X zA6i)p*upMsdTcr`V=%nS_sH1%C9L0^SRNyDo8iL8o<{_VyynV&Wt21@eh4q;+sIFuc5K57l~MI!i)|g@>zoazPeDVHHD+_ZL`(puK70 zg~%;d&@X(WA%EFVzWu3gKU!-?u__b#o%4S(0tK%kJCKZ{sK!@>A%aA>p<@g~2y)a* zxbz(y@k~D>ukpW2cH}X>I7%lJ-_e?4pw5aPKxItz>awir#|uE`o zb8plpvTTAT0{ifP@tA_XQp$?Dv-b*E64vma!zzw(zOU_^BpCa&e=?X!&;-%eXc{3E zdf-@LTz;nJ%yGkohdg>P9qDlw)2ZXI_@XdeSr8A*7;MsK!lo)M?O^9_6mxQL-j947 zHs<>5^rk`2|Esi=_UC3|D4Gu{N!iqAKlSi`$8XfE}1(s{Yw>Z~7z^unESdZ&X#{B8n75GwKha6wjJ6Z14$dE_b}-ht*@ml#F!#s&KBCds+KFFzpHK0ZNSdr~NL(IP zoKk#Z&J(jGgx}I>iP3B$uTRr(&*`}QdThB}w&T(6H3fD+ZEto^{caAq`cGDtpvTwh zBCFHB%DoWR^&=iqi#lr4N6hVES9w{h5rc?)duI27!ok!ES}1xFwu703+up@W_1V@` zYF$PL!2(r3To8m?pi9?ysi@FIOWE(~^YpT46`m!J>4s&y-$}I<H0%|ooExy0@3uv&Xe2s6aNqGz8&0a z?W7@9AFgW}SF1ei_ZNeHz_-sF&+zO+y;gxhb+US{_c&LY--gJey36o8M)gecT2HiO zNP7}G(_K%zuZ`?rI(9JytSI*q=7+)!#Do3L>w zE6}WM^fLgERv`sW81h9PcaFn8cxCTE(zjZJz6vb@3z?xOPV}r~>s{!jnyOrx*b6Z_ z@h_A&-Rjo62>B!ORJi9IqA&bJ!t*AmlPk|MMX6v8Q>O&z?{rJ(ZZZi^U$F%GNv5mQ zrM8l%icLPC=6v9E`Ui3Qp$u_M(#w)z0wYgNs8wjyYq_oHM()kgzxN;ht!@kVHe3(? z`*-#gF8DjWa`5l+&fwxWRnp3kQz`fI(QPHd3?I6ee7d=OQ@nM#V=p;_Zf3j6N`etV zhk^8kVqHLcR^mcuZ`Kv;!h8H!*AtMv^Afm_G%h!qQDLnRV?n!_L8_+v&h-i|Kc4kp zjA5&j?3*}ZYIB%n2uMRf)pL($;Nt*vWFc{7ip?RWk5DPfaqRxo!m2 z*L8h2wB|+pNn2D?@zN#1aERr4P6=G zED1VxSv;)?wJJqyR*G3T@n)3R)S1kCt#)knOK2g`NGO_TMfr|OQyEfpB*6+R~EJ3iE}SZu8`((^ax zM?Tu5vM&J@HLhdR96;rJan?}F;p6=5_Afzhn<1c1IIf; zn(|4LpsY4>(A2%{QKnMn*-&L;$p9xeP&`dJesDzuwFQHO(NdcL)fThbw2n4!HLK&w zS19oMAo|7NqcqIal&_)j6SuE5#kA9cNY6M_F_gbUX|t3|O2CKWI2Hv13^UC0=GV|HIuk6rb}>YLu!s_(393=3{jtzI&z62fFGZ2{hWD9R8b` zxhu@!zIcsC&1vFDY$;f)YSM%e;gWh(D# z52+vZy#xu;6a!k1!e~9bd^mZ%(jKF6dLH?lSi)PA?u z8W5?m%f0HmpwzhIV(02ybM`iAHwg)J$6$PzP^!;LDp2t;`6K@? zjaW4zdXRC69wh8Ceo;Q!P|8bg69;=e(a;Kt)6i*SpedDMpIAdS-N7UDO>+%ED3RKC zh8XdI;xtpInQ{Nb_fLa9z%-?lJoK!H+w{FrcaZj{P;m_-zahN`a=Q?`gCOzy=grxe zqp2(ThtB|P=ZmYmhv%}IdvwjLr;9&BN6&xn1p1n#{t3&ASpBGH4q&UtI?eQZqV0y} zMO68he)bS~R-t*kpMM!y1%fox*!0kQ%>6go}FpFuh4?>GEaXDTW^O`vEDv$AWWQL`L{-e#-{IWnj zi#|SM=f=J>p zN+MCScjCtuXtG|!2_1|v*TCQ6F9ww|&X~r()O>w*I{~0gJlZ%h2*u@b9`Zj!pIs*<>`O26){k_0T(x_lMD$@_1om_TCLPdg2aq@6}S27Q~q@09f|Bq&P*hz1i$bjXnqEaYiy zSBaoJMmVxa5OU~RPFC3WxU=+fIPXgAiViEzwsHl+kUY{4WJ1IwMD#5YYxkOvr1Z6G zSM)C>ea?^StwiDnv+1()dPk+9pswO~m!71b=nRCxv$A%YxA2Yg(*d9-+~rCtiO^u}l569d>9&q~R& zQbUIo;Bkf}2N^DzPHmpztfNq&jZ|B)UV>O+Q6ZwP(ts|S*15a_Ft<6bl8*IyE$v-R z`_>&p7(Q&m!#JHe$t%1?JnvT-o3t!gAx_+8`%pWs)*-S@pXgG{KWNgc^A&xY2 z=tL^IK>reE(wq@>>;g_2Ldypo@zv^4WA$BDfp)Y^wZ5{SEbTQ)AX9yQCtZ*TCw4Pp z5qEIcOm7h#GcEekad!DH#sj%q%;gogno_tW>TRTq%vw2UmyU>3)EK4lO=AwdOb#;% zaSHD!!okSqi6jfL&|4H6Yz1P`w(-vzgNTbF=A|;EZs-E?j!!9wW}9EEm77ZQP%wBGu&36AI)fa`FQr~;q(QC1iSKJ>ge|4vzd{qOHfSv+-;s&Il>wPDI6 zv_`A4_?>owV}v<)Pofh;s7IP7kmoQPt5O)(^%&aoxoy`fbUj*-m2;~W1y@db!A0N} z#spPs=-kF*P>5V9jV6&znfd&N-|!RGSf-&L0}Iptx$Wzo~Im?zFa4IaB!_P zwAS{oBRk$`gcFPmAAdm&qXhn$m)awqc9NMwl%P|?rDbDql=fv7%8f6>yM-{>tbK@D z)GzJ`Mwvv(ST&;>N92!fvn{?J9aflsi#MToiNac5um1$(`_9pnL$XEW@ z+WXMn|JXkG*fC$Vk4`!VCtrkEdt^3KN7(JTz^%N-&kfY||p z{>c{L&a}gpSayfg=w@)2FyBRbGqKw&kjGjlpF;ES;=4e zwnSxm-Elk8$GJlF9sB2f8!I_wIVq6`!4HL=lzBUrB_iQPvkfk+2o$7`u)aPNq+bUv z3d*wgsp>$%SgE=#CX)9kV}*_`_JFOs#W3aC-+$S5!ukebLR2*2z50m5&Z>UF0~$#$ z3(^iU_{whWMcpd94J@JsNl;ENpX2D7M zAZAbd^b46*>e^Ef^*XPg9#iJ|x?kS(EZw|z3jQ0KU)5hhIB=1@PYpr@yFRNxtQWNF zAqD?g@yZ*MCj|__pe!?$5vxmCS~@ro=aq~_A=a%#MwStagA3>MlFwSI$Lzk|F6+~- zt@suc5(vZ!;tJ3rGLXhZIQIr91cIw@pq34+;o5SsK_{NAHs9cU5DBOKYw%d#S|ZkU z;gGt7Dj**ArQ&f-NUC@j(eGc$Xl}1-i9cj~Gxc;^GP#{jZZ>AN(rGI3GP_4G`L;$I z4V8i)a-~+7)4`QgIcjQDr%d15=E`BJVRrF=x!2+znB>$Zx=z!JMM``ln~jpcOjc%v zounWF*`aeWvzEK91$xOeV;O^U>9FHCWHLWv7|%;9NpT!CYh;KK?5A;FWB!KIu{J+6 zx8Bo2ebWsaw~j?t%?KLYIc{%#q-Qa~=WcC`;&@N-TPd{?4HfY_(W0H^G#%M9b0`Se zFd(A!J6L5GUmhdFWG*HOF09Ed4c$-{I@En@1dv2d9)hMsf_NHQ-)nXo17pGV54GBD z8 zF}YZ-5Tlh4x?l;bh#0&PWkrkO$8^NHcshIWWcGr-!!uV;rY|2)Up}0? z$+HLUdG&Bg8yzJ$MTnqNtzasN^RG^S8$V%X3=w7B9XYu>dKx{2zosl<)vv=R;FjxK zNP?iK)$W3UNI+D#zD2wQqU_5OQ2o!~$N%pCz{-GLdW$LRdyT>W=QJ{{uc z543F2@RuoejhNb5qqBB)Weea0K4ENPc+#*!swi!Oy@kxHJb6^ZjkqW^6lH=I=7(hc z%P@7gxlRo0)*OQE3n}H^t1K51gT)BqjWAS$rtaAY|Z+ocYrCg<^6N>30j z0%$q=ne?Z3Slgx0tj^04)zHn>|EeJEmA7p-6h?>XZn0yKMveN{>bs^ioQ~t-3PjRN zC~onovwQ3;tWRGAQQK(B*6wj@|MZJw@4UTt*4aCieA)Tf-2K?xd>?a@q-=p|B!;zD zUBk+hMKi7y@{c=G+s@7+FN@~FuJAGI8&x-?^yT;_w}Eb++$ri3DH8pHTpt`(`cd>! z_YB!|JSH-Fe81^Q@r`OnmMKf`nsh+FZ!jo}Vg4O%!`1Ou;Dvfgs5x6$c12*9ap#NZqlwJ+LM!NC&IQ zkO-mL5C-(GCT}WrTWR68qEft;c@{@GeWB$d&L4t{@MSeTdcNFvx|BRKJK@MGO0>QHWU=wc=~z#f>ra*l7bIe^sHHwga!ub= zz7gKDXUmNjE_kRDdns0|Pzd`~x$(M^^g8tgl*Mi6;d(U@IN|Ptqqv@+)GE;1w@L|+ z-YThXA~7K@l&c-|V*yn9QScmsYHQjeNrhNL^!Z2xz4_#ty&t3N4V)*;3TfDJVI;Ty z)5a->jp+HE{IhZ$Q>ziy;b8~baW0dF@y^PTYpjz2+bU7VH4!7tZ8v6j=>9ZAI}i?q zTJf+zkt%Wr(mB!u5@A(wJ1bJHilIYFR@!7ysI%9M6f7+rkI-h??rqaIlM=GLcV=U6M55G#Tsh(Z@%z3c@`j z!@P04Kw(z{8pE%w0&IirX7o<jU@cbj5M8Ws1mMIk8grXvfz zbS0TA<4{sPdL!`;5E>eR)>XOEkDttl1q+2$GqTYfTu%o#sOB&2gPkL@EtCrZFDVm+ z=p!bb^-=(a5fWZ6vV~DzdAVbm1XY;_GD0ZhIf^e!mP6}}Zp(7BcO~mvZoVo@vfibv zZ%J^Ky;^GaENAo`#(x#f4|p&QU9Kpj2axLRH$4U9W#Q&oL3~x`DJ#?;&&Tqbro-Z^ zna={P$FooESHBV<^+`|n3Z;#lv32NNFQ5< z-4K1R2!Pa}sdv%uk7j>}>|nSNcUCf4W%kH}pidZQRKyM9PLy>%M92+S+m0#iARNMi z!DqF~ZXzZ2?EZGhTB~oZDfK*9X=4?M+!!3SClgUR6jo8>N&BTl>-l@NzlK!l=@2oV zKEmKSwkk;Ij4`9h$R#xN_e+>u6Msb3k;a&Ww9N*MFS`U$n9e=Un-gfuL(va4Jy zza^ef3Z}51S*Mb`SKQA^QpxXIWmA@p!yKf<*~tf=zBu!$lk3If_MUX)r)=+}eQ@&c z{gW?yr~lqN5pMnaKwCa$05-hx zmm;-EH!3{838;_K-c+;y3-?B z(UBdi({eglN*$N|pqv zQ!F>$eX%W~9YjjB$Ru3TRo9szK9Zdjtd+-b*2uLmlGzESBWqdSZ{7wO;=kHUoqUB= zMAqdlm6{8F_6vRrX120?4Ei>I-zn=`2-PE8R!1^ImntX=w>i;$&0b1VfJ`oh2MNfg z*Lpa=@%PR8gC@!M$gh!&+@g~^-@1WrWj3uU6+C|JRu6e!<@HR zOLX+Yo}b3xPHJgm&e+OxXOj!rIQp&JzltaRJ?w) zh={Kq6FqnxJL`*3W5ZuWfcJRu@`+GwDKGdgc`0IaU5(dvYP}X{*`3u}N#8hojZ0e5 zCDjFNh^hLx{uCY*O7(Lwg{+CUA&(WELMy>X?~m>5MTl9!b%>@1C!@kTN|N&z&C@o`UF$^~Aw}j|!GqJ!{vG3Re&2K0lcKOzUBm=MN-v=l5qN7l_?i z_oh$(m^@>Big3X{CQg5!Iu~W#!GCrB>%{4=xUf#|j-C86`svrP6FOhnk#%R}>{olS zL{q=u!aDh7hClo={OOkn6dXSJ*YNQ_Mvnh`=p%lrq2qs!2(+AVWeK>_ zQak)(P&D;{LKg!c{=5IZ*0uca!4LoF?*4@U)MRXsx)50x!% zE6a#9>ssVis1YbKSf=N__SCaFy-E3p1%mxjqOO^$5pRf{@TxNg5ll!jk2s3?Y}_DZ zVHLJ0BSF&!%rBzsn54gr4|L{ZOWt1Qv1P4sNK{TL50Hw4O-o3CuIA<4aV=&lic*GL_Hk%^O!)aaN(9vO8SEfLUs_9YN0F|0TY8E6WsSkkcF!%lnfsyG>$PSQfsLBweL8-q+ogO%Z#@ zx$&}s^f&`eS1gc87r9?zb^=yGCSCRhk%4Ssg?%aw{Y+49Ez{2arHJX10+G)#@Ybsbn+)1*M*H_e&rah3Ob%wwt-KCej4bnA=J9yn`J33GQHQFM#Ye(c|RX;GSN!DqO94T0>{ZHx6ak}R@xNU8rqZixt-yJv6 z+9cjVqot0i4{Az_=@VBDQkn-cW7u}=hH!|vBqBAyKdCcn&Cl&*c%KNsVgAeGGqpXm zjvnzG+1%zAnE_;^>jO1naR+MDmK>}$v=T*S92DcA73TgrVQl0IEBMO!`LQKzBz;y`1z{Lq zZ+J>Y>qM~{uA*uSIahify_CEzxgU3lnAlhDh@~fyr?r&mvC3P?Ex0vSq5gFKhWZw` zvk+~3LalcA3dEZE{CJkQL1$-Cw_R`*BDlIoBP^=7-=DmAFm?IIBvsn)PEzi|mD$hk zc1v7z+X|okI!3oE@l_;cX&ulSKE5+5zWSu~pInOlr|2m>^huN@`Db2`{nLLB;=c;S z`Wm$UyB~=V!EU%9qV@k8%tZk9owEM=-`|(A#xTA~ht(rAxJn+gs7dNjOPS-S&uZ%p z6JuE)c|L@n^)I^>o!ig#k^0;obfLV-b!Ule3YqNA+Dz%*LmZ%E0&xL(YATZTnf;Ow zF{qI=*h6?0W6)GoxAP=DVzZ1<9uuF4DNzsufkcL{2r3*1VcV7&CPRuz~X>2m0VX-EI1_ToJ;AL9N zhRR8}vtsyTf>Xa;G>0)bNd}0^Z}(Q)?x~V*&qqmPRs6EdL+3BsVJB%Hp9UfOh(8p5 z11)IBJh9oF@Dv^4_&d~*mjcjtkuq>wNxUU=M-j=qCEiTR3GM5$?@_f@vP5({ZHuKr z_1-DFi8$t_@pWJSCC=XN7b#163h#dE?0xJUe1xnHPyT&){^jtjb8yn$J8A7x?xH0T zP3<1H_es-giMxQVv-Xa*3$&caweyMk@Ahkb*?8A+A#$ott$aXXm!(s?=Pb&ax8mg2 z+{Jqt6O%Fs0)%81cty;Edy45^(-F{ab*2B}3pJGTLwAwPd4QH+C*SbeL0fp~e@(A< zt&OhD!46^Ncs*D}D_TlsZH^Giztvvc>lpjFCv(bjML`jfGu%3x1PYP`&ZT%q9ro&5 za^!TK!(=gP;snF9=W_g!pyikLjO7Ax@h|5sN>s$SOLwyvJag}tqM%loTNDZpuQGv2VQ$i*xr@MKsP^tn@5eistyVa0EEKW~Lo#&GU+*uN>Lv9v(y8fgoLsu^RYY9gd^yQw#FGN-=$jjxMp5^rA zO7gOtN?uWq-o3LbPO|beSx_qjJB~zAF1lM|IKw!dn)6{lR&o)K$@12KPdj7c9mHMQ z;&4GIYk0jO(2~Ru=lMs9Dlr@Ah(5-j?UrjhF{Hb46(J0S&+XZlC86kFdns=Mk*;_! z7lbh9vU@{*wJQpWKsan5TwZ{R3dXT9|11p`;u9&{UGfX!L(wDBxd%+xEgz;JmZyg# z8q-3UM5AbJ6UstJBGrJuMK}Y6F6fl?Nr;tgAGdcYq|`!9oMu}m!mak!`)u>0YXW^B z_+pu?UA~2u<-N|*UOT=NdAwQ?BkiP49B3CwGt;RiMD#@53OFjIFUo?K`0kXd^7q}6 z`qNuXS>&^2#T`m|*!fTRkC0VgTuL@@SKKRna@Y|*N!w3U300Ojpr`;}P`}LPwk%E;MZs|q_>Un&{ z42ateFOo(1f?9%pHcNVPul2CUM8-2cBYMmih!u=wBxQv>n!6x7%PXX2iLz$TAI_XT zm=S0pf6RQAL{qFNDj4N1L|MO0e*Sd=zH&O&$=$KzyJIKfs9%Lrqh~)2pZq$k<>}8O z`7%~4q+q$qMIIb@D?be9RRnX&(s~qX@BjEeeINcCxC+XGtOB%dS3n$-EqQ1eb7O1i8;|T%m06*NZ|^EGX>Zt{B%k3*bD|~#QT89h<(!6< zO@Tx8##1V;JnE4jiU_Js=SYrWTB=_5z)J9pNqmI|Y zinTIeP{_lywBD_dUTZu0PCMgOCwYwGfwE$=31?oBHp&n~rHApgWSk&LI7IK7T5oF~ z?XNGwpt;+bL-4nRYp#%|U}eGt<%fWp<`S40iLVH+H%JrvjJ&r695$wU_+{6~Y z&b+>$M(T-`^X`M+n<_w z%sqVNe#DNNlirO6nw9r$iu}H9k)d?dSvjO)1c;@d(mqL@JUUW0!*)lUsVgu^><2Tu z!X#wNzAURNi7udC>Z|Er`ck^9r}LL>y-SP{pfxRUwS|FUA%Z3I(A3m*FeiX(6{;fPFdeVnB}PwIxYilgnH|Cu&hZDq_2thbC+J~$D|Zym`5J^K9YjxhMs>CVWVC)!gMHN;Y3SkeM~>Z20-h=L3gNBf=0%?s=qF(c85CVnK(M)SnfETOy^KCq=*Ag2A^W6HsPf@~o6TDJ74A zs}LjB!lk%K?-F9cMMf;i{khAWvh;GH&a!azxNr??39%##7sNs7AjPZ4i&q39lB}hJ z{C}hbUq$_QQqG{Pya_UtMbF~A*kGS~XW;{^xbUEByP=L5@TGs-=VI}&)}<6EfaGXHJ34TW*j3`n3J&zB5mYuNUCBHVtQCmm$u;tYC{U5} z6++D0UW4U+CeSJ!GCQ-pmr`Gpv7))On=WocSuPM?^1*0Iiy^>L{xofmM!+Zjq52rDfmJk9hMv z+Cc(YNl6{I4{%;J_dc~GAeQ8#D`b4o(WHPn^ssVns)s%;+e{HUPc=HWqx!>Tx7R8% z2DaySlR5f;1!!TzL;xhggqvwl)}+3*tRo^p;sQFQLf=krlz{r&EyUdZjgoaWXg)VA2Wes8paYU|YsmrxFHU zEWecbB;#-d^TYGJwlOd;TvIfjV*FQ8MbL;PvCqm+B@d?kSGbY2Wd4GDT>Wrf8Q&C9p z^e%ydXQHgTs@lS&%5`h*q1BX6# z#h}&A!h)|{pFPJXf!4sWQ?PJk{da#}{o=p+-Xr~={%ZgynB+TU{q?`UFJ;j$AC#*1 zd+JL|kIU`X8qH}0Nqk^$x&FFbr@=N+Hm|aNl>KLxM`!le&WQlmPRfOVcIe# zYj`7>HDyut$W=WAS2GlEwNuWqZGx_OGIY^2MLV^Y_mYxyiC;1u

        Imx%0c!Y}NOb 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 @c3$1CAph0({{J0#|6h{6_j+kh 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

        *1T)6!Yva<^;l%`7#qPm~I=9AP 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

        O=6nEuG{5YM;d+jh#>2-Z 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 O#!3xnVYY%E2c5V@)9!#`|S~PTerBKw1 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Ō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%0Dk(m#iimfv`ToAC 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%0ABXtK-u%;;av|a&L6MFNB%DSX@m0ez* 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�Fn(NdL6ho=Z}a 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

        H)holn1d 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 U=a98v7Up%`)Y7Eh_)fzA0izx&fdBvi diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3626363.en.png deleted file mode 100644 index 823fcf7c97fbcb9a5aae329aa3385f72d636fbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99975 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 lvDS^NrOKhdS6qL|5Z z-u*t})#o3ER#dPY5?#y`1!GYf?A_EG;W)y>?>$@mCD zgr+t7UP!GGzYgF8Hu&bTmFnwktGchekj8KM7WA%I~$G$ zg5Huw?AbH@EYfz{dX!0agK_Y$=`cQnx6t#poVY$IdFkC=)R~fCBAKv`>x0P|ke?#fUfn14 zgO`rSeLA4=V68!t12vx6Gmh)^xf$Jqao>|c+2$l%iz9tUuChBfm+O=nU4q8~$=fcD zy@6II>p3D$!HBokE;r|kSE06k|4vx~Ze-p?=qFiU6mTq#*)>Lyd%Gi@*l+nUlda%M z0gifZim23w#bISLw-(5i zc{J{^vb|OILiv+G#pTT)j!)m=pO_p50|Vkd+jDkvzm957;5=2jjIJ_A$kX%##ZH^c z7;UTHJY-MJTRF=YZBSFZU1a3~))#mBRhr`$kz5pM^m5N_wGb)Kzua{jDOTLSs3ebw zQ;0_BL?IQlTWyBgJxBDNbMk~Lt&lSdg!qGXWvtw8B578}t=aAm_5VxauDjRVrOpMm;BJ0f*KfI(7kj|<4e=@d0*vaJTc;UM-l1#k;sjqs%Hg0 z{A;Cdy>@PQ$@7YCsd50YXyM7(UX?5;C7d=A+eXb^Bh|*b4ixckQA9$%D%=S4}UERNWy zyjd=1+T2U+iwJd??=&j2ldET*ZnkQ2T-m0pr)DsDK_Hd9uw^D(_Pc@~TimrO>Z`KL z0>$$pE6amvi{KIY`KFfn_0Tg#QxyzJ+P;oi5K&O!^u#)pCWK3&CRQGAvX90}DVe6= z6O?L6FRkw7$kD7+J1 zDwA*=xbh_BPx@>Fz1bTp-(vMTjA+oAIWn@~3{Jwn{ib1ib=TfsvBe?5J}TYu@01>q z6gGS+EZ%5-V%y~3G*oljo}?4qhc8Tvkq#koVQ^f}T^Ln8?bc>Y+Wx}VRpJ!7b-*s< z`t6z0Gl$0bPTzF01xikM>O7I`w>07-t!b{V)>*^?L2XqFy|kIqOJt#MTCQeyc03v< zZDV|d>!&x)?@YG?!~IN^ZeUWoo}VhNVrDXeAU3iCzdky(~n471P?Wz=M;46(No`V&|&!8_=wnt=By`_*Ehc?dV$sP!|^Z-$L1 zmyhY|_MQzRhz!;p_}qOueJ1rX2V30!`s<78N_8(z~WW4OUPK~YOjZ0JxiUT_|F z^Ug|K@V%P8H4|Q5gFKSYf5Dx~d}nZ3Ko{Nj?fY;SR7)zaZaHbk+p=`InJfm!;dF|x z_wLk0YCIM$&Z(4Q63k&adtT*xo#<;lf0H^EPH^SWLI<%*BAK8Zz0S_5wp3Y(GJ!9o zZL07rRoG3$FJuz31Sn-l9k{X(9nS5U2}g-A-+VOg;cpi>IH!gcpIc^L>5!en1n-_m zNzME-0&O4&mh41~*H~OX?FSn-@8buw=3gKiF_T~p^=pSLRXasR33tCtR9ThIb(s*(4=BWDD)=@i&Lk0o1gt;o-{YZ`R>m$5uzLFuYVX2Zfn}41|AgO zgJn9-pTLIRxV-i3+}LNHKI`FqEgK}$5HEYx#NKl?{H@J%KAYV1bq1sK9StkIh;5lM z%#dVB&e~_Vbhg0nMH#u}4JE3P#9X!#P}#TM*~fWC^)9>`_=Dl-Z98(_#N3zbHdxcN zl34j8&VM-X1z-G_Zi!O&72m7*A@I*IYqKpxyR{3(GuVWWIajDFUDWCj9+k3UJc|AC zKJ@wT2}>s!n^Lok)H!WZj#^xC(0H;AQd=O}9YWR<;mM-dQ5=4bcz zgRoNM<5yU>aj$PMjjo<`zM_SEp)(B-SCV({cBazsOs3m{aVK9L-M``&(PZDr?UC8yF&)-hF0*MxlEp^klOF? zAGBS}5ut`8@iac3ya)51JIjlG@Jkho@p*MwtSn+$EyQ~kw?fxp=!TFh0em@q!`U&^ zvafCrox02jr!k2euq%IA%^%6-o%3eU)NXwTVzE3R79&jk^UL#_6O3kE^HsqzV{}DE zChD=xYkYCKvzSl%7`9JztN_}6gWEj8>U)0C z;b%JTNgBReK5*OfLRGVvZ_+8#`*-pb8NtzK{AQZ_pOM5}j?02i$@ukkbnOG>vTqgf z1}yw&L@}db6CZf&>^62CZreBw%>aQcJbJGFhDpsZVq;)G)dB&iH%duHI2={9V?@ z)XS4Mdo&`ayZ-I6(T!Ka;W8Hw?~U0iG*{?~;K@SrhO_ipUmEb9gVN+Fyg0o77JivK zRHj$t5q0|Y!n#%!p5x~KCET{kWV^WvFp;0j-ohTQe;=cud-+hEh^EM0EB4RjU$pqr zwK%qvfeo$3-$unw50Og z7Bdb|dNzLng8m{kHT9zoD#ALG7p-yQM{WkwkJ_yP_o(Il>pE5>Vrw5^(x33lv9{>{ z^0iY)EWU@2lI!bd4-AASox?k_KST>AQmw`ONe#~vJyTE#6B|tlS5S72mX71HZirs1 zjNIcZMa3iEJXk#~6Qr;Q#V$nUH;Q~}vUzaO=?D(aXbj4i5ht(OuUKitNn8JJ?CBO^VTxFbR@3N;aO6zGIEx4N|axN z{6BVYUY%1}hc$GE8iE+e*gov9=UCwRLsaZVcqZG))8wCQ2 zkyF+?{>#2ZZ9}iX5|3~_xI?h&-Dx+cWTJ?Da}?-GAe|ZRbqPcq*=4Wg?C4W>-8~zw zn#YG*aB*>c-mb7RzQg8*PTlH#>Cx5^C~cfEn61b=!)D9)bx>4c>620^{(p|~%Mmn( z?eu+VI9|+Kr z73o;;>|ek~dI~X)8haC=Y#fWX-qmkZ0*3sF7t#8%jml?RxDj?2OvK-SI!N$Rf-_F~ z=mmzB4Pi9&#cRab&CUGDG;XuTkO$YDZCxD0Kaq#qW`whAl3Fl)h5qXHEtX*IelqW7 zvnE3Y5U+nQRT90qr%SUDbd=KcS| z#3E=TUV-xGlOkL~iENpv=cO6D?E*Uy5Bw^@$vMLAiZoe$k4qrIoB6D7zlckRO1rBk z*KMov@qYMG)GB!E`4#!Rjp6}dtk-?`5Ro9jWATU{_OR|+9IEwv!;}*P0+GK^)+U>w zv*s$cqV7 zKGM$p7!incHSt^wkdLgV^-?5Y;8DK=)s;J&th8fvlQQL3?8$Dg87|y*W)flIvX$1$L+&_R{a*QQ?G!qJHC0 z^ub^CC>ND82?(HoM?Yn2y-Y^ky&`>}rF^+K>f@^h6m`fYRy`@?cU@VW|IUW5Bs%tJ zF_P}7d5!gLoo);?;-tUv;LA(YmP|}Pw4Ty7tC(r&3qQ~eS8qHUv`pu_|1~C&htM(E zS7Vkx`AhfhTF`&f&|+A#hfVfN=%Om9LG|GzlzjknUm zmWHvh(uSp*krF4w?}R0jQO+U}M?Y4u6w(iqqMZz82LIf6T~z*q62!~PPj6kg*w`v| zX6!zTaQlBeU1dO&ZPQf{5fo5LX_4-3>0G)yq@+tqS_DM8JC;~#>26SZm+l7X25DI8 zyVdvk?%(@oub4A)&bel+S6uBKQK&lySFT~)UIF~G&+_(twS6aNLe_!fEu}v|;6Z0` z!-o~7QS3RqIP&n}bCjSE36Ig8Q}<{Ohr640jQ}mVT7;j*zx1PzCPKZIt1FO{C=QOG zltnVnf0x)z8~2XFtB@Ka2Ga7h^<`wkhqXeZ8ikh+M->-%@lVR`pxc%NNDeKz1`<&L zl?d!SWq4Q$MfqlUt0C)Br81*RQ^Md$Q|*t3p|KB@5>^D)GxR_Q8RGT1=D(zzfwNum) zwAm;iL1pG5qqmfE)|8Wd)J`cXLRQ`%V}P@#HfORC`%xWCA4H)M+)f+ zwb(5wBPTiAUZSH9I8%c{OTniyqLg; zo*9Q8&SgiXlK$?AsLKW<%!y>f`9clx#~&;@#t%Z2+(^4A43+j|bzd&8se7Ria{Vn84$z?C8C?K=dw8i023FLM-#^q6h{} zV`F1Od;5`)5||G!^4*zsk6?7Y{lR#G!GE+ESFAeAhw^G9z;hM%nXH4$4o<;@!v zXL%A9{iHv~dE{v;AFH>5h!lS8;>DQ={S{Ha_lMV(j#DWS`}qe57)y(F9O?!Lah?x3U!K|?!^MQp}7m@Sj!>^cH`89q^Y{nGB7 zTeDWMfl!9qjoa+r^qt5Dhvr{xZa-Vy8!_e_U9K)pb1$0byt<)}9iIK8*Jqv?;GkJ? zB56!3&!)cGv{;Q>RqiIjm<;u2>6lT7+OQ02XwYg~)(F0TIbtdpz_a9;L>68aW~c2Q zER$?_6xwPy9&FS{?7;_+7A*j5sV&G_crK}NbLa-WtI*2X(E8xGk? zYhB>(7QF2Db>v++y!~<$c6&5*+A7$2x@ne#{f3T7F;@QKJuXHH?qvh%vz-Q(H`KHC zN+Luy?c4$_?aQm*PP2__@4@0N6xaFmq7IXf{vp)~2wP^6{@ffiPD5SX2f6p-hby0g zN+0o$^_Cw$%;Y|&VE)v|$7fYkw2D6+_yl*xEFE%xwNA9)j`|o1{rLqrlkPSwcNHtT z#R`gcbqzJkyJN;_Hm_}lNt=B7!oa7G^Tm}W+opaM`XYXUqw$V z99VEY>*PR~;i;3MVXzJ5)A)M}J~lD+6VafEm$q=qP7oYRXeWY7J*)32g+AjlafRQzPqa;D+MQ*>p>*zhpTJSx4uch?MB zXioHWu-T8(U{i8WPj7^s-yU8SkY8Uib{_tq-0~EscGz}rGKmHF@IZOlxP23xIV(TM z;8sBIxT>$cu&eGbn8YmC)O(-m;K+`E&|>p@sD)?3fZ!xA7<}lC!mFCaB1a!Q!4?Br zJ773LSMkq}K|lAfX=0?yOdJ@H2PrDb;=Tjz#X411=1dTQy)%FzdQJ_kt*vm)pTyo( zvv7{(a=wRvjXdy_fqm=BC$Hk-jCy{z`NQxvM${xoi|XW&Lg(LDNa3y8ECJ0b**DsK z{CQ2-*2$)|vpGW<{)pCGYu-_}aNnIV`yr%Dv_SPk0Klb!@)*CW4*jN0J8*W+Jj#d@ zEh4%kF>Jj2JvZ3zPEsZ4JG3!#y?5$kKXB2+x0q{NWdj3l_NZ1D_xk|Ff-^z<<#BRo zn%(E5JMxSRl$F{!otwJ(oyCvM(tCD?!gfw~KjC>hbH%)5t{+`R?yV>&38eo?1HVDB zpj;5rMzoYm9A^v&r;i*B(J*O-O$uVyp#&!m$S4(*x?AeRnz2(;QwuR;ZnR#)&UU$n ziUfMhVXyzfM$_50dw-N)`^f|reu1B^PyS#k$H7#Fjj6|Bw9?nzW5BEWPhNyju{7zg zX8q$|yPx)g>l*5p4uOMGf0y|s@+RO9)YV39d(bvr#%O>31!QvKL-}ZVEwKVWD?e1p z9jjlC(UH1iA`0yFTfLVL4YEaz@7wMlw`KM+>!)n0yq|4#iIp2|*t^bUw!mtS=DU)& zZeK%d#gr1K?iMWbLY_amu&Ey}7<3!f)LZnO+do;O-Xi1XuhVz04e7p4IsqYwg70Vk zh@tt0;zHL|>}Xx1W;)pFhAAbKadQe>K|w*YIy%55iw3cS$m5)xqCqp1k(7x?m4NDN zWTA6{_bn|zi95w&9w@_4yHWLkC;n?yolHr@#1-cz5>heNzBd2pK3ed^NLk99L6T<- z2K~qejwJ!19xe@Y6{k zNVyzrBodW(?&&(5S~hn!FWR?bdLavtJlnCxnOYRenf^(uZT^6RHqx>3nqA6hh}4}4 zOOtP?XkEr}=w7gSe}BKKy1KKo6DSIX3|%w#(|MMPKI~5}!~o@ZrW}zAKMMQojdFN2 z>`s&fxLV6Qi*9Ms#Y|_-mV;io?xxC* z#r)MnFs{w=3aG5cNhqGCP})&Cs8>GrhC=tA3K?(El(*2MIY!XY(~s3J6=^5N7sqr^ zx-MPb7=TcIGBCdf)zPOMr1Pm^sx` zBzhtwt7_%@WB!TBFE#IjWMM_m2*o&%+0xQ0O;lS$eEYuiKtT$`8XqO<;ms$Oeyk#Xx^!{C*ZAE&wJ-_ITVKCGCpA7A>xd=t<#8;D-~o_O)$^X;#3 zSm#h)L`yQ?rtC!@g9obkNhER2a=in~ea;t9z$RX#iA#`%_~qO$U}$yK(6dXWpBO+89gqecL|Bn8`xN1hZN*# z*tQ~P#9z>QtLh~_;T7Xvb^w=Ht)=U-F8xBNc4lYE*&3*CEFKT8Ges2GU4Mj6In58R zCoZYZ)?@vxJrvJ{K*IC^WBJ>W!=k;uTOEv??>PS%o58{GRI1mPDCd0RL&?VR8&GYi}w ztWqf86W?2xWfUn9Dm(o6(EUW?U+(dPMnRJrZ4A`(W&|%gR*5jiCRQDIb=6O4@Zrmx zCk+Dw6;&Qoel_~7gS!Sh!E4k?@AiL6%S{!;*J9s<$Rfeh-J8!^qZehWndJtGa6tK2 zw2jhin5%s_6I}UPMIU)KNNn~c6;<;~_*6SRCy}yiN;WyCZeebIP@s(UV^N}1tTyj$*YiNvoc(kV1fDXow{vYB{FrnxzreqL zwrzH>=vwXbX7Lte##vV=Z&*M4Kx z>6VmiY;1fC0;-%75pp(u?-eD9M{r0C|_lJJs zw#_f0zIy)>UV3j;eO^4-E6#|C>?vzDOjPSH66LCD8kQw5<#rMw-*-cqvvHoN=h+C2 zm|oX^5oyXr0_7^D-bw;Buj5o3^{HJNvx{Zj)o=IyNT2%Eu1f%ew4Lv1`ol`O_3f*7 zbeowJN$Q(jD=!Y)hTD_ul#Omi?t?pS#2J;k%J?=pP2uY)9QiB;RiCGBQ95l~Z%85z zwqDNlGDEiff7pB7u|hlD>g&>oR|=V?(>n*2nS@8ZcSbkEuz2)bDq!BtJ4ZY;DWd|6l}Ame3H=?XZG&Wof~z90Rd04Sm0?a}83^Yt3P1D=}y% zZxg8$6jYZ^WZBV1FnaUOmuSu>B|mjEm0J_y;XY;utPktWU;jot=_^PLugAs&M3G_L zUxZ7eN-=0j6w8G+H@AxL3_Gw=<9n`z{?rcKK3d)tR{r8%_s1(gY#Dd;@6g0oeta^8 z!hkx=YJS5r?#`9jx;5X3n#x>Z({?rDE*Is~zS;$Vx39j>MM3SBUU~D((5`iFsbYqE zgX`kKtZBJYIr6=a9Wr7D<5@EgB72%MSG`;59Zb7+|j&Ul)IKq zl%jzCyn~Z%^|35N|8pj-4ExI4&!<$b*QlujOXHTChu_BCeK_oHrq$|v z1!22j)2ZpzxIn1ZAM-%6C&o1d(`TEZrvFP5(n~-974hv`&DAt?>Z&bkD5Mo;QDT&% z*7Bx#Rtkz0&w2ZjrvXkwQ>0;(-W8p9!Q!K~Env|YP!MXErZw-5s$QJ+hYV-^7+HaxNCxbm)`D@1E3j;0i}F3;*#(>-o2_7o2z)uU$I>>AByA%aU#c8I{iMXo#@g zizs7){PFjc!!tjx8AUFSd^kyz8n5HYv|2P9%FI8#@TniE>wb50ltgR`jC+n^h^*Ij zg$~X+AMofOHe7qYJ}&JpTXbu>oI4n`iBh^WAZ4sKUw1qWavR(vvE+AOu6MrRPO)0F?1^;9x3^>U7@x-B z@#gbgOfsGJW?w+sqEJ$JyBytdMOqy6ZwBH!MM-RGvh z+KmfbUC`Zfx6D#u)!296ONFY(Bs}(UGUOuBLZD1|d3INIdQhv`zIDm2+4+HK>zf@v zw|9ThG>g+`rl!VZW+o&gWF%+^ z`;0X-Xhw2L(@c=c1O-g5O`~c88E9l3n}mWFO(rac9(*!x;Czjo0}A7d6Z&5gcWBH(QwS zKwNnO7EkhF{|xIze(n4I!=dz@h2M<(lyqzULtei`t`fG(J(vITqdx?Zd~1FO4VS}& z>4$IzWikkoclekq%4?!KB2m?K!Lla#(0Lv6qK2OuUZ1g1E8nK1Gs?45AQPgob8sA& z1KPWjPSqhb+HTJOZZgn7w$tQT4I8EkhyMM~qRW0(?n-4BVEnyczmJoC>4){SHG||l$9T0$tx&KUOM5?(`CDY zcB0t7hlyjCs^j&?T3Ly`%Z^c{7PXd@ZJk@Ly_oDyWo_ipG%xO49U=0nICV$;n>}FK z1~OOeezI-2+D+1bmN_B*xDgC}ljU6-{SLdqde4oXWfRGRP3wZzP=%kemA}x_zUK=< zy~g?oMHwfW3q|7`LMUUp;m9Y}VuS9oo`SC4%FdbgYBEcdAdaB0AQEovfljOT{GS*} zzj!1|1|~dPDWm@)#C1%^C>*vSDXpIw8Wwi?$(aM#fN0Pn6^y3)9fa{o3AP7)3@{y} zvNAenzocY;-?k8<4IUWi!u5arILvM_{^hOjXB4n^_06Gr9xwUM+4m5J13$k{_xb-y zy-^?Rkp%qP=cY@A4~nYF|8g)|Fwo~mEDv&D1d>SrMkmls)GdLsBlKZ3T&55&eWyp? zB~^W2KO^|)qK@k+{?<8AA=H9e1=#(&yIcMAjAgI?LeO{Ji$%6i~mUikvyD2S5jq%x9iV^l_f-D#oK&__1xLj$>ZpMcNWBJL6SsOJ*@9Y$R_A`__fdc zxhglKfot?1Xzr2skJwJq`btlkh=(y}SF8@rp*bIVm&jB5jyykB*;c{<34sDe5_^#Q za!>zu`@sqSA*n_xuXVLpb@9Qu)YKa<1DfI<1apwO&42MP-SVhZ8lx$^J%c<4Xv@M1 zRvG~!?m|tfJchB8TviZWL1TQhHgM%6A}`#XJ-Bl ziocwpIX8!m=1LcCaiu(vY{q?xZ5XUoZQnfbWFA7DB(l7`eo<}(#v{6oQs!M9(6RF7K z9L02FaUUMRATK_|R?bnE$wb?UQL1fB`AUX?v{dQAB=49 z*}n;&NErhgy4wql?o(kXC4Tpk;`ozU_(?Nuf<$6MLa5)TJ2i2a;{C+Hz*lXNh zToR*f_paH-1BJ(PL>?saiaU7G4u^UFvO2Xvpb_AB?el=+PP}P6-NZor{DQm~DNW)X zZY_eoNzj2mEbvLPnd~Qa$TOsn6;{xryg>QQ&Gq$-jh}MlT1}v~OCg<0B7IR32S8!f4M?7RBKB1h`3W6E|cRtb}BE|U;8 z3Pr5|Xiu)#Jt@@VX!2i3mb!+x$cTt`TQuHgb!}ON+)BOl)Wr@hw4r2DiRFQ(pMjX9 zinSBvLH_c))M#A@GdDM1Uti6SALZr4)6&w)V$O|ysv;+V9?t^Z=0ikoWT_P=V*{=s z42*{k1}gULHMj7uC((Et$8!D7Nr_21e`My)WTuK&#|znyzk_j$t+SqJzuiuMHnAm76zU%`a}2nUJQz$g#wOTVJZ?+h7nUZvZ<}uq!wFF{jNXh zo^t*wEf;pBXMo0XZkHM9Kde@XiAfNu!}vvkO_raRmnSJH8U5p|rpC-}n50TtBj$PR zdNe{Mnev{BYE-c7WuN{|j2M-qod7T>ne6op3sfiA~3IpchA-GHnjMZ zu|?BXajBuvWgdQlgTEn^24B-k*wTq#*3-D}s=6KJ|GQDuLEfrp;BO6_auZaIPYa{4 zvW5iex}Jp##WuZKSNs)JCYeFUnnRsug;B1`^r=hkgSYEfb}6WW zrkJ12WUDA4^Hv$>-xB>Ca0Xtf7br=SoTGUlPiZMDM+4^n#6+o^1~L5eZjf<86}msJ zd%db5KTV3or%#{qTY5Ff>z82t{Q+6{`1nszo}$N5rabw!MdMUbFQn7!D z55mzMco_w4xyZg!~3TblN|7Sw~E1A z<%X`w{{{44Ck({jWHGY*+iu0X5`s{FG(cVec#1QDx(%4NRWYaICUf!&@meho?#?x5 z4L+QVdE%fTD%~bn^60s4O^jHf{9yHVZx0CQKMrCiSN)--3)LKm)W*i-J`t$O>_yiQ z{YXG?B18sWB=prxsN)vC`u3b8ua}AnIJ3!u)ckV>LabVrsZv!{iyVNzMx<|` z*ub)9Zp>wJx?-hC`kdQb$NqDJjooz!*G6VqKTb)%!(n`XY=3{hU4OrOg0SH=t(*96 zLMuKh@bUriFZlrU=D?;mdrLW@CddV<2O5i_@_C8{*56na zEdvevzh@Ra8cF9Gv_(=dfy|jHj2w+Tqq4Ea`*m6V0Kn8T()R~`-G9Lm2Ms&{yc&*V zg~i6kwzRYigueiAmMj300QzH*4vz}Uee@3WJb^b~gnC0uR*b|r_DKrm*PIS9eU7T? zs`uxm`WS>Df9AOFdr?Xqt$S5Ril7yRJ-lEoEZus)j>PAubyB6;UKXdjMs6$&!nOGe zUd|p9Qzs=G8<$)0NlHvC^|UPQ%D&D=tyzP!Nm0SGhI-fENcV3A|CxZrh3LvVk=Thp zgg>^zn+3;8VT{Rq2uIWRkR+$g52?|%QBjuCc%i)2q;@$}d&$}69*P!ctx?$dyqO?- z*$<`T5Cyki{rn$F`zwtVkPER{?U8I7SzAL}IyIQ&c4a}-A=otShS(bHpql)=d;reO z%*{iH^r>oCLrj64|2Q<<-$_g6;Bfu}kQaNjlR)u^UvaJr?gbUUHg|G`a1doiY?ir$ z+6=uZMA-Ox@3ot=yl+}g#*5*C+= z{nkrF`TF@E#Bc@>qaTa4R-m*HD$$tpRHIl-VFFdX3t_8EE)V7R%uGE~^Qqn*Cqx!2 zS5;=x(A!Xs;k3%}J{SQ@iCjU-;-!k?p`d?%lpG8(2hkdR{P;9` z8JO-z42($Z=DNxXj&top_wx1qn|KxN#>psg^ zX&WALR4z0dc!-73pslG54>Pv5?PV`#_liz`D&sXba10lAT6Auoubk9MoIkw` zVg>M%u1N{0isbEj#0XNtM3{UE{%(P&lcW+TuO%`&Ahh-J?PPVCH)Q#6uk zXRw@{cP|QVbR&S@Bx&iZ2V%`OyB|XG^7sS`Mk1Qf%1m!ZU=%FAa>Z? z<>KRjo3hfXVFCu(Erkbd@v*3C6U45si}w9k^C0H zE7a*O-hEKJV?)>Zr%gPXcAsgaOCzj0ch}{;Rv(1sKVU`SMyh0+!-OdvAZgmWcsD;Uj@+7*{PYim z7ke^BR`K%ji%|oWNXf=it&BYMYTHqAsvGj+n#cw-XyS|E~%MLrmadQ zci#ItcaMv}7X{r~Q?_SI#zd=*>=#{m4dc^y#QMy3pPUzV_nLYi;y38}W90snFUAA- zx?oDjMTp3?-p08|LVTsmyHOpbUDG1i_e==pk2ibYJ>*BI%Y&dkhP)8!ZOVurQ|js{ zT>1R!QMxfxh2*u$C{GP2p|CgJIIsQ`ndhk$6|9y($#CEgGEW#Icfys_ECNy1-lq@{ zz^S=X82g4`ndRGp@ehS!-z8_fOvom%l0CA96eSuKw6(!vnZy0GE$MOWX&QJZ-sFX9Gl z-+@_IaQ{X|oAeYSvo@5srN?S3Jfc6C`A@a@jZF_|vO~OY^yXA5>F@hI`BrL9&iM6c z&e+i3($_yAhIyu;+cbTBeJ_`h-f2+;$;*NvrS6Bz?M9lqsj0E6dusuimxoJC%=9Oh zm#;4@m1S{KBqm`n*fGL27WCxk&i6fw+4TB(a4*w~G{MuMIoJkw96TdGp?82`IL*M2 ze=ljj`?VWpl@a^2@s533o-}5uke6FO@NRtC;F2$6e%H%Iyl*KX`+@;kGonhD!(=Ci zyyY){(+2qVsbMs9%702tRmw>*s{gI|h;mV=EZw9vB^tzAO!Xc&tsy`3z*DtLvy6bi z1V<}77CkV!N8qF`{r2|ucLnPVx$Fm#N9s7>x;GmuhnT>Sz=qvFxj}BOBM?++q@|Ux zqNv>3g;6}Kg*>e8QO`Sy<(*mN+`kYr5S-7eglZenOx3=C-~=sx_}jeP1` zahzep=U3NTM(TGYqI+?ZV&BkY*d>de_uL~K;c3cTYR^B>zm=Jd z0A?%`V8&9=gmL?0WhsL|n;RQ=uV1f;*A-U0?DT1A1yPfK2kKbgwzfCVCtsjpexuc7 zl(P=fq=r$dME|7g?(Jr}Bk}F-PCJJ+oXe4wlIi-o$TZFu8X<3$z2R_PoM^P6QA!sy zTU!6wyctoOA$)zcO0dPl)YRZmI~`KGR8WdcQYT3^OHgl|Jq^{F-o%(=g=#cA88k&W zET{cR1M}&lVOVWM%g~20cbkOTD+neXF(|`D;M_bGq4h-_!5nQp`jq~RuXs@F@mAKY z{4TL;F8vDyVNJ=*wlCi%NVx7bMu*X#?TwQ^f1--(8pyD_R9LGjg~CoZFW(*euQvV- z`V47l#`9;F$?7&yU>7u4_?4QFXG1BHPE)@Guq1#=Dpp@HqCE2!qVg;!HM!ZIcE zLQPyTESL3{C!Au`PoT{HB}Fm;>`)sFWz;x(6GxKhui9vFE!aXQAUt#zEr>~1a)DSO zl-scT)|i#RwwjkH951?cpEJJgoej-J43K*vun2cl3Rsn$Pzrzwn%) z<+VZ^tMjiZ7zvT$)k=A>C)cU=lIfr3YycHbCk6Hn)q~b{l>Y6L=n*m7aqi#1%)y)68EKb6Fp8UrGnIsa^_2^0{>9>ZXv$0PmYELJ;mV2 z6WQG$R*-7;UuWn!;R$Fa_cus4E`Ay9D>xc9F`?c^nF2WhfqZ@2qTwYa$=jB~Mn-+) zH80(ifNZ6%hyo+FoW9u`M_L~OVDN>u_ zET%nio^q$fssZDTaFXiaQvDhCh1d%+qx4D0e%~{iu%j6oKRNmP_ZuBS{YPcDJ(_gh zs?fBM9gPzaK~@*mybDbc68lAHvW`g!eNh}xj?<=$e<>*{#Ef1j3VqB~E0Om?okWu0 z5e6rMyjw$#>kVZEv--ROSR(kpD`OQ~A^nFU4yX6V_Mh>j;ZR$cPL*b+6A4E@866!3 zSjv}@G>w>`=dp++dDSmSu7S*m&tB4!QaOP^LFAwe80F|=_K^INk`k}W!#hUvSRd>G zLZP!gKewx2QAU6WhUII^-k@>1lQGX^H*M{aROa;*LqO2FBM+ojK9qJ)W7(0TAcv(p zP@nPM?AO43M!t&`d$IdGhIret{=(aloTB;Fa(%Z5ZIA8CdY!{GK)`$cnwdo})h*4! z4}Jg}x7hWYbRfu8LPA%TpTdjS*03H6g9AC6BuHeFxxD%=1+r@A_cCD;E%GeKcGO^UcUHC0u>8nkLS z-Sy(2nJPhgb8~ZRW3-CWc6@nxxqn;@2&77KV$VTu7dJ*b7fDLjQ-ClVJpwSjGNxt{ zf#p$HT#to?+Y1W|u9uq2 zkq)CKZa3U}Hy5*lj#-N{qtXRR3j*#E(+O(`1)^*5VwQ)It@(!~)~ik*)Aj|{D~Eo8 zJEO?c)J&a|@mY$1zuAu;K^@woN8fBf5~Au*)pOtJ6)<~llZT817gQc+$tbHsEwJXSUfz*l>0Rm z6~Biv1ct$aHyc~vjSfgO=mIp7BO1_tfAes?E_`1)8vL+yTixz=IV?5UwtcBqeQdyA zvORC3_i$gAD?K}uUgK#p+|ELJv9j(@c6og$OyhprIVp(|If!uTE-Wt_df5M!C+}ctP~kZ&)l8`$S%<@AB(*U4?R;^;*bIEJ@9=vnB(e(eYVqt| zqsVgX+e`JlmB}20Rq|A^WVN&gL<#%KOI$MHpwc>D7f?vfMWS5)oX?_ZAbjM(j{vXW z0L0;mzxY@xpsvo&&W@_60QX1i^~OahqKY!h93)cT;@QyL+tY=MkGs(B_b^*+AuQ|{ z*}g+2>>CbSTU%pOGBGhp*2nGMx{RYyIx`26T!3=U>oFd#3xvH91rK-Ks1I|$*Zgh} zox(gfyDX)Iz9Z-J-vrZY(`IW=5okVJ;rAut^L|Im8!W9}x6}FEWDeldgKImxNV4ml z9Mj7|RHAejLMzw&;EkOahR?#J-;9&#KVS8>=*3aSD`9(P0nFi#^EYNM%I*KPMoa- zpblpWY4{BR>+xJqQBhG>SNH1~tYK#6_wV0dzasTf&cSG4lmz%k7l!}dw4vCg{EnVx+s|n9`&w_yqd7gx3&x~yMcS9+u2D$$;->Zfs@3n`-u`j z;Ygd8)c$5jD{*h>>B-4gj@Np{$numrNKsTNHk2+vqF}%vj~EB;%ksT&gz(L!L;IDV zFJkjSpnCa1Tj_4W+%-TPM`)gXCpRIZ7Wd*eVKM6JW6?#0vSvx>h2jTql)eoen5%r%CYYqorr$u3l;r&{ zzK&6st;#eX$yBj(P*A*+dA)O}84GZLSnf_?4D6OC#}|t7@?A7M@~ZFYL2{8NKxeMY zBXRa)m9Xb{-t2&gB^w)?e!D-*u@Z+pCPM;mArneT^&0-kHoq%@4wt>@YHT)D>9Gxe z^O4{iyP4~D#*Il#oi6p6?e#JEVXqVG{`{urfvcp`sIGIF{+PHDG4wkDw1 z@{`Ni+3z2Y-?#6)F3*VcVU%DYAJ5CfMIv)^UNI6NEW7}RhlPcOh6gI;=jRLgUC6ts z^E9u@Z_}cj-W|hku)vr#&+LS!+vl)fYULv|dS?uoba||1DtDGYVj+wV`dI1}?0Ksn zf`c_(mxKzsQ;PinD3GGG-5LsixlB9aJArkpf@mIpU9YZQF5`{c6CJfiz!8JT`enS$#Kt++KqBO)eQ z-H4#FMtcz_Hhx+~2TrvADrltm{|Tg(xS9|fdHEMDG4^&;ae#>**j>bU?BU^xv2hRz zN))N!S6XO-)J~idsc=uP;Nlv3N+3Q`;aYWpQgu}otFW2s^?J3%b~t%Ep*MC0i2A43 zTAUJCkgQQ?L4rD1=i8!Rp`DI8vX^Ge9rwQ3sRTO zv7!81-@FsEuSM?=6AzMy=gD}g$0BLzCc3!h1<4v2Edx1%zQu>wVM+v?lKtv)ko@Xc zKyuB?ug}0weot!e#JRK=zmZ8heskzPDSCeQ8&=YB!*GD3U{*DL`z85o9x6R(TWML> zbF#)(eLrQP-TzqJZ^5eBVfosF$UQ=@s^imOUCMLY_63)-W*ELvsm{rHN6dqr;BC9s z&^$TvrnZ46Urc1tp;wfDc@RUKSFd7{(ufEM(7Y&vDIFjV zk3}aJ2P0xD;M?2V0Bb`NMJDWb5zhE(#OMIPv+fO4Fx35MNm9cjTi+p&zk|rRsv3v` zJJ+z98cx~JoNGuM`?c@Fk*?>>=tZ@avh*{v=^%eoZmDgd#)nV&yXp*SQ+Ew!<4GK) zZOOGcHHw{`tfj47tG4kP(kj2GMnb(>^*AMXdPufV2d_8Oh*Rc3or zr7+4@S@7Zi)KyhpF_7_~y4Ou{C6w9|BVLMd)WN%SmPSKe=Rh9H%1&HFq;g~XY24}5{lW7$Qr-_{GBV$bi;J~GU7SY4J}Zw+;z`4At`TBLE1|1TwF0ED z-47Rjay=#6K1+zL5FL=0?#tFLzTJ3zW#+9S8#o32~!V&0q*_U%O`;vhMM zEHdrv9GY?Pl=;rPz^<31U#Ov`d3n&J_6ReJNdIRrneX<>iYSm=1KDqNcNdLoJc+EZ zdW^&+sCDAW;3+z7FsJIGTKpvRtupo>bn<5_LupM*UX|>TDXsFdTQvO6-b4Q;t&iLl z{N(#TneNGxCk=fLkDZ*I{KY!RC1cVW#3*7e9o+%K0Y2RCb$i8@0`V=T7h&h&;o;*W zc>Q`E^vpk%MDx0zC0gDLP+ot;k0=e274&-eu6(`-B~1vE=TLqkVN&LRQ^WGhI7M^?u1@v$mR_i5a3(0~ez zh5@x*0Q^F(Y1TP~EM>imDJG_Q(ndNr>}=b^ zvLI-Gyc8m5o6j^W;5r%^^1Lq6sKR{VeKA|LW<+wM<*)ErpL~S_HgoT3x?FxGf-$GD zFN!#*F6rzQYi8+qrBQ@Fu`iT0pdzKNqD8rAsi42!2X!S8kw--orK+BupGV-7=mS_} zWfh{?F`sl)lR)ZZ?>|Qalqd-XCT5%SOmN=gC(fdE7nE<0Kw zV7+j8(oO-EA8f7vU__j<9zB_@_)`+Paz68M-ueDpd#UzGl8xNGqxX2Pbcs-#XVX?> zH#q%0d&9m|P!i$gBAZU)#2?iQAmClVkTk88Pq;W{?t!wCp}UB8yQ^_=Qntz5*5eD6 zdia2ym3!z@_Z3DMje`-d)$}TwK%&w@(*+VEwECf{x#k~mw~&Ov zj)>+>`#E--y^EAIx8Vg#j$yd(&yUU5dc>Rdd_vQ^@UOMZVVXwC4j$f1O=@!7>AG#l zeK{Dx_$7ih9|nJ-6k`tP)Y-vv&e!luNNYdrjCeSs4uRP|+=q)kw*Y3m`24!1yW2zq zL-gzv@>CzuKtvoyklA}uM!sm)k}BGTNN9h_ctXEMp`G>ZZR$%Ws>(nrV7AY4 zvpd$5G&|^7O8jGH3Baa#@9UeLoedC2Kv+{5*ATs0kE3b7Kam4YyuLoM8T-5U@2U87 zt|0ng^}83*s`t#^Rc99zO<{P{vtByCXB327y}7HH_m>{l0#P0+ji>zdb#K8_dP2Od zdmIHeYj+uLg`2wDw*Rj-KZ;K;8CcoNUi#`7C)I7H&sGhZw>3i>!6`B@lSY% z{97tJ)pbf{B}Ph)Gi$5Z?tj!%M8onV42_zuZYf4C9w_|*TLu={`!68P1Q;q7DKP6J z@LS-A4{yxa>FKGd^SQwj7i+NL;i!lRDlqP4v-Msaz_7Flf&5c$)-!IDh>5G4nO_8g zI%wQ8l-fNmoobhbui+&|vo0eLKZExx%fxlQobGqvcef0sf`kr^we|H{vxNU!-VYS; z6=*J$Dwba}Y*z(YW17;2;A{09`=s^dMD0yMd3B1NIgj6XOpsm_%c93z2O?+V&_>hC zfcwaGzNL2(-MoChrPM64KvY4nY!>Il|eB)xx zrjE2~#-!Tz<`6}%PSL2@cK|yb@8E?xj0OYA>T6kq=i3n%p#3`Sh$e;2?(kocmip~m zk@u`So0~xLv9^ZH*R@rCCG`>+cqm)%uoxNEKs_~xJoq3Oz~Yjtb)1-mEXm$#Mi=BW1SN(7dj-OYXy^?D}*P1 za-WZ6$5Tj;MUsL9oM_h;j>G%6R+Y#i_#0@BM}`LCrgXO4EHanlJdBm5Q1%9#o2!`* zh8sOuFUPX?!|HTi+i?t&$_RYSaB+0M{VAw|T1v6+jyk`8zR>)zTjygjtwW|)H)uT6 z6=wjv_ZVmpqOZFvr$j1FYz(gJ;t+myi&t5CJ}ZA`;m9HrX3{ zTL|q8>Vbeb$QRu!#E!d5^g@<3F=ByL4vvaUued!*dS74YNpi7R6rv&BqM`m*d+Qls zLr^LUS^SV7bdBih*2*^DMRM(|IVt#J81yy(g}3+%9z%x~bCiB7yY(P^#uYz=NUOl! zFs*Hp-EMC#o~c;XtwdqjBEhPj>vW`Uz*L}G=?K>N`Rz@p0VbU5hImWd!?554nRy*0 zbNF01ZqJWf_)5(8_w~XT3LPP@s+P;mtGSJ<8FP>QLC3j7Cp)zs^Wp)yG!7Pr;g%|j z(~hZd93oX>#sZ-Ez&q~sg7&( zvNS36bpMoLL(Yf7XdavB6DQ40Yb5#-#a0~+Et1Gl^L_GZ@cJBL&HDSJ&q->tInbey zC9$NxOj#bldmbLuKpKgk_V)h+)8yLEc$18thHSvh&$3T|sl-;ozr@8xF_h1ptbRMa0oOLz3`PSBpFP?|K2l{jLU+F*{ zTEkw%qS({b^@GOgPGy|nEyt6ZBTR30ZtABTKnR{#jRPtdDW#Ug>nk(+faO`8DqHu7I86=1i4)?uX@ps7Sawjqt`rS5-A#&XoH;vV=DVE>iSRW`j1`v(0J2HK648E{>&V@9AmpI z&gU=vi6YXxmt;^;C^gOZ9nYzm+tf5-QDnQ^qlj4{s1oL*?X^Nt$W>(w$jSB;Ndizgl@GpT?92q@U`}t-68+R z7!e+*7{35gB(E!jmmhfHQu12h$5;5Fa$~VZ64+<^U*PP7gzgtRy=2k=+Id*J+YtdC z-nyy9QmYRs4)V_knK4rwUpbL5w3zfNfj|y1h=Bzclj3inF6Be1Tw*wAM^L;inh;G*a}s z=*z`~m3rE#!M7W`b&0PO64==kg+ysr?$-nB*VdFHBl-F1ZdX5Pk79@AI;pK{6%^VJ z56{JE)X?U?S1=!o&K!qpHFNbSylm~m&*$1#L3IF5~}gzwN=9-{#8ve zj2#8>0miAN<#a`W?FL}pLM?ujY3Jw8`HFzD7ut(2r=*3TO><*vXZQM6HV`cz@J6G7 zCgzNOM#2P?$hf$;xmjGt3%AdM;)v(Q1u!W7h~JB$CrlK9*m9ql10;Ob8#Ue*Pj~mP z)KPFA&uBJLePOf+3MNGLXXDe z>DZNjzRQkpr{nf>l<6+3She-w#lW8z&~mtw=&t0v;RSCj3F*7v8IK)&kmjw%OMEvl zD4dq%%EW18Z{6FU7^}f7{z?rlxe&2J?ovN{zmc`?gGZwX2*RE?Wo6_qrIR0cnq*!g zq*9t+YuUU2`)}id^$j&`(i`Wb)9dQkD&o};upLYDGB1ZzaCs%<* zysuSE{T_*VB1Si^udf3G;km_5F?_~_J51Ma9o`NC;AleKQCTqINs%`WgVj6z3gDZT zLFf~MFh92xfc7XByxS(Htc|XbOsqu3$rVt}X(O8=y%Af+fTdB%sNv$E`Oy9v%3(ee zm*qq=&p;odEFYF0PsT~h;p%F99~pQ(h~l`0Yx12@Dk>VC6o*{k4THCs^Y$;QqcCw_ zKwWN*;I4eq%0<6?I*B~$;n=MZpO;)*XfrUhVCX!tcbO1CifMfMBiaJr4m7HlmE6us z?`9H#jO-sY#;e72NpEw%GGzvP&o{(f$@<4%B*bT-}LFt$z zvtAMKGt(xBRrvn?XQ`DgFT(6`e|>VG*L)1)d3R|`w_^@j2WSAm9-_CeKaZ(AGOBMQ z+`OE?(>LBbJ{zhiFYoE_BoYra{~!eg0E2D!x~kf(JW=+3%kXe{PCjND55P3n{fTA4 zZ6`9`r!JQZxvHy((?kEQj|+_Wr#ujruS9UdSeCve#=`kXL+JQGW1(@kR>2V6oF;Vm zHE~RED^jn~cQMar&wO8--|=R0FoIF}Po4LEt?)!ORC~k4EaQ7nXS8gLfr!Ix7=Ie}VJwaV z)y$S${8DMbr-Z@o;)H;aK6faltI&bV$jYtJ+(bJj`NE-t`}EktUIk$^lq+vb>~zqY z>T2SpN^`Gn$$G-<8+=GG&~^S#f%!TCOUT<9VCF1zxgFiqThJxEI7~@OD!ij3QyZka zF?Fn6tY=Bpyf#(FK#T_i77-FUXJ=uJ zFqmMBDvv-upXwttCgbxww@l*xYs>zuhAWWPL?RpQrAGgH>x>C;0ZrvZ69I>Ki$1?d zS@`t(ix1D`UZ;@?Wx0_LZ!|@N)jn2v?PpfTm%73q){BxRF6}apYJ7H97RsX!4ZVi@ z$5&#Lex_w1u^)-9dS91ZrA>6FjK~V;gH9bsUb>8iJC8;>48C+6!EloXow`Q3x}tZj zl6fxf-%b-i6Yj>61ZSO~Mb~`D%&;P5yIT{|TM!373}ED4x+SD6T5ZL$s8TNzRB?Kxx^&*ecvmWp_-2wN!ji1+%iCGO>{*R2!^<-dZ83XO zX5LG7>US;~H}RCZz>f0=?5nb5iPebRcuJskaG1}w2 z;!z!NOoE-Sg)mLkos_`Mwf?!Q;KrUi>v5grGC%2)Iufk%KIUxw%C`Vec|S%fPu)^Q zt`Fh)9)Go0F~C_--u+{4+$f@h55yT1T8ka!UqQx85b#AnmH$!wAWB>xuSlLaYHPb6 z9qPXYy}*PB)0K?h(p7?R@bcd`>@s?(i6y+ifgsZja|#Iw0ei{81jfl?g2g7V00JSp z4!JyU%WDxVXu21ey92QrV6W@wSD@lKpKp)de*HgrYb=;0ij#`G#vIDU9Nee4YcCaD zUW*U;xmMw8BT(a0&LQ0XlTu{dbG+hgV$&c^U~hhXrSF8C_KQu|nLy%c-sk)^$LYQALhR({E$hp^eccZoQG02^ z%3D|b2K8>vqAT03-%e(!Qz9@Z2+0ColSK=g6~YA>K2URQR;#xyb=4mxUE2REjs zyOm*jGyr5DNWTCKf%Y*2bOI~V_E5gpG z{dCBj0{^^iesFXyr|fTfbd=b7t$>KJB3eOj+D)E%;RY+exoEZMw2}qsB3WaimqmDQ<7xtm-VKmG#|WooV4&xJK0n zR^dvXTf3#*E{hOoW#d&XoI&xvPxKrj+5DPCeb1ax%GFAzuWP&amHmlG&CJ!Z>(g30 z9QX*W!<5qDM&+2eohpNETJz^3htvA$prn>Eu^GR~eSa9OCi;$Wvtjd0r@-jWZzIiS zjCwEEbg+n3qSylF2gC4!5dqI&*qK5#N|SyfEXdS<1UC5ig`$8a$e*u_2X0_%V-ppc zC?zWmfT0&4;MLo;(1yY{+bzf|DfN{AQrXfl0Cp&BrnKcxlFv9iHz4qy zRaqzR_0XVPlATR;J zZa$Oy`L-&6_5wLx|@tgbw{K5jG*)lh?zdc%PY)q*v!*L-gr!3@Y+)N@?hO zb3*tt!+CGf#0m}u7COIpP^}>TmRMdU_R@E zx!pT~ZsW^PdR!znvIYC@&@U0e=lWbFqpQ>pn&(IS#rC7p`hp|(UmV-b(bE&aBx8lq z(K022a?;rpl@+Yvlc?uqz7=AWdFZl8|2ml(aiaGJBFt~c8C^mEvTZ>hsF#UBL`PFI zIW-kI?HPUHKDiaSIiEQLHv4dFlSP8Sj@K!o?<%K5cy~Ji2y}=BB>d5C{hIoN&r&~N z@9>`X+v=`NBad7O1V52}NDe_v-b6asMoj@WQ=|Mh)c0wjSc%m4{$QGt>-HWh%C$Gv zepM&l(~M4GBy4#-vXbu_ol#>y4hhk5ie}e-&+BzND}7ekYLWcZBlu!WWg)% z>L^CgfokzL!{gU4+iV%$TCAPcwZo42h0{e-Bd^TK)876u-p$!S`>w~9*5La1XJaCS zjY8C+`;ULbcVMN|uv7*E`o-p8 zvFPEei7O$yL`s%X+L4+4XP=mQP4~8qSo7O*0@E=F+j9AvWG5h9fC7#Xv9ZTPKjHw$M7(K3gr!#xe>)M^~Y+a8Q_0{PvkEKsFBK1g^O=NGauVUje7?fuPfJHn? zk1vT}&R}FM+?H}0uixfwQiK~@W~+1ez6JWbCuN*yZ}zwl5y8=Zo{-0&yvf;fVkGVO%JDS@(;L6Mm() zC>apxThn(oHm!4buMfYaa{N4=1Pu;e#F0zA`A9W^6@x%CBeLGib7u#&j{y0*4EI+4tk$IV3T!xdT zvh8zziV6`Vu;6yljzCz`{Yf(A)ZLOBA?uu|TKVN^uSNu_NO^Zqu8p>DKk# z(iaoNOL9^7;f9roqDyaj&vAblSxn{~~ zw_hb9`m;?olMSkC&@Ufm>&AFRd9JO+GWz*m6^5RN<~K;W)9nC= z)*b#s>q{fRc__*#P`teav0FOSZ-D*^V1x6vu$HRJLcMSIZxEpOzON)Kb;eKS#^)BF z=lU7O+@R`KR-L=QhB*K}rz~Q{BsC?ba?yVMLAo~`0WOwFRPvB=idF`*|z=h*rZw0*0b@$*hz6Usn5d<@6&z75tyyQ{Jg1o z|HC=Re=|ygp^$f|BG`sL@dlJAyt%2?Nb*ZcnpP`655)eL80O>*y-$)?645b;E=OZi z-qj?=!3l^_-976E4$)IODf%6yG6TPxn~nD-`P6Z=d!vPjp?kBnhJovUzdURaW_%3f z#tG{7geqB-AZqsX1{!w|6h0~V157kud36SW8$EnKX!H5gzJvsK_vmwYeYF2usmYMj z_U3$qR+jrt(fb%b?^DqwuE&y-<|oVF_eYhpzCtxmTeyh6 z0!@1%aC1*SAEACW8ONhhCZc-0bt~ikhOCtLWByjqxl!AXAFTwhY(K;87YEI;pZpQn z8yFYCh?qOj`((ng1mS__Q1q353?RST)Y zaqb-@L=y#Yl7wSRcyyA;&^4;()BX{Ldt(8jV2sv11RXIEJOubYGSJe{;NajGZ0(5| z$Q{@rx@0!K3Rc9C-yu~mBU!|5J`zR+GizJ!RqeX0OUo9QKAWZd+9B{m$@ov{DCOR=`aMa;85C$f;ybaXHMgNM?0 z?!E`ybvuR>Vh|#naJ^H=%V<&->mH29*H@gza z&4#1E>5N$N4ty}zb#=Amc2m{;2`Z8`f5REkjm{f==X=)Mk8$>;PH*03t0VabLj%#| zSp-by7c!9&k0XkozSoa?_N0EZ9evXa?Y^QdcQFs`Zdf8#+AbA=AN$|I0~VurKQdni zURjBuB~h@5O1*OVm4LSm_@R``X~}EgYW(ZP+MZ(?))QEgm99~s5VyAe-o)hO@S);+v?xzrz=y{l9|;+Y0A9W%>jX$AFiw^i>;M?P2X+Z!+6mb462j!^GmpnfNfcTi)&2 ze4~2G$HnWrnDmDG0@VmVE}Kj7{7pZ5jHvxnol)wgsPu84-TBv?DbAVgc^Q4P6nk54 z3%t!sD~+_j*{z#xW>fYy8=Bs|abAe5nv>;S;>;~yxaZJgyfPH2+q+FOX<~;qdmpy6 zP6Su!2~62trGF?ssLB?x>a;DM(tQ>3AgfFP1R@W-23CIbvbY21ADwdj_)rxR`Rhc+ zMRBF<(N(8AvHhtDL`qXw{*^V3+x4@p(IiQErlO4ZP+_m+E=TU>q3KjMAQXOJN;a=azlHI(P-MB zCeP<-8=_`UAE?=fF2mNxyM;T!!=-7jyG@E$gpZc|#XYyg2du?Sbvm5ie7`5I$tGtC zw;oKcG=7g6uCIrB{_&kPn(J$7`e1vIOv&H2(pxBuG^)2;ao#9}%JiF=iAhdg9u)&4 z7-l!1l&;2{dUC8&Rklw@=Nxxi|04Sz9X1jCc#8IT8q77WR)Ed5*yi$zoBM(dh_}N9 zq;Ti!Gt4pbi$4OabjEk3mK~6vY@bYASH$CobZk;OXjr_n0KzQ10V6~K3>X;% zee12Vx(m$b7krou7g|A{uT}=hV&=jg7|PLb{>8#qZU=`Lnfm6#af4mYci*MPr)iT- zrG@sZ{bX{%EjuDnBTxeKj|{NxZ}Zvo%U4$;e?D6FDgLPXTpVdw=dqRd)0LC0*-lv0 zZ>do_;?gC%y?!fN5~(uAwpLj1W_u&)Zd7s3!*rV`#Hif$Qv3ak-A?+5!u0ukozrBp za1ZYRaqWWZy7C>hYw_l6W_o>}-Fd(8T#DTSpQqWJ$DG%GSDR_&0%|5ca~{gj2|xpk z1#AO2YHI;XEEWz^U(7EJ6|fp(XW1t}Okj>;S{ARpOa9zVlupNj!}av(Lp46H15QoX ze9@7S_dk>AU7VrL=xh|`#4-%6?+xEs9|{k3Nq$tYqr3{uYW>bEkguIpRS*r>2(@b% z8qp`bVPP`VXY^~kk_mO~4D@wwX-6A=ak=jAByF1ItC$xyYBMV*{-9Siv$XcL)v6r~o^$-z z`=vg1ocN5_BseYub6?w{({yZeEa7(~ackYyb>jhpJz3qb=iREtgoEZd7J^JvL23o2 zECgoNnib&Cs5nVXL^{h+1q>^yTEF>fF$SLS;TY70hoDB73 znLxj`jh`;@Q27cZZkuDo`Y@8cIQrJKe*heUdFMWvYA+jQGX~I*7+AOYM)JVzX@*ys z3-1?$mCtytNQIv67S}|MIM*}$*GQBM{(S5{-z+cUO656i7hm%w>1x`_xv{-fym9ZX z2&Ua~CgLmKI=)HxK1#`JC;q)p@2;YmwB@e%^Bp)o*xK7XJ;_5XW-H30&_))&u z?J3O{CFQTRS_-mli?-q`nUF<8;_lZ0(c+1b6!LH4t#3&loSvQ8FMY`}RH0Ig`LtUq zr_#!>r;C`Nk|VG}6+y+R-bfWIQo5!3H&X*PSJCV3UFx-B@4MoAQ@VPKnA0_lpNyD?~A-#{`LWOAj=QxABajcmz zJjYm7`yf-WxFs1iVmJCEF3e)^N!<{Zc#&4$4NO6|^ZHqCo1q4KLPfh8Z>u>SG{Fjk z3H#cO9OCj|U7OSz&*=hsJwzqFKgPd@`_GVk1f0H3<9_EN89S*~_wwWEJhFfj^c{DT z>Pf>Tt=_-bS;p|QomuP2%@QRRSl+W!Prt~zR;uPOyh#7kF?v1f6?x;ZoyUVaeYq?8 z_Fb@Y3IEAO8@cgm%Sy;$Xo0C#GZCO@v!I}0 z^8#Rn&X^xCp$t;OCzpFUc)QNQNh`@Kw&70!>)63?KbP8X zudf4Uf9{j#IgPi4Mofd7=s#4z0mkw(DTJLoju)mrVpC=^+Id1>hz`o1qKLk)R=C>j zymxXR?mkmUX18uPUIBYuMlCk^tWNeVgp61>`|dSx7PHx6j_A}Dt$njXPmX^0c=Lxn zIoe*xRqpeSu&55_JzB(yp%TgOoV`!g{g<{a?(X^2aH6(z8`Zd;-drvcXA}utM||6q z`gcBj&chbCjQ1wTsqA;7_S0^^uR7a+{PiQhVdCHKCpO{&3aE!&pS&D_h#>MeTDPa8zRKpgz*{hDB6#mu+ zM;U#zjyMhVyP2YIFwK!>T3BwIf6dXnt~zyuc5^Vu*6Q<(*7cHNE8PwNN0WR`l@8kT z>;6k-9bg0@qm*f?@aGG}36o3{6(XTJu<@$oM&pqxs=Z7JDoJG%eHt%Rc&4Kdr*Z!3 zS}&j@%k_xE#s*lT{{H^rOyYd-!9l?iFO7nkVuc5&y)jQiUicm7h@y(AmE^!5z@`xf zhG^lj;ZiVs#b#DTL&w*cK>}r_-rDO}JYS(6eqXOVp~?Wz<%h}*qBUFDG0=@l-*$0P~gLP2RIVM>Mr1jMTA zA9KVOFv{XmQ{{eqmNQP&#!1}X3#^rZmyQoqVMU2YmywFS3-db`Q-X1vOt{UXF&-C+ zq}jk_A!5lgAy!YM-D>9bz)UlFQt5-s%s9Mlf z{*!Yn{*j5dOgu6_=XBb86)G)=rsk}Jy&wGg231)>eni`R)eLSUJ&WSA~uN{~&A zw@W0;gMNvUjiHdpQGE{Z=aUEHZF8_;u6_zFTV*20M1nvPezQE4j3pC{Ayvt}B?7$L zRCXy>mzUoIFR8Gkf2brpUs)dQnHYR`cappu@;}__9UDR& zXmCdH$Ag_IZ{t*LlWwAX;x89!`Q8-+Pc1L{e+6q2=D$}f%^|vyJWg{610yYg1k+<_ zhP2VA29^?t$`FNT4}K8R(94+|T{5~K2{K6N^lSM9`e@jB^#*tiB}{N}01FcZJ51t{ z2wz&2b-_~JlNqqdY^4#`5cr10jJO`2hvY%K@C{(dK-6CINnk`#fEbv6stiyw=M_aD ztK$2Xxa4Tojx(V(QZvGOlx)Kl@WPTwHhwZzZ2-x!Ul9Eb4M|-J04l|WwOHJjoso1& z5Q15ZhMvoPGBA36+$yk`-|uu;0ANP|^Is3F_Wr!5fKHbz*iv5dKj%QzO@9PU4PcLH`XxMvU zVDLMw0|u-Gmwv?+#6?Tsq39|X%xN}8s>oV-uD-CHn8$>9ENztiNzMFQQ0(ly%rXu! zlvygnrU)uFOvRX6#w7)#QSw@k1&jFmU+DQj3>10et!)qc-Yq{$|b(;%0{0uQT17{rV7w#cpw#Qv6f7>r8y zsTGB>K;F!<#T#3Lp6QoG&ddP5v^1g`iWR+THL@IWlzC{uHMNVXM?OTH45BvrAwN)F zUhXoGM!u0&w1O$!LCqpP`F27TkL}a-3iLV`0WX1oEav z6oA(Q-s|?McQM(NE%DMBhs&03Z0$u#Zq_SoH_wzmoZc^ji`Df2@uCA8%C)$R%IIC{ z@l4XaX=4HO#g z{X$KoSB|%4JgOr2PNy$eIFG^J8sCFhmiWsNcBsnYxA0GgrW&>PUt~SjtoZ~YB=Q?D zUQ|v(#?;%p@$rX3KOMf)xT><|EwUb!3@_*))CkU_*CruHk6nYe#JOr2I?zL@ZH?9p zf)6hn9#ENkhvYwOqN|a_I}`4)ZWWpmoAKQkXDsAz^WpJX$mj8g2Q=XC6#Q{waB?*R z44G2^mf1iBNUI;+P+C~F{DLKa)gwvrKNOJ*>@GPC%V)woKv#O9mgbkUBYmkH- z$4tt$lv16%$8Bk>h8#&-SlW~~EVt&|C!}N~Do1OI8FUT!fq^P{Sw}pI5=qoDl(KB> z`mvsPH4;Y%@qMf@vjHUBtWUf1msLpcU+Gc@u@LPKKs2y<5T-EdmqTLkyjgZz{~|b1 zxitLTehB~^nq=<{A2&-r*rcidbYQ)=1#kFmgJOSEm??gdmBkw?D5Zskfh|ozMTQ!o zV~NIz#TVfy;VD21Mu-X+63=K=fG`j%J{B%4jUkotZK^(SZ(^LrQ0$g!ymD|n6JEqo zLLz%0ai3~-rGwUieonEwl_$Rk1|KTsBp|m-jWTBT-TstsnUgOBgT2;hDuXvBs93EA z#w*EB*Kf=FG_STP1s+nU#lsB`n`D0`x)E)*;o%0Nc;NB2hrHQh`SiL+SvAw-Q&ma%7pFAcQt__2Oz z3(&AT;n$C8#ch*26a;ukg_JPm+P)Y>BwYa>N|Iqhoyl^L)Aiz-zmwPa$Tm}QG5z}u zb&y1J0p1EDGjUD<-~eqN3nv{9ug0)bD2+5D&-o*ek8((b68qPyaVEAfmdD&>gpCjK z*g?G3j8wN&$xh+8aCO0UD%{vV>f^2aw{zG+!pk%#GvWti{E@jjxy&tD{ZoHaV4Ij< z$gIz@cFNxN;jBgt7&3G+y`5wfdHouOj$t)6GcoX)1po4kW!~d>_*O!u_y*?9AcaBz zhTxWv=V`sQ7j8!pSj6{~mAc*ZBCZ*55LN0(1d|-81mTYN^SdBD?0qSF*0lo&z*m{x z`Uth=_pIOA3k2d9v9__;sTag4Ye6wJiecwm+qgHFFyuIAa_l%VbkwB@PQ5uXzvv1~ zaTb2*geE&P?lR1+za)AEN4G;ZDWpbgMKPx5N+pHvLGtR13o|}2RrV5li*=e!HOZbf z-bUp-sf}roFsn=mwJD zgE+!is>XT8{p;(1dof@St2#c8RSbv#0}}u83sY0pcFqi=TQ>pj`SD<7@r2!?SJ~_$ zS@l|i2fdrJM`z!2lW{0w1?kq(PWGPpPlZ9Vfp?`tEluZ=I^`$}%kQXGo5{ENjHX)A zCeQI%kUDvhu2CgA-j;^GZBWb<$maRh3l~!M*{0i@kEY6<+5>jreMQMY_9`QD9vMA+ zEWt^^ST5YlH%v@SKtHeig6RxjJ(Rz9XK=+?Bo&4uy|)#V_7W3K68ARZcg>pyW3G8j zr*B7Z2$j(u`ZAF%gERvS(bnI<2%BvII&y7Fvp|BOGCpg63evcECVf?zTWro8PQ|yv z!sNkWR#u45FKBAYS71&V*i~ukb_r9G&>WMTIxh0yhT`2F7T}NkIXIu2U$&MY_c=Xy zzQX@iRp2)p7f#A8?#N5aGLa1{cv6Mos^P^>tMWqnnBwpsK!b9EarqtE`;rDjq+A%X z&MK83TS7NpIL4k)VQtZdr6@^YG}<|5^YP9WGDz8#?j9W-ZEVmdt4nKf5D0{5FVd%n zilu;j9#j-x3+6NW(qO#`ao~v*GnugCQbWr5Wd!qZSxXkxaP#AjzCq{#In3h>YC zI*b~p1`#uh=VV;V4x~ws5wLJnwrA)$sHj-V$$jeTf>yJ~JN$?|cmDgs1+e2jdX4{P zdJBRd+i`>R%&h=c8J)`v>qh6B&Cjt}lVgmz0qh-;jk>$OpUYAH^V=)I^6a<*jOWUp zB=|b&dPm6J6H*wcz<;uwol)Ki7p}ne+XUA5OXG^7=z&-}m{cMzl-t7S@$O$R>>)R* zy`K3zQqJO7gh+j`T<{MZC;~a`2GXqD^2^D5P*nPf3dMPjvNTfIm$K^Nzs0w+xWslP zHS#aQ2ug#l8H*BXORP7;mOkAlEia%sP<-n#tB9^sy8l?vyE;E9g_9m-pe5?z_&7M2 zIy?8{$LQ#2-^|U>#t*OH^w|FqJmye(fgn}q-Oz(F7E<%F(rb#G|v>z>LatiWAmZNld53G=v<0t1(Qyzhqh=cH? zdjD|m?d|iI)oZ=J*;%XyE*>iq>`Xy`o)384-V;t;CYR=eza%`5e}$K8rL-*rUry@^ zF#g*yQPb0~^MfCWH7QhTAc5pCHk|FMj>!B z?W;4^fke6glauR)(sIIwg6xqkW3)3P!?0-z@Iz@JvVWo(AlId^%v#12twK!B%CE1e z!)D&Al*ERuPzA=y%g7XQF}X~_2JOQIZVsaK{QwQ(>68tyq&u9d$e(|GHN>e_GVwJ` z4xNCQzgR+D)05h9bDYtU#8~s7GnD4+SU9s`{}opC>lk;{4tV7k4=U0K4`YFb$i4}y ziQ5N1gk9j(`gSyqgL9+#`T2nzAYfTfw7s{t2OzIUTOn&xue4qpwmBc{YQXd5wY0S% zA|n3NlCN$V`ntS)O<|eKv!LU|RGPD2Ykh}ay1;lOzF*AcoQt(7!W$5%0*Gem-QjI*@c9{jkKy>mz zj!HNyo6tDKlY~66c1T)5r*J|YR2p%OB$+QQkx8daS}^{bJN?nhg4zIKE1BMZ0H)=g zuK`8;@m6eX?AK49a&oBP0ne~dRoMH7IRE9`>+VZ$Zt2~IXp_JZaq?N6!N~GTn%k5oBW@xl(SRmCmX=h^Vv%0FQpu!;(ay< zz#XRX&tLHs^Yu-Np~hT$PcI{-s84dLe%)rt=sjFjU-MzPvU&gBwdrjJz~Et->1)Pp zmthyZUJX%Q(t4iKIGo3a+sMkw1cF*zoXT}0J$7Y+%yT}W8XQgzCTLZ^%VoKR3c4Mhm#WKUi}>8G2BA&f zlyyX00EIq9<+Xv77+7Jogzy1h^-cIQL*VwugY4)*mDvO!siSC#4~n$*nkMpj{^QZto$%@jbf_cxv(VXqE7cKDMIt*%bUUz_2y z$gwWV6!BTP_b4H>i6X-k)u2L4mm7}+;hl$o^R_nuBQ;|A-*`k3j;yWpSwztT6KP_! zE70S?52tA$Q>;BtkaWynQC-aa{g3J`AJp4Q2thm(z#49(bA{gwqc6TV`eon_z?;e(Qx5??h8_4w+xEUt+gUp5Vh-mSdlA-r| zNN`|aP;mGbrljN!8fO43Tz-CDPUs2_-7jh?su!{VFbl@Svf!U}Utnw`T`~DcRW-Uw!eXee;Hul~st96z1ut>i)d%xlohG!CNf~K033CB)O zO8P021gn`iWygoc7kk_PHa6}M?{MZ9Z3E>D-6gd6$gFj>W-($!n9Zq}0CW@6;v`^lx z?o4crW=V=$Bt{UvewX~i>{ysu6ekt)Z7d~T8|T@#Ahd0dllvP5LiTZOG7d&m1B7Mz z?Tu}GM-pJM0NAv(dz_hz`#uIaZ3W7U=fBxP<5nZccTj6Cvz84KATmkFHm*pPQY=(^ zwODNwDnjPZQS_DWHz&hHSqDdQ{dCtQ`-%g*vV@rLv5MSQU|A8WXnHqqT^Lb}k*QIIn~;`r z#ViYkO+sTSm}4P@wD{{*tQWF~+^SRAFADrq#Y&(J401X33Ak?;7Z>U2>D`XzTRql- zffn-}9%H^9%~!Bv*%bc8>z7ly;ULP)_*xY;)clo0b)87KsH`aI(Y;FUi-J%;f>G}vXo+?GQ9Z4!jT{@&K#ENS@sBTYs69vi%0ua0TAh~Z*7Ts zo-nSTBg(*YZ)-C4=edARB98GgvG8|<8jU`&Ezp6|!2sO@vXgeI9d5KX9DYb8l)^RWF|!WE@(*iR+{Q@x)67^e#L z`Pc*UyU=?NFzprI(_--qggM|dCo3~4D+9OvF9ltcg8T?Tf!J|{kD!59E5qbA@0d*f zOWp(Tr8vH#BuhVr9J9sn%lk!?g~P7 zE5TKQD_U-Q=0w3Bj9+D_gkpu&M96ZPj>)LSV+9Vf!MTcRXO`kPK7k}wr?hWnrdqwz zvZL_Stw6f|Qc31j4s5o*?o^!wH*^=>3ZXqfFQW`q27x>-_jR0|f%c?0);}@4zAX1W zYiA%Rw?iAQKXQX|5BQA6bPnPD<~_w}b2kYuk=tmNhiSS)O&-<{vEmqp!Fx|fSQf9hYa=Ndnq#Q#p z{sweSR}l}KlU4^k)cf+@u%&mqsL1;6|(MNM)3HoL<|N&o)}*m@-vqH?L-$Z-_VypjNX9tIeS2F6Dx z0s#aem>$5sHAv#Uq_cgI(JUwf_5a( z?v?aYPEO8nWaOVe+L7PF#-d6A9=C9QN;tylif-9ntY`g8*6L&sN-gDxgXTzK~cCv$%f)C~mei%&8D zIbN|{Otf-WK1r(EcOX;%SXcC#;<42@dOZ|20RcV42)vcbNXK=+%BV~5J?$G@BC1ky zSiBb8`&c?G21(;E43(^MwVrbe@*PzWyt10S>aW1n)&2d=-SCd~_IAKiJG?n1rMZ}~ z(l0MOKP82*jNDh{yks=s@CZ%=d~8$Uc}DAE!zV9n&Go>&67CFvKA$sxyx91rTmB z??S7msS8TUh4~$@>m3LU1q_LZPS_cM zxs_I!oSqxFV)*&Fxw%DNV+;Z=$sP0anfo?eg~f$t=5piDGlzUQ0w2J*+}zsQ`fEy# z514Pj5EByMz0U?P&-H?W$p)@r0#Z`Id65{82>I;%_|wO>HA?x=-iaRCuS=BG7-2!` zW9emKU`-skRt9F*U#-66_5@!^$HZI8YXowgesStD(`QX&Rpyn^zgn;PnEf_S!%2<> zLN8e~f;{ljMOBLG?dirOlZSlXXYC-oMLBY;9Q?)TB}D*olahje22Z+3<&T6GoZo6J zId4U3iP*Q9Xaab7hvQYQ-@B32pD9brY5?IcK^&zu!e+r^i5xhmuCFoxe|h;MRu^zV zz1ubfp_pPuYiUCQiCDCOi)*?2vuq5-0^kHa))NxboiEEL>3wmEV0`lMi^!LO`&Ly(dV@W*tNy?4*L@*&CVX6}Z0#S^_y4fya3iWv}_6g_>786zWmX`sx$vxx0Pvk2w zk6{XII6uqbdQZM4v6@0iO?aMBb}t5Cn=P>MGz2tiy?46_3giZRwLk$Qa(cn@5p%v1 z&7{L|t^f1gRnV}oXW)w*1cR&NZaDZ7iQ`{q%IG!T#=N)F*KwQi&g3DDCAEa5U!fyscKeI$36 zG4h*12m_#fkt;FqZ+Jcnxqw@zJ*Vx$?;=~zucZ(Dp09wQkop;%MM-;e$qGxu`N=oj zmvJ{#q>k4B3f%5)R3+r)?YFXz>X?8HTt%-+DP|Im z10y33O#$Rq5X1GHu;>GMP>-%JYQLRd&kUK*I(NK5KF;7^srBrVuqrM7GewYdG63bq zW{jHh2ux%GRVny>5z)6}C+Asg+z4XULL^BZi)pE#wR6S!=?3*#r4e<}U*(XakBQWZ z_{tE@3AD1YA!gv@KR;1NV`F1d5}76AoBPanBHoV{Fezxr4=b?xr%;BX-=N5-G-y3> zDMvrCxkwVKIC2t745SLZ^WBs7=zlo-A<@;rHE1_5C}=||3;@&+%tg-`8yOkxdlh77 zM^(B3Ji7}X`0OUTJvJ9t=Rg!FEDmP(aId;a+PlP&uIS<#r0+3O-(g~cv%e1@ZUC_! zKz?){=e-ueO4xtr$yY%Ju=mGj3bOL0F)z$j3zTB%oSl4X|P42fr< z5P?X?h7)QkFd%k+leVAE0kRjIvz#~?x`@N+oV;Y+bxsOf9x5X%xNmF8Q%l?D98GH;hLuPiesyja*2Max*I^&U0f zm3=SQOngI`4*-*v0hkVirj8ESKUQ*JRO^a`^TM!1ofZpVDkS5&f@~t z_i9;ttUXD9dl@CLBf1ySM_sW#Z2xuinEKTGjYVl2p}k=Ouvjj$Ju*gVi5cUl6xqYdS}7B6@87TCa7YRDu%sjU|{#_%P9Ys6tkV)`OPjW}c6F+Tr0c zPibizdqxf>#|ryZRh=o>I394PaqTjC1)p8jTWE^m*i8ytckW1%nyr=a-YWVH$&URg&oUj+$r93ay?7PAw%F9b2QKb_y{p~xb#e|B808sj$EUK*H;=H`P z%*=OY<}&0T(1`nNO$;%}a~b`>d(FLXRc5Fiz)#PjtSl=6g{R z{s~7dJlVxlvxLP(o!POiAvM+c?2_HIO(Q^D@LEC#JJ$uAPYlmM@Uw+cqz`|>nXlro zA2^N|KKWsAlDL`rxx}i@pEFDxFYkN)x$psKM)YRwcF1P%Q%eg__`!l@*Dw$_Gh#!Eoh zf&s@@Nl7J;?D=r(f}!rOG!Zvr8-R1$#xB*KZfyh$5WPt?l5;f_l%Gjw8c1}|DDlOx z`sNH98(YAiA+g+Oxe3x%;!rYj!W$~G_8vRDdR#osjBU1sva;?k*QSBryT`T1_Erf@ zS5Ty>O-g#oHcK13A*Q4xLo9!O32~G<9~-jADZRQU!~W{i=IC>^Y8?4xloVwfY31B~ zW@e@kEErB5p(*Pj#?!-R|=N<+a$MW9x5gzhmdJt zSBQA7^zNH=&_)1)EI}8{60pM$p~PQa*5kqsjxkbQy`9k>Og|WIqfnVRFjS->yXQhh zt{veZC!Sxznz9(K$~fkIg7^j(`!@MJ_%2++@1E9 zKs{VI9GuTH@g~xX6bPye(bD0?OFlmGKapYut9xx-5idyV-+b!-@IUG{GGUdPw+{Z~ zkYx07)LA)kdR_c1+%+%Qc3VY3MHhqYt2+Pe@Zi0m@r$@SRqcjff>r9j)M#=Q$ZJ1` zvYz3S$hdZ_-6a1kT7=n3&j8gy=6a(nJCp8X~HqqCj5lIC$t&MZ;^Kt#TQp?|zc<3HRaq!H#u^oF{}< zK?p^Y@<61c6`CRHnGpA)W~bF2RGO(=7ps zM`SFKdUrnQySg4ftk%bOXS|0s7Le$^H}@Psrn%GaUtLa5PbVcMefV%!nT&!cKxk~- zv9*1Hf6!>gz`AO2^!A3C%#X;M(4gObAl^^iI5X4si@X85?!|`17Dq6yroow(&M#R% zvX*jiu;2+__`#Z*z(vq}@HeyQ2V!)vMw<1I!P8TB6BOUOf1FkggnR8~CDmYJi}dHV za3UxV42=)FF3M_Gy&jTGR9z+jWAgpkA9FR+S$ci9f6L$F?wi{`WZ=ZjO|;LPCgnw>rH!I_O<&Mgfbsm?4Ww6M9=O3-kuE*#vGORC<--F@$rDS#g8CGYNCK69hOk8DY*dc1`8rqk05y#n+s?cV8-?egFYYK{ABm5&8t>>h2q=lD+(567Y-NJ~O z&q?idO(Z2rB5l}HW0VJUWXfDK;`~#GA1&>(0Tvy>=FLwU(XjnjbeWk+5sV~dDJM3*0TkkJnE7XQ)ilmb` zR*{m33HKqq#L3>l|7pgyM8mZL8Retmx70cAVOh#P(V#S8@6GKT`Div*9aq9exp?9FRH(FQ1G z$!XK-B1`ouh-q(Sa1446&s>gq4JUO>Ny3%G%4?8|clx6}HrBiql@t{o(M6ofx8IEh zNc7UrsY{dwbT(A3)kGZ<6#mq#o3q*0i~vMxSd=I@kS)H~e_br?bO6)uxLbbtk{7S# zqPJOyHO+-J7Pno~N-pvXO#uLP(woD2Z?xPpqwqwz#{l2TG|rC*eHB3o1M zVBcDL`KYmCcx1TMrU~F{($mue6x{WMad7saP6iOB0!m=@J%TmfPi$&OY>)4nTY6)F z(RF@quB)3o1YH&+9A7}mu|z$I3W;pjynDzf$+3Y?)7+&rhteRtLC$cfVHDc?4&Ke3 z+S}JfsKOWWkM4Dr@qeZH9d~nkK|rSPSrAe_DGJ_hLGnd-p|2+v#Ak(F_Fv#T~6ap`in6Erj z{v-?q&avE0N_EE<Vu8@^C2!k41~QKum$0lu}6? z_Ch_gKuuYayNZMnS02*^lu0HE!!GRwsBnq^J6Z^Lxj0M(Awrw&r7^o3>UcR>LHYDF zr|T^Wq=sfG`tQHa6(AgaPS;?D;wPddxLNQqM_Hq&FmIy%AMfAz_4$W7F$eQlhVkG( zts*I)~Zn^BHw_AyJ6!GDAu&~a~ zPY1Qt0PNyywG*~?jw%~+YWZHjUXx$02IZTwp{V=HXp^&d!qMy@4|4BE8~J&FFM zWsN9cnc;|^(B!l#uoU?CjEz$f6;n=rhtc5GAIqV z`hJSU9PX_J3Dj0`;6S2ASI%>m8c{-vutQEH!i=lf9Vq&Jd7unEynv1`(aywDWmoHDA z{gC)|;YoM4XQ|!fnElKbEFIg~={1uDbO8lY!!cd+2M4!Yf}EVVm{C4@Itsh7X!>K# z-;T)n*FTR>%a(#Tr5Uo_(BgAe6`e@Ta z+S0P#-hNC*re@5Zl_U4P8zp3pHZBS6@hB;Q+f9A9-!+s~T!OS62HhfnX1hQP zF}|V1Jmc9`&8(ZJT-Ex6gw()()YO9q7bESq1_`(QggTKLohYT|0u+=xLQoBZ)P{_Z zHJqIl+Gpri1R>r3cf+A}45ZW0-E0s1Tp);--XWa8E3R=XDG;jWKMOCLx2g z9&yzjIMtJ*yNaJzBmWWaQ@c_j2P8 z>Z;R52odp`OMFW&QXN4#qJDMR)v_D~r{3Ba&T89@J3Ivb>cwP*4X?(4hVp2)^GoZ2 zlg0fL=p}O8T1KN}FiAeF#_;>8ZubbgA0~csRd#)60+seaU5ErOZ|G%qcP5g^RRXbp6l%mix)f zyQ!CMyd~!vdYWJJ(_{1iy{HFmq0A^hUn5j zF!$d}eEhRpCEOS16VQxHqp=$tx(DgdKLg^|+BppaJQ4>FaWJSp05m6yn#B&A*_) zAiKs|u;s^CatHryyOVB23^ac8@NLqTxck?R1_{=PfhH|vS#50$(>*S+{KQb@iBtdk z_kV!U%(G{C0XN4orGqaPQQfG=e~uAI%tYx>p*BsbbTzNUl=HIkc4%Y_^vDtgy|=7H z=To9m*ltN`^e2K>oggtj_%R^^qWhhuuK4ERb-@mt%^ZmMV)-Ih|MzdNX&8o``*>%g zUeg8A)9kg}b#kui`-fDdYWD%8H+y9hwL;SMs=%fCyc)CADEa#JXCku;eg(H|S}qoC zHaN*q9Moxz?Qb!QM@SC^kHck+W7?Or>wf4XHDY!p&uSC9QQ9R2L&klJ6A7n#rw~i*=mU*?VIA zvqC}LBw{w|Gg!|mo?8>8J&D|#1i`RspUZRL(x!9bE*w)-u)__hsIM}%r)ZL)VY(Er zZ27dy*C@!zhZ3gOND|wY!RQ1B2ZxR7^q`h2I#25gvudfWM`$sOUmaNmet_*J(P&L8 zRx{n})#m#C#|&-nMhqqi>DZHg*W!TepKfz~-Q>ozxIk?@Sifwki9ifG0W@d<3Wuyj_n8tRj{0kiHkH)gK0xrJV zyScB&kIrwENVs3N?!`|bXueYQ3Bl8=1#9N}xVV&VHa0t?JLe=L(t87et94@;=IdK_ zAxnVONiUobAB@Sd?;Sa|nK{ zqr>~>awh(Y!}C=g#!fzFt-vKyvgSbARH`U zdfdJ?I$T%Vs@D6Je95TD>t7t*VDDu(Sn8aJ`0{t_F%UfD>)lRN zN#f31=Vd*71kM2>#W-Ww>|R*yBP z$g^ol$OKCmjV~#^)b+7)$7^*g?OLzJ~CvsaGSyEgy# z*4C=x<|nULZsmr!34y>VkVNh`<)F+)zdSs~Qn;A9fPHtdx^sYX`-~QcKp@5;wD6l@ ziq-1tymmF&nq5E+K$J2uP=8rR`;DuTStTQ6={U{XmnV}U;EM|XJ%a=6t+4rbO*R9z z7lSa&M~S~{*)J9m*w>GmgGU2hHk$iLeY|^Njz{M$p64Z+Ku(ZGBA~WOy4PB-txJcI zw8~?{xjYf@fsQH|l8aiG)mciB0q^y*cZ#tdv){H+K=xYR*AF^APrtn~QeW@~jMVW~ z%|@Px1c*2b%-p#COcs2ma#A`3M*J4EYxk#bF4xA)t>)V z;eX!I3%p|oAD_o+t^}SiOuV+_WV=7?ByUIi-?x>?ffm==!8w)6jEIjr7p@&bb~T_q zKjJ`9oZdeT=*v% z2$IP1^~K8Smml61|AvpdVeqoO-|7Dh-zx_A%@JWAS9-gegWbR0*3JPRcR-sE{Aj4Z zmC9_I9_aUp03dT**BZMG{{P8e6zAI$pMwMR^JC*|KANoG62W?s+sh303Wm^N;0cqmh9v_>V)8SadnM_CMMW>Em9g?ERYs< z-#qZe7t=mMVo(_u=3{6C0t?Jh-8s%9<;z{}tD|7w18q|5bF>GH^UL3Z-&*m*`}MvW z+3AR@sD?i_@r#+{qIq&pS{cRce=Ia1Getk=_m~|H64}K~I(k?>t61IlX;n?Z-#6Q= z@jdh#Trt30^-)F!qbm|FJ{XE=cO=%?W(15ri`IT4gdEdeiN0W--RE25^cmZquzu1b zs(N*M9jmDSvq?_^C*n7~-W}xdU+EQZJurq~T?@TccGb$;knkdMb&jBeCYoJ27P>OBWPeS1#XQMMGu3d{oUr1A%gQFLmjv zS$6rWyfWes>tzt)7`vJNP749U&=DRxN_Ha)RQ5iaq(6!XCob;$_Vc>e^<#Bf<)X6~ zoS z{T@l3DOcNDY=z^?3BmfD?@wpET6+emun>LYF^}%0;XQqaOKtBk%5ad=EiPj%&st;o zwH8x@qzl7&Dm`|%Hzt)~*89b3EKBG>Au7h*!CIgA$T|s^^Ihtl)%GMK>w{K3qFRk# z!Q-(X2gWy3g3hqIruM2=P4am4#I&5vwx2p@TPEFEot-eW)gGxIjfIQ0D~)Lm6CpOG zm=V|G7a%HhPsmwlo27+iLM8y6TlS2Q1$4^dZIcx`A(6ir-B()t-5?+9iF{MOUXlL4 zp{w(~U-+uc0$Epq_rAh*^}f4Tv7X5E;Z6eyiYNGRp7CFvBK`TLO z!DJcc{my*rW|luJ9pRl%(p!-Xa%ido*4TJ=$3)qerDu~h8=)}MVzQ#L)kF0dFU*6d zv<;6EI&7ZB&u~#tE!vE<^AMYc<2o4XX_vPh*O@f%mEPa&d##zxyAj&b_T}?y0{pkX zJj2kR`+Tty>vJ6yo^O{rr>p269oM~nynH;#uC@u5l+Ffq-Mv<2mP(eWf;mWDKub6( ziAXgPDRdKA7ggMK#BJkWT-QjL3JSyUArzPRp`K%GJLnE z4U^O>vtB#N?XB)3y7{GO(F^O6QjFWjfRCh2T1?CYHKOwMHU5nvBX_-6GR1EL^O ziYkPukBq5G;*gG}Zyx%WrG9ZNaZ(D2hP`un$qPzq`4WHXpD z%SPxHp;bpP|BG6A3x~MnF4>n9b7hm+MZZjykjfv%pSM^mb&x;J&{KL~pWbxO3c4Ts zp|9|h$uM*HQ+ou0CLXC|dlfeudqPW1t`~{3arBjAS9eShm}`Eyk)lE(KX~#3Fv>EI zu^Cr0Qmq|tTQjT{>XnSlr#scuE$#25*j4NC9I%dNnc2=**!DB+8U>~v>UA#`FXQ~A zIJh%S{CX7g_C>1Y!R(Ab6ja9GSbn8QgT)D_QfWr0jWS;|X2}aPhjddjBLP=(2#)N_ z%;otgO;0S$QtYiH=FxAs3S3p{n50jz1;p^2pi0PgpI1hTB6niK@vP=?dVPkYLdE?C z^hn>YIs`%tQU1)gJC)d_s@oxev%{R%SXfw5Nt+n-h3UF4F@1+r>peIs5fv5s?n7-p*s4Nx*weYEuGSkVzOZ74R(x!wCL-n8C-Q|c zI}~)Pq1tUOMBs#t#fPQvl;EV@DO`Q*RaomnjL=4YN-e$TQcRzGTl$!elKk`FULMrw zO@y-DMz@mt*E>tn)@H4q$9Gc95O&G);`RA*9xopk5{pG)E4-1$s<6Sg8%U|tOSjwn z3jw2Y_Q<)4l9Tz(Rg3NcHGoP47L`s`C#pP;Ec=kiM2>3WFrTU9897JK8CqyuD06+j zE+cdlfc%6?Aau-NN0)Ykl< za-N^W!x!7Olvi?b-ukPpSA%l#?0|8j@0R126Y?)#ySXeSdxXrUN>xPetlE0P60B*qu%-EdD=jf+9i>e>fCmgXyl?LCpyO08>v=^h z`3RwM*hjpCWv?;5aR5cBRB|4(If}pym0FCu8X)4Wy?H}bb4?JUpLl>2JtAxlslJqfjv++|Oqcjv9 zOdYh}7-~jXK5|gNge-v-BsA5!q;=2Ou=Kd>RJL;=?%hh!dCCu}B>aI|bn(Ishq81Y zZp|sQ$3cjWZTPabp=ro7Uqt~qgp-G#)+iBj#%qChmfP%u>weZh17dwK?S6t#z4w5X z%3=DC1f+!>?}1;LVkB4A27}vGlE`RjN+y~ksZBSxzU|^gQ1S)V^-e;7VN9r=#9~tK zNp0yh4Iv4(lg|fhYHXjtRtcdl`KgmHX$e@>DRyfzu!>baIyUNhE>Bo^Nq7nmFs6=vZ^vAQpN%Q E1*gt_c>n+a diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752166.en.png deleted file mode 100644 index 40ec61e14638df8db0b58927cb7922568c2a38fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14438 zcmeHtbx>Si(?i$<)?(Q%IcXtc!?hZR4zwiCtmHM`} zYX8})y;TEe?i}gU-RJ42``%!ASurGdJa`BQ2qXz{VMPdtx3=K+0qk4wUlTcA9q_+5 z4vJ!e5M?6-d*CncOa){FARsCu5gxxlfxpAqifcGPKp=Pi`Ml}1DKG-xL~|5TcT}=5 zadi1&Zww)3Z*2V4!OX@{R|OV4glkzsSU~xk?opafiM5*3%E_YVd3MH6-aBuYE=Wb< zsAI@=DCOLu&++1l!3LN)sx-k7QSWR0lo!^~?3C~q=Rn)vNh^bOJ_O7lQBe`_)ad`Z zHBfU(Md0FeIzr<~)YsaToE1IBafo2q-qCbFZr#y*ICzf=_0r>m8URCyRa96!A2f*yi*GpdWaXN-1>*wp2O(-}_s6SV( zkbt0wfWW69`@zNyet^5D``zVmy$P1Qd=CN|9X$Mi0LDOcIWy#*>A&BiP>wD9kDvdv z2jvA@x05Y%RKNR$`1n-0gJ(D1SClD;mEoI^eO+L_)yFS{)rl6pXj4%n2UWa)hK8nD zElOS?k4Zx?j$!}2U@9av`~4VpzuW zWj@!E<=YPkRm2Z(hs70*@x==oM!%xX`)a&T&`0kh zlJ2i3cDs$>Z@oC*8U$qhc3+uoyWj`WAGd4wnH(aplS{-|lVq&}nk9@-Oa!!jWJugU zP|EQ?U7iu@@xI)m$I84M@0ou6bTdDz>n^k8+ZZ)GhixVrL$^4mF6eo?M6CT3TrP|h z8LUdiavvubG+g|$y3|Ql+@7zW`s1Md`E(gOM_}_vMchie;h_^SaUdsL#cERITM8j^ zpyB>IMB_5dW}J1d4qHrumsw7I5>z};ar8BmyIYiUQqS|c3I?|yYSCM4^m#2~$#$~1 z9CV+w2zcR=dn&y>e#0!-+j>%!2c>if8uO4frp9{zb%c=lsWKF(@>fJ@!8q5!l1`QG z^SA^u4oSv&+JsWEl5<)dQCU!0Zc8hC64KYEVmgT`dQ`%Pt8iS8v?d7hi?qzE{HHx< z8UJkMN;;;5{0&8u+aF`Y4Nwbq*@uqz4i!Zz^S+6fK1c2OfNxhPIxfe>y&26L{9fya zrR$B5ymmje_77_EaKU0#bbX2|#i7>DC&X>NRr5EYD69%cqEJp|lxa@p5yH}rN6ij( zj+ASEPdz(H8Zu(~Ti1U{)WD0dQ`qSHuyYe+VqpZQzeq|o!3K6rgLd+BHCEqg;0ee* z#EMU$&oWhR9@6m8M+b8tUk!Mw1iYBaSh;8f-jqLYwH?PQm@}Hwemaw}hn)d!OSzpq zEAA*?8>CL#Ty}=(Jr)bH#VF7B^yr=sGgE>p(GGNUrVkv(8B^riX*>WM)v@(zq*bVd zFSX?heGH45TmumJ$L4Zbga;C9oByz55(T+!9> z6WD6Y==&$0n?%2NZ9EUb@;pU)N_pJqA4xfU|Gl^Zyh-5Aufongt)pMA13s?nVJ1iC z3~<&_Wx36?{G#iWs98P10zhR8YYasH5u<%t7j9b1K^y26xF}&9Tko9#y%0m0sxp=QPYgn6q)r>?v!^jJIaWla{U) z@vqItQ%-TradLj(Nc1WDYDdjMdYgHcfrDLn}W%Bb&<}zZ&><`5)8kDF?YUF8{)FP zay|#+Zrj6~s%0Y;PJ=fsXX)vS{Pt(%@UKvWFIBJznen!Q^gp2mVI9rt?Yyt2_n(sh zJ_y=gDZ>B4#ebmgAAI>N*u7Q%Z>aQtYiRf|^;G!crqUR6Qk*8gb2k->LO~VM6HXN^ zlNuBcWo=v(pE&M9A;)}NT5<OeY9-bLgG zi7@~c=`e$;@=V?sAFC3S*C3r_rl_dZg^}Ea6+q`6C77(JCEUF2kAOWw2z38$e4Y}gA`$h9{C*uWpX*vwntdZKxZ!-fK z1bPH>UGT;}3mShS4vc+5N2|Wml%!dF&*C3N()cZWj-Qkzr99WK3JKNIALZrBC4&FO ze=vc0k}s{{q0M8fInqOKNsg1YP-KXT!sMb>{uY?we!Q(^^Kw-VJi>lq2A%y;HOG8n zEmyMoWXFJDaxxg^qvSP4sL709{>T@PHoz$?O-dooq)UD+CqA@oNtdq6f-pyRZ%9?uV52@ktII=pLj|m0*f{I&&&hW- zFHiVM(MQaaRA3T{5z9zRPcik{ZCh)UF;1S};kbI`p*{Ogmw(YsF7+t+;#Zb^Xw;9k z-|-mYw@}F-T~P0N?NIsl52J=3xW=NGLIQv2UPtk0M9KgAC;`D`eF4EzFvA5i=^s#V zPQFlZweYW8T=st$IN+y=wdWwuR{g!oz8{S)cl6u5=iU5hdfeAPv>7ATn#pl6zS#*s zCqv`2Mk9kqK(hCrS$(Qn|I2B=esYoiRMqNnzpcfFKtrFv{J5txe;$#*-}szI3~&ap zRXzO=>4SiPz@9vqcgz2|xG`Q=2d|I(Uv`T%N8jfnexwIW3hpaJ^MhJh5fYrnAisG% zWq&dnr&sj&lh#c|E6+ot(Scj?Vy|Qx-18>p`uk*1pV$jpTq!=~X z8;C=kS4e@h)7yX>Tc*JCp_fM#o1YPB z;svSCHZ9x3C)^+!utmTYs6L&z!(VagE}XP^;&S0TA7W;%+?-&}aD4<>t~hrWDw(n~ zrV+@*%4akmltrlOJ+49OwY{vg`93pM^u2-bdj*;|>fVFc5wuUKUcG1jgJdiX2Se7_ z9)>^t-0p&_ZT7xiZ9S|6`oVt=`KNb!Xs;=a0%+?HU4+|7n->so#U&x=xwpAnpD#X1 zzyKDD<)6)&d!3%q)5?MN4$&uwMA7!Qut5&Xi+B8`YAtsQKN4~x^*8{a?b2(MIm_cS zIhW;>q%zOZl=4iwQNXv-u;%SD>g9t0>=RFBV}y5V~s8qILq zHDr&fN+G^k;yVF&?hnbNQZu)mlJM_2&L5uBGe1A}a#aSd@HJiY&3f%Iznn`Qzf|SR zwmqcpEPW>ae2EyRXAIhhym{J;8#LM*uRiYH*Qi3q@-D6!C?)#-}iE|FV{|yjZJ3B60`Tq%xxr) z%z6#sY$X8d5w!immD^u?H_OCmTY5mh^hw>jGvbDTdPlu)n!Jd`WLa>+Y9^@sS0NK`!2-AjWO67#l2*ULh?1*3+efq~n z8XoqR1AMOBQVuh@)F(~b!)m%$qh-w}XFJ5=?1SvP6s+u01xp->tWr|GIqh#CqU7Hs zCMU>6-0Dam^;654DvUHe`W}>Vdu|01MI|^X4YMLu3BNpPN)*`KZ@PNw%%7ce9Y5al z+ve7=!~VO_s;jvVD=x`s+D8rrk6jn(JZ%Rrxk>reG^UO9@PWYcykrqPkMo{-KNk#R zxT}*BSFY~!nMk16%hr8Q?nMS~(_ou#VFkN11_8t`(!Y98T|f8d`RxR?RayMp9gf0x zwNB3zr{lGy@eJJMxSz)uuzV!aa(5Wty2$WAM{-?xdc-14z?5s-I3$0(UeV&eA1PM9 z0K3TP0m?X=R04G4#huin-i+7?XyX#|q*d+r=0TwDUDiW}>ptkkapwmC0&w^pQp5St z$;+-7|NV2lPGQpX#E;{rj_1~{jm`GAui6UTEcT#H)43YC0p5G(b2v5T6cD5}Fch4k z3rP0AECG8iBahwhCme1-Hz7)DEk{i!jW-)jm2D22{NNf=$co!eEeZgCt1&?qU_WjC zY+K~v7$@Yqy5RDR)m9yxbIvl=wXy3ks*EnD^hW+4N5iV>La2rKz8CcuskLCi7T5Cr zdw}P-H~BMeU8o>ZME|0<7534~-8%^B@V~!9Kz!%^>l|QQ-~W4_z^#IRoDBjZGvfd0 zj#rzzu{%R&BB;Xy-5YH9=R;-Yzs0C0q-_T$cq))aoXmT$Oy6tPQi^>?8aFSFG4wfF z5qnju2(+fUPQKxIBSzo^t@Aetl9Z>D=OL?qqaZaZI1aQRXa>0#xCk3i(r9`6Vf z7t#W|h+LAj4~E9aaa}2u-5V!w2s0WIfDN-QoJ%7{Ibk0iJPu3mF9s8e*repxrN`kk zzBuLk)vrJH*RG49PndWwNItY|RG^V}u|?VSVz=6e>J0lZrDh;D#(!joMUbNIe!DjX z*t4gai_s)^q~0fQ`l8?_whgFx9C_DsMHL!}Bo;b3J1Drmb>p;5haD191wg+wF3Qex zQd}}|s@{t#Bp%1iqfT#r90>GA2uI!!ymf*TQHinpz z>PEH@n>wQW)rG*05Q@g?rnr%Z#bF{;Qh8-qWDJicgFPmn(@(yT!p7)h^>f$U5MXyi zw=C&gcJidwyt%<=?ST&t*wW!;T{QEEJ`!lPVJAp;^~Uh@`BG~{o*AVP3=zPo+b6<- z%M$l*!fGAs;V06?x^j-|+dK>-VHksQkzUmdOu7)0xZD^VQ_kHn(n(%VFB=7R!Rp(IL*qR@pKHuutuvyt1GI(JR7BT9nk(Rw%ZMKM#Qx?3dbdpyX^g;F~l%oXD z*xw$$SBX&Ar5|1TxXn9(9f-Vt1D_kJl9pVjLLU5yI*CnX&+^P^zmWbKL1Tvl}L zZ9y^LH{l5T2LQhAt+f@OH^|+-%=j8o5AoISU-=z2sTAI)huYg?`8(NV>MCD{Lk~kX z)*DDzw#yf6>yi_NGi@(2@YrG7<`xJ)5b!Yo@r=UTrU zo{CctP=hUz1}q$BjP-pqnPS^ie4biOpQ_V9x};LOkK1ruNqIj4>b(8EN!9dcy*|rI zX^a?IT82ERBxYolLNwY6b(yfRT}iZ-hG_YpAm`SIM2%v$bVu~+8Fy#W)`+bav55&innzqFE*I2J4_WVpD z+857lDR?}dD5GKaeyME-&fR7F=Oh*RJf$9t>0>dY*O&o}7j^yE0p-sJndoc$n>a41(3 zTd5l%3qNvIdFZ4kYEN*2-of})7Cy1;uU}a-{U&Ddw<5}gxta!I6ysX%RpeFrxvWPe zrKPt-QG}CFSUE}R^zIWHyL>^->ixwh_^+V7jJGR%yyN|DRlZ%M_2E_TPL{uFVSc51 zhq~RoI`MvdW;yB=5EB`q0@YUG1oFQCdyCU%tOT#hW1}<_)Nhf84&(I;%?W5+*KLip zRG%Q5A|yHHDq88SFI5HEG>+vdlx`NA_>0Gp2BM|B{hE-q&O(V&48Pqsw|(%iF>k8A zl{+YvIPKZ99}l>0^FkPL);O#`Zt(Lr0YMc*UA}aM(lmD&RIO*8 z&yU!+-=55Hr!rt$eG4+CP5nAi^U?fZag#j9f@=&3^&)4-W^o&aj{StidWlu@4V#uI^UWCVrHIeMTdp+%659MDGtdbBZ<-tx2)OOd-eVYg+IwgRs%LfeB_@HYVhD z42J=(X)$n1uH9tg!2EV$&!oWO&e0+Ci$@u*29u|i)j0ci*1V4tMa4rzkQ8=4A0Vr_ zc@1cnG-rn7wOU1|NzeOLOE|=^@^Gm3kW}LZ9=Dzx3|R1(aC{$pB4#Ah3}mTj9n(IW zTJFb1)6p`7y)Ok~d~c|bElMmF!Gc2WpbyYIEBO@{A@!htCxZR zjprjBJhem+%2Zu641PWB*D|%d0eNx_R7#t`vraxtVgXh*EMrt9G{tMDjVs&6SuF$y zVqzBAN1#&WkCfmAB%<^F2z4#-#Gg>qwu4;sp$GWkH`nPoEUXgp5t-SwiutKOBqenM z80~;lT4Bl(%YtcUPlFI8Kj@-GEV_rejVOgNhu)bQWr5|R@a$e$eDMAwAYWF`&bZ31 z0&;-UUgMe)wdZxyzzoq(GWBHHL^;o*g;yZMz>-*9?BvTbITl)Jv5n#c27j(ke30Ix z&m)=%FH#Q1P%ohp6=l~qgu^@Ljg9Dpx2O?%=dO%jPj!SUK8^8HLN%e?VDNsY%K#Ch z8i`wV&fYp2OgOj1*DrqW#jSb{B{R6MNI!bNV-f#AV6oq>jp3af zKujfz<-RBbwz$JCTwJ8E{#s;aaF^zI zHUfi+?hcDIegS+A;_}i$%G}Gg5RROw*4E{DqCD1=4t^OReM7p*7Tr|&>jCT@w z=NW}~UD7$B`jv~PALUCehwL)Y5AnfZ^XbxW0cAk+!8Hd0qFCTA&oVE|sGdZ|2PB?u z1r1k=@NpO7I|0R%j@Y>o8#u#+`0%DXH2)yFZ3*7w^FOyBK0|>|>)$88n13AJPqVkJ zWnHfr_d!hjfM3GxnXS7uhGHi9D4v<$$xFauFqq3R2`ECjft4kNw_CTTZydkSLA&dE zRxazY2vPdFvQrf0ag&2k7N%Oj%e&o=$H^g7-5E1c`>8d43&f!EvZ}1XaH+cO)#ERr z0L4a9)#ZCAt34|i4YtaY1;=I**D73!DFJ8tEKVH;>fU2WOU}|^iYbor0~L*{vZkd5 z56h4FL_?ltTFgl*^^RmNrHs;f+_OHNTu8QKQRI{)tYG@5b_}e0W6A9(*ec^qugWbDwRh8x$~~*z zitac`56Cmlt-3EE>$AYLxPvX{)21;>mQ@CR+uxZsrjxaI(7j7hHhBe114Lx5RY^i} z1;=4$5}D{5BZ+_}-*pRyb8dm29Vz;6d;v#BKL~dMmiZGc{O6Ou< z^vyx)xd^3rKMO++3{_javUQ{3_Ch3l1+zqb-6>CHdO@kUDv+5|zy|Y-MBt)Jb>%OW z#&t`BdBi~+LOi;F#%Or+pto=>OloM=_v+Qfo@f%Azs8u@ls<}!q9i2|MGSu0+SBOn z&bAYotnF+3`7|RCNmdE6uM3qoWJ2Z_JQ9@!0h4ETKJVdfCpB>B9*9 zm2Ke#UM8>p1QB7p7^r!oR9XvTbwk}g>%`D0D>q}x^uQn-{*<-bLjI%8H|$G?ZVFAv z6a7WdPDnt0IwT}g)OO{dSzgV2iGh&a)4A^_lBc95+wd?5!_pz$TkESu0JjbT@$`3U zJ%m=S9dlJS?-eh}`#|N1L-TC(S$ft9F>`%1xz!;oJ~`Zr;!KL({#ndK!}2L+@D@8! zyz@it)XD%v4~)$yVbkuvyZNc?ls2=IscOaW(}0}jtRkBHlR>G8i{I`6>YdLg2gglx zI+$PC(@Kx^{A3pQ6o=g`#%^5o^O8(L)pKGxe~=tXHr zg{N=MsD0mM4Td(bp_}_R)dViI!#gzqi?ATIhmml-h{(d!5jYez^#g*?inxkV{mctV z=5BO^u0vNt_Au~dvaSO+DjIL`R9Yx9(UBF3Ir)2*{P?wq|UoG61e-2*6d%3eJ+ULJSH49tt#I7*?5cgac0M*mgKA*zum|ei8fF-o&m5V3MD{(cf&r^Nsm^8inyEUM%g1;wcW;bOj0}m{@rW6Q zMJsI+OV+jsUp!7D?TF=-0snawitcY9cyr9$`Z&6Lt)^7enUL)pd^OJh4KnaF|D!8CDtB<;TGl0P}&c1`HeLS@jaaU zH8}W_WVzLmhj@*7aK_4~@IpdxM*N`~yjc^a;dVFDYA75XD_2W=9M6(_nFUDZS}-e? zP9Nb!)Kn5cDbVOiNGD^StV6VB%r5t!IFNcXa`=t!l@xTB5UY-warrslJG|(o>FX+~ zu{Xq&s8~XH94&8wCUWdCYjjcOIi4V6J>v9ex0&drD7*81Q#{%cijMbw@N`|=UI7%S##n`<#hae0g$C&xAr74z zseLNyM!KouhW$+iRGm&G3D{FsK}8Xg)>9rq-|6VUPjFX6SHEi$l#x|mdYgae#+?=7 zuZz}#iY57GA%W*DfLD2N}ZKyn+qVm)NR_0cT(e&TGk|@d3v`yiax&dr| zZL;S=937sx!Tw-)o#qyC^2u-*X4m1u;6A!f_LvUpa6JJ~31G?IIf%08Acel0iWXBA z{z#5xK~No8E1cgs09dDS9Ohw=j1yc5vhHvjMo}v?plURs^0nVqZ)W&T!_H5YU-3oA z+SVj{ojiP=J(c8O@f|mZT6N>6Xt)wIYjvDWOLAvH|2XZH|FB?`eA2GyFWX50)>1J& zTE-PQ!ZP7N;!*5G%R8I;2*=u9a%?k%^{nj?pC5A@x(CHxm7F*G1z1D&c;5gz_tnBn z!Dk_P-0kWPnFXGG1zPFZwNwMzfWqHT_ku|@vK8~wSbAy2}NZ)_s3HIu935{}aeuEmU60yd8whzvGVkR9KF-_L|DF&3J@m5)G3JP! zaV@EC@LS_yBf3^6!h|dFObhKX@~b#HeaWV#Renv?rfy2!k@q^sfQ9Jp2p8vUu9||_ z%?KLL9x3OuL^G}KT!Y`?rCBu5@@m51J;J2R@9lqCnzy}@Cx0Y$G&Ke3rJQL#(w;BH zuxl?CU8liEmvxOl3bAp2D1fRrkOH(5ANWOgjm0`PXw;zk3Q_rLH#ZCx-X^nKDRN63 z7;8^e2B;s~$P;&PsQ+DlufAgko~ zDz`+arh2!9cPkE_L+Ev$#3#>BIF&r_pwM6Ll&qQuSZWUMu_ZbF4Sb$=cNR7rl}u5?N1p0v`qD zZ0Dc)tapH7t;9R2=x?75U%>Pe5v?dKobk3cX(2c_WHR!eSKz&cMRRQI2D)TzcZ^-A z8<3u3NRw?Gwpg)yp0NZfFe^_oHwSHnhQleoyY1J6sCi-H z0E4)o@eM{~9eWdn*j`ynm)a(!7e zE!hqoS;hTLRFz<)Gy23?S4oqVpKu&x*Da;bShIH!BtvvW6xt6hWT58@K&K$sF8LY!}+?egjOon z#)0Z3Ks8Buo6{KI;!Ck>5ovmQ8O--Wk9A)MUHO&DV0P(;>s1@|PnnMOAXD72wL(p_ zU|boes-PmH_GklG4}euhM>3VtnL?Af(T}R=Fcj{YvHL#wDRDKC6}_0|%i|8W-0b+@ zyKe^ePR)=ERHSCK?Tu%I$SWYUZ|gE;Q$>>^f?}V#YMVibUo3r4ERurvd!i(kxoa(S zH_2$d>S)^qZTYl~I6c_{o^{u?iJ9#Q+Bbr(|90U5V`%66wG(~Y9ZCPD^ z5zIKF|J_kgEF%qseq=oz5)4;2uVe2+6^)MxwnKK=3R$LkMNez*krjgc$Z{2+%$c{| zrd?pnoU^yTR)j4>F3Uz5&>glos-(B5Ar?y`>EY>XnvMChL$7<#YedjWWX?)X5gCE17QWIX zy2?wdWo*O?8eDz2>AA zze2|^#jP%7K(GhODuGpGT?oAZk1n6*boq31dkezZ@x91R{05JWxUWIkXEo{WjQ z003u=pk8q5EwHrxt^Gi$s5&tXy%fkr8qMRT@)OY-o4$V0@Zl0xDg7iC9KVU-m?9Jf zE6f_!EwH#G*hfOCslVE_WTtAA);(H1ab5EujDRSV9kB0E@b`w55@vC`O5R^(jA>d4 zLw=BPo0>PzNaEP~=d7+B_V>e~@lZ_&38w)v0zd;FeR3QLjdpBEjoQn;5ixDH?W=2s z>PQ(?>K1Ty?fS^Ws|CB;Q5qU_CNHV5yY5!_65#elo)APai)lob5a_BNbc0cU11j}Yz zTL6$ew?4W#dM-qGs06>*NH+1(5Tn%=&rD$o!D~le3AU2<%&AJOrz;C}TB$C5D)~q5 z@Q`BU@QJr&=ICF)a|qF!#bHgT1mTXWOlI|}j0(%0YjmR!Uuf)Igqsnm__(6fw|Y+) z6)ozw@L+{R)ofj*EGPy^Ulay>#bc-t5D6bAl~EVG+87}qyz`U%($GEqzEFv*1d1X$gHMUErd{Ay6+7s=cw&%eo>v&=4PsGP*i)@o=B6AT~!40dcm&&DRH@_ zngQI*u7dHg6QyOfeYfTqHIxcFU+uod5)Uym%(W_clnDE0$+{tW?+R9KJazAeW6BYKWg+RInLijUPO_r+91 zSL*>iRBs=vB5}f+I0%qF>mawb($;1&UhVJ8u*BDq8B{N1s+&RgM;dKPNvPfSMVd*6 z1<)eoEA5C|rH8qHS)Qg_lw8=eaim~ODKD*X?D^?2IHaY*1t;T7gZxRjuFsSeSQS0u zn@uAaDw}~yZ%oA)>k+-(ZGg36z8KGARmLCM51%tgG%Ow1TWeJpoCQznlezIj6?Pi6 zOsvsjATw|cS6GshG=2{h{tmZW(89cLe*KnT6D#Sp@a^ljaJfS?XSoj4&qadx_2xCx zR;HNp4SZfj1`d#CyoGr8Ctv+0I6cdR1@d}(jq7d~`YS^X0^*OwVO|h1|GaDQH?)IW znLdAVMZT=2S&uChknwXGUgRS5X}Nv{-t*S6_lqmVi%$GYWKBl3j1Gmw)N-^jESr|I zj>os`gEDqnZ@52|iS(?AGu^#pJ*TB9WdLiFwUu?y`Mf`*@5w^w4k4hkv8z%~*4?zP z+%tK*1F9sIF+-!*e39S-=4-H6uJ&t!tgk3Vs@#IE4`g4iR$Htg{1{FjofaFw-(_K1 zyw$>Cjhu-18ow+Ia>U%{1LP`6Gjg|?m~VEpdi%vqMtn~M*KDX)sonA1gWS*MV8GwD-8KA8@Czv+sGp5%Tv~lfF&HZ&2x}7KqBN>85ib9S0N)pbDvqBzc3Vhj zZsFfTDTw&-4W`I~AC%XvQ$i-+EWd_TI>J6%C~yJou`-NOfc7ZcAvHW1@}-DYPe|iC z)<_P<4`(&DP%!%qfm&xe{?J|`9Id$v7*k(Yju}YKs=_w)F&)L!@n=9|F1oyLcFL(@ z>fRjMv6aKHDin#_6HI2h=_|m6Q%C_~*-`2YWhM$A8kKcaWyb20tE)hN<0y(P6Lc|( z;z>ir$^{Lz1k-u){_fYNYYy;fW4+!B zrqvt*)A@~?$?}VY}gfda5~*rr7U%WX?;LXSt&90w_-Jc ziWsQC3{k{gqw}dUZ@5XjI{i+5R)L*#LZbgwh@{U+v|WhjMO@q`t*|w$Nms!p%r*zO z*MqUG6Q})_o&)`rc6EG98^xgNsR5w~cF8SVl6*Az##_W2_q#q-zdmwuxSwkm<~hVl zc3Vau%>cEgax*PG+F%(UB5>&|0DT|d<`D=N_hW=-ihgRtA#(_ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3752176.en.png deleted file mode 100644 index 1b09211ea8ac3023b50cfb2921444c927c49be4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11223 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/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 Kezigq4g3RhOc*Ty diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict3893248.en.png deleted file mode 100644 index c21d5b60eeb1950e6afc9fbfece9110e91a77bda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3667 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619596.en.png deleted file mode 100644 index 0c0a886b53349f29d51a06b1ecca4c4375ab59e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7207 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 H?mqh;&&ztQ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619694.en.png deleted file mode 100644 index 4ace1703dab0619b578fbc8e10b3a203695dd9af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7602 zcmcJUXH-*Nm&Y%nU`0^`l&bj95mBU*prC+CcmP8Q1QbL%NUx!&Ac9gvKtXzm1Od@N zAT$L-e2CIQ5_*(8)CiFhS_sVLoi%ICnt9iJn0Mv_aBmj()smH@CP4ZP;==L3HqGBD)~9Huccf-F@Kw zfd?jbfdC-TzWc*-QvOCP07w{{8eO>^<~Tp*^H!X~<^SDSn;E;@vewzdpP(H%b=S>JZiuCS$?g6fV%i=6z^hlB<^>FF z_L=~|hyCD;?g>is0AJ4<>;clQ#qI^9lYs+(fiTZ;AXa(LIRLQx-~VIECBN2<`)U_1 z{3&3;2Z;K0`oubXyl-}@SOBvAV`9jypvu#j`0e#2Qg8ukbqM}_eQ{&Dz^1GwJF+O7 zBMJ;g21`hnT>h0H<|}V#<9X)hPe%J8Rpo`Yoo#0(wTdzt=}W=DC)YE~AqwLW%&HH1 zryWsj%0$cBxDrXV`S(@r?eaMagb!HtmErrkKisYI`LNM%j-J(#ON3tzhbO`dc}SXrJ(zuhuS1U`-X zfRV&BC+|<~n^^A@^Ltq%Y7b0b;RNer9UuMI6Uz=F1 zO^PQ8H8ET!W?;xXdMRT`Jv5Pd)?SxlByT3+cQxo+MQGPkn2xC??qm24ca6lnWK}a4 z((y(+5c5Y!5}9d156a=D=q{`eV^<_=zgraO90|q~V9F<$PkX3%9}5xk^^YAE$i3W^ zjk%GLARkXOO1wbZ%uDl&-u#!4fwmFRiQoZV;Dp1QcHiR}&ac#5uEWWBgk+JUs+@0^ zdT!V09uW`_Fdun;wb`9qa3dUOVl9R8yaCTfen9lrv>+ zs7zZK;)#7)RJ-pY;$X(dZkmvSj1#(GGB{lU&BQ+ql<1c_Yb7eC!*SIutHVo| zZ~|ErN7`6@)~~Q4w*~WNJw(<3meC9SGZzQFp~-|TPU;swpo?BdK;UV08W@b z*&tF(P#=4&KlZqJA+(Ky)K2N4Rj;jwPv_ZWCQbCjYzM;k0J1Lx{mzXmX^w}vz)!d3 zw7Y1{y)D65T12f5xxp(Ut;%mz+$fpGl3_|j!E-K6B{DtkNiYqXQw++^5g#;ro=0t5 zHJ;>>s$VazslD`7rm}xwUKhCY>oVV0$Gva*R$5r78pZj;=c^ne=j$-Hg`P-+*uqci zvyTnH9MG>LjBu-8U{}1=37pcb?=w77G`;I%?)s-@K9J5U5o^c2svFCdX%zbi#xe!! z$4qP9S|Y&@0Iy6=^Zxy7=wqd2w33D1YuQ=&u{>zZ_5@_c>9#u`}r_rmMDuFG+also)lTJ;U{i!iqjEkQZOw*o?2$YfML&t(`h@7}7t>tf* zDvtvf($)FCMpTX^tG3!^;;q^Wems@Sx6Qongnb;pUt{s_tO0yxe!>Y&Xw3T0C!_#q z-RiMa0~^*;3Bv*Q4F{Xkv@4zLT){%ay@UH-G@UqG62F$+w&iM<@;gJ&L^db-uPE`rc5kJ zh3JeHO^!#hR1EuV_4?IdPDF^PxVX4)dh^CqF3CTo!7l7z$D%wbMAkgtArpvgL5{%G zq1;*X%KmQHiLr*+^4x?DE7V3`R&}24&ek$1R(LJ^Ru#e`1z)>AwJ5p^dUez`x%<3_ zZa^f8I0?-9XDzyS!8qzy0}f)qkV%o$fcK%EV$$|fHwR~HgU^(s#q5lg?kLlhz_sP8 zolT`d%cB@cyZu09O+C*= zL~cG<*mH1;gpQeKf)a{nMa#}O8lw)T3hGFO{fNu22dJzP(W1BG9h&)(66S_a4Mv21 zM5rJ`MXOsk=YIMmk~y_C{p|D-mHcptg2w1Pmx!KqUg^KF2Y2Rd+D?ym-#p*=w--J9 zG@_sY#jL^!?DPprBu=z2myP6~&nM5{>M`U8WD6x^66LB6$76q@p9GywXtyGwlmFJ+ zxK|p^Xz5>p8S0T6;Rub+sw`Um%YM@wxhcQP{eh)Svi;<*5`57Qjb;b(1BZ@}INcT- z90v!-5pQ~{0vFWkeBy3R4A*P9inm0ROxCc~-QQHFxTzl9m-c~t9X&ENpo@4mFk4J+ z_K#4n{+>*&rb>4AF|_jS^o3%(!b@DS?4Y?T{1Pj5{zyFgPft@XIWs>z+#)EyV(pc1IJofx7dB-bV&Bnar{{6>>Kjc--D0x`E*ug$uS^76UgH4~X=YW5h*Ok* zILd`<4Y5e!h+OxZK1Q3(3mp%4Jq5(-YyPZ`J1lsbp`j-86egCczdHCz?*Jcg$M5nP z-g}8zonfVS^(vdjOEeMUsnG59C2TNOZ*?j9B>>QkPH2F-=z@mq=w(nTJ=^WY|4kLm z;zd^R!Av}U?d&I`wSt{3^!h5U4H?C>r(-+|*Cy0jo=8Q9)%uLoWB4Ncz+O#wxbIMs zu@nl6nT64KmNIP|6$%ytC~%vTyStxf5pE*=CHNv?{>$GrZ7%ml?iRY5mX@tU#B3S- z$cp1AISiCPld0M(9i^rjN$7%T{44#)klKLBE=;}d5KjQ3^EqKlCPo?XJ6o@oK&cQRMg@BIDlH+B>Q z7HV@AO@MHIS>4LlYXqmj`SIvzk`+w5%(gMW71SHmynlm9N&4evmXKUtkYz1Bngg%v zwHK78gZ*e?g=}84o12}cqtLDQT5F?$$#HRU7~u$JS+=8My&v82TLH8U95xbEfJt^A z@1OLdzN_%WXPg8@TW1W0Ty9ngCd#@B0pHEawd^Mf&ywtY8_U9ef96kqE~aS>=4~-% ztlTU&sm_bGd*>e#zPU0xq>@%0_kSv~|3}$=kN>M_#y!}k8y&S)b)y%$UBElz{qI3H zJgR?N8G(KK>XI95SE5s{`k@vHB7{vgGr2KvdiRyV8Vy<;4eU8-Ebeav=WWr9T>Z7Q z)5LpJ?>!irTu|68f+|#4$)@_9C!QP}8#VD%E{RfUBf>BKzyQw6U0ftei9C^vaAzOf zltG-qfnjZVxSi+%JEX-0s}Jiu^ud)la#9EQ=1+gg*0GzV#meUz{Xr0nnN~9#d!^&*duB7IA0ZB zdc26EZM|>l15LN?Hxr;%mq&*N^j#A}PzyVL;vMa9R(9> zm%>D&oj~0d05)j3Y)0v}ivV|Np^24M^@9zK0%DPM`tcHX{kfZLf)8%Ynh!5p-L!yr zo*%BGi0j(Rl+*=;f@M`9E)_C(cTyCHU93?vxPIu?W5O<5VK%zdh~id`J+GSCRC`d> z#ri$0S4qpeRRC#GoPUkY|DLOv&FDK$v#t->eoCv72tyE7W(4yi7@fzMiLN7TX(>~# zFci#H47{l_EOjN?tY4=;7+tI1SEN8Ob}OY)e}o|mZ zj;d|KDS9Gfyl)QEY8OH{T62tLLX<}$O$H@5%eggDkma?eU&@m9aXQY*$nw(+itw}~ zFAn;+VP8ou*F~qwphAF|3W=t>Uws97RV&X(L>wRsaQeXv_ z6GG^wBRKY*78K7pQJ=ectYhH={u4dF& z4XN@dIOhTV(tFPAX3_b2g@PRpR)-X^#Zlk z*du1dYuw1E0mCV_PEo3CA8$*jY_T{?gf+5>Eaw3>|KQljMeijawYEx3lxlb-3=OC% zZe9gj6_CegL2=NR1|0op4w+3#TLeH+sH zWiB(uA=%x0E)~&{MH|c0Hf6{%j)kmh>$0A_f6IJS>+*-34YA-_fM|bN2 zy-G;_uQTCI?tR4{#G#&G^M7C`soH<^H@GE@B%oy#-UfZV^?2&oTHBkqtLhK1e7_yv zu63oNCCkQ%W`;{kBvqTTypaZHLed9uI%Tvm@JZzP)B$Fr7^pR;fBP?g;ywD3VeJvI z^_hYl^Dv1?tAjw)BwY5K1sE1KJQv#;&Ed;k0ei7T$w+0TQa0H{1u~C?Xg_&c#^yAE zteNbVAAY}qaCwiNUd|=SzEe2D5V9{PoHLKho-DhWUGF3DEpuB7v^DO00baMe=nY?J zcX^{ISta$|F_G9epAvD1YT^v-l_F)UrY3W)i|4>(h_3wpdf@&qK;MF-Fx)B4KNG~d zXpOrp6CnP1CC95;fs|)-!Fza|`k8Tp=aq>L-&d_M&GdE`6SP2JaG>Xo>N*p{RIr8M^fV@N2*;`t8_^$2CNJh89P2#cMC)~Zu8d6Gn}r1_BcS)D5AVIL zhE6Npvw8_~1yKPGPl%fe-(cpmi2|pCMI0Vn(N4M3t5a3Iy*E4lkcf3zI`;=Z^z98N zeNGenm)Dh_O8#%kfK?)NyH-3kp+RG58oCqC#>j7PueI5frC+-lg>^{Kx~~)5aL_F; z*jhUUsuS?Y)8vZgRlg=izd!FMTaUwO3VP+#EO1XuU4Nuaouj4gwzcQbVSg@S>jEuu zGCy*m5$@r3!5wjauDW@t>x1~`aw}Dqb>EH5_CKxUQm{3lxXB>D%!oLmnpRHgeB~My z^6PyErvGcPW@sX7349)m-au+)t}nhqF}S8R%E4<$@oE`^FSfQ{RGRryty+Qunj!WH z)ggvfGjllix*Jtb7fT}A56Hd5NhHlDQ#-i1aqxESYNMEGRkArk~Cy z(fp&XnKR2L$sWIqCBsXjBnmXAl2L+0Z*MD|5T3%C5bRsJbmPdGwS;~UPJ>dYMeN$p zqTESm_t0hLCL}qaGMy@=`MjEbugNrrI?FdY_U)38XIHrMsAs8<2|m0)cB~ruRLuQo z{M(r4Qhm$i16m#I<~?c7HEc-$G<$SUu*jzcMXV zAKYP(2x$h^(bsG6rGgcve=vzm@aLVVB3G27T3$x|d`{=<7Y{nsb)xAR>xb0Nx-o;@Jils& zEBMH6GN(t1+tgOEdn6_YTL<%t3I`j&NffB0w3RbtQzlpP#}=#r(IdR+XDcs)DEXG* z69oW;ng3^I`#<3TUfqP-lhyC+an%ho#mN{O;FJ62-x=mf9Y>+fgY`c4prpsSlCqpX zKio$EtsVp=C`&@xDSR^1dAvEC0JlNHZ@s=)2EtebNTSI^shH*lP}^3Xj%^`}`88X3 zkKyaK)Sg7YQunZ21c^%Iqg&5;>uLu(N=W_4f2Giq*^Ut&>ER9Sj~D4X+c>S?pLi>6 zn&wvget_Ss2y&8ji*s=@D;y*%!f>5eB}jZf+xuquI7$##W?*R_UsH zc&x*obDu=}_q^X4eo1B2EsJU#HF-pAq3X ze&?`JZ}KP2;m0P0QhQBeAxwDKE%2JQdyRQQbV<=J*P2L_=~^$z#KYRq87lH`qV9Pyfy^k}6&c-?I=Ux69d} z4d7-sZq>Kv6!TDCyCNf(V{lP;l>hjhH?u-h0y;B=80_>Mv;R0azA*TxO4_a4VjAA^ z(VP)_)}%Rk)TP8N?S+v`(E73{3V`Pt(}3nC4wS*YAxmNw!_4_voH;22yniU;FU!=83@v zQVpQssS(QhXnKpZ-kug&gFVmU9OF%X3eNC@A%6BOBvDB6-;>bm{*RC4c0a!M+aBv~ z!B%uqR?^$UJqJF-yUWlwzE8Bq`jhfyWmFDb82-me)34PGcbMMd7iaKnq6TDa2lmXMJ81!r7Vn9!1e;TWK8Ricf2sW30e?Pvn77d!JgvRN7`@@G1->&=h z+z~{2XU^(8VQXV~w-C|!5tvt(y{v2Rf6u{`e;hlQCMd~(UZjons^-Uk*F@?uHg|m$ z4c}2)%6r_BvUlf0x4XPRuhqYJe)dn6^gkQ%1Gw1w&kbd44~5cEmB*tlZ9qjt&G|wO zS9Br6XNsOAT}u`|894P#fsc=GcmALrE4FQmMyZ7^jP3?B1q|^7IDMrQu>3IzEfmn{ zChf2U^nQQZb*y%wG21EH?wv#92h6Opt^owJX$W(a%4A*vtwK!P_WC*_H5s%Muo3&X zf+{g1IKLXlD=}Zx(3IEFxf(u*TJNC`b8xqzUGvOOBW4`<7Y`awB~9$`tous`{3Oo$ Rfak1$={1;9_0>BM{|$LPjf?;Q diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict4619865.en.png deleted file mode 100644 index e708853ddf2c4c69dd045b5af61dd524d40ce5bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7203 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562054.en.png deleted file mode 100644 index dee167c5ccf7c3b2b22b3c6a75527871aa7c202b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18600 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5562058.en.png deleted file mode 100644 index f84f46638756cbcf1bd4def00427914253e6af03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19421 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

        $JP+<|B1Fl;ZI;@p`_ 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 BP?-P# diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761667.en.png deleted file mode 100644 index a6e16bcd3e31bf20ce8ec65fd4e2c2135016d519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37054 zcma&NbyQnl6fTGqE5%BIqAA6TyL$`8TeLWo;t<>+xD|J|;!bg=NO5;}x8Q+5$fUnn zGxOehZ)VLOSxL^l>&U)m@B4k<-Y5KvvMkO^vX@9mNH}tzKdK@jp_n5fAzNXhBU%jm zV2B1JWG7WwDWs}#iX+6I7v_>ml1NCuW3Zo$(GdT!>_2NeAtB-R{rey%G2@aWA;qf6 zeUwypH#qCSNoCdWIC$jCHFCu7d-o0*_lS6>9v68v(ha(4%Ky{hJK3%b20*-(azZ)8 zeHJK7x$ht(0o}eWOIbhW{4ssj+;n&t3Hfz;5rmn?-#vrXOH7I>9PX}jfxr8fCd_EJ z4GgW;DYw!%D_d@G1IHYn!@(Y9ZDp==&}a9BHqA=6-KsXQHi;A_br60$HZCU|3-Lqh zGj6WE%zsTZjF|-gF79H!G)G*(q!tY5A^q=`=>O%GFvZ7AN)h+T%($_^JaJ*Y==%(l zF%6*!*wxHc#KwJG%lm&_R|`Df?~G{+r3Kf``0l)Nn)3xVZ%yn***)>^m%;yZrMY$V z>fwY8lXUTLhy%J#w3py{47)WnbAOH3I~XU#%AO;`o|XrqV`(NtX4_hj(MiQea$&2- z&&WlVVB_>VD#RD53Pw|q?_ux zeh?)X{kPC*(Kq9bf+}!#eX583Rtng1?{0IG_{1t5V#P%T4{sOO2()xGVB<8cqcRS(KS8p6t?RN~Of-hG>s9z2xKAG+=zT|8`D z^nH;ex+4*mA0k1_kW>Z!L!auI8-yhB@1Z2=y)yT_rAc4--g@}}d@$Txz6Lu!%z!g81aqrQUphSrU=f3 zw4BC9!`k-6hs6YCtDf0M9M8ZpL(h9~maIW@Uk4}tV4~nl)rV!gQPWW8{o=Awtqr!~ z4m(N1EYAyfkEq6(yTIvrRUk>N2@IUVaf-O<&_^(eP_$o;%s(Hx5O<4 z6Al%Ix7u+K4-n|-bY<@tS9k$9eN*@S>SD)yljzx!l6vCb?vtw7H37$DbVkO|i0!wLwwJbzh({amX-XBinEu#u**+ zG{1CZw+_n7v;rx;_v!-B7(U(ReAal*Iymrs!f81fSqkbNH_aFyO4&cH1`~Tc)+&;W zy5wlXrY3e%eL2tc+t2k#695oz+ShyQ)f9=`lUrHefj3DryS5P#SNjW;@7bTndUr1j zAIu*jw0yO2eJufX9rxYQ!AVj1WCS;8;1$!V$B_;U0R9q0oBP*k3jO9ks-YFpUJ8HCa+hkB%5?Vj_4!D3E|h<$pXr(`zp=6x4N?cqAybM-V`Tz^ zwR$=-eUjy7er5hXK^9z;?%G*Sg;KsxVazK8@Y0TVZDUj?;ic~;%|xdpj9S{2j8Hm; zlRdTkW*Wxee#xAbkKTeY@kMH1mv-64OUeQ~!`qnC49OMA{g^gErlhGtr0uX*4=NV1 zZydbs@0u7+ys5QRVNH;?fY!DvgB}+~UD(4C*rUC|GcA;P8QKdfIRqH_Ru$ZsCHp%e zUHXfB+@8mV*fGO+G-Y+CG+7*S;HQ)kWhI*CE-_YNv3zs-)`*ORm8x-Tq!K?2@I)DLy`k&V7AXna7_!Ol)hm)oF zp5<}xj=*6$4?D-cVRQA)CxFl1TD*%5iRdjU4kBl^5sv*?1`PHM$L_G`wY-#Pe;>Ey z$H~vBYN0?F>T_Fhhtm3dRZsbo&!Hr^g2Vyg#y^h@^!V;Zx{xgV)M4$k7rr|n;yqie z;OUIzrwWmaWc~-^2Sn`DM3v9A83+=ULUo1BUgqD)Kw-yv*lKYdj|EDXVd@ z6YQXlFca0ZSu(acye{Aee00xg@W2pBmuueB!KGKb_KArmJi zf48ujyI2>iWVgDXkxt+5hzNc$ljYdUoU&JDI_IaiWfbP?Id5VW3Z4c*B7$CqY`n)}yB4 zE!D0qdeh#8{FM)`aqRH*oI%_DCgZxw;JWY~14cZ!?OfY^gzk?niWP>2`-@4MA>oO^ zb}{4pKV1`RPk4^--iaZvPVb7bo5*>@FDSP#m(QL9=xB=8rqrC;c71$+CR2@2 zRFzlqdp3gQIaI_G_Vec+Jr-Rl|ZM-K#Mi@cV)gF zt%4_!dhL*LxUNR2on_MgC*OL*eph(TYmLl~^Y-)fWLGdHB>#GEw?k!6d}C!f?`C|W zRWAlD`x(mU()WtNi&WNv76b#sKjw(TW@j8v%0arIJN}77YlWs~e}fQS>`HK{%tL(L zo~y;Nx~GBXQ9C7 zPJOmH(8(b5VW~3b!BYjt$m)@U!ECz(SJwVGA}5dMFSG>muzV&`Fm@*HuK9dot1<$2 zGg5~SxFoth=h=!r{+lNSyT-3HZjIIQ8ZpRW^`IT>==as+L5`}{r-yfDDlX{;WfNU{@kPZYUcZPkO>;iY5^-1w@# z16%&Q@wh*byatW3$2cdl1x5oFt@dsJ0Ns=r_+PbJD9n5ht*lb~%0p$uL`7T$ba~UN znCV%f2ZbJtC`6xDAGKFFc<)cSv_K%f)Dusmb!|^q;voNaqxx&lS=)41YigrONA$z_ z31yZSlimr&vHKYnf`ueq5BMJS&zU0dMd=?EPbh)~8;t|(U3$AenMZ@SYe(9>MEhTw zgF#Wpw1(a##N*GWb~*8NNnb86v2nGc5*8IgS#ASp=H8eKo&f{?2-{ma z_$Y7aA=L>_a7pu=yWTU*#GhROKkw8zuIZ}`RWtfOD1e2evVBt@j6YY1Ghe~rH$hKz zR!-3$sNUl(WGDPqp`;d82I%QZUn?0mx}EU;zLBQbO?nJ<9#7U%G|HBkkt;U>7f z!A)rc-DfHq27WrT9Y9@4&Uy0Ie}-x0Owybo97=} z)m`ixU#@SRt_R##Zt(le_MOvS=>Ssq2L;?YZfv~gQ$g)#YhE&PuGIdZ>CMzq>D@`1 zF(oebZziFm*U^N6P#miQ#~tn~l?9xx_`8THLqYX*$NlR)jF^(>TVD}smEe>-0<`H} zA2>MS3Q{Hs7YFUwulXf#$OWVYqv)je;!?)t8*==DCv-dZZivyCXS%089Zy}ZonEqw zd^GU6GIl)CIf2$mUJZ^-42px!ECr8UXdLf{SQtF~d$e)y3$>yKqw8?vFskol*mdK4 z?~k0WqS~_KcVZ~wCZ5N)q_uVq2nvQ6*aY;H1^4kEX1YA&RZQbK_+hZRs|)dJYo(9s z9Ce#wpaCcM>{!V_rZHY#4uRiM{a1-3lpi3lUBQk-(6IIKLLtD^_;s=QURpB=!(un&e$@q*+cZld>*-dl|fKMo>fce^@a zVV#v|WX=?iTN~9>qVMP2D5$GNp7Bf9p9@wm|JZ9pdMM0HcY(5>n|G7JqO478BsqM| zF&mc@*(xS)Z@*81*1f=x(IulrT+8Kgaqs&V9T0BYesmS_rgPC18RNN_`z=(z$LCEf z!BdMkl8(FvrRQsMJ1+A;x-{ZeVQ{t|$x=Q}ZTm9pWb1A=EB998!%+vZE6#A?DXT_zR=5Wz|Y+miO3 zvP8a-%vB#6{EDOHAavrGoqOloW3l<(I7ZG?V2z}SIFkF+Y#4=SVvC$3TH8qGV(mvamO>)xD54GQ+_b) z*pYiE2aB_+i0qVhUBZ3W;gL`L8fFvFIq5xC^H-VzbpWLHi&g2}u&m6XLFPB(A%ipx z2fLd9@fAmryM=WUvwMln1BlJI!NZ_5h)sb6Kn;I<+a<8dXrAL(;{ALUI)aVov${%6 z%$y5@#njwlqSZ0tiCk6axos#Q{Lo#j6ulUJZYZkqyxoR)jogkI4#J(T*>B)>&ueN| zb`$Q|dbj(%V+nzhzDO6AD%kLA;hjgojlz%nAL~KMH__6*uFVve`~&Ib&e@N9#d{=O zmo!cdoHEr9zr<6iyI&N=tv7U{ikbG#%Hu^6??ug~Y^ z1B1*4&A0r&PhS)aNq60wI?*}yV1qg>XDsTPm@wgiU5nIs;vUUU!vrdW)t#Ha^ZNF} zyrPq&0b}&|VwYurkvjI()<-+sh-@9qce;T)RnIg&-$2eo;FG|As=|Y@F1C3nY({*D z0J3IY^)dT7$uN#VMRZQjHWSpg!4&v<+?9vyYGebL${d%|)%q@mmYy<+H5!mAm2@m*2&kR`3X%A8T`r+0q; zCQ2*&MS$j?5HdvYX8fOUAm#WXnEOAnPa(PWkEbJUu{lw)F!bEv-%HAY7PP$fxOn3K zd@T*&(;_e4ICmS)<;$Z?6kkCuG8IzH`H{-^Kn?cb9PRvI2m8@=bVOf|KR)gY^Vqk- z{#qK={hE#Y#o&KN^!d+Uer zJSHNH?=(D47#;_s_}4PE1$OG`|0lhM3yI42$-$>S@c&iE`5&YnZSimrSKB8@1Y*s# z;l_qZ!i<@>2{h3h3?U5J91Q>T9A%^bTK|8mM2OxCAemlOgQh8H7*%p^9ISFpHK)56 z`)Eh_|1RZjwLD#I8cENJDk@B~vIsx;dq@fe^^lSZAY_fW$jHdl@^O#DywKhH8RZ$^ zrmy(@>Va7CTGvjr@F*q1{69DlPbeeWy1GNN6Vd^e>o7?10(WR_l+RgRZQ=QT%NaoS z$L&&EM2J!GZj706N&_&+Ml~GZu^R^!e^G_a)+{kUKY!yw0rmlV?WyHJ6aUk#uCRl- zQ=W0iYWTYz#-L9t z8_$iM{l0#WCnqP+Rl0LZ%Vb?+7^-EkI z*pZ5_4jl02ZYTT@xiUwg7@%!)lOG9u8X)7PL z*vGf%ljlpQIwF`ghS2Gh(Q24KVkpY(;h3y-FcBk$2LXzW9>D9A(__rqAU}nBF(#Bx z`0UtJtEPIG^3C{Xw%=-r=MMAQ=4pof%7v;^@XNh}7A7y;JO?*_8M{S2_pM;4cn`2! zaJoe6f+nJJgxTQoB@BR?V1R-=h+A-lQoo*JJfroOLF^I>=9{0p3TYJ`mQVJSYeYx% zetth0Dpo-55$VjCgmp$*L?7>dq+n<@PU~>&l|Ldo(6lAv9}Hz?n3G@)E1lZ1g24e?u?9qhf1T zBq8>`DZXRGLbs=60drk6W02D&!sF)8zV;`i(-fv%Ul>yjKP~v1#E5DhVBg_=^oamH zIi6HD9bY;3;_#;mBUcfV042(u{}O3gxLx4lvS>8lOe>73AqO(zg=LKBZa_6#4zj(R zoAC|rt|Cq^&Vi*?&91%FN9Z1OAXR@VC_% z>qr5IDEP?82y|81VYw9hscE7+#(2xM$`E#}wby!5rSPUzQ&aN>j_19JD#Ut8A+#fK z`lj@(ov*g4Iw6MT4_%7hFF1`@L09h6GAgCW3v{iWNcMQ@Q|Y#=wywvvePHTB=Uqdq z$krgrF?JA|w-2nJzjJEU)^u_Y`Igj_@bZ(MO;*$M_eTn&hFuHxSfFJf1q78Id$qxG zZ$7xXoNal7%%fpEOI+tm=#mRhIsE2!8pf}SL zwFiZVCr0GzbJ@NZ{vPs-CvmxGK=J~vyB|?*g=-n%uk;q4+9Czw+I@Y!`|aiMygwiT z;+N)ZEN^HBjDAEj5&M-!7FdQSC<_f`q8Ys`-uM9gsJpe*K0o&JG=v87mJ zaSH5WUaX~$MnBPTgo_F}SYHq9?iM`9h%QZXO6JcU5x+z1MigtHUzUt#FZp^d+zl;A z!aK@5=1pF#`#axQe$8*cPk7E2GPDeR8lGbsjIuVBvsOex#RZyHI{UD&L|O3&Hk(`k zCyK~Cp_t{BfX{dq6Q}ET^S&9ln8KhK5Kj$3ZGi&ClxG?*_}!m8%0I$TI(Q@*;$OOT2`>!T+?8C2ld%}gxp*;8~bW+RS@@x=9v{7Dwpje&2!lLhuJRt8uUdH&}SI_!1( zl<3YI(D|ktVR7hGjI-yBqa5myD2>~ikIKqe94?gz<3ZQ6h*LxGpM$>ra=w}>vO9vA z(%Tm{yKcv&`%*1kPQ{U{ZaFPvD2MH%jH;+gsONF4cw|7MVjw1UpLwc}M%UvOg~N^# z|D%+H@K$O%w^ZZX$s+ABWSJe!wh#h-L|WuYdMh%P6}?D^Lo|pFx*->mv}r_rtV8*ofaBNvCRkvr8r5cZW)-g1oj}H&71o; z5lnN^M#>sBt8MTeJL)LT()wsgT-Q^I5*Pp)ImH+Y$la zyzTCX;Vci7M>gY) zUuWb0y>tKouEkr&8oRKk9q5;62=i_#?R?4`1N@$P#?SG?^pJ7>oF9;M-G9om!|(6B2xdQgoJ^NQda=k$ zxu87~t9z~=KP*^5|EGvg=@V_ zMuv;YyBUDZHrWV(U$Mhg-DEn@bwBwb!l5+WjxPh+HRq_0Ko~+I2U!Q&jbZ8dR-rxs zdILYA9-|n%KfX^?bIaP~ZhYSJ${Pp}rv%%Ge*>B(#kV(xqDygH^(KF^7N7j?>-(44 zAg_96SbCmoH~Eo8B2`x4ix~*w=DV(VhTCXGt?Km55tv8f^(=*1JSfbY0rCcAo;s%a6uSTK_*?kB&F?yL5RPo7cF$m=ro^QVLHePIrE!8Ltub>s`}H_7H)?q zT|EKg;&}Yp4ur>fz6>H$+{u;x-8P#~Lw2)VTH?1mRR z#H{I*Xev)O6AJX)S!DbQ;ZqIC^$7kGX5W)l^2ILv(eDo%_PZb(0OIYN{aqYg!aS%{ z*y5$%+?y=tX*sC)p)=(-Vh-CEr?ZLrdTZsSc@gZL-{7H-m~aO12RR?x-w|Eaolq;- z1{+nA^>8hc|NL|e&oYbm(+*$(UfsO?Qk*h2`m;*L_+$-r2gh2Z`6?b#Etimx)p+~O z`6tq!$xgb@XZ202fUm}{$Rrf!w*8FK_X05y`xrrjj+nktM7eOg>fiy;B?3cud5jz# zRjqS4G-gLS%2*byke9Jo4nyGI7^D9#d>fd-E-Ef=Kz3;M-A^-bwBX&uduqF#*KL4@ zG4z-$Fqn2Ldu+kZL<)nsP^kgf;IlV0^H$WNzneE4VYdq>4gT)vGlPRUhwouL@`drw zF>YO#QFb>4uRe_kZU=ZG`(p#YgZbNKlr>e3XyFlJc)aWWNBO+(%=kO0G~`^;D;eS4Nn zCL#|1%Sit}B=vv8W9!7~Ku?$ZqxKiMg8w+<74l=5x8zpE28BbAAg9P>(0{FtD34`& z|2NnDAG&G8N-+er2>zqTpR@Dq8hH_Q{OA)u zg|Ym}(ywhdW8=rcgoKUKeR8(dc6CX_{oLDKDDA^WcZy2ml}WI!pHUsV8^2y$xI!Eo z#l6_*XJgBlX=`%ql<=PUq_z_n^NA^a!!yRJIfPw7uRp^Y9S3w7^Dr>=f;% zp7{6Hr`Bs$4~Shm(9+z@_NYo#F>$LaFsRV7A^_C66JO)XMdxxNrHyOYYpGayftFo$gueya@NBd)$Dqp&~oUa{fl?3Qjo-rOJkRrNu1uyiYS%T$DheHvX}KiccdG3Yo%qqJ_{}* zp3%;l6KD>#D3az5cbV9sXrTEyyM(=3#dPcT@B^6nYQT?4$_^ntw~82`_T_m~a@+k? zc%8k$zyqZgv5WgLJ6$gdjk|_wU zh2&C!5K`3=U7hoxqhDT?E$YY%I`vt55|Y?vQdpbVZ$FVp+ElSrbLc$sg|uOX;Tu ztE~Bx6i4v4;niVQTQpI;WIsI+%dWS4G%w(a+L(hK#lNX2s{EkJl%ci!>#2fmsPFVA zs7WJ1HTkD{)E%&ERJ{l`ZUOT49YG-MA4)|xuupLv%FTL^5u&)V7Vto?B!ATxs&w-^ zkE7RqaWxONKA&DDwN^x(Cm&A-jatEb@^?K|1#0nMp2YL)chpF=Eq$xC5d3Mj1Yuf8e6DoI7zs~DBz^UK;wAF zZ#z^!xIa|mCC&d`)6h;&y`2VFRtwet-VcC}{!~nlo+_j++*iMdeEDc_{fbAS8}{?{ z@=8*hU&EdUL)IL@*Gl@7Pej=s2{J`bJniJif{A#ToJ47sr7D+T&smK)wikO`s^c>G zM`q^=4)SIryoQ_K%F9PHm^_bk(&Si~kNW0RH25{mOnVB_l-Vj>_>5&pt4d?vkeHgf zN+ml#krbw?0_&3H0DFxj^ez=|3VsDq6zDT{G!ToN8@w*d%CJkl@C?;@BV>&|?J!Mv z#3M*QhPKoAQ+9~>@T`aLB(zRyYt(dw=;h2Nqog%iKHnN4RqXz88R=1(bX2sKR>pBv zE4xDNK%-Uur!# ztAXg_AsfcuWl+pD+%*zPR_sRni^6u4na?deRC!B}XhUeQ^J=2W3JYF`lh@U5HbFn7 zrSlelI4v(PL*?EgSCd*PQ=(A1S$n6?Tc-wUSE0)JvRD*0NmuYAYC8McNiM8s2-Gq&uApvi`%x~Ar|E#YS zXu~HsHYW*))(P&~GLRiM9%)Peb^0}cgU2L`hz=||_;C>KS(tkbI68)M9}@*Fy7vv-2_@(#GzM?>S{h{dMF^B}5kZ zYrG!JA2gOHjRopCY6&7`2E|{KOy9NjR+a2fHNR>q0qUswT ztfE-w9l*@8Q6IU5@Uf~>Xey3kbpP+;$Ue^P0h`eh*K(U82$#Q%2Jdtyyga(-)fSPg zFxo7mhP;=WP$w2?Q^fUg!=#0va{dk>PAGDEu|!+2d!uz#9;f|vkDN+m%?PKOsMwTS zpz|3vmIDw?D)xBwsdm!uyLA2x1F!gW8YUO>@72O&6(nOdEaFa`(MbpGdI|3BeKkEn zMP#)G<~m6-w7xYp3GRiGq1xfofUg7Z^w(-0XR`Kn0 z$1jVxbsAn1s#<(c{OMMsTvk^6Zc^a5fdMKO?T#a5LEZc_L_CTAYwUh~OUzdvUasJv z=x^+8+!H}X^#MmXFkM@{UWNY6S?=Y=!g`B*g0eG1XzbQg99_ay z)*N;#*{zV)7q%+E2#@rsZ&2lw~ng^l=clr zs^>ox49^4*b}cuTKm4rDStsMK7MYj}Ed8dZQm)=q*e1YhO*~f4Gx7zS!E(Kex=jOi_39g4N{SD{SmiJQ3!r}kXFvx2ZKap zdX}}|Yj3ou$(*-M=-r0ge*Y?iNPz1x9hcDwLG+wB1tujV=yGH)Zg-cnm5FD~Bwg&= z=6|SI zVj6y5%!9SW0V~Z3iseC|6hgMHCr77$rIoQF2on5%WfVrR7u7k9-5dcTGjnbS4>UhE z9Hos`{3}+-3i6u}QuR@r>15kDgx=Q)yOGpV3&PL+0pySY4Y8j_x}7W!S)BhB*uHUm z^tlnSxd!=Uc%PjlO{&~X!6$5w^0A||Po_RVazCHnd`5ZS)%P5l$z=s+;PR3yNKUZk#(#c9OlI%7)N@+{D2KKdgy5{odf}-bBCid>)OdwwZkEX6vDx zJh#&e9pb>SWHCbFSu-UrZB*cyy^qd1}$b#$Z%u>XPEwau{6%h&t64e z(@9FV#X4(MaeBY05l4!jED~(+Veb9(0Isd1t$E{!s$M#c3%>2G4){WnJcH=$O8dM`*;!>z0c!SyCtzRHQqXf?b|8Ld~7jlZb4q-(U=X zuPi*BJD@MzT4BzLH~XR;?~guwALzK71{{7JvwKm&*RPcIb5V-%KffCHnM`(jFMYm3LUN9!)%@tQrlRRUg~J{S~lw5TQ`u;eRygPch08F$1`$?AVGz zO=&(Ra|k)i%4|fr;)fnIkU+4C4T6T^y9NU-T50`7Bslc=qdNXB-c!UDv4q<#VHM>q z@44xaF>EGl*g`*Jh5Qx8@0@$g%U+#R&&y6*5u4)DOnfz`g)NnxLErvPO(edTaF&!d zgY8ABB|hCUuBih})wuPw{#}Qs5>{1NMPdI~shZp^Ik@dsKI0WOdK%C}nHdt)j3{Kr z{dN{B3aw@9B~yl6$Ru^g6{H3v+p0zZ&YYO#vO-^*=|Z#d58oOAW}z+Hn6~79Px?Zo zoz>S($bCea$k&1$dKM1dLyK|be;Gaq6IdAE5)@+{iHx~0*c^Q#(^XnmS8_Yn$snF; z*QqPlH$EW=Qq3BruK)(y5XNMO6x%T(&siLtG|0T`!z+loIjmSsIC~jfXY6p*9L9~- zs9F7X3w1fQcJ%SXBkxyn!DWotJyKL2jB?JIFQoqS1*eMGbJk|Gm9lX%BS^E1v+z$i z>}zhzoSdLq!Csy~!QlM?(zM6t_hNewM(MMcS}nBxYUi*wni=vHkpVX@^*+`vr3DHh zOP4#d^mx)b;V8cG zw3moYnUnjc#2qT`oY_B_sQu+!A15~3Q5_{=uJKKPM1SIx1?k9_u0MUvKTBmx)=k4? zRoyiySxKhVh){@HPd~2Y0at6@6mw{_u{4BC;kw1i{#kI}@@Z0%TBVy5X>-;(A94*s zz$iheh12)@Bb5%g=bBWnR-sDyu+2cp-%k}|SVd^e+;bA9z`?6X*{{UE&H8g%vDk-! z5y!7;45Zo9wPbBqtq2fwSV~gfqSzNVWE9PAIG9py;h9^)QO()@!jvK3R+MIgc zkO)vwY<0;`FEVtkjjni|dK5X>gXc?z)umJp%9ZAg>Y7~qq~hl8AVo#HZ+zI2V5%Y| zxFkT%LN4|+O#|eD279 ze4T=9^9IwSp>)?2{l_C$eWw)?%-*2+vM9rJAes`o`m7Rw&|y5sku8Y>&~9ikj9!+F zSaKjL|9KF3gCoID+67kc4I|H!|8A9o5rqVVh^(Z!kt7!yUVPm4cd8dXb?Vu3g7V=;Ofrm<4QlA(Xzkc;v5w1sVozpa)wF8$*TfZdaLC)iV5@V?g%+<}? zf*YD|h%C>e`o9{(df-E~oUyj+Sixfi(QD1+?%p0iMS0V@omL0_H}fCI^v1A?nY{-> z#o3-~T;ARZXD;~f^Xi$|+^{-4gt*y~THP{Kz4B~+peTR9Ny=*YGg;pX5CO;qvQG?s zE48V>cwsu`#=sV(?>p=NZrT0e9`uVMk0LZ@!StODo8Eg<$+m(XqUca1X*xY2kGCm& z)HrqlD^p%n+QX{WolUB-!N-y6MTEmPHd$dsS*>8PgCK5&4op!K)QaivK*4dlL}{n0 zr#^0w_f}^{2xlB#LtLJ~iwFEFw|x*JWq@tDGDE6bqGi=$)&)_CwU zt9??R_aKGfunFTB=hI%R+Hxiex3+yyAgs&I`(C+sDdU~}RX??;lxblO)6sOEzxgB@ zeIfavaEoj^3YSO&m2Y0}!q+fPZmxv3t(d%aNXAIfvy7>bIK#J6g7EOs7>5wdD%Z`K zn{D>)o3-Ys6GzN;1_O)AG3Atl@7LmLYmt@cGOa?+^TNs$GlDZez6M_7$d(;SqJiH< zEN|iSS|91BP)^2|Ims%ocFrQ0xvZl;(B#EtCy{Opaw$$L4m1p##xb2lyBNChUGCAa zJ#(xPUg=uD9&H<*3i$1YxrLwrt6JF}l<9c_yeErZHVr$=$0~ZHAFod1A1?oJ+$ow0 zO;ejP33Gbf-+j_fYd{|rEq~>($0X6h3BJ#dw)kzASMgq-ccOO|?^L8Q5&N1&LOT^; zH)KBXgJj$Gdb(39`Df|IrR5I3+W6+j@0o-n@fp#T59{*M9fjKzx@LsOFYKq4GuRxn z1Jn3zXSftP!fYejb41ut#8JF{AxEjss9@L{j8EjG3IXU6;f?Eargo+HyMe5zWqKAg zw@_^j&47N!K@(fH;ZipaxrI^(mD)mtr_k0b$yvW@Hc&&ErkX3IK*%jtM&kArwB?<~ z=i0U^)uI;8XBIXUl}5WOjf!NYRlMpMuNSE@)p0uPF8Fb8bxmBU4@-WkrP)Zf=7a8$ zy>)#W(UiL>yQ5p;G^Ki}x^^^X_8T>W{BW+k&l`15hSp`|%oyS#Zhe!RlqCiN6@gZW|U&B3! zh2_8Y*d~?H0!cse5I2O9vjuK->jnimCcix>sC^?ZJ275i;v`D&3R5>|pg_ofBeOnm z%Z^`!fqc#)*)wjQSV>?WP!DkU_=K}Q^yNVM0dJ)VAB0L?kw-r~mzfuxzLF<0Z;FZP z2v#Nk#a|qR^wL~fnm0sKTHRUzr*10XLDu|^G!LzG^u;ok^??9szEY`YNcfHrb2)XL zY&v>5;iNVyCNal_&6?qF(OOD>Wsi_tLeu)gk~W_L{^+?kOD11VHn)dmi|(7O#iOfZ8S9LnxqjkxKGgQ9v)G6AuDF1yN(08>Pa2s^oRQ89_>nSmw7@e=j z1|Qw$kewQOs^0EU~$UrpFieEF24+Izczh~x>d*NdCL)3`Ld8aS++?OJ`+eHo`RvlKBKAKV%(0yO#7oq z*iXsZiErfTECr5l*B&+7EoI7y?Su;tl>84%tMo@4YqMVVwat|I)X`XoW^E~9H7mEy z7}LDH{B#hZPE)ZEzGz;NOx-Pd8_4n<7L?^#9`%?`==)NmO)bIUTKdGtE}FXjkB4e} zvCD0JM%KAK4dq`2Ln6{^o4ZfVp6Q=L3BV-+$GkN2l=%)pe&t#GkX!ZN{Q3o8YDCcE zPBLmO=c1WQbtg*hFEm^8?-?;1AyN~2y#t2&{K*-fnV>ctRmYu|L<5)80DqFJ2}Z>y ze#dDI-8oc|-C4%MeL>wZKL91v$;6ExQI_zgI(Bh@u4htwW>i5wuP;x*Xk9dClSSTg zGzOyR6K6J;^y(r-yU4ieQ*0Y=WW-7l>WGMtXI(`iLY?|PeZOEO3))eM@8s6BtyB*e z21!s?jn$`^AfdPHt23M{F;iFhAkJi! z`Vf%{{HsBjXcbi1-Rur@d_I}r*3!j%)2XJyOY;6i*ll>w2a;A!E?3wp)=PIMj6gZ1HBh|qqFhnSLM}YAH_2Xf$c|TOTSG* z#hTy=i|griJ2CtW=yXB|D4mkkefM8 zOB=O~&~mOLta=-viS$E=ax{d9^FLRA+SGk=Y2=k_2l!L#;o9{|TKM}Q1plJ{a|m2P|H_-`BuIdC zJH7&26a)2^;5t+RviR?^YK8Y9BQehjrJ1+s2FWYi-)rhRUe9{c-P0CDynOWTJ+0Wd zY%NmyW>!CkS0y>7rmJv;6H(hUFZqYfh(Ee%9Nob zb$dtxd;xMN`;bb>B)4SqKa)7=m1QuDZ9C_UHuz^ZF%OJZa<=zZz3ab_9$bGH1n~rcIoq6OyF(r`V1aAWY*YD zSBm^Jonx`N3A%;xXy;w`S7Q}-;>)^QYiHTolI3Xc~(_>n7{34PZ6tt#i zZTz=&DqVmTSe}99L8JwwlmZHZ+m4zQ)*8GTmpQiKKbCB4R&-pYj%<15u`X>ZebJw) z&hkAy&I*0>DE!A#HYGYuKX8i?@Si#Xbp)QR&l+05^j|UgeUj`gdQTQ4rE@DajW1^2 zQDiTs`8U@DpQCxyHAY^Y2QhR5#Mgm~S>9NG$q@(jh!@6FPlCKLri2bfi+cz^)G+~> zoA#4Wj@{Y;ppbtVNSxpjV-ss3v?LxI_!s)M{#MZ_Rkfm}ICpj1;@ zcx#WIJH`R-fz?PJ7Sw-4JzQ?ih#Rh-;WW$DBPb>F{q6NoZ$8CuameF&}xK3&YH z?(KNf{HW$Cc%hC{Rn0mj`z>MeI5coxBoz{Sx4dZ@@1-nOTBB_;cjI2n>sMR0OO z%l8U*6*Gl_!OrBWpdqs`FDPj_5dz|gE`6XZY*>ZnCd|$aweHPfAYz(IN`cXdwnkD; zNjO8&_*@~D33mOhf_&=9Z(}`9KF5U5iX^**!@XDu3sXPrOD6=+P}bA*v6hk)S-C?H z*(}TEMy6Y*5{7I+CZCC-IQh0C)ozuxvJY~Vnl-a+3Ce;wR#2JqI)C<-v9{qIslLe; z624;G6RtGPYI0Spbgn|&Z}}1qQBnNE{ZGw?<~Fc#Vz4siLU$p$qGw^^(p$1Z51x<5 z+MubnECkM_tsi>7@^;R;>~b-mEE{z?k!~U}vY$I5@R^@`8JI1Z@y+q{_(1}bho*&q zcRSkl%iOo${^QGH{H5un*22K|HIEn>p4*GNfl882R{qFGOToEn0i{{d_Oi_hl}e^I zI%R%*X2!~&#D7tJ_-WOzCOpMR7;P(VTU12*;r9AfXyrlppJHB{a)wjHf~aS@MqWrVZJy{R<$Z0MAZLuaAw z>+<-T`dG|Dt=gP&C%0zr<@cS+ZFAn_3tvSIJzFhag?8chdKj`Mb1}AIMaWCU2rZaQ z{(_6<+_N&yX1AF&8-EUKGEBn^WlXLdCKYikL3ySEmj!Y%qCTgf`m zsGgijtlciwcf{xJ<4<}QolU7sGno5|7OS!Jtx^&j{rI15tJTw~%jKp!BMJN>m*iaT z?kd99+oI&Vd16B4FNV&}L#{in`Lb+85e^u){iet!xo|#}KqXs1yZ^7+U#~?bA*a&r zL*_~6K^^@MK!r`K;bUH=$8@~%+bhP%^nL!TPAX9=5nr7m#x^5$9Fmc1|36=@6~arJT)z@a{GuASuMo{FrtbfPvagJ4vu)693&q_n zr4)+0yAzxi0>!OpaEg0zcXxNExI4u?NRR@>t+>Oc?>93$vpc(I_iz4icye+-*L^A1 zSsrT{7mAIyqtw?d-hE_6(t6e%cDhro5T`apy@8K4=lb}+Qtq)z&1AQgrtKIa`}&*7 z#nq(8!4{r#7R-h*2^yv!QubAKX_Y^HS>+zWl5K<36@@_9XxeFw#FqKM zcwfc+jL~+BsSkuh*1{_nkeknddQz(hp=V0qa+M3ARC8_8L++)<&%B2`*t2+tpM=2^ zcms5F334-kiYKR9_$hy5M=)x4S<#>L@UvWu)gRccQWW!7@4L+B>JLHJ5(tWxa@6?v z_PvCTIZ98BmSpX*Evecqy^JA$Bx#usuE?EHa=A~;J!dxGJkquOT7@04N%gAvCKb|R z8E4G(=<_AO_bJ|UlXHU-TK%Eopy>KDsD=r!tX2B5DD8?fMy}xYPa7z6t&Kt|Sb&QU z#vmEfvu#R?Dqk~lJ<^qc=jq(mKDO{s1X6RlTzjjz9AFWxJ|ZzCOp1Ta3K(6|8gmGh z(~=K^hPvU?H3{!UI61MO@?IIbG$^)!_DZdUo=72{_p`>!|A=cisYL5Ct$QB!1w(9q zaHTmXKbTOr%IIz|J7U(`me43^l}K17sp^#3n=rvclm>#ExFYlT$Z;2v!T_ax{1ci7 zPAQA7hjkmb)fkyNbZ1IdwG-o@^X)GqO`- zV_7_VbgqaTXFQ}$^ra8(D85I*h4);LDd7+5T6&0wSMiYEZdzJn5@OqW*KnhfTfoC{ zA(44V-+WY(ZhGhtsSk3P_2*VYmY)|^xY~&lyH-=aU&Y)FAhm7PbUs?lojiV_DuKCl zVqg*vHM&`u`f7}Ox?45exVSMNJcTjGKh~aew4!BG`seyo9;pryHHI%bE8@!x;*Aur zA`Q9Ow7(7?9y_fcr!X!0uZCqD5A#6&yO;%K{)IZ+sBQSmvfLR;Ut-p}s$#?uN4LtJ z*VMje2MzP~V^PuOcK;x1+l93hmgnQDU46MA@S{V1?3x5Fe23bk#>5v36K1!0d!*3? z5Jo)ZB30nAj#wHIS=0ujT65$?Cc_lI1X2Db@<;{^tS>^9r%R~ipXxk zcsDjFQCnLHfs2ohqj~2JOKvQ9E`nxN5*wGJfrLXQ>zK`3N%&0_T39v@9-mKoPZ(Tc zl;TZ{82HFO#eIUE!SUau3J#W>pwYUeLuqw66ZVmS6`^?gwUT8Hs2|`#=tAL&Z-^OS z#W+!wf({y0i7mVET$a&PdxY^tA`WHyq+-(B7)zL{>eJlZSH$z0b4BeB;ZmIMFW66@ z0h|Cyuj&MpD6h7XAe6|Z$7b6b+ZP3?B5YzLp~Tdb2kRBksUr6q0Y8wU5pO#w$;VWl z{fb##%YlflMSB3`z>wGwvP^?+IW{xPOiQ@TWMqNtESQeE^UUAa=|XzgUDFcG^%Pi- z31vm=TF3&H(t)Tm)()NUSIZa`$K1JDo%n|mK}YXJ7;p!Vuo5tb?d?V?*J{_?Fa%np zk5K1fe%W7(i1TjWzfJ4>IbGt^)y{Grky87p!hOMC>lnvV_BbK1JEKDPg7is)WfYl|+^W_rMe)eZYY$A2s}e$W9Mkp)jHp0o(aixJQIr3B2KJ zgaCE8AGAjF=QYwzjgXk7K+!)lrp^Y4KO#M*Z?M)*QWM`c1xoCi_Lgp$+0evhIY(8B zF5=A5SS}OQ@thB^m9{q3bO5c{hnC^y8;J}DWeYo+-8NG1LXA!Mm0IRZ`Ww~{;tMm1 z272h4_$Q(iH5ZvViwV|OB4-aNeb{LKth|HKkFvd;M!c02{f%5z@d`9<`S28z718CT zAv@A$WBdZ62-cEjqBYln6!L?uNre+s+Y%{u0w#zAp-$TRQU@8mUffT*(Kee~Tj^lA z;mPSdV>-PmQ&cbji|%Gx_=BX17s^U3=_&DiEEQ zfScQ(x#lBWzEZh$>iLoHU;`D9@)vojr3ia-GII6wsFLnZ3}UA#tG{(eRgD&}hop43 z+#h;X_>mv(l^c%UnKR(W_)##!@n#Hmd1*%3KEJ__WsCiz*ecmDKd}J5?!92oVN@H&((J@$ARB)NVIi+tjGULI1-iiI7ch%+7}?^! zl0zvN*GC-`#J*`c)0@_|_^s?a!XTwK8UGt{tBNs;akO)nhWe&LN|fRT%X_5lnNWYw zvp~LXJFEHUH|3m(ta#(mNG0)8^y#B^nsO9cF3Y}jH{!B8YV*^^6_%O@3M#?@n)7Mw zn7@(BYQFujUR9zVZCmXxPE2@oT$f1Wzr(pLq@{hil=T4V4A(Qb{M>QUOhq4YEk}s| zjgMl+H~_ z{VTuOhZJDJgZ-3p}iiM#&?^a(9 zl7f`;b-LQKZ^f+*!ygqmq%SC2c?DV+Kl+t&ete&!W3fa6{ z4vN5?`a1v^bcK*2>m-1xxpqt~oK)~wLEXOl$=|)}&iihZ#ZF`*|EPa~=7#c3J=59@ zzR-9%)ZjN_RxXff64u5*-%bJXu;SjFe9?h5esL0x+^s(<61Qw1ILtGZXmF)|BS9BC&6eetT}eU+_sdG|F0 zgX2P+<}$tzZ4&#dRu(Tc;9tlCpJqFP`1`y^O$XmT4RmH}{WVM<(=pd|{p8Dl95wM@C26ZlAzAd? zx9pC{WO6+HWqx#Hx%ARfq zhm|rG>gLLc?v+BTb^pZD=M-5Cq(;G?amksxO=e4m5>oKTarUpEu9vN7L$l?T?|&(^ zUB|`rNNiYfMQxRG!I5-qZpL5%T^ljcb} z`r9~Ra$8ce$%J`4>%F7EYr$RJa%H`Y!QoXh`(*biwjP4z3XWW}P@loWngi;HHFKhT zg$FCvWl75RqkfYrn2we|c^3d&-f($RZX%`e5GnJLvoE$L!n0}LRlWDHk&^yxH>A^+ z#uPBno<97=L5HyA1_tK9Msdj#KAPE6pl0IB87&BAgj$ zA!q)ND` z4G4@SqK&ZoFy4C?)zN0Pf_w3E06kbcXyw7dax;BO^`?VU-MhTCJ)uXUTsobI)BkmbOwy^vHm_nf4SyR z!?2V>7Qf>MGYv%*rw}4{v~}uNi0$0#(I_35cNv-o8-9+wFg6-)vgMh#vaJw=ulL!} zZ6;62W20(~#&`uiN_SbP)%L81`{V<=kfVp#ug~X|x$KZq2zXFfBRK=J8=P|stV6y}Ut)G4uJDv24w)#4;OUUu+2fA~iFvU%&ggL%WyG$OJy}WN; zZx$z88vE;L49ZPGd^Bj>mGZpIhP!x-!`?(@z+sKfM~`=N1}b=($Asa^t;Gc~CY-VH z7OX+$1I6yci%Dpkq_AE)#@GM;>#yd$7QAvmzDuIhRei)+?zN&?@c(Y-(J;qKU9IYc zxisoHOC6`K*FiziJfwvRLqf1K;3v+Qk85{5a7DC62(f@peiJGr-Dg2|-j39YU@ccd zU_&sIoq9F4X>Ne$&c%AlUKD`7j_^y;z?ii0^}NUPb5IS7nbMa1npz|!V?<8;xnikg z;jkn>YTvS!gel-cDa1v(IsbMT^6vf8lZ-l3ing2**Z3`m6a`B9LTe^w=~w zy*VNxkiP?Y2yM<>EHUK0a^%j3N}YO2l223ACsCD>i?VYsE-bD^Jv!*<+!kK|rMBWo zZtw!ZvF?OJzB^?V_eFy-@6N83XG13Qk?c*7HnOh9j?E38M>2x!kMjo;DApZg%JIYH zPkGzxj1kFL^QxgpiO%KazI=IXYM}THraFz#MzaXKlzGcPJ*>+`%qY zQ`l(FJu{H+m>f%Z ztn_1xy`}R( zOZomzQCUHZyvxf_AaVN``!l383&-k&FVocv>1 z$SZuHVw%7<4Jmj#FLRKN_>>>^l!muI{3hp=Vp>i&7tB3A z6g`(&5mRP-M(;4_7`G5a@u%Yq0Cm;?^|a@=kgZzDqHZ5zKwBKTAYhrfp?Y1 zyZjL%P-K^n**4p%_i;%3>^}|<0~GwO0W(O@fp6KVhMDOF?p5`{WDm{^A9T%g_P(@u zUh1P3X}InAu(QOFWUef|~#5V}BHp$zSrd4MKdk2>^hUwT1sIClz*LXB*_& z__oFfb>^a30&ATi{{cbBYefhv=O*gpa489}B+9=JbhsjqKYlnrWOOHy+y!%ye z+BIKlr+sIrscsY9jR^xZR4iz<)tmLE40HdtURMOT#C zLGjDV$wm-h#OPXFCGyF1Z%@~tt~mXvzUItA|JqesJE=wKW1C{i$ve5vDfxD+oZnUl z(Sl*QD<-zRm8idDv{Nbwy``!NF~NiXPbwQ6-^j+#oa07XPuyF7Z_yin>5XA3V>;lZa_6Vh!rBG@Zr3&fx5JZw*bis$lyUKLa(Mnc`NC^RWbmpj2i z?fyGy-tm=Y*>O6bsA3yUi8J<~mZs%C>9W`rb9|+#4xvm8!NM+E6-|F3xH?W_d)}uKqS8i`jIH>bG}~-`^r!{MfKD&}V;IzCI*p zVx&gFoIy1Sd(_l_-||E^fx~g|9^MogF4ujJvwxk+z6L27zPc?9+h98U3g68#nU8Dy z`b6f@3K|ggh-ss#7!?Ql=4$@sJ9{HCUgj}#s+}RPz5!M+`|3>CAZT4X&dUkUEF z6nWR_!j8sZ8tRT)06I7BG;420q!Z$fg+gBeNjZ!FQgtiSl;h42M!C?!9el-IZ(--6 zH+Vzpax*DovfSUH9JiCuQmr@!KS>eo*%qJs*mznTKv=B+F_v4uxeh&#(DWEWu_7<} zSV_t(;uRy+R-ejzsKlG8=312L`BTgD>yzJbre>*hU#!IjJbuR{)3R z#Uo$zyD)HcX10cbJyAWyz3wEZYQA0|Bv}88+EaFlF5C8yHH}{*5>?_7EEhJ?c=MRD zZqwaGM4B}fk-Ce0(oJp45W1fUjC)9(VaO@JCM>G0ST|R1*qBS;mQFmE)!^*$N@!@l zQS5sT24eqO{=2IMSLmYHAaUQ95WL-qVfH5_mePK2Bgq9gB zegfj@XvFv!Xt{kquL6uLS*XWGF6QUEO@F0W;KBL#?cX*Y`xzRc;&!qb5@kgNp}%0t zfRdr(TW4PBh^BT@7?Ny(2K>5t9^JSomQQpSJCM-SCZlvHX*5G0AT zX#c{UAS?9BubFR^RqNNVT=b|V>KCX%G!c5%e9RIhk7Xu%fDqhNx0-3i4!FzKm~2^W z-LBQvSU5E+Q4@)re^jyEUG3JI_$2uOd~5P9O(QX>GstR~vFVlOaz_2luxTKyrLKpz zZUfWhP(_}UYA^@EMWxOGrHry%-HH$;GKeFtYJn`WFCZe@N=f2I0G@L6+gL(?1oYO> zU5qQLha)p*leQ-zY_}6en$b2LDfB@&s9?sR0^Jr9lzhrBnc$xdttC6Ek=^lqq(hQ1 zvVde%`DRba&;Z1Z%kbzCZE1;wk58f%J9t{^`lzpL=_$mjz1C=w)y+p3ktjL&r`v;l zHZ3i5avC%hWyu3E+S1K1lrrA@D$;iLYahj_$_na$L!r+iX+kTh$0$Pmf$ZHu`y(yX zUX5R9W>gRMg(Pi^ofO9}J{Kk3z43;?-w1#mHrEi#J?nco}OC-&Z9RHjT*LktY8!_V@$vxIx+W~KQvG(rwrNCUJ1nPu11C^H${ zr(X-S0~FlT9s~4^)nLRLq|jLm4$UYLj7C`!z9#xWbUR$fcdTQ?Xw1=7il31=b^;9@)SJ<^}m21pP4fvvOZl-$wZ-u)WODs$Dj5 zN#D8IFAe9mkcM4HyivdNey+5P0=0IHdl**N5!1t7&>1$HR{8m#P!m?%f9{J<4{SAh zu;aib#5@{X-EYJ@o)R#0gx3+dQ}oa+%Q}Fpc)sY3Q!SLe@~3W# z`D=Z}^jqshZms~cC5i=2QFgHntMnZ7?X(L?RYV@1--B|bpHHN)fQHrvH3GLTl1YEI zc`+6lDl@l(ec1!*4>UE$aTi}L+uY;@BwuH?;~?z3F=Tex{tET&m=5}3g0#;BJ4D|A zc{b3wYcZo2u)eZTJaDP5AkqHy#so4r-JW{9AqM`4H~GO=^p49tpW!f=XC@Fi2Ieyk z3eM`<*tODlzsF=0aJ24{Ex*jm30KBJ1Y;_8@+x}^+GHz5Hl+~rHjki*7wf3eF%pv{ zA$!=JEm5RGZC!1K$Q{KtjW(*KGvZEPM!hv+-`QlDBCP{AbGT$6ndWz)33^eQ(}g@OD>ulpRSodV>Bg@xwc$4$=U&dNKBs z^4(q&wYzG;x=A;u4{4Actqv&I4Q;m^nXvaD0N@RE**XY|a#?LQT0>2Apu&5seSt|% za3GeITr))?gPl@U?)0WjA^f8Ek2c-{cUX~K@e|AINe?pG39olMA2QN?f^u{`-XEPf zp~}dwuSX_sG}pVF?mM2JG$y6WcscZCjH3&h^^q&R`~uVw|Fstzpb<8P`vb=~mi!TP zNnJU1lxrM3J>g;`^XC%io~rmS51qKuDo17lYNv~&2iEpRF5m>h781y%G<8xFk&V*c zQnGNikH3A$AWf=MEjUB9t*;rq!Ip*_iiV9?e+@9g~@I2BM$$@&8_(bd6<#Gg$+!QPx$)lPs}qt z5>E8-k=?-GsvPkf)|mLoZo9fp^%mG9Di%t2U40e-%ynAt?T;DUuMlr`NvoI?)ws7t zEZkIV9Z62jQYJ?7<)UHMW{nr?=7{a@;KZm#Z-e~V->rF@Lbi`m0y*$F8l-==wh^=v z^Z$m?4;p`R%;Krj)ZoJYZw`_$M|W)k{WaW8;`U!6BKv~7yX(L`Wn$oRTcf14cfe72 z8H2u3*x#?^2N)7d`qy$ZG?&D`j4v0*0F&vEtsw<@z_I43>x1hOgy-*^CbDm|d$agb zKEEtSEtQIvOcy!4ca;+B152w~{3eB-l_GTcy4z-_tNMjBjPg-%Nd16v9SwvUq2e?i zj)7Tx?Jw2VBanN^79-N_j?j8B49R*pYTAO0&*2!i*j@vT%%wAoxP4&&#ZlO;d+f8P z4&^@EYtpnelZQXntQb{5!wS4Qb!42;Ou0|%WH@UV)~{Nfg|}wqWY4^{A{AOUEq3>F zdQ6Ldp!%)?6O0^|v%2d+6$m3(1pq(O5BS6SUC*>)102UjTsX+I6oruhyX>eD${C4y zVaqJ(;@VowP~Qaw6Gr11y2`3CW_SX6i0WIHYACig4UVks=+{vXIl+0LR2k&R= zfOm<8)kuM;VwYLmrN3z;>&Kd}m}GuTto-?-Xf|L@Ao~onU301qFt`TQ{7owzIY!V( zI=$iix+pk9s$3fD@fB*y1$X_^bgvmu8&t#bD{|96-xjVX1Ze2+-y75$)W26t{gP=->Pt^KAk|+@{{~v3>*SodFpKp? zz$ChaxF)3MDr+H8Y(CWa><9;`A{4C!?It>p@q=*dViD#SnP=EfPcjVjIh#ek(oovS zVveyYY)wfZRURF<+#{m_Il!sQ+5DFghEm~QMi^?AbMN=OZqJTFQmFwD;Fth_x+r%f zYNtCi9S%6OefK)*6)OGneLtIWK5&9w?D0~!TwRM3)K{DXyj;^%x&1o2D#>S(R*N1b zo9)izoYw?X>77QAMr!#28$ZzI@9+4tq8I<3T|CE=r}F8$LNws}PBIpPAFw%ECY|oS zj4Ts9e_PrHyJ6VM`f|KYX{dV71Ql99;vuPYdLs!h5zT0=8Ia)Wj56~cN#K#YSoX36 z%|nWo%y&SzPr zg|Z&nf3vduj1ZUt?Q-c0MK7E+HbG=QX_qR$49lKc_JCE^Z<6X=4-MOETu&P<|G>2m zlsva0k#nW>rBMq660p6_pTFX_+GudzGp}u=Vg<}DX|+eup4e|5Q^n{7&;BXaEix(c z-)|KAoFJsxoBa9Y5--G!=VH^)XJpc&n!6M4B32S5Makj}^^m-yR2Go5?3%NxI6_M9 zGU6?1>9JYl`BjXjs65+k9YXF>rje{}d%#gzp`~&Nmd=^rwJC+u!cyS)TA5ZQpaDk{ zfA781`V~@fHz{@gdiI(gch0uW`0jUs<4w_;V_M+aBqS*?G}?^k7UaI1nHEtDzUS5o z0yr+0d)oDpcLX;W4W}t2R&ky3@r?63^z~&1z4HYMIY_;C`@WMNCPmz`P2f;iQjV~* z;xH~1{W+1c-#uI5YYy&`0R6-Ayq5U4H~cZM+|#lnC)TAUJJ+vDb|hj(B8{WOX)g)J zUH^mf4`>DC6R$bf6FB~*FeKE-BlT$Ih~KLcQWzV+$O}xo34|VO=@i^P+)pXE;*C55 zQWkwk!{|rl-(ZAQB|K!zPA=Yx@6SAOAaC7#55G{7!{&cmK0{Pf3pu%PcnWoDtHe2| zifrfoV=@hF`q8cK+Ob4cpIuO#+~g$D_Im}X>Ud6BFE6O=ImfhFofHHN!hjn;}Vyr zL#u~BcEZ^pc;mLJm9&CxrF*%Y(Zt`FrbEX{snrs*o!`LaN*~)L9*l`(T4gOWX=CgG z>(~Sft~5r+IKob1blZ5ylsRr%>=dy2fY_l@I_CM}3l#5Nt-I0@J9^f=wT&iVW1Y*n z9wD9)#t$5ENEvhka|a_!_%gII9>S(*`Tl6^%(XmOSG|LD25#;ZOBk!#oDK!ik(jNx z%>os5$!1Jf6v&5#$hid~51akYv6Kk6yAI3+ zU$FFfvcyObO(Zso)>pLJ#}$r~wh%L-%}*V(8sIrI%xb-XBeBsB3RZfE-V#4`okt?n zvyL1fUI~1O)z4m6o#_)w@A{KPq*Sy@A94j7t=?mJYXL|6u4wRpB8CDisLD4DAo_@n z>-Uw6rFILEq&8XuxsNkJTN2^~+$4?H6rkSy0(+fR2js%YC%_q6;HSI5!=&cT;uO!m z3*yme1e@loo-chp)O}66sXSl*$vkmAWrtdFS){B4DN>@mvu4`59U;>%IwaK*U*IX zg1Iq)+&_7>j@CEhs>UQta(|5{6Cu#$WqFi%QnQZH$My(P?f8del6~s15Bq9%ig&M| z!x}zqQ(t>NU%>#45pe@)3765J^-;pRMSJjTQx8AK(lAwiHokoR3>eqJ<5Wg$^!P5) zBgPpfqOn%;Be#VMv*Wozbj<16Xp@%p=9 z{%~5^lK$6ivnoxTLS{MQXOAhce>fC3qF+@1ZBd5IV7GAtoO$3OuVQy(WD!}cXzMTu zDX$t4*U=nZerHaik|teOX14mRqL-I0YTDf{hpxPHpC&kd$fTEq+g3WLwYb4*$K|(! z+!Z*I;oRI?kopB*b0m6zWRxeFHJ6%$zMxDogBdf37d9`V>)c%n7MGa3|4=4dvk2 zJ8`jY1l)L$RuPYU`o8eRV;o==L*Ph?-gj8u$ydtu@mKMpi6W}}2jaswOPqh1P7T{a zAeTjsKqb9FMH(rW;NruV!ib3;M zFxCUn+N2&?9achqX#Bmy9iEnaRAU_vCggz1lac0Xla%OTj z1Zuh{X7IP-u~RHsDpEzP621|$flLQ%$~XzjYs7f(B>dyTCFSfbv!Cmujc~1S7Jr@S zT7RDFtCcEM9HQ*Z=ar_Uqo}ECVWQ4qEKA&@`Hvc}Roy}o?Rul8O{S8+mAUjKTEak5 zD+`lEM*x7uxq@Y?ZVcf*4>cr#$0E8Jje~c?e|v@uY$FnD<4dKQ!}|=+Y43K5qhz$; zW&TKZbI6q_kNtUKWFqgl*{ogwd0XBoz&&hG$tex`jyAdcY?k);d@Nkm^%r(Wa1DQ2 zxL&NrGkam8MD^D9QiG2_#U+YHRp+dwTudlRD_V}lg6e*M)={`^9*tkLk0g)S`^IR!K|UyBCriswzX6w#SlWApP|^J zlNNfLm=k$Xj4SA3u_a%o$%B_jw-Jn=g(oJ9lkh@5Okjs(-6GsY#+CW|f3`MR18b6iE7 z&wPS=(A&#mHa$iG5mF^~DS)@9@_7RYx(>fqGqgAD46pHkJTsF6f7cP%VAdsk3~zcR zRI0TvRya%TdK@_a&IE>%R^=;fiMPrwej@wxw}L+iejXxKp?~Xa! zq(PV?wtU~u|l zGf@~%!7u+jX#f?lz)%YMUzGCir9A;?{+k~fLIcq7D+(=}XtU7XU8}YD_AVv8wG5&S zup+D}3IwIW*Dzw$-N8yd|Hg#=3oQckjr=pCw^TFraE)eH{Nnwc_j2EX!3uE-!fS`* znYE7jL+(4cruVmTnUP=-$nt`_Z(OZP*{&@W^SBn=iYqX>4*Y z;arEVNDbL0o6pSMF#9_WbuGoD0i9jcYghjmJ1~CVXOWuXvfK)2atoAe``~UC4U+^X zaDI7#=@~zaVAFb9eWt6mZbWkGpvJ9}eP~a|V!J#o$M6+54z4lN`K?j z^B!*u9Ye!bbZQXn4RHs--Hc@$<%({Tj0DrfUwLdUqAW3$TUI$IrB>-b{S`FSDQ#76 zVK#}9KQM!C-#iwypn+JeTj`ytWxIT z05&qRcd_Mmim-qVI+nniRY(Bu+k%4NrBhjQ`X_q1pJ=ora}`EictHs!z_9$X9(3ZW zs2}#JKnb~Vx^?}Od9htp9hg%i^dn29lb^Vy`J-q%ec2Y#D%0PPPd_oqKteNkW^*dx z?O`Xg_lD|)GPoWV#x9lS6f5f^wq$m-Dd`IjN127Ck34l3{F6Lr_1Xjla_`@bxoqb(tQBJIV`_cZ{iN3SXxhJQKOPfArT>|CROm;Ru27@}4oQsc z(NFnE(X9yc@~|pJCkqT22PdwYS?(`!YU@}vmPkS?p-PN=jfWVV^8&t#O|>%?26IrZ zUub>p_f+NCtgc6ybS%chn4DI#Z$+r?0bynYs?Ggwi0GQ1B4!7M=-z)6TA4mFwmj5Z z$>+z2r(<2#`EIS8xDly2*;z)t{NAjaOS0M;?S95Tyqrx`Gn|sCS_o$=M+falk$wS? zKcT64K_7s;6+&d@sU7L-Oi{DGXF-O+spfWm92_MpJMfY95xtdxqbdmA1Y-8auha!a zV#nsm*ZzoirCrY5^bK%%yv3P^LupCsDKhAjFK3oi);9pQQ z65Hn$_{ewSm`!^dzx2rUgnD;Tn zGcmtm-I#omJdU9n=zcAiluU6NBPEX4k-lab%c#{PtLge$;P?eu`e5(Fr%2xB$5xEgA4Djak-B`^0KfLnhi+~!Kue0~=2h+?6x`&OtvpUbYO~^E zWf4h9HgFbjHP4EcC&h_aTc4h+E100>Ei$K=Uul)xv~1M2EYPKq06+n`)*zTF(~ZPM zG>`))e;_4oQlA5~x4$3>6^#cerR>-hrGJhctwQ+un)2Y>)3}u;l2c?$S&#SZ+f0s8 z7kaH05k9khQ6TGpX*|g@@9CW7nS0)ejBIqM{Z+Yid-l`^?t;dOUM*HFf{4pi&a+~a z@dgBMel0Zx+Y}HimGrB+IujY(L2WFEq_gK`E+ts^+ew^kPDa>6Im)75&~X)<3dHE< zoO%9;+;O<(PhA#4$8@31Fl<8IutuP&J5K|?a&!3Z+6sn0F6K?+pJFDjH>f}$_imA$ zi5o1`4&r{l;_WJV8aU!cUsF}5p9JqjQR;cqtiyZ7eD$P&XHxb#_Wqk933qm@we;{* zj$IOBn1^wxVKID>T3>QSJ}q+@u+IkqSpDc5gm9R1G#APLxKVyyYXnr#EDXhsT(iZeqw zIN6L$r$EUi_mS=vAP+8^m)=OHBXYq?yD2Q}0}VmPb{~9=iXZe1|E`8rpe@SB33>-4N%Eixsr^XN4rM*)D5u%PKb_4)pL z!1)IZS%q#qKa9&}PiI>ra!(%7Y&%&V+AkXH-Zw%Wd7Ys+%9B=Z0yei6Bc6F{XE*yY zeHp*qns~QeIDD(WbR3C4H!utdQGr$u5Q@p}O{NE}yX~n8aD(PCcZpEU`rbTDSQ#%o zdiyIgtn3{dPZ1z?h@H-8zDU< zGMF$d{eu>b`02-OX~qp+;M40XzT0gG&4WU38-0|6(?fa~Wv?+V3l0m*C?z-!2N7VK zz}KFQSM66TZuo*L{tXl6%#;25F6R)xcCOAM=W#x+Idq>Ri?moNmVdi0tfNMc46K0W z@(03L2&h9D9mJW1-|ndUI1oAidN^r9;EMR;%0ICicb*$J;-+TZ$K>WHI^Ye*q1g^XaM6vbsC)>YlB6OuyaM*z>w*09>@RVPq; z1F}!6`WX=!?~d4r)ECCBe(_o!t43NgLF$6>BslxiM6~48bnuZ|m;#WU-U7H{Ym1uVQK%EWi z&o8=?p05n?wT-ST6H~j0&@PHwXZi$DSfO10Rw>4Fnsf4D)o6x_82{7_PyMQ*JQDO~ zt)QE?lO7b_YzupO+^}d2H=S=J@1l3Q-I!xUW7;eJDLhR-IvmWDnf(#YX_$rFboy8N z;bwv@8ua4B9b}s` zJIqx(Xxl3*Cjm==AyaS1%@vW$R#*aK6j1|zjKAUk>aZ*VF|K^cGB)O(I@!yAxN`du zHTYIqC;Kf$70c}%H+@@ql#qg@*;KADqKCI{(quzmi!y|NM8l{=XIPB&8(^{TC}Cn0 z6z)7Pm;R-Xb9)J1F?M=Jwo)1^s&BccvA1f{mw8RCm+UA{Ykc=P;#vn<|Mp6Yk`w7e z0PL8}*v2>S_Oy<*h*qOnYPhvKZ!lTEy=kIO7NWZi&}RZLQQ{r)kz&k zSZ;sNneh01ki``d6hBxCYpFhMCSmgDR@Kw~a*7{Oq_Q2_3<{LtkPa^egR)?>#Lx8_ zZilZc6X-*~!(lJm^D1<}LOwEbJLU|>SlM*KYk}kNOxx-ra1045cynPHhP;WVbuQ)=TQUP%ZPT6&ht~x$_lC2>x2}T9V)bZ6-OBdS{hiGfjZaMyef{O5;3i`tx!B~Gp%#pilkx3nECdj{<({ii- zHm3=VMEvWeMp-i<<&>djlgP&Vb%soz9TwCmOoFq_s`=CYK=-TD_x2Q!=yf)8Ta<$|9-Ir1ep|C5V2E)y-t6l{EI1gp8|{dy08A15C4DuAh#rQ>)r=q zVq#=Kai(+H%C}LbozTiYfXhnm)=kT#*Tf1KGfSGpWI%B;_?`RDm2r{G!Fa4jK&JoA z2FA*$c=6;ealgOy*p43z^J?hpFAQP&+)8-qG7|74+QlMHefNeB(eUZTi2Na?Gy3IPvt7S@ z{?f}}y~pQ}drewH$ENen^u;BDH@~a+tdPZP_=fy+nb+{rz2`0A-i46I_1^l*G-FnD zdRjNf?RXFXanpPYHlfm5Q0VJ4*=bvxqH}Z1G5u#iSG()iC!JelStEfafGaf#&tY_> zd`NO-wChAGpwja1Xi#T#-yovop%u$=iu1nhssog$-KZKHk<{!K+|z*0(i>_S(AOIL zA~D~*(@y>l^eSinLkDd3b)54vN#`Vc+dG-3=sV>W#7F(YO z=>1xiZrj&&UlG^mG|Q^#g=Wk@@2V=huH1F?_1(4;?{9c3Ji3K3UCufc1v20cyRI;Q zkx1h}(3_F1mZ7Xmyjmj5g}#SbUPFV>qQY@fQWh+iNI17JxZOYDSm8{T1dRa0KLQv$ zHV|@BjPxKIAqSu6!MD#FB+uGM0{0-qby=Pt*EHjdr5iIa{&T@^5{!D3Ac3?zkn8Zv8tdpZHm!#*T>LepYZeNn=XBk zmnfHZ34NdY*=)!Q69)&!{S9Tbpo)HZkob#jFhE!D??&9y#e~2oeKRi+*#E9~H==&< zV(Z#RdinBqpzKAuT@1p>`*8HbiKs`t>t5~YB~G4s`bFfn2lL?N_%nLN1c>bYFiTyB zAv89Ml!wqfloe14PtcV`*Yop{WH4xmIn^At7UM%>Y;9DxlL{SNbQI^c$JDB4T)g!B zXZ*!uIw@`qHhPLk>$@z{c~xn92VfVK>ie)R{mxBN_~mXgz0Gi{ySbp_q8kn~<;N?i zfn;qWfdR?pHj7V7mX;_b$<^#vQl-(G&Kn_zosBBw!+>CN*bY$e!(Ifd7ji3@Hou>1 z&E8lMj^_n7WjL0K2thFE;a(0X=xL-(rScJ7X>HF$26pCe90XNZD{c@>+426xv}-l`G79F;XstmGc=A?r7({ zKKN*3762FSi6{l(v?B%pxXj)?#zmo_Gy;Z2XNk6-A5MA9`ts8S!!20y_hq_iTvuK}+m*UvViN6D0m}g(Kc71On!<-0p zJkJL1Ux27hHCvMdyAvbnbxn0dEa^ zU-y)N+*b#`D_x9v7l!Yiy_<=(@`hoMjKiunrI%m}0Oh9$>RMCEN(vbd!~>@aa7~xd z?{t%Z``BntNgl~t$45n5_xSc*q0{M`{6jqN(;M$k6M`2CPglPa)%BJ*#t9&mN2_h> zYj+ba7P)8}K*5SyCut zJJmSXzKo%mLMOynj*2M8GEBk@*+SNdW(?V~Wxbf88TsAs=$!t!&%MvR|DE4ozrViE z_qROX_xtl*-mj_P(pnSnKI%RB2;ID&koOr@=%EdaWjOe8I$O}20ctsJZJgdS>gSwp zrI?f1X}-(Ypdg3Xy*|pl3W^LMWx zw7ih-i>oH(A$P)H`8nPwC?#1g;Y{DX2edueI}vcN3jwZL1n=&S=SdW}#GzjKV97|f zAN>jxdpI$%qtVXW0P8g8>_+_<^rC;sN2mVXLcGVCYdQbOfcik|Bv|Iqfk{Z3+j!w~ z^r;S{b`9(OMsVdzx1H0{OpzNpJHw!7*)5`ha;ukh#sH&)>72YgHljf7$|=9yio0Vr|p*{8L%~AG!R`bMSwKRzS8HI8w@k z7lZwj$m2>(Nvg*882dkQY^SzrasAQe4Br&M?VP^FM{mFR?+IkzGdR8@YV|+m#ve^i zN=oY9l2+gl+_IQ7CZ)A)%6RPrTEe>`y(%MIpQy6mQMfWR(~V7iITJm#WcZOiS3(@r z+uiy4T4?AM)B_`KTFs<3ISGu2eZMT$uBE$B4&9u>EqE*ay0BY?@2T;%-c*_mL|v#4C&AYD?V~BKV+|kwb?%nh{OI+@bq%wvC+aSyyqyc2?tVY=MNmMU!kGy8%OxqFi z&KNnjy0|qMYCVDrqbn10iEn_|=7xtu{9!T!HY(!(BcsUPL@#VAFwBC+A6je^NLD6< z$HJLhQBoLhX5hiC()LjN&5FXIQ+hPe&$Q|yfyVIGf@+J|j|4`57pCHKt)CL9F>P#KKy~Wl!fWVV)6tCM=AXrM|Lzdy_XI z;7M&EY9_S2Ty}I?h2$Sa>uigWaefZbmmiVeL&Hl1fZM99H#;SSqu{5cvQ|1*RE?R0 zmSusJfY9R!nyZjUc>xqCE^^p)sC<++sY@?_{6uCa&%2Mo0!&HWO2P^rPbaoKG)i7W z3lqR3?DiG7mRpG1ugo`dBE8}AMhRj85dgnC10G+cGMF96WqEp|$JST#(M3=L%5ePV zl#@nc(;_edPiglFnmgV97V{4>ZB5nvn7Wc3|iJTaXMfF1$M}N0#ehW8KP+}`#f3rY^+CVLFvYV`e zNMHH%pX?jrE^6diK}(X*1zk)xsp+5hF4ept-Tj6Pt<&+pVO9YLE1KYIF<&(c`y{pB zRmt+|e8V)IG=H0}(@ipskE_?BT(#4bY4TBi;=NcV-iK8-0B}XghSt2{0jI;)Aq zIJmJ>Gr{iEdN@i8*az!^X~-*eJnt&t9lGQ6_ns>Q+rp!B0$z{ZJF;43JM4ZiQVQ{& zpO)RC$@R{&E_e#L2l(8#c&Q=w$Y`*fA&wh5t@!ZaLmoP-$w1cL+@c1LB;PNa zZ{L;jvk)G(5VHI*`~8Q^?pdAXEz^?3MdtcA3y&zTTw%S#&n7vq3ZMLtu9Ob02_14GK6sSOsu$oNe}embU!y1d4`QoTsk- z0DkfF>$YeDu+}L9IX8Vb}tTwR_rb~HL zcXP;_pUJC`p2pq?e^^cQZTWu7>_o#im1F|}#m)fH^4K$LX2%IZ*MGoh_sTES&YbgG z*3NlLKA31_X@wZEvTh-bn)JmV%7#o}A{u)@OfSs zD3Ob7mYD5VVvdgQN`43M<8x#>$!dwRknZ5I~L<+fyb%b#vo=0F)^Y;DXwQw2wj}M z?(FJK=ZF-^Xxk7()UPJ|SoP7rkvP)ly#=YB_*J<-Zm`z>Eg}7{Z4Lfcvr}dI34$|5 WJX+4~X1*5!*XdK|&5ALuQU3yB)tYwz diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761669.en.png deleted file mode 100644 index 6f56866e06cff7a0781bd3d7fab75acd081e36a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12782 zcmeHucTf}2+b#l1Q>q9`?;WH_kzaQWTuo4GT0?)~TfeRpQ}-LpIUzRx^o=RM~N0dZFME7)c zG>wUfZUJx3E6MNN953F8zqv8Dz{c9@L{)>V>o*NjSGDJAL_{@7R0R9mH*JcyI#ysJ zBI@@4?6(*N^*#_0Nk-^us+k7ZZbKp8Y_;E&UXkmX2_sDL+Hs-nMvPzjRUb&}(lJX$ zz{2*!JpiKo$+TpS%pXm0l4Yb0h#uw)VoIxdCl5^R-3Dg{t6C5Ji7O}f1vwU$u!Q&9 zwG$`xGfJ0=P~gdWD-^ZTx(oGIM3onv%(c$BZh}J_ck$3iayu+TnJ})QZv0UmAKu^@ zT)B)Io+HM{$e7As>$ocI($ss*226LFJ4)z|UETB8kH1^5b)tx${I@f5NG9-5$%e12Qu(I=yrkX+KdlOB>5d!bV#Lg1hMz z>*e3XD7#Am!Nnjb5Ef~0LA4N03@GFPG=NM3xqWKAnCnhpnS|#AtSSz)>PtuuU3Xkd z0vBY*D{borE3JMaBXytfnVcrWztDe)i;GLCf(tMt^BUTE>Wwbtry&L1l4xRkjKeWwvZ6ad90Mn!Qj8X+lmVfz@aPMJb z07h!;o>hH7S$b4_T86*_aak&)r4vrV@-=%qH$h{MtB!qDo|Xq7o!fmng;;TGe+DW@2k&^;L~kyIT5eZv`kNn zA7Gra1AFEP^BD>19|s{4wHLI$RodSh8Z=Rvb(mwNw7z=Jd4&c!h*Q_na>n*GLCL7I z{he`1yVBeL2ILlaA2c%0)vKTVNTr~DcmM0>atm*4p+{y1y&~1g|D^jmXjBZKzU|Ne)+Ffm+3EmH$fUn{ z;Tr1Qcn#O@-yBkQw++2~2S(?P^~W*@^r)Otgf5e%IX4l| zue~fXze4MRgZs|7Nd`u|3>Cw?W?8q7i3Z$OC2bs8{qP2{2V2v1nwq7Cx!ev<-D0;0 zc~@?n-zutQqmhvAt=Yz*t+}7+Jq%JSY1TZ(SpS|J1@ISd!=@xw5$9bhi42D8(HU>Isc)liW0 zF(|It{d|Ds())qcYqpmuH$2oI4Cmar`xNrI!jN`YQr~iQ{>+g3%NPTH28jfUmE0hi zzvrGN*;0qI3^`qeD!F)R0afkm5$+%LhEXRP!+B__8Y$Rk-oT|9cZ{4(FNbYi_XQF0 z9BL$j3lvZT}cXi2e3DwT@gLrl4u z`=ye(?U_`px=OWXrs`rJrlN|QW2kkRO><|8rhV=wF2?GlfCLw{u01f%w=;T~j`&Mb z=*VIns#MuOeMPYsd2T|yX!$lJ9~PXt2M zBmE8s6=RF{IbCy+v5{=$hykCxiXPCXVVAZRS8_pKn}<4C6c{Ch z)IUces+&h`AbeP1@a3p_JP`vqLurfCuJyMMJ>=CSi;H(r;-rO3eMiDeq>H~cp&UH) zkp@k#3)4>s=`@y}gw+?pT%c*V^MAxBq~Y z()~OHQk-;JQDKVZkQQ&~0(s657?So14SpdTe$;X62?Jej(^cU04xg=MsTuOs zJABF09qn-WvpK!Be~hlL;Oe3LM*Qz|^LLcj%)uuXtqz|(q)zbl8A$5?YOtL8!3^joL>W<_e2}}s) zrpK-WW7xQd6s`$w-~p$T=^rjts11FW@-YoNvTY1OfEYDY^YO}p3nWo0L6d*&t8!(sV;Dj> zUjE7=zj9re_HGDW|DaI+bqJy8H_i==t%A9}`0zyc>#JDb6~k4(<}t^d8D=@G zm46nu10iA_jeWuo-uVh+>gJfq9EQA{&D{n@;Lr76)_F9pMbhTpwI1@Rkle|7(l_D6 zYEtbv+l7vG7cPJU?BzX05U#=N)T2a@#|n~=(O$0;ug37Y^esy_DIY0_GGLW1@H|of zwXIK;)z2{VxR&w`B?Erf*oP_+cBuIG(fFbt~vD??46tTH0HEHV`k?E=1 zy4y~LIpL9Z9fbmePuMCPA^HW3_{yyQOZ5Bf%Xh<9=cfA{Ko4aX`!6l1snP736lLaQzckd;MgfvL?hnDwq%t;$28u2yjdT zsI|1HS7{)vZI!*1p+iCk?Tf41qz&)$gTyvt$>MowBb6EFIkI48#0A8h+qCRH&oz zt!n&3<~tBv4@0Eio8J4}`By{1AIWvEbjW(ZJ3L8&>JC!j>~@zQn{jjA7r^6MC7X}> zrZ54W1L7cEiC7b2$#&OcCja+;FHT&RuCswORsWcRl>$5NVJ|R4p-Aynj+$1fkptmo zaY&&~>*E8hgL#hQOo~Q!xof{8jR<`t{VOX-x7I_p`^33*uKi<43*Pf8XUr>peKTFh zP9uq_0!yN^u-Bkc4G73Lzp*(hba9Ub7gt8M?oB=I1G}d$?1>}_^LI$t;C;H-9XavI zFc#lR4R=kI37i?!OyL>2vZ{;uu$NfK3JI^w06@kc>IgDfwk^wvN&iIo^d4>tGiel& z5`VkpQ!&Jc3rYuh@f+s67XP^=1r|d70A_i93OTC4UhHpHiOgktMgtC}oJ01GHrG_I zy;T4nSH8Y^nT-cFHPs4PU6Zu;dg|zA8iXu{k+{%0C({>jw7fR$n!4p_ANz!C4VvICl6H$w+jMJfkN<+>0Qt6- zSt}*(Sjb;EH92{>_pT|-b*J_houP*c5POFI6LN4U0L*#?T9@;#-*@KV2Tn!2ngU`D z{Psin*G zc=)-~STg{i+-dLQ{-@6VHol`RhY>gx3iQ(w6sOu$G{+uU2%BXyJh;0tVb4K@oq7M~ zml|11EPWmL#sTF61!!_s~c?U^yTw6|;6Y}|p0g0r%n#JG2eFcyfB=G4v+)yu!d z*$13i-v0g7dvt+|2S^)hGY|&2_-x3>-L6MnjKRiQq^g<+Xp!$m^p3M`I@apP>cRys znfC{F&@nWFeG=2f$UnfTC}^M=2F}}q2(_mOtr@_^24n!vWFrp0vtfG}h>5i>&^xsi z`xD*~pB{1w1QdQ^eGZWt%!QX~@GLpKAbv+=6@r@|OJN{vKZVpf>0;nC*NseMX`)<9 zPIywG@4gEC?K&6+d|&m+ST(CXhsLL<$3EewoZqw?nJS?ny6mV^zn#X=Y=TmgUm1w2 zlve_SIBJYwg&2ZPKA!DuU*dfAa{_hE?p5}xyc-gdUTnA$4AnzYk4-dPv|SUv{LFp9 zHGVlwu?&_wmEL@7i=t62<4^@X~VPh}inouzp353F6y?kkx zD|vlG1w7!}VG86pt99)b{4g=r1g^NXPlexGPMiIFo>#JoI$i2PA087Qs=Ai;90c_Z zW?nxn84BM2ZQ^J3)RI{Ybvrf)*`$&Xgj}%l{p2feidA3*$3-XgbQKHOcp0lH9v6Y6 z{S=k+tz|O--jGA4IRRjPT>hzAKi$t>?DY-q0cT7Tpu0;R8ks6MII>hk2pN{Q7X;xPkn_t)kt% z)F)J+g&*VB(e9@lqL~0SLxX&R(MOB?G1vaXbhLqavZM7-mKDg-!?sy~kj^YxJwNH) z5Q1%jEM8oOuwHa@QiQuKkxIfZSNaArK^IT(yL$-_>6#BN4HHr;3_k^NVjeWuB zqr@WBXe4_jtI1OFMJA0BHkM7qQFjX;A^@tDhD~xkzk^r}MU@Nz&iZ!PwmQyKIml&O z0_F{x%rMeq{KG>F?|*nMk^W%g7#7R!hy!G*p3!GYB&o%5_AEEfZ&2JvO$_q#QQUWm zl6-IYGrK$D@Y@CnL~RdcHUIvI!DW-NI{Ry$U|$-L_4D;N&kk+sOpWZh>kkx43QGW= zST$g6>Qq~L2hOaL1_4V8J6n5$V61A!C6b*2IL4vOsa3g5k7>#>> z=0!~A<(^F){@gq3MmwOQn^GWD9VG!>RiHlU}@JQe}9++I!tvL@6|fK)%;HhDc^XtJ&r5L8$1qa z1D?i9ev6f-rCC~H1}nTabCIxg!zu4O`RD0DA;BY*y`EkRmg(6X4QP$eP*Eyh{LzI! z#4WAJN6}x|@s38rZoo`m!?xnUgr{OZPHeWn`?+=h`MvD^neUqe8&5X-d(GVY(;i9> zU>YyAfwn;cHcsZ&#@72-y#uUCMZbv%S4EkG)A+`BnY0yT=1JBQbC6*ZO}DBg+2L2) zZ^JF8%|mAk50wtAQO+U9)z=TEwLl5csLcs)-fKFtB{dsXM{%+nEvm@kW@T)Z0pPN3 z@RG}x^}a{?!;6HD6}E`CJ*bd?PBT12tR3%Ow;fgm#E}+vcRtX0mzo)Ja+kZKHc}aI zXIXBl?}LQ|D!d2o`Acfww+_F57A|jr0PWF)w1fB!JAX?G`ILW2c)m^v`Apg?GJKCk zZtTq`ix|$z?@9eUqfW*Vhd06!E(&#CIqkFDIG`6K^egy`vaaPsSK|Hi>>Ubo%H7aW zTU+mDx45&^U#u$lyamQ}<>249UB*03%0Qpw7dZ$97C8nvdPremN0U3b04_K{O*xn% z$xM(zP&{7El2e>^DyumuV-D1k7GnZuBlVO3=DbE;6BgheS5unY=KMNo>B{@M;6s|Z zP!86_>$!y|5?4dOjPJ+3d9ln+BC!aGvHwJgMPQ_vs^j8%*V3z!1vKdeNkxoweh{aU z_EwU_(60;As&}0#Z)V!v;Fk(8 zAzoqp!fSNK8M|w?sZ8~5^$1qO#~BZRC|l^JJ^1I>chJPSF!o5 zxRgTkF+;vWd^{EKKi%X4tc;0Q^aDbYJ9*<$IaS!+FZECtqoq90=SKXc?Q0`#*P_|Z z?8rl~;^Sk?zBe6lqra^`g490Vf6OHrwp5#u*QqV?g4Rv#Gr=zQb|=~IYkN{|gQyc} zwOUmgn6p~Ow+`SK*B;50&QheH{mtXw?#}4r2Y8{e?D)?1u0y*UHQa7*o#%Sep-F*}AhX6Zt%?JepD|os*khRzlq@`DikXY zY6Wnkb4=;@HE&|ibbS*5KGO@JG==z9~6ARDD{FbxBkERf2UyRQHG40@xJbjsA47vnP_YB zDdP6Lp`6GFU-@5Nu~sB{NXjU6Ox+z-+g96NuFqB0i}i#vn|;%bR7~F zHIMXh2`*Xg(N*-}qFFWoZpO0E`U5!@+D^O*j#z&$_{`}I3Tg}Zmfd(%z>~)Q$&2^L zj2-W0dR?>Ko>H1Syh|5$j|RWR>JQv?EBd(6Mt>>DyE~8cfAI8{9`eb*o-sZE;VU<= zF>8sjY}ZlOF?dAQi{PjK(HU>>ZpjWUJ7Wb3JdRWu^D!4Y*7wb?^L$#>h~B`ONjvD8 z5C5SdOFSAu(*--{#U;`*tgCO?WcaYR*e)z|y=;b`JY&`CbX|TsyVEK43M+VsP_|S| z^B^cI&d=5!aLEK=50JR-?(BZC^+H4>qt}VTeT6uDy4A=9GXu!ZNC%kK);klf$cQ_#dSqf} zVg!aL#xv76HCheQ5!?Hc5g6%RZB;kaBm$d8@NIa^k8L|DlEj3;>)4W_6dLHz&o4EV zp(pbT2S1*b+ z^D$O)qPp$qpk&iyY6IiA?Q_cQ&=j6XRWk$HHSx7m=xH|qzo-{D))yIylUEQ=>W$#? zuvod{=xnP4w;ZjJ`FPITyuVGIdbU5?zVO9gindwZvnQ2__H0Vsz?h?;IIm`AZ4n7s_$0F|vF^kJ>b4?f~Cp{AC_@ z;)OkMoiap|nbMJ7ixrrDyB$X|ydq~EzBrmPicx`yX=x)S1W|Hct6s!Ae$4~ zvwBC_l-@iH4hk`VXKPwGhYRGX4h_AGAw0IL-0bJnzSibJ5|Y zzmSxr&ASk(f1tDCTnvhAmMMgsBNgDDuK<~GVsdrQ`Zikmqwr+F)Cu$3jgIM|A0@v3 zRh(stZuzjgfKn^3u#vFkEl?#FJMm1s1Ep5>Ay;I30<~zI+xm@)J^$}27-^Tpgm8`Rz(hgyr?Cv)!XBL>=3Q&%g6-krh7J# z$PnN(y0(;W1?lWVmiI?5*zS3dX>`zfOAd z=Zt-oPi~&;6CZ}GW5^oLwC>&!IIv>bcG86oZp~U{h4!^N1~X48>fNY**fmvkI{>DH z_cV5~@P3pDC$HRn@i6|3AwU$?uNd)?mg2D6t5#w~-4PXQM4t_#rh4f37xnrEF>h-R z4c2H)_`F0ia$D1a4qP-9&Oz<=VwG}==izKH^5NIc)bpGTqO3JOwdeKbERrwxN5UOD zLDL-J$GqC&;>Wl1Rx%2e_R$P7T(Nv=&R^SUrVSI_t~3WP|1$3Rn66l=cG_f0Od$H* zj;Hno(N)+?T|N1m0=6O50?!ESScI}RP)ci&w%y;R1@bmwSR#H9jeOuJM0U3!9yRK< zmflUUCv4slOb}@r3%tdiD81SwEAwRI!^W- z7mA7VPNW(>=9jSG)ODz!rak4Gu}_D_Qzr3`pQ&DHE2nT_q&shc;^pZ>!(W}|)`@`a zxCn++QXT?P1CnFtV2?v9!T3wG{Gvu2FMls$n9)NI^)gXpos6wSL1)%RyyTktwReFm z;L$}!;tQN9H>P@QJ6LE)chPYP_(vj<@77s*AL2_qZA72NmIj>$oadAiopSS{I#g9r zgcYis-}$xIoC8cqhaQH}LH!Z!&_dqNH<>Eu_<5XgX7FkE(-MirFj&+dcXThvDvpp& zYQ~v-mtX0S3iZ*X!z&9Y^7yOLD*JWN15(8X|`24e2I*JR?rfSFVpJn%TWTU zCfMkYFag)FAE4SpS+UWsz7e}I{zi25KmDF6u?}nkR4e-vFDVyA1GKq~_SUf?das*^ z*)(D(LIh!oK6merN7^t&bI)+_Nf1*^m_5HV%%hiqb z;lBgEem-C(Jff#@`sgA4k$H)2IPmO~yDmmrt@>KRhvheaO;OVR)34rZ!=ns_L3t78-apyzpbc4ob!3lKNZRvTi1|2s>e!!gK?VukQ6o;vME1+amvb%yKs#IP)A?%7P`WALhRWRWJ2LZ_8dW+H z+UY$J{Y+Ig=N*{&gU>`}b#XI{L~0WTPxFQmgDl;~^Kk@7F3C5IaT_=PP!+};(Q zfW^~sm8Tn#x#hIFtXZ2Bpxl!-O(NGhJ$ssgOK%%QLgEZN2hPN03!iF$m2t&sUpyln zyZXI(bvug>Kwb?L!f->a)eGyM*p=#P=YObmdd56`8P5k~>U{9ay$D$b=q*7(Iub^s zjK9G?-F6FlmlT2@Sr^GQn`3E=PxCg43*G69hL{T8AmLLK7y>6p`*kmK341l_hca(? zb>bVIt$3)82T?5BAP~K6l+DRCwF3ADt|@v$ec4310#%r;0u{@Z73Gs0m~>jd=)ih+ z0l-(mxmI?en@=(->X^--+8E~x8;~iN8hOePt7sK)eKTaFvpXujGkSkziA3G^mA%u@ z-~*X5n2OdS|2aT!yI?q9L|EoUKp9(UVUM;ZZG)Hw^DrNJ6>KudNb9@!udyzQ%Cz4^ zR-k6!&x2{fE<`suTLzl)=NfDPBz}dTYO>8Kw%0^y8J#|GSWn3NZ=370Y5Kymf*1<%vpcyHa&ofbcZj!{AQe5& zA+ucHR~xlNee&WUy|`k4$_u6h-Q}<=(OA=|ul*no7Azy4o7n8>Jnwb?;Rr(w)$w8L{;K^Z#-C~B^k(AB_$4l zR~+`=k>!HAPxtm7kM|^7XRMYx{9>AUkHNvVS~O5~#&`c?q2JzY;oEiahITtfQZ+w>yep$Ui4}gH5pKae*R$u2Rn}d&4$_sZUK(*MR`*+@w^F(v)D-0= zI^!NEXk2du%Xcno7_9gdD3?_GD)wu8bZ~<`xUSx|$OpYHwdsvct2F2oJ78OiYD=%( zt@1Y3mkEe0LR1Ui^UiOQB8yco*o%qrp)J5F6y{^gjASCHR|IZw|a9|wvS4(ch38sApv|(^V47C zrVlC^d6u|5yA5eLuF!K(SAr}#Pc3yV65~ZO4#S%`K)lj{R+HZgEQ49T?qT&Cf@R}p zr_v9Z?1n8iL>LRSN$fpa)r9nL^8-oc(jy-%tvr~o###^7DZG=Pf zNuDl_bGYT4*mweZ=S3~Pl3>QC@IuE6=7A(%U`nK>TkOHmAs+G@|DPI;?rd zRz*YzqhOnk;5yY>E(0PgBPG}~{nw~E+d^b}N(S_AK4pr3Jk`bwTPAO*u9W+@r$r>2 zgG%%ue=F{*(AY+ZY9Y^qNBkX!S;>D znhv$B?VZI4vR{j$X)H8~wZJtd{<}JtLg){=@o}{NUx4v7|LP8T;^=5)e|^2vdQKQk za^L43U(be@V-@o-!$W(v6~g&UvZVR?_a1hY46qw;3b@MMHnaHvGNW9CLkf_w({u7y zeaJIap>qrG@-MS&@9e=uC@EkYNTsg|@6YbJ3cVUFZJ zH-w&)hFyMCj^>UU9F~|TGpb@RM!Y2}U}3<&oLC+fWny+cV)W@#Aj{`y#V^q7Il*wr zjTM(M9_KlXw6i|O2s)|f3&<7L={1S!%f|M^RnI+TfdhwRBv{h@SZ4iK8%Ydt{VhXWBl)wxm@t7&AK_qIuSHBywoBTC6p$GK zXL^oB!ICxxB@ub=toJ*3bxo(WIkNSelb!^H4x2wpBH#`l&|Y*MNE|$xe)~MqL%f*g z&(54S6c2{}T|GbV&l|*~L+@$77p(MZpsfWz%PA2pkRWNfx8XjaT*$b-CNNq_@ zk8P3ee%gMajsy$+TfZuKnQTtLi>2oT@5@$($4STTdUri=JCD~cK#k{GtBu6T9Nv>y zaj*!mQfOcauGn&P+!Q-*mM%{an~HJh`n6Lv-#c?Pp$5xavYoS0<5As&^ClT)gt|xfPVZHs&*7_k9j`URe0NTQ_(9&bemyjg%S| z5}T*`R{~oi!(Q_=LU$*CB{V7oE@LP;aq$ZIo}*$n!l$N67|#O@*%_65xKOx1F4+mr zIyZUolUZWc`fIx2q}$yt|Cb`9Fc7h~+$XA89}nYbjXg>1B-bHuIi@=Wk01{0W`-E! zwYt@RcQbUqn$dqdgQM?9h#!$&mkUTwqPfIk?rVvbg|_xMn$9|#Zn~!e`bZgg_^CSu z8oDx?Kt1|;fQEwGc!O@Iwq`e(-2se=NBR;CSjh3iFOS@3%N33>t1{abpMH~^dtQ#U zG`y5}QB}fLlRH6q>tb^tQL*MNsH}r4t9s3nV%CjyB%_=VAkTqjg?!Z2x$0Zn+fk2B`(BlZNGZB9l>z5F9s9iW(rJ33~{L!aUU?L3AsE>@DcQ7#M z{Vgy}Mt~Jnq)AhIFtY zUc@h@%|{2t2M>fPn|6DmWva`LaUb39KuzYju6X@V=P4n*3cc;?Y>w&MI(G+O(!TGQ z;(LJk=O3dV&_TLNnN0b4*#6}GR@e(urw<7olsWK*uPO24;c)_oi&M4!*24m54B4|4 z023s_FmsrAy|<<~9UX8DOOluHYpZ$g%`=eux7$^+`$GK1VQlaxFo!|xRQbk-^Sda} zMjQ@A@1pgq$3`3FZ_3!Ha>e`4LJ^E8J2L>uXz%wicg8**e9^MKTz4-en-?_r*;At7 znarKza=5;xOye}hT!xf7#~3EWtrN~BMx>C~knu7SE|5EdeK?#8Nde5>td7BgkWa#b t5Mp09kmw|%=S`tPAqAjKmvDCdv@p9ZvSu&y<{u3rT`fb+Ds{W?{{d6oF3SJ_ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761671.en.png deleted file mode 100644 index d2b933e6253bd512ad167e65f14308fdff73b3d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0%}P_K~#8N?b%OD z8$lQb@O%Nkk$BLHmmXXfJsD5NqR^sf5puM)Nrl#nf_SjSs+WW+q7V&Mij)=_FkySJ z2T{yn2~h+|54~*PIOAmUZbIE`88gHC@DO%p|FA#iuvs>eFF0~D`&qYi^}h;NL)U+l zwt_s!9Fxvyo6L&LWV9O)inU}Xnj7J#QpdMA11ebk*gopPpDaC8W9% z(pT~Dkc*CyODn0agbZDykb9ZK&aPhgMf2t$nb7k*zta$;5V9br#z^t-KtdMTX~IhS zg)A`74lo26iF81jRvxkgOhAeXB$_9rx&}j@<a+3E4v_>0-ZQaXRm=gmQ$y`QkH zfmr-aB3W&GbilGFR_~npA<_2?amVjQ`iABTV(69%FQa`U3)O9bMCZ0I5^lF)wx{jE zncWH>d0r(oY1@;j>SlM(6Y(oYKcsiM8ISf`md#>W{n7a5>D?ZKkSvv=lgs6tVr@wc zL^cW`>#qMOC1jI`w-8XVKdS;M4P%ARskJcej*7hcrsJ)C`T%5(7hbcS<)XNP~0?Fd)sq03s!Q z#^3v%cfD(!v;J$HPv^t4<9_zOpKIT1KlgR*{aHgzk?=9~V+;%oLS-d+Ees4yGj!V% z4-;M9dy?^?s|W5{in18hKb|Ae9V{CekPHS!Z7lxHJ8X3S(FY|1cMJ@o-oMX-0hdxs z3=G;UWqBDLFVlmp+lr!j-GS@CEq%MvDkoeg_H~y>kyBqwOU+@jOpmabBc2qFhA}V=ohNT{uanPTb$`*frt!ki;b_PE{KW0Bb0_mCyifev z!1w6L^mdMK6zP`A=Q|m)>Bfst6I;@2 z((<{PB_YdYkH@H|DNPoiikI3KyUvL3Z)>_g`0NZLvxvRg&wflB5og~WN!=$lZhu7V zOo3m5n*H}Wv^^N$%0*-195k41iA<1(&y)@$gXAfC``+dHPL%(0BRob?T^Uj>w zVZSfe=tvYIn_N0!l_!unXjmztryKVTvMb_=Fc9;6^4F89d46A|8 z`i4ext`ENR{LYWhA2dT6TTy=&6~~<=ysm<4UU{<+3F9uG1H$OVf+W5km`t~@E#NM% z%of*gG-n&0sXhNd)N&w3AP2_s{kYU#?5h2RxTUj#!)D;<_G}Td{?Yxb)9Sm0J=CAA z5~-WPX|Cem^|5Bk;^&!md`qTncY}=c-I>GV62tlM`WcVX)Av4Z2g8kID@%RLo!)1A zW9_Y(3?^LdwW(hoY8oo^S+|KyHMCigg>!g5m+NcWD#uY0%?TzPggH~$JVWqKMFc#) z`rx~Bu-MyuvLcm_`XkhRaiAaIc_8M>f5Hf0$(iPW3`Lpv2B_=di#72+h3_`ERy92`Althz>mbp0 z*vpJ#PDw9Jp^@y_YGu5L_!VNEuU|PqFJ{!hJ~KMhIL6PWHMbrQA5K0SOuoFBl<+6z z+%eDeo<4%M$Tgw7OYDzM$F#X+<~){c4u-<3#cz&NR?v`V&HPT-kFo<;)ND%K84jj& z*x_eNXMNsoF$!XI(}!8>*b5r<@^78qFDcD=1APxQy^{jAYpahUMERpSy*7>m#suKU zMf*b84op?L@Z&xjb*X7R){40XO#_NO_j#9&8TWJa{v|wI>G00aj`b@B)mrOlbH6tk zXjRmc05d*#)+P(uq&Q{s;SXK_-IeoW8#DDm%@V z;B2At2^rIB?;ENi(b#4iy8B--C6_y){;OhY4%YbVT;4V#@!Rnz+k96zkAD<%y?sAo zt+JlcUv4Pd8d7HmpUkP$QsrbT&f2nbc-at|j>Y!HQ267aFjq>_hOrbKJO9J6`K7*e z`eEK%4Pb_F$7F5AH_;Kjr1%Lk-5xRT8iyhBbQ02)KDDv}-M1C+)LVH-GvrFpW?mD#LpuR3GZu*NyWTRRj$6#(=?7+ zIf1%e!w7n`ws6DWPa_60FH17|U$?nr0TPrW51~sUPT)fNnJJ<61kgyf1^7*0Xgch4 zU5OZPEgM!;x8+%z7*dq}`CN!GO2AI@HNeP_~Lh>RoC254}Qmf&Fl{i5g{s%d_CP-IT^3Urw-T zj4M17-K+2d{to$*1a4 z29S+|g1#-(X~xaKbog16K-%k6G6Z4;xpe9~;6N`nw<=mq*hr3i42nNd{EVD`8EqEY z5*%!($~pfEw$h30Qp`_ot*k;e|HxEi#do~yWV9;Ujtx|7;~IkYdkiZ}=`o>HL>yjQ zpwrA3>CmLQ0(k8sJ2yML+lEj@CSIUe6;<9Y!&&`uv8tZDn68*yk+(XBWuBR~qM@Mc z*KJTY*YXby#;fPilVu|A1)`QGL9cx*ZQgW4&K0Jea+)28wc~_V&QPme_h-{JE@;e3 zkV2Dm?+k|Nl5)Nub^1$mI*(gb8`SyauYO$zT=NlkT|wxsKdpXGMyF=}S359J;L*Y* zZH}d~yC*o)B`YD#!QIL`P>~+Q=`_H}|JnbMXWC!>BJ#aTKp{>M=d$d0 zeC<34H7EYBw4cq~Bn5gDaHH6~LUkTN06)%+hEV=>pWYAp=W9)w zfYqDjTbDaKuVeocs++7?)$c}JHz9&sH0qg?IP_vy+1Jh;L*{h<^#LSG>HH|r>u4^x zK$qT!U%~sIsCv6@gJyj7{z}e9;%I^j zw|%^byb!YPcQ8M`^2c!@o$L1Uz{FDV@vQgUk}=3~!0E+*0O;BB<6vp_H=bGmLFW9_h&~< z8x=?XQBBCwdPcMk%gX5dRmSCaTu=jD*vV;1@ zp1}sMbyfN;-CGEDUlNr8a)kO0Q_p!52=>i(IIC-q5!tVzL)@fkP}cWxx@l7r98ELf zpSpcQrK;gd7_|Eib3tKtPG@g3jS&HB$@XFM15?v0S-3SO-9C3*0*b$`^lBW~Es(ux zXTcS`7ajm<@bhBw-3d&S!Q(C^sHj*N-&dAAHO94(DlEF34}xm>e4;A;drGqNeV%78 z=iBO8!Zn+>nb-O<=@m}A+-shE^K@2#E`L)nP3)mGHkhfGJEhUpSC7|bOS$a-h)f1X z)nlnX?c2#{*}tJy>$?kSjO-%U z{WMc;ngnZ+p-Puf$j{RRPRCu{$fvyFA>HY>>KE_x2HTIaYGaGmNu$)iwJim2M${L4 zI$w0;MU1S)X;VT$lHBDI6soaaT`f&>pctS(l>+z0GCLlHi9jZ@tWd6ELdKJz>usfg zuCD)Pky>uRv1zrF59UtPS+p(Dy41D zw;2j=Yu4)Gv}Ff-(q1j4%EuV030WE>>k(|St2rAk7E$Ia%D;S3R?fO15F{cW2Ox8f z8hfy&UEsgw!7A%1B5F8_M>3_-_{@J#H{0HoxuubGde(3xW)PP8Y)(kairyrWOLc_X zT9{sqi6lvf5omqP54C@u8wMJ)6ZXL-E@ppg6qf5i?M^CH62^LI>0FSIpKlcWPA7NG za9<6`FUMxm(ypb+r!CXG=FFjhXeI#@lO{g?5mTh;8veRNxSwKJl#}p!TG)vB(=u z#VMOD?ysj6Q<~bRU1i8oJcp81W%=zljAz^=w`o8qGv@AZ+M=RUj@CY}XFfqIJsHjt zRvHfrW%&}96^2z5JmcQs{?~f4*FPv(KY_|#w}`Vo+4nB>VoMkSv{XLiwZLnW0cx|m zrs3@ttHHjpfx-$jrgSj`L)_$?$S%7Y?4vDNowC3Vf8;RWJZq4J?5(Sb5IO7E5K(TG z(Hwre*$IjkRT6qd`^xVgEbcln4f0e^3rlw0YGCCLw5q=6KU8Lo4Pl6Rgpg$4`bgGj z&BD7X-&IedkQ2$uBWY9dB#LlS!(6w#iiL@>yqatSM|R-mdczQ+l?N}1)GkY06c(gd zQfdy%KU|8)3pey9KmZ9Sop*s7T8$79Tj9$zdsebq6mt)?cct|Qdy!U0{lU|Thc5>U zdY}r3(!|SVShcTwc$`Z#p9XF@ZgWG)MCSdwkEqmK4$eWU$>uAi*DC(@xzIFGu4-*( zh54J24?>yL>W4Ku78M?|A6iof6WD6X`&jalOc`~t8>MS?p`pDq5~qKT`>cV#!n|0u ztDILtLVozlk027+Y< zNCmmcDlm-b=D{OCSt?^=DG46cOWzYt*HXfy3B3zdD+!nuXTg?A=*m;h4Dx)*%K+{~ zr46d7t=uV7Vt{Nb+q;slG@n!~8(%@77O~^^+|u9<%F#*e;8&(BK3=swKY!-EnG5`Z z%wsKkQ(`oM1wVc-4Ms8C{Io^#_Hj8M-vrB9>$&mA^a@3IiT2B&C;z1oc06R&r5v0@ zD+kN;BlG{Ad}u{)BpYF7Jr}nD0pZxr&B|-Q_Bg+ zGy{(s$ETT*zD_WSswJw2FtAm5FY#*%K83p;3Gbnlb_4==hRoEGjU)+XbNX2RM8Ty+ z_u=#`N@W34z{TUy4_A{#k#C8J^|Z!yA13C$j6eNl)mz|c zS>j=bT^+f6U;iA?#fB*itC|Xo>o7qu5gBXY*gEQV{6Y36 zR|B7JJUM;7m7*dG7u~kJ_Gvv_VPGLr3UaHL^TW{~Ax*t%L^LsZX6N6ah(O@H;)&6K`*or0@FA-f7f+SBxniKZ^jmf%?Q%*pnk+un{1Z z?qs=+)#;RY3yw|^WLI83@2M<8A{r>CTR=-RkOA1*SX~|zLS^f*zAW6NOelh>39H~puN%Ofm&Go6uOD28QPY^+`^)b) z*6$HYhj~OyglT6lCLG4o?2$mM;+p2;ZRdg8%g;D0ku>u;vb5h&X}EW1;Yko1ujHW$ zsKV`yb?yuOP86;orWQ17cv@KHmRq^wPLzV2N_k;7%l@%!JGI1K+PUEGheHbQ42S*= zTZDma|3wLG?ri32g5)JD|M6&AK50C5rNvaX&t?#-Mn(t4vi=d2PHANR`AwNQXZcr!rN&`I(@?Xj;#m2lwD;m$dO06 zi7wbcrQ1pZW0Z=3T3E9!+J!))gRt@1Z{QdOa`~d-y}}Z@h#PSsfC~w0RcofG2dRhA zMp}i_#OIjG+C{irV;<|n*L$=vX#Au(4aC7I;0Jt7%M-Ir>G?c5tY6${b#X;v8l2x$ z#XgTTm*ds7DBXGzD#~1xy0awvw9@vKVG5u$WF;g$#=kmT>sbmHjpIwLN{x!#b=C4d znF}!I0~2t_-EY3xCxZ{4TOuUb6~}im5BShBavG_*dYp*b;?+3;MDzkp z<$e@K`kkIub1;a0s+>sVVLIK+dY!#TV-696u7x{35!2V%qROl7AB-&m1uH!At>vD1 zTH&+>jC?!_5RLJp$ia<5*`5pAv4$GW&YNKy7Qm2DrRhr+JAx!RM}JI3+^IH^M#&ps zTHJ64ORgy|5X1*|=+hZ*4rTqWmA~T+E6>Z7Yn(~q4Nb()6SA|?{|!YdsC*ExCok<( zss$34&9yb!a>%Ne>26tHJm2{_jFM8!0>sAGmRL}oK4%+pIup{_n1}W%bgE%u=mn#^ z93682V->sz$I|ZKQW;c#lP{k%SX{7a9D3|2;%;Y_3;UPpzm5w3(f{CgtI6<@rf$5& z^IJ~2R~g8zFT~xxiIn3u-4~xtZia6#g$H6J;>g=s;{fd~=mV?YZVoc}h(&^H+j<}Y zcAwE)ajDM(#dg&(o^ZI8r1ijoyON`$kJOD=wH`7XCdcijwi?*I=RMa@d&7U{d!ETf z?Jw*>hcCKQSHmCkFl4|$GA8IyReG62td0fWV|>Q$kGZ0hy!3#6_zQ=phGoPPsX+8>Xu4k7(M2@61)JhRO{40ep_GY=T@~F**JkoYHxXS_KJ)TCw#uSHL(;4^Dn+HRKrP6Ke=|mC!Z_GB1+yb_@9U5Kd*mOS|b@J zBi*W0YBmr?cJ(^8{9VpDmd>UQQ}D?`xfWX#`_p#DQ9@k|<3d#`K`E&-FVAZYnkYWm z&q`7ZpPK|WzKYw+UxuaAsQ9ifKg%e+dMbxV;nZ9;Q`96=QIL@9LChT}=HdXi7v5f! zZEPgvJ+>pis>ShEaC*%2MDtUGN{Xr?jmAZ-FiAYzc8QN1-&DlZn179$W>!~AdyyzN zyHnPpw2rKcx!0n6knt)zV}gk|ci(@$cWt*DlIRbDP>Et+VQE!KXv_VQQ7N>rFz%G~ z6gIH=xm?b*R%iv>KAs904Nhu!Hl}l?(rdHK3N$5p(>E~N-%C$vM!{>_2DKBM9B7Zwkhq%XXn@wd_l1jykken9CAOB^^A+`h2(Gi{l>LYB$P%)%nQ2|9ml z{7Jr&OaeLD#f7mOv$B%EiR2}r{yq`aQbgc@Ipy$`KS`B>(>=sbc>+{QMz`v7^VsNA z&Ui=SSCP{4=5oZ4CWsT|Y-v{Q`IM#kd`ifb@Gr;ye!if!}C+$G<%te{w zd(~imV?RCt@89Z{0J1pKhsAlu1J4aZp?=CrUEeQ}ngB#n|XFTvpKsGnZBX{xbW`8|i@3vVc)OJ_`X5k`aLlK^~=jOW=Ukylo zvEQ``qudhZ$hOfeXkv(SR$SCC4TU)anZX9?uZFSkBycIl@n%M_%6#1n`j{>Fjnm48 zD&p{GGP6W;*L7!xV^Xc+z`4lg@FMO0h9L=Z!cN}&1C1bJ-KvNK+uBF1Dypuu{AkMV zJ?GuamRr{$F@E$XySe(r8P%*$)pLH{0dmM=Xv!<|RT zc{t76fO)ame}c!8^hc5ZgnH8?Kkha>B?1FsUG_y*S#DfvB%69rx@QZpg)&g zW8q9P-Ox`Dc9~8{oe=>%t~V51JVd|dUWf&`>Rhd1>UCWUm z%P-5Ja1ny;SH^x|WBxp5MtAtGXRVoayMYOHlUOef(^6vxd(Xn|(~olN=;OUO@fvJ6 zhZ1HcH+?;@kYHw17VC8xI2Nmy zOPDsk*H4YV8o9MbY`+&B&xyN>3*rr5Fc=T5uw3_k@XDt`i7~w2iDv%=ZxN9A`^AhP zhb}Os+ow2P>6JD<@- ze9~8Zq_3Z*%7u5)z8iWn(jl(Gc8IOVB5w)KLNUY7(2FN&yze5&?*Ct zwvmSd54>3I^IhZwr@7Jey#mG_Renti z%7`@1dgd7dVeiFHif5lR2RV!svWkQtw6FpoOjThkqV!k?_AWMpIrb?z@T0UCEk%TW zIj$zJPBa2kvRA6*^t?c)VKHG`ekq2U%XR_Dy2oujou_`!nH*cXMP3!=Ai_3U%xZFb znm!r9(n#_R>~gMD@DK|=iQ-JT)$YGo1aUOhm?Xs};tBQhnzX}s7%Fr7u7^5HznbCw zrpP?Y9K{>5dR;{2u&tmC5$yHMeYjoMLam!G$sOsY&2s_G0#Q_3(V2K*l2qqu9p;Me zxi#MZn0Jr$Inn*H2*9UT>g^&M=LFJ`LhN4$dbK_$Bu?&Ojx2~ zPb#QHGU*xdyB_p0(Z0o?5P>%xYk{M(wLLLa?-<~yeUbdE&ozR-ZsS1zjxK649{G`u ShzGrYF_ab5xw6Q+6q diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761675.en.png deleted file mode 100644 index f21fa89866c9efee489e900062ad470f67493bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5840 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5761677.en.png deleted file mode 100644 index b6b82029e3bdaa9dad773b35ad28459bbe786929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7016 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5859437.en.png deleted file mode 100644 index 8a546866502013d4ce2f8add46dc18cabd9924c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12419 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 a)_+tBndn9X?+Za78tOV~PmY|w{C@!2<>R;j diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907021.en.png deleted file mode 100644 index bcbe548297f87da4c1ef3f00d03a054133e7c8ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9184 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 G4E$fwgRB_< diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict5907023.en.png deleted file mode 100644 index 6eba7f2baedff6cb50411dd190879363a5bc26bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9681 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

        Z=ES}obxfe^m+k{lH6bTl*ox3s<$wc;5iXl_CS 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 H?;7)8t?Rd? diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6260026.en.png deleted file mode 100644 index 25b899cdd7ca87b2273d2cf09b77d1a97265d352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5454 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 Ru|xyYZs=J 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421031.en.png deleted file mode 100644 index f338bd44caeb38e792bc801aca30c11b60411cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103730 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�Ce_^E|RaA>Q=+f0r?PFME;VkGTgv+BhFJo}^q(7w+Jer=YQK+^LQjS*8XpT-&hJd_Vv2R-m)jA^1hV*$qOAib$QkihAKC_`bwaD3*}w zHq4$8l3aJc(?VIa{Aw>olf4gTMhg`iWy#Ev*86h*3CFfmKG#{`3p|Vqp%k7Mt9sJJ z62=yimz8%Ce#Fm{N(hRywfhp&fb8qe>T3m5dC*AFKEcY1c#75e*sZqWNbV33N=8^1 zp_hNvR}`lu zhBX7BjDRpbV8&oZS+XRIp{4Bc`=(U>qlx%psz&__Z=|!FjdrY=ftlt)H7jD~fBl!Q zC~sz(NiFrGYhQ~U8T1&2*o`C1b?Kz_#7Sm(wDB#e_Y`r-FV$^ZO|%j$`dD?O*A+iY zei_|pFz=Ni6!S7xPsfS)FSdcAH@;c+aL>nO*nE~$kt^D&O{-d`pc7irNZp!lE)B&M-&6IarhK*+-9_&cm&n% zvMCTmu*SZ-gi6)%ixHi|z53*?znfq$)-HO{+FUbEtp&{tVvtnuPAlP}ciB*?eJX`G zqZ;u|zihUYk5<)gMnjo=?TZ$^I*VQ%0<%h@SK;)h{`AHLcsg$y(B|+FG!WM!IP{1z zxn)k4DC0hsV0sg0mB!uK!*xOULibH4|DLe1bZ1E9@9SOcKkkPGmMCBQYzq~g>fg`0 z-Dic;`>*=;Go!Lic$Mwnu61hEGG4OU%0D1}UgP=XQO&bI1;6BPvv`z!EU|6L9A*1) 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421340.en.png deleted file mode 100644 index a00a64fa003fe5ccace0398f0ecf125d87964042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8309 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421342.en.png deleted file mode 100644 index e7bbdb0445e7dc8fa31f07d8c862b18fdb853922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9040 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 A761SM diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421344.en.png deleted file mode 100644 index b1da7d4f717589dd40d8c1da4fffbcbb5906c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9147 zcmd6McUV(PzitAeLR1ttx>W?F2m%rW>21?QK%^5|h)9#(La$biROwZU)DQ>=2I)-^ z0TC&oNbeA;Kp=$Tow&=l_c{08=X~e>bMrjOtgKm6*37TG?>jHF?x~z)xX1v3Ku)UO zQPP1xXz<{A`}k4t`)M<%5EM{%9Tf!#?hDHz_;bWYUPB%Nc@qWOH>U&t>0Ry^xkDhQ zK2X2Vc)nAYz|BxALse@H4G1r|J`Onoy$GQ`3I$(T=%v4|Z$o(?v_J3DKp-KukRyLQ za}Si%&r9&7w)wrJjd>0^2L3UDuXiTRpHI^pX43w7ee5HsgUIVDs;Yug*TT)p%E|qq zGdhgL&{oe7ZK!cq(!$wMz}(XLft7%_qYJeOMA};tTsm5z&98VnIykvYddsl? zd_odjQ*XoBul#%jZ7;)asG)U5(b>)Fil~5~fFQdp!<8#nq}?p7C3Tc;|Ir-$lVN{| zM!QJD;a*-|0$#!b&TcmFn-UTda6uuskkAeA#0_^JC$zcu4JUVw-#huUA0;by3pZOA zw5_w#6>7ic51c*FGVJWsf&TjZK2Ixe+kcJZJf@uj#|7`GIs{S?P-W6k3 z{P6rq&%BYX2KH>1kcTIWmEHewY_)2n(Y^`H$@8$lQoA*HLby6PB+?`b50t($x8j4_3`x2BizX!VOTcL}|f5(aO;WDjUBar~0Xj^#4~? zYb*#>-HdqmFA}ZPO$hdA4=pyM$20FU2M=^7mR|B@@>GdxUX>>C^fH3_3Gb)Ipb%%x zItPkKl>!hYf~U{e0jK}pSMAPD!eXy!#2jPu*W%SLw5))PwXje9>=#k1QeIZh$tBSe z9xAyr;+|{WnZm@x)I9D+4$t2#=u%u^l-s{jY>bad7Pe6vuMg-nXskJY`p>q#Jw28q zm9Ay?n`k7^3onO!t1~mN*pAoNp%;6UkDg-T$;!&IW}HA)!0-oqJBjbceASKLIo+VA zr?=*tKpr_hcv6PGhObz~YkBahwzhV4{p9mYGi}@%anH|-#D&vd*qDxzYk$lr`?6}S zE`JBh_s+TY`|}asrDER`-m%3BD~AVrxn^~~F|S?~w=VS;$BH_BTe!G>jpoSm^Yo{q z@r3M0j~>OOrt&dLuLsvsh*;~T>zi|(u~6EhznFF(5V0jQDfYN-k%=4WU$SNEwE1Oa z>#uy}m5spSN|8sVl>C)GG^E6`p*6I+r zhC|=Fm7pJc87!Z~Gws1HnA)|=kKkRaWxdxkYi0Hvk+k(w}$1~kr>GMx>3O^NsmHP*A`~CHm<}w@0>;%uD!xy z-+dOQg*5Iyc<|sZS4>)(1232ilbx8u;1xcDqOS;BW|3}$hA5&B86S2Y-Y)_yUBIJ> z_sW&u1{N0=eTz*R5#Vu@&n)wc@bI`)=lUUsGgWJ-okjf0FL*X!Qp2hPs=Bi!s7q+G z!*QR+^ZbnX3&(^lx0i=}SE^r}_aj?sv)b2qkRl{<@py?(*_Y+CEih8Q;{ z@&}L~8-L_0G*_(JPO%RyLLri>UGH{Q>36*xtFw8hSFA%=hJH!Ur%QpNvboK@tVj<@ zM8fPscXqCkTfL;O(5kk_bD5`7zKByX

        3zc%5^teiMg- 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 X75zr2)A(pAb;_#B_mpr7_aFZ+J@wSZ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6421356.en.png deleted file mode 100644 index e19848f65d29511a6ad659cb48439912fdee2d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9254 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434721.en.png deleted file mode 100644 index 199e62f81ef736ef096bc820feecccbfae30051f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9401 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 AmjD0& diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434723.en.png deleted file mode 100644 index 480da0bfc5f80fbd72ca7dec264fa8b957907603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7206 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6434756.en.png deleted file mode 100644 index ffdcce4bd30899266ca206efd533c13584d4d9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4332 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 ajQ<0`RGtE97NSQ00000RXl2q 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json deleted file mode 100644 index 8035212601dd7e..00000000000000 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "version.label": { - "message": "20 R8", - "description": "The label for version 20-R8" - }, - "sidebar.docs.category.Getting Started": { - "message": "Comencemos", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Comencemos", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Desarrollo", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Desarrollo", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestión del proyecto", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Propiedades", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Entorno de desarrollo", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Depuración", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Procesos", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Preferencias", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Lenguaje 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Lenguaje 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Conceptos", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Tipos de datos", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Comandos", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Comandos", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Entorno 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.4D Environment.link.generated-index.title": { - "message": "Entorno 4D", - "description": "The generated-index page title for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Arrays", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Arrays.link.generated-index.title": { - "message": "Arrays", - "description": "The generated-index page title for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Copia de seguridad", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.Backup.link.generated-index.title": { - "message": "Copia de seguridad", - "description": "The generated-index page title for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.BLOB.link.generated-index.title": { - "message": "BLOB", - "description": "The generated-index page title for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Boolean.link.generated-index.title": { - "message": "Boolean", - "description": "The generated-index page title for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Gestión de caché", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Cache Management.link.generated-index.title": { - "message": "Gestión de caché", - "description": "The generated-index page title for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Collections", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Collections.link.generated-index.title": { - "message": "Collections", - "description": "The generated-index page title for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Comunicaciones", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Communications.link.generated-index.title": { - "message": "Comunicaciones", - "description": "The generated-index page title for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compilador", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Compiler.link.generated-index.title": { - "message": "Compilador", - "description": "The generated-index page title for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Entrada", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Entry.link.generated-index.title": { - "message": "Entrada", - "description": "The generated-index page title for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Seguridad de los datos", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Data Security.link.generated-index.title": { - "message": "Seguridad de los datos", - "description": "The generated-index page title for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Métodos base", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Database Methods.link.generated-index.title": { - "message": "Métodos base", - "description": "The generated-index page title for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Fechas y horas", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Date and Time.link.generated-index.title": { - "message": "Fechas y horas", - "description": "The generated-index page title for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Acceso objetos diseño", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Design Object Access.link.generated-index.title": { - "message": "Acceso objetos diseño", - "description": "The generated-index page title for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Arrastrar y soltar", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop.link.generated-index.title": { - "message": "Arrastrar y soltar", - "description": "The generated-index page title for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Control de entrada", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.Entry Control.link.generated-index.title": { - "message": "Control de entrada", - "description": "The generated-index page title for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "Archivo y carpeta", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.File and Folder.link.generated-index.title": { - "message": "Archivo y carpeta", - "description": "The generated-index page title for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Eventos formulario", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Form Events.link.generated-index.title": { - "message": "Eventos formulario", - "description": "The generated-index page title for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formularios", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Forms.link.generated-index.title": { - "message": "Formularios", - "description": "The generated-index page title for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Fórmulas", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Formulas.link.generated-index.title": { - "message": "Fórmulas", - "description": "The generated-index page title for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Gráficos", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.Graphs.link.generated-index.title": { - "message": "Gráficos", - "description": "The generated-index page title for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.HTTP.link.generated-index.title": { - "message": "HTTP", - "description": "The generated-index page title for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Listas jerárquicas", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { - "message": "Listas jerárquicas", - "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import-Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Import and Export.link.generated-index.title": { - "message": "Import-Export", - "description": "The generated-index page title for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interrupciones", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.Interruptions.link.generated-index.title": { - "message": "Interrupciones", - "description": "The generated-index page title for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.JSON.link.generated-index.title": { - "message": "JSON", - "description": "The generated-index page title for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.LDAP.link.generated-index.title": { - "message": "LDAP", - "description": "The generated-index page title for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Lenguaje", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Language.link.generated-index.title": { - "message": "Lenguaje", - "description": "The generated-index page title for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licencias", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.Licenses.link.generated-index.title": { - "message": "Licencias", - "description": "The generated-index page title for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.List Box.link.generated-index.title": { - "message": "List Box", - "description": "The generated-index page title for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Mail.link.generated-index.title": { - "message": "Mail", - "description": "The generated-index page title for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Funciones matemáticas", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Math.link.generated-index.title": { - "message": "Funciones matemáticas", - "description": "The generated-index page title for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menús", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Menus.link.generated-index.title": { - "message": "Menús", - "description": "The generated-index page title for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Messages.link.generated-index.title": { - "message": "Messages", - "description": "The generated-index page title for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Selecciones temporales", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Named Selections.link.generated-index.title": { - "message": "Selecciones temporales", - "description": "The generated-index page title for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objetos (formularios)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms).link.generated-index.title": { - "message": "Objetos (formularios)", - "description": "The generated-index page title for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objetos (Lenguaje)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language).link.generated-index.title": { - "message": "Objetos (Lenguaje)", - "description": "The generated-index page title for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "Funciones estadísticas", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.On a Series.link.generated-index.title": { - "message": "Funciones estadísticas", - "description": "The generated-index page title for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.PHP.link.generated-index.title": { - "message": "PHP", - "description": "The generated-index page title for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Portapapeles", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pasteboard.link.generated-index.title": { - "message": "Portapapeles", - "description": "The generated-index page title for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Imágenes", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Pictures.link.generated-index.title": { - "message": "Imágenes", - "description": "The generated-index page title for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Impresiones", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Printing.link.generated-index.title": { - "message": "Impresiones", - "description": "The generated-index page title for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Process (Communications)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (Communications).link.generated-index.title": { - "message": "Process (Communications)", - "description": "The generated-index page title for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Proceso (interfaz de usuario)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface).link.generated-index.title": { - "message": "Proceso (interfaz de usuario)", - "description": "The generated-index page title for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Processes.link.generated-index.title": { - "message": "Procesos", - "description": "The generated-index page title for category Processes in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Búsquedas", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Queries.link.generated-index.title": { - "message": "Búsquedas", - "description": "The generated-index page title for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Informes rápidos", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Quick Report.link.generated-index.title": { - "message": "Informes rápidos", - "description": "The generated-index page title for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Bloqueo de registros", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Record Locking.link.generated-index.title": { - "message": "Bloqueo de registros", - "description": "The generated-index page title for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Registros", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Records.link.generated-index.title": { - "message": "Registros", - "description": "The generated-index page title for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Relaciones", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Relations.link.generated-index.title": { - "message": "Relaciones", - "description": "The generated-index page title for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.Resources.link.generated-index.title": { - "message": "Resources", - "description": "The generated-index page title for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SQL.link.generated-index.title": { - "message": "SQL", - "description": "The generated-index page title for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.SVG.link.generated-index.title": { - "message": "SVG", - "description": "The generated-index page title for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocolo seguro", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol.link.generated-index.title": { - "message": "Protocolo seguro", - "description": "The generated-index page title for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Selección", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Selection.link.generated-index.title": { - "message": "Selección", - "description": "The generated-index page title for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Conjuntos", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Sets.link.generated-index.title": { - "message": "Conjuntos", - "description": "The generated-index page title for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Corrector ortográfico", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.Spell Checker.link.generated-index.title": { - "message": "Corrector ortográfico", - "description": "The generated-index page title for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.String.link.generated-index.title": { - "message": "String", - "description": "The generated-index page title for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Definición estructura", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Structure Access.link.generated-index.title": { - "message": "Definición estructura", - "description": "The generated-index page title for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Texto multiestilo", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Styled Text.link.generated-index.title": { - "message": "Texto multiestilo", - "description": "The generated-index page title for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Subregistros", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.Subrecords.link.generated-index.title": { - "message": "Subregistros", - "description": "The generated-index page title for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "Documentos sistema", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Documents.link.generated-index.title": { - "message": "Documentos sistema", - "description": "The generated-index page title for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "Entorno sistema", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.System Environment.link.generated-index.title": { - "message": "Entorno sistema", - "description": "The generated-index page title for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Tabla", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Table.link.generated-index.title": { - "message": "Tabla", - "description": "The generated-index page title for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Herramientas", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Tools.link.generated-index.title": { - "message": "Herramientas", - "description": "The generated-index page title for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Transactions.link.generated-index.title": { - "message": "Transacciones", - "description": "The generated-index page title for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.Triggers.link.generated-index.title": { - "message": "Triggers", - "description": "The generated-index page title for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interfaz de usuario", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.User Interface.link.generated-index.title": { - "message": "Interfaz de usuario", - "description": "The generated-index page title for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Usuarios y grupos", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Users and Groups.link.generated-index.title": { - "message": "Usuarios y grupos", - "description": "The generated-index page title for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variables", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Variables.link.generated-index.title": { - "message": "Variables", - "description": "The generated-index page title for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Área Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Area.link.generated-index.title": { - "message": "Área Web", - "description": "The generated-index page title for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Servidor Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Server.link.generated-index.title": { - "message": "Servidor Web", - "description": "The generated-index page title for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client).link.generated-index.title": { - "message": "Web Services (Client)", - "description": "The generated-index page title for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Servidor)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server).link.generated-index.title": { - "message": "Web Services (Servidor)", - "description": "The generated-index page title for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.Windows.link.generated-index.title": { - "message": "Windows", - "description": "The generated-index page title for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML DOM.link.generated-index.title": { - "message": "XML DOM", - "description": "The generated-index page title for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML SAX.link.generated-index.title": { - "message": "XML SAX", - "description": "The generated-index page title for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.XML.link.generated-index.title": { - "message": "XML", - "description": "The generated-index page title for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Clases", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Clases", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Lista de clases 4D integradas", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administración", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administración", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Cómo supervisar sus aplicaciones 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Ventana de administración de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administración Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administración Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Herramientas web 4D para administrar y supervisar sus aplicaciones.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Copia de seguridad y restauración", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensiones", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Aplicaciones web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Aplicaciones web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guías para el desarrollo de aplicaciones Web con 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Desarrollo web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Uso de Qodly Studio para crear poderosas interfaces web.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exponiendo su datastore a REST y utilizando la API REST.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Exponiendo su almacén de datos en REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Exponiendo su almacén de datos en REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configura su almacén de datos para acceso REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (general)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (general)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST para información global", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST para dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Aplicaciones de escritorio", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Aplicaciones de escritorio", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guías para el desarrollo de aplicaciones de escritorio con 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Derechos de acceso", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Derechos de acceso", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Control de acceso y privilegios de usuario para aplicaciones de escritorio.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Editor de formularios", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propiedades de los formularios", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objetos formularios", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propiedades de los objetos de formulario", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Aplicaciones móviles", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (archive)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interfaz de línea de\n comando", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocolo TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Managing 4D Licenses": { - "message": "Gestión de licencias 4D", - "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Recopilación de datos", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Cliente/Servidor", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propiedades usuario", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Generador de aplicaciones", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json deleted file mode 100644 index c647631735ae7f..00000000000000 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json +++ /dev/null @@ -1,742 +0,0 @@ -{ - "version.label": { - "message": "20 R9", - "description": "The label for version 20-R9" - }, - "sidebar.docs.category.Getting Started": { - "message": "Comencemos", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Comencemos", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Desarrollo", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Desarrollo", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestión del proyecto", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Propiedades", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Entorno de desarrollo", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Depuración", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Procesos", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Preferencias", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Lenguaje 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Lenguaje 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Conceptos", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Tipos de datos", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Comandos", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Comandos", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Entorno 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Arrays", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Copia de seguridad", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Gestión de caché", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Collections", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Comunicaciones", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compilador", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Entrada", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Seguridad de los datos", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Métodos base", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Fechas y horas", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Acceso objetos diseño", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Arrastrar y soltar", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Control de entrada", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "Archivo y carpeta", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Eventos formulario", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formularios", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Fórmulas", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Gráficos", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Listas jerárquicas", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import-Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interrupciones", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Lenguaje", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licencias", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Funciones matemáticas", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menús", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Selecciones temporales", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objetos (formularios)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objetos (Lenguaje)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "Funciones estadísticas", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Portapapeles", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Imágenes", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Impresiones", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Process (Communications)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Proceso (interfaz de usuario)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Búsquedas", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Informes rápidos", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Bloqueo de registros", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Registros", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Relaciones", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocolo seguro", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Selección", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Conjuntos", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Corrector ortográfico", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Definición estructura", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Texto multiestilo", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Subregistros", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "Documentos sistema", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "Entorno sistema", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Tabla", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Herramientas", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transacciones", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interfaz de usuario", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Usuarios y grupos", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variables", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Área Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Servidor Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Servidor)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Clases", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Clases", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Lista de clases 4D integradas", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administración", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administración", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Cómo supervisar sus aplicaciones 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Ventana de administración de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administración Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administración Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Herramientas web 4D para administrar y supervisar sus aplicaciones.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Copia de seguridad y restauración", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensiones", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D AIKit": { - "message": "4D AIKit", - "description": "The label for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.4D AIKit.link.generated-index.title": { - "message": "4D AIKit", - "description": "The generated-index page title for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Aplicaciones web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Aplicaciones web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guías para el desarrollo de aplicaciones Web con 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Desarrollo web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Uso de Qodly Studio para crear poderosas interfaces web.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exponiendo su datastore a REST y utilizando la API REST.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Exponiendo su almacén de datos en REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Exponiendo su almacén de datos en REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configura su almacén de datos para acceso REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (general)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (general)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST para información global", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST para dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Aplicaciones de escritorio", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Aplicaciones de escritorio", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guías para el desarrollo de aplicaciones de escritorio con 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Derechos de acceso", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Derechos de acceso", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Control de acceso y privilegios de usuario para aplicaciones de escritorio.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Editor de formularios", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propiedades de los formularios", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objetos formularios", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propiedades de los objetos de formulario", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Aplicaciones móviles", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (archive)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interfaz de línea de\n comando", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocolo TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Licenses": { - "message": "Licencias", - "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Recopilación de datos", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Cliente/Servidor", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propiedades usuario", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Generador de aplicaciones", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - }, - "sidebar.docs.doc.Labels": { - "message": "Etiquetas", - "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" - } -} diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index de25918e361018..52e214a97ff15e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3171,14 +3171,14 @@ La función `.sort()` ordena los elemento Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: - ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| - - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). - ``` +``` +|Constant| Type|Value|Comment| +|---|---|---|---| +|ck ascending|Integer|0|Elements are ordered in ascending order (default)| +|ck descending|Integer|1|Elements are ordered in descending order| + +This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +``` Si la colección contiene elementos de diferentes tipos, se agrupan primero por tipo y se ordenan después. Si attributePath lleva a una propiedad de objeto que contiene valores de diferentes tipos, primero se agrupan por tipo y se ordenan después. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index c653dc8dc6987d..52cdfa7c3b3ea3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -311,7 +311,7 @@ El valor devuelto es la llave pública. **.pem** : Text -Definición PEM de una llave de cifrado a cargar. Si la llave es una llave privada, se deducirá de ella la llave pública RSA o ECDSA. +PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 53054ee02534df..1a8a2702277ab8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -995,18 +995,18 @@ El uso de marcadores de posición en las búsquedas **se recomienda** por las si 1. Evita la inserción de código malicioso: si utiliza directamente variables completadas por el usuario dentro de la cadena de búsqueda, un usuario podría modificar las condiciones de búsqueda introduciendo argumentos de búsqueda adicionales. Por ejemplo, imagine una cadena de búsqueda como: - ```4d - $vquery:="status = 'public' & name = "+myname //el usuario introduce su nombre - $result:=$col.query($vquery) - ``` +```4d + $vquery:="status = 'public' & name = "+myname //el usuario introduce su nombre + $result:=$col.query($vquery) +``` Esta búsqueda parece segura ya que se filtran los datos no públicos. Sin embargo, si el usuario introduce en el área *myname* algo como *"smith OR status='private'*, la cadena de consulta se modificaría en el paso de interpretación y podría devolver datos privados. Cuando se utilizan marcadores de posición, no es posible anular las condiciones de seguridad: - ```4d - $result:=$col.query("status='public' & name=:1";myname) - ``` +```4d + $result:=$col.query("status='public' & name=:1";myname) +``` En este caso, si el usuario introduce *smith OR status='private'* en el área *myname*, no se interpretará en la cadena de búsqueda, sino que sólo se pasará como valor. La búsqueda de una persona llamada "smith OR status='private'" simplemente fallará. @@ -1014,10 +1014,10 @@ En este caso, si el usuario introduce *smith OR status='private'* en el área *m 3. Permite el uso de variables o expresiones en los argumentos de búsqueda. Ejemplos: - ```4d - $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") - $result2:=$col.query("company.name = :1";"John's Pizzas") - ``` +```4d +$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") +$result2:=$col.query("company.name = :1";"John's Pizzas") +``` ### Búsqueda de valores null diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 2586d2f95f4f9a..b04868d96d8158 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Descripción -La función `.expunge()` elimina todos los mensajes con la bandera "eliminada" del servidor de correo IMAP. La bandera "deleted" puede definirse con los métodos [`.delete()`](#delete) o [`.addFlags()`](#addflags). +La función `.expunge()` elimina todos los mensajes con el marcador "deleted" del servidor de correo IMAP. El marcador "deleted" puede definirse con los métodos [`delete()`](#delete) o [`addFlags()`](#addflags). **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 0ae9ec207f1c61..00a40a1fb3a6b2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -101,7 +101,7 @@ Un objeto 4D.IncomingMessage es un objeto [no compartible](../Concepts/shared.md ## .getBlob() -**.getBlob**(): Blob +**.getBlob**() : Blob @@ -210,7 +210,7 @@ Si el cuerpo no se recibe como una imagen válida, la función devuelve null. ## .getText() -**.getText**(): Text +**.getText**() : Text @@ -286,7 +286,7 @@ La propiedad `.urlPath` es de sólo lectura. ## .urlQuery -**urlQuery**: Object +**urlQuery** : Object #### Descripción @@ -319,10 +319,10 @@ Los caracteres especiales, como las comillas simples o los retornos de carro, de Ejemplo: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -```4d +````4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -``` +```` :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md index c71166458846d9..de764904264fcb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md @@ -418,7 +418,7 @@ Esta propiedad está en **lectura-escritura**. ## .pid -**.pid**: Integer +**.pid** : Integer #### Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 846550e7f5f448..4b41fc002cb1ab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -346,7 +346,7 @@ La función `wait()` espera hasta que :::note -Durante la ejecución de `.wait()`, se ejecutan funciones de retrollamda, tanto si proceden de otras instancias de `SystemWorker`. Puede salir de un `.wait()` llamando a [`shutdown()`](#shutdown) desde una retrollamada. +Durante la ejecución de `.wait()`, se ejecutan funciones de callback, tanto si proceden de otras instancias de `SystemWorker`. Puede salir de un `.wait()` llamando a [`shutdown()`](#shutdown) desde una retrollamada. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index bec97cdc37fcdf..d273e88f96b557 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ Dado que cada bit puede ser igual a 0 o 1, también se puede pensar en un valor Una expresión que utiliza un operador de bits devuelve un valor de tipo Long, excepto para el operador Bit Test, donde la expresión devuelve un valor booleano. La siguiente tabla lista los operadores a nivel de bits y su sintaxis: -| Operación | Operador | Sintaxis | Devuelve | -| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | -| Y | & | Long & Long | Long | -| O (inclusive) | | | Long | Long | Long | -| O (exclusivo) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (ver nota 1) | -| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | -| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | -| Poner el bit en 0 | ?- | Long ?- Long | Long (ver nota 2) | -| Probar bit | ?? | Long ?? Long Long | Boolean (ver nota 2) | +| Operación | Operador | Sintaxis | Devuelve | +| -------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | +| Y | & | Long & Long | Long | +| O (inclusive) | | | Long | Long | Long | +| O (exclusivo) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (ver nota 1) | +| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | +| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | +| Poner el bit en 0 | ?- | Long ?- Long | Long (ver nota 2) | +| Probar bit | ?? | Long ?? Long Long | Boolean (ver nota 2) | #### Notas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index d6b32a4f015be7..6a11f1b2f93727 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -315,21 +315,21 @@ Esta ruta al historial es devuelta por el comando `Get 4D file`. Para iniciar este historial: - ```4d - $server:=New object - ... - //SMTP - $server.logFile:="MySMTPAuthLog.txt" - $transporter:=SMTP New transporter($server) - - // POP3 - $server.logFile:="MyPOP3AuthLog.txt" - $transporter:=POP3 New transporter($server) - - //IMAP - $server.logFile:="MyIMAPAuthLog.txt" - $transporter:=IMAP New transporter($server) - ``` +```4d +$server:=New object +... +//SMTP +$server.logFile:="MySMTPAuthLog.txt" +$transporter:=SMTP New transporter($server) + +// POP3 +$server.logFile:="MyPOP3AuthLog.txt" +$transporter:=POP3 New transporter($server) + +//IMAP +$server.logFile:="MyIMAPAuthLog.txt" +$transporter:=IMAP New transporter($server) +``` #### Contenido diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md index b4bb86c4b4387c..a4fcb9aef8f1f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md @@ -202,7 +202,7 @@ Los elementos deben ser instalados: ## Página Cliente/Servidor -En esta pestaña, usted puede construir aplicaciones cliente y servidor personalizadas que son homogénicas, multiplataforma y con una opción de actualización automática. +En esta pestaña, puede generar aplicaciones cliente y servidor personalizadas que son homogéneas, multiplataforma y con una opción de actualización automática. ![](../assets/en/Desktop/client-server-buildapp.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md index b2bd470b087778..bdaf92b77f70e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md @@ -458,7 +458,7 @@ Las llaves soportadas en los archivos `Info.plist` de los componentes son en su Se pueden definir las siguientes teclas: -| key | description | +| tecla | descripción | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | CFBundleName | Nombre del componente (interno) | | CFBundleDisplayName | Nombre del componente a mostrar | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 71ff26254cf850..292d49e5de368c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ Durante la ejecución, 4D prioriza automáticamente las hojas de estilo en el si - un archivo para ambas plataformas: - ``` - "css": "" - ``` +``` +"css": "" +``` - o una lista de archivos para ambas plataformas: - ``` - "css": [ - "", - "" - ], - ``` +``` +"css": [ + "", + "" + ], +``` - o una lista de archivos por plataforma: - ``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], - ``` +``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], +``` > Las rutas de los archivos pueden ser relativas o absolutas. > diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index bc28dd10b260a0..1e187335df4aab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Todos los botones comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Consejo de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Cursiva](properties_Text.md#italic) - [Título de abrazos de imagen](properties_TextAndPicture.md#image-hugs-title)(1) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [No renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nombre del objeto](properties_Object.md#object-name) - [Nombre de la ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(1) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Con menú emergente](properties_TextAndPicture.md#with-pop-up-menu)(2) -> (1) No soportado por el estilo [Ayuda](#help).
        -> (2) Not supported by the [Help](#help), [Flat](#flat) and [Regular](#regular) styles. +> (1) No soportado por el estilo [Help](#help).
        +> (2) No soportado por los estilos [Help](#help), [Flat](#flat) y [Regular](#regular). Existen propiedades específicas adicionales, dependiendo del [estilo-de-botón](#button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md index a363a7ce13de38..0811debdd3fb88 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md @@ -389,8 +389,8 @@ Todas las casillas de selección comparten un mismo conjunto de propiedades bás [Negrita](properties_Text.md#bold) - [Abajo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Editable](properties_Entry.md#enterable) - [Tipo de expresión](properties_Object.md#expression-type) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Alto](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment)(1) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Título de la imagen](properties_TextAndPicture.md#image-hugs-title)(2) - [Itálica](properties_Text.md#italic) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Número de estados](properties_TextAndPicture.md#number-of-states)(2) - [Nombre del objeto](properties_Object.md#nombre_objeto) - [Ruta de la imagen](properties_TextAndPicture.md#nombre_de_imagen)(2) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Guardar valor](properties_Object.md#save-value) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(2) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibilidad) - [Ancho](properties_CoordinatesAndSizing.md#ancho) -> (1) No compatible con los estilos [Regular](#regular) y [Plano](#flat).
        -> (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. +> (1) No soportado por los estilos [Regular](#regular) y [Flat](#flat).
        +> (2) No soportado por los estilos [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) y [Collapse/Expand](#collapseexpanded). Propiedades específicas adicionales están disponibles en función del [estilo de botón](#check-box-button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 492d678bcc786a..6ae6f72f1bb32d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1002,9 +1002,9 @@ Estos atributos pueden utilizarse para controlar el rango de valores de entrada. El atributo behavior ofrece variaciones a la representación estándar de los valores. En 4D v15, se ofrece una única variación: -| Atributo | Valor(es) disponible(s) | valueType(s) | Descripción | -| -------- | ------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| behavior | threeStates | integer | Representa un valor numérico como una casilla de verificación de tres estados.
        2=semi-checked, 1=checked, 0=unchecked, -1=invisible, -2=unchecked disabled, -3=checked disabled, -4=semi-checked disabled | +| Atributo | Valor(es) disponible(s) | valueType(s) | Descripción | +| -------- | ------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | Representa un valor numérico como una casilla de selección de tres estados.
        2=intermediario, 1=seleccionado, 0=no seleccionado, -1=invisible, -2=no seleccionado desactivado, -3=seleccionado desactivado, -4=semi seleccionado desactivado | ```4d C_OBJECT($ob3) @@ -1103,9 +1103,9 @@ Ejemplos: OB SET($ob;"requiredListReference";<>List) ``` - ``` - ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) - ``` +``` +![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) +``` #### choiceListName y choiceListReference diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md index 2745aa87c59e22..714bf9fe8df031 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md @@ -27,7 +27,7 @@ Ajusta el texto seleccionado para que aparezca más oscuro y pesado. Puede definir esta propiedad utilizando el comando [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Este es un texto normal.
        +> Esto es texto normal.
        > **Esto es texto en negrita.** #### Gramática JSON @@ -52,8 +52,8 @@ Hace que el texto seleccionado se incline ligeramente hacia la derecha. También puede definir esta propiedad por medio del comando [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Este es un texto normal.
        -> *Este texto está en cursiva.* +> Esto es texto normal.
        +> *Este es texto en cursiva.* #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md index 7334b435e453ff..6c454bf70930d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md @@ -147,8 +147,8 @@ Todos los botones radio comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Inferior](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Tipo de expresión](properties_Object.md#expression-type) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Alto](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment)(1) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Título de la imagen](properties_TextAndPicture.md#image-hugs-title)(2) - [Itálica](properties_Text.md#italic) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Número de estados](properties_TextAndPicture.md#number-of-states)(2) - [Método](properties_Action.md#method) - [Nombre del objeto](properties_Object.md#object-name) - [Grupo radio](properties_Object.md#radio-group) - [Ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(2) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Guardar valor](properties_Object.md#save-value) - [Acceso directo](properties_Entry.md#shortcut) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(2) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibilidad) - [Ancho](properties_CoordinatesAndSizing.md#ancho) -> (1) No compatible con los estilos [Regular](#regular) y [Plano](#flat).
        -> (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. +> (1) No soportado por los estilos [Regular](#regular) y [Flat](#flat).
        +> (2) No soportado por los estilos [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) y [Collapse/Expand](#collapseexpanded). Propiedades específicas adicionales están disponibles en función del [estilo de botón](#button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 87f8fb1a48e924..22cf5a3c10a7c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP EXPORT VARIABLE** exporta el objeto *wpDoc* 4D Write Pro a la variable *destination* 4D en el *format* especificado. +The **WP EXPORT VARIABLE** command exports the *wpDoc* 4D Write Pro object to the 4D *destination* variable in the specified *format*. En *wpDoc*, pase el objeto 4D Write Pro que desea exportar. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md index f89e9054e62c0d..dcbe0e908418fa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/_OpenAIAsyncOptions.md @@ -19,7 +19,7 @@ The `_OpenAIAsyncOptions` internal class provides function to handle asynchronou | `body` | Variant | | \`timeout | Integer | -### Propiedades de instancias de clase +### Class instances Properties | Propiedad | Tipo | | ------------ | --------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md index 6968bb5de37310..9ed72c2d3d968a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/delay-process.md @@ -32,7 +32,7 @@ Ver los ejemplos en *Record Locking*. ## Ejemplo 2 -Ver el ejemplo del comando [Process Number](../commands/process-number.md). +Ver el ejemplo del comando [Process Number](process-number.md "Process Number"). ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index e7d3d9bcf05f79..210a58340b690a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descripción -**Compilar proyecto** le permite compilar el proyecto host actual o el proyecto especificado en el parámetro *projectFile*. Para más información sobre compilación, consulte la [página de compilación](../Project/compiler.md). +**Compile project** permite compilar el proyecto local actual o el proyecto especificado en el parámetro *projectFile*. Para más información sobre compilación, consultr la [página de compilación](../Project/compiler.md). De forma predeterminada, el comando utiliza las opciones del compilador definidas en los parámetros de estructura. Puede sobreescribirlas pasando un parámetro *options*. Se soportan las siguientes sintaxis: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 246f5bce3ee897..a8505d4751b3c0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **DIALOG** presenta el *formulario* al usuario, junto con (el) los parámetro(s) *formData* (opcional). +The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). Este comando está diseñado para trabajar con interfaces de usuario personalizadas y avanzadas basadas en formularios. Puede utilizarlo para mostrar información procedente de la base de datos o de otras ubicaciones, o para proporcionar funciones de entrada de datos. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 490b6f1cdd6f4b..6778f27afd0280 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descripción -El comando **FORM EDIT** abre el *form* asociado a *aTable* en el editor de formularios 4D, con opcionalmente *object* seleccionado. Tenga en cuenta que debe tener acceso al entorno Diseño, de lo contrario se generará el error -9804 ("Cannot open form"). +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.El comando **FORM EDIT** abre el *form* asociado a *aTable* en el editor de formularios 4D, con opcionalmente *object* seleccionado. Tenga en cuenta que debe tener acceso al entorno Diseño, de lo contrario se generará el error -9804 ("No se puede abrir el formulario"). El comando es asíncrono: vuelve inmediatamente al método que lo llama y no espera a que el formulario esté abierto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index de710cd9d2102d..7a1cd053401abd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -**FORM Event** devuelve un objeto que contiene información sobre el evento formulario que acaba de ocurrir. Por lo general, utilizará **FORM Event** en un método formulario u objeto. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** devuelve un objeto que contiene información sobre el evento formulario que acaba de ocurrir. Por lo general, utilizará **FORM Event** en un método formulario u objeto. **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md index d4254f6891c5b6..7715302211da73 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **FORM LOAD** se utiliza para cargar el *form* en memoria en el proceso actual junto con *formData* (opcional) para imprimir sus datos o analizar su contenido. Sólo puede haber un formulario actual por proceso. +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.El comando **FORM LOAD** se utiliza para cargar el *form* en memoria en el proceso actual junto con *formData* (opcional) para imprimir sus datos o analizar su contenido. Sólo puede haber un formulario actual por proceso. En el parámetro *form*, puede pasar: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index 355633c3e4ffb9..d1c77227cb7186 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -4,7 +4,7 @@ title: Formulario displayed_sidebar: docs --- -**Form** : Object +**Form** : Object @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descripción -El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D automatically associates an object to the current form in the following cases: +The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D asocia automáticamente un objeto al formulario actual en los siguientes casos: - el formulario actual ha sido cargado por uno de los comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), - el formulario actual es un subformulario, diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 0831a61bd841cc..2dd755075547c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Descripción -El comando **Licencia info** devuelve un objeto que suministra información detallada sobre la licencia activa. +The **License info** command returns an object providing detailed information about the active license. Si el comando se ejecuta en una aplicación 4D que no utiliza localmente una licencia (por ejemplo, 4D remote), el comando devuelve un objeto Null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index a185e5dda8b962..93317601d41e52 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -El comando `New collection` crea una nueva colección vacía o pre diligenciada y devuelve su referencia. Las colecciones se pueden manejar usando propiedades y funciones de la [API Collection class](../API/CollectionClass.md). +El comando `New collection` crea una nueva colección vacía o prellenada y devuelve su referencia. Las colecciones pueden manejarse utilizando propiedades y funciones de la [API de la clase Collection](../API/CollectionClass.md). Si no se pasa ningún parámetro, `New collection` crea una colección vacía y devuelve su referencia. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index b1777d0a1ecce1..1358e18b92a2e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Descripción -El comando **Print form** simplemente imprime *form* con los valores actuales de los campos y variables de la tabla *aTable*. Suele utilizarse para imprimir informes muy complejos que requieren un control total del proceso de impresión. **Print form** no realiza ningún procesamiento de registros, ni las rupturas, ni de saltos de página. Estas operaciones son responsabilidad suya. **Print form*** imprime campos y variables solo en un marco de tamaño fijo. +The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.El comando **Print form** simplemente imprime *form* con los valores actuales de los campos y variables de la tabla *aTable*. Suele utilizarse para imprimir informes muy complejos que requieren un control total del proceso de impresión. **Print form** no realiza ningún procesamiento de registros, ni las rupturas, ni de saltos de página. Estas operaciones son responsabilidad suya. **Print form*** imprime campos y variables solo en un marco de tamaño fijo. En el parámetro *form*, puede pasar: @@ -91,7 +91,7 @@ En este caso, el comando imprimirá la sección incluida entre los parámetros * **formData** -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas la propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index c7cae10f86858b..3e4844a5b9d3c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descripción -El comando **Process activity** devuelve una instantánea de los procesos en ejecución y/o (sólo en 4D Server) de las sesiones de usuario conectadas en un momento dado. Este comando devuelve todos los procesos, incluidos los procesos internos a los que no se puede acceder mediante el comando [Process info](process-info.md). +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.El comando **Process activity** devuelve una instantánea de los procesos en ejecución y/o (sólo en 4D Server) de las sesiones de usuario conectadas en un momento dado. Este comando devuelve todos los procesos, incluidos los procesos internos a los que no se puede acceder mediante el comando [Process info](process-info.md). Por defecto, cuando se utiliza sin ningún parámetro, **Process activity** devuelve un objeto que contiene las siguientes propiedades: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 8e5b81d1056ae0..90bf19d98f907c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descripción -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Si no se encuentra ningún proceso, `Process number` devuelve 0. +The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterEl comando `Process number` devuelve el número del proceso cuyo *name* o *id* pasa en el primer parámetro. Si no se encuentra ningún proceso, `Process number` devuelve 0. El parámetro opcional \* permite recuperar, de un 4D remoto, el número de un proceso que se ejecuta en el servidor. En este caso, el valor devuelto es negativo. Esta opción es especialmente útil cuando se utilizan los comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) y [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index dba743039ab392..c44ba12a072356 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -El comando **SET ALLOWED METHODS** designa los métodos proyecto que se pueden llamar a través de la aplicación. +The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. 4D incluye un mecanismo de seguridad que filtra los métodos proyecto que se pueden introducir desde los siguientes contextos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md index 30c22ac7be99fd..7ece11fd7e2dd5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md @@ -22,7 +22,7 @@ El comando `WA SET CONTEXT` define :::note -The command is only usable with an embedded web area where the [**Use embedded web rendering engine**](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine) and **Access 4D methods** parameters are set to `true`. +El comando solo es utilizable con un área web integrada en la que los parámetros [**Utilizar el motor de renderizado web integrado**](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine) y **Acceder a los métodos 4D** estén configurados como `true`. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json deleted file mode 100644 index d4cf2a4c396db0..00000000000000 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "version.label": { - "message": "20 R8", - "description": "The label for version 20-R8" - }, - "sidebar.docs.category.Getting Started": { - "message": "Prise en main", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Prise en main", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Développement", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Développement", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestion des projets", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Propriétés", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Environnement de développement", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Débogage", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Process", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Préférences", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Langage 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Langage 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Concepts", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Types de données", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Commandes", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Commandes", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Environnement 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.4D Environment.link.generated-index.title": { - "message": "Environnement 4D", - "description": "The generated-index page title for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Tableaux", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Arrays.link.generated-index.title": { - "message": "Tableaux", - "description": "The generated-index page title for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Sauvegarde", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.Backup.link.generated-index.title": { - "message": "Sauvegarde", - "description": "The generated-index page title for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.BLOB.link.generated-index.title": { - "message": "BLOB", - "description": "The generated-index page title for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Boolean.link.generated-index.title": { - "message": "Boolean", - "description": "The generated-index page title for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Gestion du cache", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Cache Management.link.generated-index.title": { - "message": "Gestion du cache", - "description": "The generated-index page title for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Collections", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Collections.link.generated-index.title": { - "message": "Collections", - "description": "The generated-index page title for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Communications", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Communications.link.generated-index.title": { - "message": "Communications", - "description": "The generated-index page title for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compilateur", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Compiler.link.generated-index.title": { - "message": "Compilateur", - "description": "The generated-index page title for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Saisie", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Entry.link.generated-index.title": { - "message": "Saisie", - "description": "The generated-index page title for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Sécurité des données", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Data Security.link.generated-index.title": { - "message": "Sécurité des données", - "description": "The generated-index page title for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Méthodes base", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Database Methods.link.generated-index.title": { - "message": "Méthodes base", - "description": "The generated-index page title for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Dates et heures", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Date and Time.link.generated-index.title": { - "message": "Dates et heures", - "description": "The generated-index page title for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Accès objets développement", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Design Object Access.link.generated-index.title": { - "message": "Accès objets développement", - "description": "The generated-index page title for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Glisser-Déposer", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop.link.generated-index.title": { - "message": "Glisser-Déposer", - "description": "The generated-index page title for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Gestion de la saisie", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.Entry Control.link.generated-index.title": { - "message": "Gestion de la saisie", - "description": "The generated-index page title for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "Fichier et dossier", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.File and Folder.link.generated-index.title": { - "message": "Fichier et dossier", - "description": "The generated-index page title for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Evénements formulaire", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Form Events.link.generated-index.title": { - "message": "Evénements formulaire", - "description": "The generated-index page title for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formulaires", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Forms.link.generated-index.title": { - "message": "Formulaires", - "description": "The generated-index page title for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Formules", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Formulas.link.generated-index.title": { - "message": "Formules", - "description": "The generated-index page title for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Graphes", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.Graphs.link.generated-index.title": { - "message": "Graphes", - "description": "The generated-index page title for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.HTTP.link.generated-index.title": { - "message": "HTTP", - "description": "The generated-index page title for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Listes hiérarchiques", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { - "message": "Listes hiérarchiques", - "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import-Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Import and Export.link.generated-index.title": { - "message": "Import-Export", - "description": "The generated-index page title for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interruptions", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.Interruptions.link.generated-index.title": { - "message": "Interruptions", - "description": "The generated-index page title for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.JSON.link.generated-index.title": { - "message": "JSON", - "description": "The generated-index page title for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.LDAP.link.generated-index.title": { - "message": "LDAP", - "description": "The generated-index page title for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Langage", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Language.link.generated-index.title": { - "message": "Langage", - "description": "The generated-index page title for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licences", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.Licenses.link.generated-index.title": { - "message": "Licences", - "description": "The generated-index page title for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.List Box.link.generated-index.title": { - "message": "List Box", - "description": "The generated-index page title for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Mail.link.generated-index.title": { - "message": "Mail", - "description": "The generated-index page title for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Fonctions mathématiques", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Math.link.generated-index.title": { - "message": "Fonctions mathématiques", - "description": "The generated-index page title for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menus", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Menus.link.generated-index.title": { - "message": "Menus", - "description": "The generated-index page title for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Messages.link.generated-index.title": { - "message": "Messages", - "description": "The generated-index page title for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Sélections temporaires", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Named Selections.link.generated-index.title": { - "message": "Sélections temporaires", - "description": "The generated-index page title for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objets (Formulaires)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms).link.generated-index.title": { - "message": "Objets (Formulaires)", - "description": "The generated-index page title for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objets (Langage)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language).link.generated-index.title": { - "message": "Objets (Langage)", - "description": "The generated-index page title for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "Fonctions statistiques", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.On a Series.link.generated-index.title": { - "message": "Fonctions statistiques", - "description": "The generated-index page title for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.PHP.link.generated-index.title": { - "message": "PHP", - "description": "The generated-index page title for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Conteneur de données", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pasteboard.link.generated-index.title": { - "message": "Conteneur de données", - "description": "The generated-index page title for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Images", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Pictures.link.generated-index.title": { - "message": "Images", - "description": "The generated-index page title for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Impressions", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Printing.link.generated-index.title": { - "message": "Impressions", - "description": "The generated-index page title for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Process (Communications)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (Communications).link.generated-index.title": { - "message": "Process (Communications)", - "description": "The generated-index page title for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Process (Interface utilisateur)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface).link.generated-index.title": { - "message": "Process (Interface utilisateur)", - "description": "The generated-index page title for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Processes.link.generated-index.title": { - "message": "Process", - "description": "The generated-index page title for category Processes in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Recherches et tris", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Queries.link.generated-index.title": { - "message": "Recherches et tris", - "description": "The generated-index page title for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Etats rapides", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Quick Report.link.generated-index.title": { - "message": "Etats rapides", - "description": "The generated-index page title for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Enregistrements (verrouillage)", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Record Locking.link.generated-index.title": { - "message": "Enregistrements (verrouillage)", - "description": "The generated-index page title for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Enregistrements", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Records.link.generated-index.title": { - "message": "Enregistrements", - "description": "The generated-index page title for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Liens", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Relations.link.generated-index.title": { - "message": "Liens", - "description": "The generated-index page title for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.Resources.link.generated-index.title": { - "message": "Resources", - "description": "The generated-index page title for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SQL.link.generated-index.title": { - "message": "SQL", - "description": "The generated-index page title for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.SVG.link.generated-index.title": { - "message": "SVG", - "description": "The generated-index page title for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocole sécurisé", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol.link.generated-index.title": { - "message": "Protocole sécurisé", - "description": "The generated-index page title for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Sélections", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Selection.link.generated-index.title": { - "message": "Sélections", - "description": "The generated-index page title for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Ensembles", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Sets.link.generated-index.title": { - "message": "Ensembles", - "description": "The generated-index page title for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Correcteur orthographique", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.Spell Checker.link.generated-index.title": { - "message": "Correcteur orthographique", - "description": "The generated-index page title for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.String.link.generated-index.title": { - "message": "String", - "description": "The generated-index page title for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Définition structure", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Structure Access.link.generated-index.title": { - "message": "Définition structure", - "description": "The generated-index page title for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Texte multistyle", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Styled Text.link.generated-index.title": { - "message": "Texte multistyle", - "description": "The generated-index page title for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Sous-enregistrements", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.Subrecords.link.generated-index.title": { - "message": "Sous-enregistrements", - "description": "The generated-index page title for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "Documents système", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Documents.link.generated-index.title": { - "message": "Documents système", - "description": "The generated-index page title for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "Environnement système", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.System Environment.link.generated-index.title": { - "message": "Environnement système", - "description": "The generated-index page title for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Table", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Table.link.generated-index.title": { - "message": "Table", - "description": "The generated-index page title for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Outils", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Tools.link.generated-index.title": { - "message": "Outils", - "description": "The generated-index page title for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Transactions.link.generated-index.title": { - "message": "Transactions", - "description": "The generated-index page title for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.Triggers.link.generated-index.title": { - "message": "Triggers", - "description": "The generated-index page title for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interface utilisateur", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.User Interface.link.generated-index.title": { - "message": "Interface utilisateur", - "description": "The generated-index page title for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Utilisateurs et groupes", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Users and Groups.link.generated-index.title": { - "message": "Utilisateurs et groupes", - "description": "The generated-index page title for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variables", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Variables.link.generated-index.title": { - "message": "Variables", - "description": "The generated-index page title for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Zones Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Area.link.generated-index.title": { - "message": "Zones Web", - "description": "The generated-index page title for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Serveur Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Server.link.generated-index.title": { - "message": "Serveur Web", - "description": "The generated-index page title for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client).link.generated-index.title": { - "message": "Web Services (Client)", - "description": "The generated-index page title for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Serveur)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server).link.generated-index.title": { - "message": "Web Services (Serveur)", - "description": "The generated-index page title for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.Windows.link.generated-index.title": { - "message": "Windows", - "description": "The generated-index page title for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML DOM.link.generated-index.title": { - "message": "XML DOM", - "description": "The generated-index page title for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML SAX.link.generated-index.title": { - "message": "XML SAX", - "description": "The generated-index page title for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.XML.link.generated-index.title": { - "message": "XML", - "description": "The generated-index page title for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Classes", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Classes", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Liste des classes 4D", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administration", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administration", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Comment contrôler vos applications 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Fenêtre d'administration de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administration Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administration Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Outils web 4D pour l'administration et la surveillance de vos applications.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Sauvegarde et restitution", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensions", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Applications Web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Applications Web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guides pour le développement d'applications Web avec 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Développement Web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Utiliser Qodly Studio pour créer des interfaces web puissantes.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "API REST", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "API REST", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exposer votre datastore en REST et utiliser l'API REST.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Exposer votre datastore en REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Exposer votre datastore en REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configurez votre datastore pour l'accès REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (général)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (général)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST pour les informations globales", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST pour dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Applications Desktop", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Applications Desktop", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guides pour le développement d'applications Desktop avec 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Droits d'accès", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Droits d'accès", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Contrôle d'accès et privilèges des utilisateurs pour les applications Desktop.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Éditeur de formulaires", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propriétés des formulaires", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objets de formulaire", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propriétés des objets de formulaire", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Applications mobiles", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (archive)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interface de ligne de commande", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocole TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Managing 4D Licenses": { - "message": "Gestion des licences 4D", - "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Collecte des données", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Client/Serveur", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propriétés utilisateur", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Générateur d'application", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - } -} diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json deleted file mode 100644 index c6b596dba9ea55..00000000000000 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json +++ /dev/null @@ -1,742 +0,0 @@ -{ - "version.label": { - "message": "20 R9", - "description": "The label for version 20-R9" - }, - "sidebar.docs.category.Getting Started": { - "message": "Prise en main", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Prise en main", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Développement", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Développement", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestion des projets", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Propriétés", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Environnement de développement", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Débogage", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Process", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Préférences", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Langage 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Langage 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Concepts", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Types de données", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Commandes", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Commandes", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Environnement 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Tableaux", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Sauvegarde", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Gestion du cache", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Collections", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Communications", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compilateur", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Saisie", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Sécurité des données", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Méthodes base", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Dates et heures", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Accès objets développement", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Glisser-Déposer", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Gestion de la saisie", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "Fichier et dossier", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Evénements formulaire", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formulaires", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Formules", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Graphes", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Listes hiérarchiques", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import-Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interruptions", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Langage", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licences", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Fonctions mathématiques", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menus", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Sélections temporaires", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objets (Formulaires)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objets (Langage)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "Fonctions statistiques", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Conteneur de données", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Images", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Impressions", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Process (Communications)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Process (Interface utilisateur)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Recherches et tris", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Etats rapides", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Enregistrements (verrouillage)", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Enregistrements", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Liens", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocole sécurisé", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Sélections", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Ensembles", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Correcteur orthographique", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Définition structure", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Texte multistyle", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Sous-enregistrements", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "Documents système", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "Environnement système", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Table", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Outils", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interface utilisateur", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Utilisateurs et groupes", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variables", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Zones Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Serveur Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Serveur)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Classes", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Classes", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Liste des classes 4D", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administration", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administration", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Comment contrôler vos applications 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Fenêtre d'administration de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administration Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administration Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Outils web 4D pour l'administration et la surveillance de vos applications.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Sauvegarde et restitution", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensions", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D AIKit": { - "message": "4D AIKit", - "description": "The label for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.4D AIKit.link.generated-index.title": { - "message": "4D AIKit", - "description": "The generated-index page title for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Applications Web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Applications Web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guides pour le développement d'applications Web avec 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Développement Web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Utiliser Qodly Studio pour créer des interfaces web puissantes.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "API REST", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "API REST", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exposer votre datastore en REST et utiliser l'API REST.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Exposer votre datastore en REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Exposer votre datastore en REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configurez votre datastore pour l'accès REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (général)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (général)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST pour les informations globales", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST pour dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Applications Desktop", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Applications Desktop", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guides pour le développement d'applications Desktop avec 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Droits d'accès", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Droits d'accès", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Contrôle d'accès et privilèges des utilisateurs pour les applications Desktop.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Éditeur de formulaires", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propriétés des formulaires", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objets de formulaire", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propriétés des objets de formulaire", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Applications mobiles", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (archive)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interface de ligne de commande", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocole TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Licenses": { - "message": "Licences", - "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Collecte des données", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Client/Serveur", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propriétés utilisateur", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Générateur d'application", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - }, - "sidebar.docs.doc.Labels": { - "message": "Etiquettes", - "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" - } -} diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index 0f3efe19eef728..5dcf2027434be2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3218,14 +3218,14 @@ La fonction `.sort()` trie les éléments Si `.sort()` est appelé sans paramètres, seules les valeurs scalaires (nombres, textes, dates, booléens) sont triées. Les éléments sont triés par défaut par ordre croissant, en fonction de leur type. You can also pass one of the following constants in the *ascOrDesc* parameter: - ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| - - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). - ``` +``` +|Constant| Type|Value|Comment| +|---|---|---|---| +|ck ascending|Integer|0|Elements are ordered in ascending order (default)| +|ck descending|Integer|1|Elements are ordered in descending order| + +This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +``` Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont renvoyés dans l'ordre suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 843671c80fe004..8aaf2eeb80c868 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -311,7 +311,7 @@ La valeur retournée est la clé publique. **.pem** : Text -Définition PEM d'une clé de chiffrement à charger. Si la clé est une clé privée, la clé publique RSA ou ECDSA en sera déduite. +PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index c6151a92503144..7e4e78654f65f7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -989,18 +989,18 @@ L'utilisation de placeholders dans les recherches **est recommandée** pour les 1. Cela empêche l'injection de code malveillant : si vous utilisez dans la chaîne de recherche des variables dont le contenu provient directement de la saisie de l'utilisateur, celui-ci pourrait modifier les conditions de recherche en saisissant des arguments de recherche supplémentaires. Par exemple, imaginez une chaîne de recherche du type : - ```4d - $vquery:="status = 'public' & name = "+myname //l'utilisateur saisit son nom - $result:=$col.query($vquery) - ``` +```4d + $vquery:="status = 'public' & name = "+myname //l'utilisateur saisit son nom + $result:=$col.query($vquery) +``` Cette recherche semble sécurisée puisque les données non publiques sont filtrées. Cependant, si l'utilisateur saisit dans la zone *myname* une chaîne du type *"smith OR status='private'*, la chaîne de recherche sera modifiée à l'étape de l'interprétation et pourra retourner des données privées. Lorsque vous utilisez des placeholders, le contournement des options de sécurité n'est pas possible : - ```4d - $result:=$col.query("status='public' & name=:1";myname) - ``` +```4d + $result:=$col.query("status='public' & name=:1";myname) +``` Dans ce cas, si l'utilisateur saisit *smith OR status='private'* dans la zone *myname*, cela ne sera pas interprété dans la chaîne de recherche, mais uniquement passé en tant que valeur. La recherche d'une personne nommée "smith OR status='private"' échouera simplement. @@ -1008,10 +1008,10 @@ Dans ce cas, si l'utilisateur saisit *smith OR status='private'* dans la zone *m 3. Cela permet l'utilisation de variables ou d'expressions dans les arguments de recherche. Exemples : - ```4d - $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") - $result2:=$col.query("company.name = :1";"John's Pizzas") - ``` +```4d +$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") +$result2:=$col.query("company.name = :1";"John's Pizzas") +``` ### Recherche de valeurs null diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md index 06f6647839c522..4068cecd72d6f6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md @@ -395,7 +395,7 @@ La propriété `.url` contient l'URL d ## .wait() -**.wait**( { *time* : Real } ) : 4D.HTTPRequest +**.wait**( { *timeout* : Real } ) : 4D.HTTPRequest diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 30d84b9a0721ad..86e3551428297f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Description -La fonction `.expunge()` supprime tous les messages avec le flag "deleted" du serveur de messagerie IMAP. Le flag "deleted" peut être défini avec les méthodes [`.delete()`](#delete) ou [`.addFlags()`](#addflags). +La fonction `.expunge()` supprime tous les messages marqués "deleted" du serveur de messagerie IMAP. Le marqueur "deleted" peut être fixé avec les fonctions [`.delete()`](#delete) ou [`.addFlags()`](#addflags). **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index aa33f878a1195e..647c7e5326f748 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ Les caractères spéciaux tels que les guillemets simples ou les retours à la l Exemple : `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -```4d +````4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -``` +```` :::note 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 d084bc461a9585..80d7b88e1bdf8c 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 @@ -57,6 +57,7 @@ Articles de blog sur cette fonctionnalité : - [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) - [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) +- [Générer, partager et utiliser des passcodes à usage unique (OTP) pour les sessions web](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index f04cf6f1e16ad7..6d33231b64fbbc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -73,7 +73,7 @@ La propriété `.port` contient le numéro de ## .type -**type** : Texte +**type** : Text #### Description 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 c1c4c8d456648a..1104e812cfeb76 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 @@ -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 | 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) | #### Notes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 2fcaf9ebcab865..3ce8a9a6391d0e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -316,21 +316,21 @@ Ce chemin d'accès au journal est retourné par la commande `Get 4D file`. Pour démarrer ce journal : - ```4d - $server:=New object - ... - //SMTP - $server.logFile:="MySMTPAuthLog.txt" - $transporter:=SMTP New transporter($server) - - // POP3 - $server.logFile:="MyPOP3AuthLog.txt" - $transporter:=POP3 New transporter($server) - - //IMAP - $server.logFile:="MyIMAPAuthLog.txt" - $transporter:=IMAP New transporter($server) - ``` +```4d +$server:=New object +... +//SMTP +$server.logFile:="MySMTPAuthLog.txt" +$transporter:=SMTP New transporter($server) + +// POP3 +$server.logFile:="MyPOP3AuthLog.txt" +$transporter:=POP3 New transporter($server) + +//IMAP +$server.logFile:="MyIMAPAuthLog.txt" +$transporter:=IMAP New transporter($server) +``` #### Contenu diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index c228acbcc97346..86d815735c548c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ A l'exécution, 4D hiérarchise automatiquement les feuilles de style dans l'ord - un fichier pour les deux plates-formes : - ``` - "css": "" - ``` +``` +"css": "" +``` - ou une liste de fichiers pour les deux plates-formes : - ``` - "css": [ - "", - "" - ], - ``` +``` +"css": [ + "", + "" + ], +``` - ou une liste de fichiers par plate-forme : - ``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], - ``` +``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], +``` > Les chemins de fichiers peuvent être relatifs ou absolus. > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index ed8cf2139c5922..cae3ebae04c6bc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1004,9 +1004,9 @@ Ces attributs peuvent être utilisés pour contrôler la plage de valeurs d'entr L'attribut behavior propose des variations de la représentation standard des valeurs. Une seule variation est possible : -| Attribut | Valeur(s) disponible(s) | valueType(s) | Description | -| -------- | ------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | Représente une valeur numérique sous la forme d'une case à cocher à trois états.
        2=semi-coché, 1=coché, 0=décoché, -1=invisible, -2=décoché désactivé, -3=coché désactivé, -4=semi-coché désactivé | +| Attribut | Valeur(s) disponible(s) | valueType(s) | Description | +| -------- | ------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | Représente une valeur numérique sous forme de case à cocher à trois états.
        2=intermédiaire, 1=cochée, 0=non cochée, -1=invisible, -2=non cochée désactivée, -3=cochée désactivée, -4=intermédiaire désactivée | ```4d C_OBJECT($ob3) @@ -1105,9 +1105,9 @@ Exemples : OB SET($ob;"requiredListReference";<>List) ``` - ``` - ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) - ``` +``` +![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) +``` #### choiceListName et choiceListReference diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md index b3a2fd136c69c7..312604665d50bf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md @@ -27,8 +27,8 @@ Le texte sélectionné est plus foncé et plus épais. Vous pouvez définir cette propriété en utilisant la commande [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Ceci est un texte normal.
        -> **Ceci est un texte en gras.** +> This is normal text.
        +> **This is bold text.** #### Grammaire JSON @@ -52,8 +52,8 @@ Fait pencher le texte sélectionné légèrement vers la droite. Vous pouvez également définir cette propriété via la commande [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Ceci est un texte normal.
        -> *Ceci est un texte en italique.* +> This is normal text.
        +> *This is text in italics.* #### Grammaire JSON diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index a5fceb7c36ae6a..ad52acd58a7e5b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Description -**Compile project** vous permet de compiler le projet hôte courant ou le projet spécifié dans le paramètre *projectFile*. Pour plus d'informations sur la compilation, consultez la [page Compilation] (../Project/compiler.md). +**Compile project** vous permet de compiler le projet hôte courant ou le projet spécifié dans le paramètre *projectFile*. Pour plus d'informations sur la compilation, consultez la [page Compilation](../Project/compiler.md). Par défaut, la commande utilise les options du compilateur définies dans les Paramètres de structure. Vous pouvez les remplacer en passant un paramètre *options*. Les syntaxes suivantes sont prises en charge : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 4ee827c73626cd..9fb97a11f774c7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -La commande **DIALOG** présente le *formulaire* à l'utilisateur, en lui passant de(s) paramètre(s) *formData* (facultatif). +The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). Cette commande permet de concevoir des interfaces utilisateur personnalisées et sophistiquées, basées sur des formulaires. Vous pouvez l'utiliser pour afficher des informations provenant de la base ou d'autres sources, ou proposer des fonctions de saisie des données. Contrairement à [ADD RECORD](../commands-legacy/add-record.md) ou [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** vous donne un contrôle total sur le formulaire, son contenu et les boutons de navigation et de validation. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index f3dd50a1af6982..60cf2b71f91fc6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Description -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.La commande **FORM EDIT** ouvre le formulaire *form* associé à *aTable* dans l'éditeur de formulaires de 4D, avec optionnellement *object* sélectionné. Notez que vous devez avoir accès à l'environnement de Structure, sinon l'erreur -9804 ("Cannot open form") est générée. +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.La commande **FORM EDIT** ouvre le formulaire *form* associé à *aTable* dans l'éditeur de formulaires de 4D, avec optionnellement *object* sélectionné. Notez que vous devez avoir accès à l'environnement de Structure, sinon l'erreur -9804 ("Cannot open form") est générée. La commande est asynchrone : elle retourne immédiatement à la méthode appelante et n'attend pas que le formulaire soit ouvert. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 571dc0d82ab13a..01e07a45a6e839 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** retourne un objet contenant des informations sur l'événement formulaire qui vient de se produire. Habituellement, vous utiliserez **FORM Event** à partir d'une méthode formulaire ou objet. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** retourne un objet contenant des informations sur l'événement formulaire qui vient de se produire. Habituellement, vous utiliserez **FORM Event** à partir d'une méthode formulaire ou objet. **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md index c6eee7eccce15b..d7b6263916c62d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.La commande **FORM LOAD** est utilisée pour charger le formulaire *form* en mémoire dans le process courant avec *formData* (facultatif) afin d'imprimer ses données ou d'analyser son contenu. Il ne peut y avoir qu'un seul formulaire courant par process. +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.La commande **FORM LOAD** est utilisée pour charger le formulaire *form* en mémoire dans le process courant avec *formData* (facultatif) afin d'imprimer ses données ou d'analyser son contenu. Il ne peut y avoir qu'un seul formulaire courant par process. Dans le paramètre *form*, vous pouvez passer soit : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md index 1a1235e558d81c..092f5a77775426 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Description -La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : +The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - le formulaire courant est un sous-formulaire, diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 87c974d2cb08bb..5f63d1446493b8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Description -La commande **License info** renvoie un objet fournissant des informations détaillées sur la licence active. +The **License info** command returns an object providing detailed information about the active license. Si la commande est exécutée sur une application 4D qui n'utilise pas de licence localement (par exemple 4D remote), la commande renvoie un objet Null. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index 793db83a3d414c..b5f2609953b224 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -La commande `New collection` crée une nouvelle collection vide ou pré-remplie et retourne sa référence. Les collections peuvent être gérées à l'aide des propriétés et des fonctions de la [classe Collection](../API/CollectionClass.md). +La commande `New collection` crée une nouvelle collection vide ou pré-remplie et retourne sa référence. Les collections peuvent être manipulées à l'aide des propriétés et des fonctions de la [classe Collection](../API/CollectionClass.md). Si vous ne passez aucun paramètre, `New collection` crée une collection vide et retourne sa référence. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 9e5f7ad5a9d05f..8e4b4910b6ac60 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Description -La commande **Print form** imprime simplement *form* avec les valeurs courantes des champs et des variables de la table *aTable*. Elle est généralement utilisée pour imprimer des états très complexes qui nécessitent un contrôle complet du processus d'impression. **Print form** ne gère pas les traitements d'enregistrements, ni les ruptures, sauts de pages, en-têtes ou pieds de pages. Vous devez vous-même prendre en charge ces opérations. **Print form** imprime uniquement des champs et des variables avec une taille fixe, la commande ne gère pas les objets de taille variable. +The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.La commande **Print form** imprime simplement *form* avec les valeurs courantes des champs et des variables de la table *aTable*. Elle est généralement utilisée pour imprimer des états très complexes qui nécessitent un contrôle complet du processus d'impression. **Print form** ne gère pas les traitements d'enregistrements, ni les ruptures, sauts de pages, en-têtes ou pieds de pages. Vous devez vous-même prendre en charge ces opérations. **Print form** imprime uniquement des champs et des variables avec une taille fixe, la commande ne gère pas les objets de taille variable. Dans le paramètre *form*, vous pouvez passer soit : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 8e09a9716b1f37..31988f39c658e0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Description -La commande **Process activity** retourne une vue instantanée des process en cours d'exécution et/ou (4D Server uniquement) de sessions utilisateur à un moment donné. Cette commande retourne tous les process, y compris les process internes qui ne sont pas accessibles à la commande [Process info](process-info.md). +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.La commande **Process activity** retourne une vue instantanée des process en cours d'exécution et/ou (4D Server uniquement) de sessions utilisateur à un moment donné. Cette commande retourne tous les process, y compris les process internes qui ne sont pas accessibles par la commande [Process info](process-info.md). Par défaut, lorsqu'elle est utilisée sans aucun paramètre, **Process activity** renvoie un objet contenant les propriétés suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index beaa5cb365a0b5..2151b672b79934 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -10,7 +10,7 @@ displayed_sidebar: docs | Paramètres | Type | | Description | | ------------- | ------- | :-------------------------: | --------------------------- | -| processNumber | Integer | → | Process number | +| processNumber | Integer | → | Numéro du process | | Résultat | Object | ← | Informations sur le process | @@ -36,8 +36,8 @@ L'objet retourné contient les propriétés suivantes : | creationDateTime | Text (Date ISO 8601) | Date et heure de création du process | | ID | Integer | ID unique du process | | name | Text | Nom du process | -| number | Integer | Process number | -| préemptif | Boolean | Vrai si l'exécution est préemptive, faux sinon | +| number | Integer | Numéro du process | +| preemptive | Boolean | Vrai si l'exécution est préemptive, faux sinon | | sessionID | Text | UUID de la session | | state | Integer | Statut courant. Valeurs possibles : voir ci-dessous | | systemID | Text | ID du process utilisateur, 4D ou de réserve | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 2db1ea4facec81..d397f988bdf94a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -14,7 +14,7 @@ displayed_sidebar: docs | name | Text | → | Nom du process duquel obtenir le numéro | | id | Text | → | ID du process duquel récupérer le numéro | | \* | Opérateur | → | Renvoyer le numéro du process depuis le serveur | -| Résultat | Integer | ← | Process number | +| Résultat | Integer | ← | Numéro du process | @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Description -La commande `Process number` retourne le numéro du process dont le nom *name* ou l'*id* est passé en premier paramètre. Si aucun process n'est trouvé, `Process number` renvoie 0. +The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterThe `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterLa commande `Process number` renvoie le numéro du process dont le nom *name* ou l'*id* est passé en premier paramètre. Si aucun process n'est trouvé, `Process number` renvoie 0. Le paramètre optionnel \* permet de récupérer, à partir d'un 4D distant, le numéro d'un process exécuté sur le serveur. Dans ce cas, la valeur retournée est négative. Cette option est particulièrement utile lors de l'utilisation des commandes [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) et [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index 177583a834db94..2ee3e31d620a5d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Description -La commande **Session storage** renvoie l'objet de stockage de la session dont l'identifiant unique a été passé dans le paramètre *id*. +The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. Dans *id*, indiquez l'UUID de la session pour laquelle vous souhaitez obtenir le stockage. Il est automatiquement attribué par 4D (4D Server ou, pour les sessions autonomes, 4D monoposte) et est stocké dans la propriété [**.id**](../API/SessionClass.md#id) de l'[objet session](../API/SessionClass.md). Si la session n'existe pas, la commande renvoie **Null**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index 0aa053320fedd4..34ea3ae747b594 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -La commande **SET ALLOWED METHODS** permet de désigner les méthodes projet qui peuvent être appelées directement depuis l'application. +The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. 4D inclut un mécanisme de sécurité filtrant les méthodes projet saisissables depuis les contextes suivants : diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json deleted file mode 100644 index 04d401abd7c6e8..00000000000000 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "version.label": { - "message": "20 R8", - "description": "The label for version 20-R8" - }, - "sidebar.docs.category.Getting Started": { - "message": "はじめに", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "はじめに", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "コア開発", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "コア開発", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "プロジェクト管理", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Settings", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "開発環境", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "デバッガー", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "プロセス", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "環境設定", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "4Dランゲージ", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "4Dランゲージ", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "コンセプト", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "データタイプ", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "コマンド", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "コマンド", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "4D環境", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.4D Environment.link.generated-index.title": { - "message": "4D環境", - "description": "The generated-index page title for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "配列", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Arrays.link.generated-index.title": { - "message": "配列", - "description": "The generated-index page title for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "バックアップ", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.Backup.link.generated-index.title": { - "message": "バックアップ", - "description": "The generated-index page title for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.BLOB.link.generated-index.title": { - "message": "BLOB", - "description": "The generated-index page title for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Boolean.link.generated-index.title": { - "message": "Boolean", - "description": "The generated-index page title for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "キャッシュ管理", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Cache Management.link.generated-index.title": { - "message": "キャッシュ管理", - "description": "The generated-index page title for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "コレクション", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Collections.link.generated-index.title": { - "message": "コレクション", - "description": "The generated-index page title for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "通信", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Communications.link.generated-index.title": { - "message": "通信", - "description": "The generated-index page title for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "コンパイラー", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Compiler.link.generated-index.title": { - "message": "コンパイラー", - "description": "The generated-index page title for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "データ入力", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Entry.link.generated-index.title": { - "message": "データ入力", - "description": "The generated-index page title for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "データセキュリティ", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Data Security.link.generated-index.title": { - "message": "データセキュリティ", - "description": "The generated-index page title for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "データベースメソッド", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Database Methods.link.generated-index.title": { - "message": "データベースメソッド", - "description": "The generated-index page title for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "日付と時間", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Date and Time.link.generated-index.title": { - "message": "日付と時間", - "description": "The generated-index page title for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "デザインオブジェクトアクセス", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Design Object Access.link.generated-index.title": { - "message": "デザインオブジェクトアクセス", - "description": "The generated-index page title for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "ドラッグ&ドロップ", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop.link.generated-index.title": { - "message": "ドラッグ&ドロップ", - "description": "The generated-index page title for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "入力制御", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.Entry Control.link.generated-index.title": { - "message": "入力制御", - "description": "The generated-index page title for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "ファイルとフォルダ", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.File and Folder.link.generated-index.title": { - "message": "ファイルとフォルダ", - "description": "The generated-index page title for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "フォームイベント", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Form Events.link.generated-index.title": { - "message": "フォームイベント", - "description": "The generated-index page title for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Forms", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Forms.link.generated-index.title": { - "message": "Forms", - "description": "The generated-index page title for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "フォーミュラ", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Formulas.link.generated-index.title": { - "message": "フォーミュラ", - "description": "The generated-index page title for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "グラフ", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.Graphs.link.generated-index.title": { - "message": "グラフ", - "description": "The generated-index page title for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTPクライアント", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.HTTP.link.generated-index.title": { - "message": "HTTPクライアント", - "description": "The generated-index page title for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "階層リスト", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { - "message": "階層リスト", - "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "インポート&エクスポート", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Import and Export.link.generated-index.title": { - "message": "インポート&エクスポート", - "description": "The generated-index page title for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "割り込み", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.Interruptions.link.generated-index.title": { - "message": "割り込み", - "description": "The generated-index page title for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.JSON.link.generated-index.title": { - "message": "JSON", - "description": "The generated-index page title for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.LDAP.link.generated-index.title": { - "message": "LDAP", - "description": "The generated-index page title for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "ランゲージ", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Language.link.generated-index.title": { - "message": "ランゲージ", - "description": "The generated-index page title for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "ライセンスリスト", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.Licenses.link.generated-index.title": { - "message": "ライセンスリスト", - "description": "The generated-index page title for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "リストボックス", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.List Box.link.generated-index.title": { - "message": "リストボックス", - "description": "The generated-index page title for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "メール", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Mail.link.generated-index.title": { - "message": "メール", - "description": "The generated-index page title for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "算術関数", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Math.link.generated-index.title": { - "message": "算術関数", - "description": "The generated-index page title for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "メニュー", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Menus.link.generated-index.title": { - "message": "メニュー", - "description": "The generated-index page title for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "メッセージ", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Messages.link.generated-index.title": { - "message": "メッセージ", - "description": "The generated-index page title for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "命名セレクション", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Named Selections.link.generated-index.title": { - "message": "命名セレクション", - "description": "The generated-index page title for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "オブジェクト (フォーム)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms).link.generated-index.title": { - "message": "オブジェクト (フォーム)", - "description": "The generated-index page title for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "オブジェクト (ランゲージ)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language).link.generated-index.title": { - "message": "オブジェクト (ランゲージ)", - "description": "The generated-index page title for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "統計関数", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.On a Series.link.generated-index.title": { - "message": "統計関数", - "description": "The generated-index page title for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.PHP.link.generated-index.title": { - "message": "PHP", - "description": "The generated-index page title for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "ペーストボード", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pasteboard.link.generated-index.title": { - "message": "ペーストボード", - "description": "The generated-index page title for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "ピクチャー", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Pictures.link.generated-index.title": { - "message": "ピクチャー", - "description": "The generated-index page title for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "印刷", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Printing.link.generated-index.title": { - "message": "印刷", - "description": "The generated-index page title for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "プロセス (通信)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (Communications).link.generated-index.title": { - "message": "プロセス (通信)", - "description": "The generated-index page title for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "プロセス (ユーザーインターフェース)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface).link.generated-index.title": { - "message": "プロセス (ユーザーインターフェース)", - "description": "The generated-index page title for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Processes.link.generated-index.title": { - "message": "プロセス", - "description": "The generated-index page title for category Processes in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "クエリ", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Queries.link.generated-index.title": { - "message": "クエリ", - "description": "The generated-index page title for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "クイックレポート", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Quick Report.link.generated-index.title": { - "message": "クイックレポート", - "description": "The generated-index page title for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "レコードロック", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Record Locking.link.generated-index.title": { - "message": "レコードロック", - "description": "The generated-index page title for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "レコード", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Records.link.generated-index.title": { - "message": "レコード", - "description": "The generated-index page title for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "リレーション", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Relations.link.generated-index.title": { - "message": "リレーション", - "description": "The generated-index page title for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.Resources.link.generated-index.title": { - "message": "Resources", - "description": "The generated-index page title for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SQL.link.generated-index.title": { - "message": "SQL", - "description": "The generated-index page title for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.SVG.link.generated-index.title": { - "message": "SVG", - "description": "The generated-index page title for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "暗号化プロトコル", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol.link.generated-index.title": { - "message": "暗号化プロトコル", - "description": "The generated-index page title for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "セレクション", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Selection.link.generated-index.title": { - "message": "セレクション", - "description": "The generated-index page title for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "セット", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Sets.link.generated-index.title": { - "message": "セット", - "description": "The generated-index page title for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "スペルチェッカー", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.Spell Checker.link.generated-index.title": { - "message": "スペルチェッカー", - "description": "The generated-index page title for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "文字列", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.String.link.generated-index.title": { - "message": "文字列", - "description": "The generated-index page title for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "ストラクチャーアクセス", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Structure Access.link.generated-index.title": { - "message": "ストラクチャーアクセス", - "description": "The generated-index page title for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "スタイル付きテキスト", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Styled Text.link.generated-index.title": { - "message": "スタイル付きテキスト", - "description": "The generated-index page title for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "サブレコード", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.Subrecords.link.generated-index.title": { - "message": "サブレコード", - "description": "The generated-index page title for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "システムドキュメント", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Documents.link.generated-index.title": { - "message": "システムドキュメント", - "description": "The generated-index page title for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "システム環境", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.System Environment.link.generated-index.title": { - "message": "システム環境", - "description": "The generated-index page title for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Table", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Table.link.generated-index.title": { - "message": "Table", - "description": "The generated-index page title for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "ツール", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Tools.link.generated-index.title": { - "message": "ツール", - "description": "The generated-index page title for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "トランザクション", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Transactions.link.generated-index.title": { - "message": "トランザクション", - "description": "The generated-index page title for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.Triggers.link.generated-index.title": { - "message": "Triggers", - "description": "The generated-index page title for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "ユーザーインターフェース", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.User Interface.link.generated-index.title": { - "message": "ユーザーインターフェース", - "description": "The generated-index page title for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "ユーザー&グループ", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Users and Groups.link.generated-index.title": { - "message": "ユーザー&グループ", - "description": "The generated-index page title for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "変数", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Variables.link.generated-index.title": { - "message": "変数", - "description": "The generated-index page title for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Webエリア", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Area.link.generated-index.title": { - "message": "Webエリア", - "description": "The generated-index page title for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Web サーバー", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Server.link.generated-index.title": { - "message": "Web サーバー", - "description": "The generated-index page title for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Webサービス (クライアント)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client).link.generated-index.title": { - "message": "Webサービス (クライアント)", - "description": "The generated-index page title for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Webサービス (サーバー)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server).link.generated-index.title": { - "message": "Webサービス (サーバー)", - "description": "The generated-index page title for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.Windows.link.generated-index.title": { - "message": "Windows", - "description": "The generated-index page title for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML DOM.link.generated-index.title": { - "message": "XML DOM", - "description": "The generated-index page title for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML SAX.link.generated-index.title": { - "message": "XML SAX", - "description": "The generated-index page title for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.XML.link.generated-index.title": { - "message": "XML", - "description": "The generated-index page title for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "クラス", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "クラス関数", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "ビルトイン 4Dクラスの一覧", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "管理", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "管理", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "4Dアプリケーションの管理", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "4D Server 管理ウィンドウ", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Web 管理", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Web 管理", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "アプリケーション管理・監視用の 4D Web ツール", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "メンテナンス&セキュリティセンター", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "バックアップと復元", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "拡張機能", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Web アプリ", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Web アプリ", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "4D での Webアプリケーション開発ガイド", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Web 開発", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Qodly Studio を使用して強力な Webインターフェースを構築する。", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "データストアを REST に公開し、REST API を使用する。", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "データストアを REST に公開する", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "データストアを REST に公開する", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "RESTアクセスのためにデータストアを設定する", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (一般)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (一般)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "グローバル情報用の REST API", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "データクラス用の REST API", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "デスクトップアプリ", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "デスクトップアプリ", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "4D でのデスクトップアプリケーション開発ガイド", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "アクセス権限", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "アクセス権限", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "デスクトップアプリケーションのアクセス管理とユーザー権限", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "フォームエディター", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "フォームプロパティ", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "フォームオブジェクト", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "フォームオブジェクトプロパティ", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "モバイルアプリ", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (アーカイブ)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "コマンドライン・インターフェース", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "TLSプロトコル", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Managing 4D Licenses": { - "message": "4D ライセンスの管理", - "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "データ収集", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "クライアント/サーバー", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "ユーザー設定", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "アプリケーションビルド", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - } -} diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json deleted file mode 100644 index 47a9daab258bd5..00000000000000 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json +++ /dev/null @@ -1,742 +0,0 @@ -{ - "version.label": { - "message": "20 R9", - "description": "The label for version 20-R9" - }, - "sidebar.docs.category.Getting Started": { - "message": "はじめに", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "はじめに", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "コア開発", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "コア開発", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "プロジェクト管理", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Settings", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "開発環境", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "デバッガー", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "プロセス", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "環境設定", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "4Dランゲージ", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "4Dランゲージ", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "コンセプト", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "データタイプ", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "コマンド", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "コマンド", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "4D環境", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "配列", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "バックアップ", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Boolean", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "キャッシュ管理", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "コレクション", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "通信", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "コンパイラー", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "データ入力", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "データセキュリティ", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "データベースメソッド", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "日付と時間", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "デザインオブジェクトアクセス", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "ドラッグ&ドロップ", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "入力制御", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "ファイルとフォルダ", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "フォームイベント", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Forms", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "フォーミュラ", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "グラフ", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTPクライアント", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "階層リスト", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "インポート&エクスポート", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "割り込み", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "ランゲージ", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "ライセンスリスト", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "リストボックス", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "メール", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "算術関数", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "メニュー", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "メッセージ", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "命名セレクション", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "オブジェクト (フォーム)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "オブジェクト (ランゲージ)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "統計関数", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "ペーストボード", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "ピクチャー", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "印刷", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "プロセス (通信)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "プロセス (ユーザーインターフェース)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "クエリ", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "クイックレポート", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "レコードロック", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "レコード", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "リレーション", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "暗号化プロトコル", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "セレクション", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "セット", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "スペルチェッカー", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "文字列", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "ストラクチャーアクセス", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "スタイル付きテキスト", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "サブレコード", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "システムドキュメント", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "システム環境", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Table", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "ツール", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "トランザクション", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "ユーザーインターフェース", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "ユーザー&グループ", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "変数", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Webエリア", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Web サーバー", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Webサービス (クライアント)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Webサービス (サーバー)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "クラス", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "クラス関数", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "ビルトイン 4Dクラスの一覧", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "管理", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "管理", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "4Dアプリケーションの管理", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "4D Server 管理ウィンドウ", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Web 管理", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Web 管理", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "アプリケーション管理・監視用の 4D Web ツール", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "メンテナンス&セキュリティセンター", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "バックアップと復元", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "拡張機能", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D AIKit": { - "message": "4D AIKit", - "description": "The label for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.4D AIKit.link.generated-index.title": { - "message": "4D AIKit", - "description": "The generated-index page title for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Web アプリ", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Web アプリ", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "4D での Webアプリケーション開発ガイド", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Web 開発", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Qodly Studio を使用して強力な Webインターフェースを構築する。", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "データストアを REST に公開し、REST API を使用する。", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "データストアを REST に公開する", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "データストアを REST に公開する", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "RESTアクセスのためにデータストアを設定する", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (一般)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (一般)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "グローバル情報用の REST API", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "データクラス用の REST API", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "デスクトップアプリ", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "デスクトップアプリ", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "4D でのデスクトップアプリケーション開発ガイド", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "アクセス権限", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "アクセス権限", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "デスクトップアプリケーションのアクセス管理とユーザー権限", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "フォームエディター", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "フォームプロパティ", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "フォームオブジェクト", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "フォームオブジェクトプロパティ", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "モバイルアプリ", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (アーカイブ)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "コマンドライン・インターフェース", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "TLSプロトコル", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Licenses": { - "message": "ライセンスリスト", - "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "データ収集", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "クライアント/サーバー", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "ユーザー設定", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "アプリケーションビルド", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - }, - "sidebar.docs.doc.Labels": { - "message": "ラベル", - "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" - } -} diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index b073eab4be9478..e4e4c9dc5dc0fe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3222,14 +3222,14 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 You can also pass one of the following constants in the *ascOrDesc* parameter: - ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| - - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). - ``` +``` +|Constant| Type|Value|Comment| +|---|---|---|---| +|ck ascending|Integer|0|Elements are ordered in ascending order (default)| +|ck descending|Integer|1|Elements are ordered in descending order| + +This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +``` コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 5c59fb9d193903..b2c7222ef927b4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -312,7 +312,7 @@ ECDSA キーのみ: キーの楕円曲線 **.pem** : Text -ロードする PEM 形式の暗号化キー。 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 +PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index a8f389fc3a0b6a..8c7751024c35e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -995,18 +995,18 @@ attributePath|formula 比較演算子 値 1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。 たとえば、以下のようなクエリ文字列を考えます: - ```4d - $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します - $result:=$col.query($vquery) - ``` +```4d + $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します + $result:=$col.query($vquery) +``` 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。 しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: - ```4d - $result:=$col.query("status='public' & name=:1";myname) - ``` +```4d + $result:=$col.query("status='public' & name=:1";myname) +``` この場合、ユーザーが *myname* エリアに *smith OR status='private'* と入力した場合でも、それはクエリ文字列 とはみなされず、値として渡されるだけです。 "smith OR status='private' " という名前の人物を検索したところで、結果は失敗に終わるだけです。 @@ -1014,10 +1014,10 @@ attributePath|formula 比較演算子 値 3. クエリに変数や式を使用することができます。 例: - ```4d - $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") - $result2:=$col.query("company.name = :1";"John's Pizzas") - ``` +```4d +$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") +$result2:=$col.query("company.name = :1";"John's Pizzas") +``` ### null値を検索する diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index ea05954febe964..c44d08c32ee4ad 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -58,7 +58,7 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性が**リレートエンティティ**型の場合: - `.attributeName` はリレートエンティティを返します。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が attributeName プロパティに返されます (リレーション名についての value および otherValue は空になります)。 + `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" - *attributeName* で指定した属性が**リレートエンティティズ型**の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 @@ -358,7 +358,7 @@ vCompareResult1 (すべての差異が返されています): #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。 ただしエンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md index d4229c8053e25e..55e058d85bd076 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md @@ -130,7 +130,7 @@ $result:=$sel[0].lock() //動作しません - *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクション を返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 -エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクションです。 +エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクション です。 属性がエンティティセレクション内に存在しない場合、エラーが返されます。 @@ -677,7 +677,7 @@ $sel2:=$sel.clean() `.distinct()` 関数は、*attributePath* に指定した、エンティティセレクション内の重複しない (異なる) 値のみを格納したコレクションを返します。 -返されたコレクションは自動的に並べ替えられています。 **Null** 値は返されません。 +返されたコレクションは自動的に並べ替えられています。 **Null** 値 は返されません。 *attributePath* 引数として、固有の値を取得したいエンティティ属性を渡します。 スカラー値 (テキスト、数値、ブール、あるいは日付) のみが可能です。 *attributePath* のパスが異なる型の値を格納しているオブジェクトプロパティ であった場合、まず最初に型ごとにグループ分けされ、そのあとで並べ替えされます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index d2084f00b09799..3f0ddf41a24a61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -652,7 +652,7 @@ End if #### 説明 -`.expunge()` 関数は IMAPメールサーバーから "deleted "フラグのついたメッセー ジをすべて削除します。 "deleted" フラグは[`.delete()`](#delete) または [`.addFlags()`](#addflags) 関数によって設定可能です。 +`.expunge()` 関数は、"deleted" フラグがつけられたメッセージをすべて IMAP メールサーバーから削除します。"deleted" フラグは、[`.delete()`](#delete) または [`.addFlags()`](#addflags) 関数によって設定可能です。 **返されるオブジェクト** diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 04d4a74933c492..15987181406bdd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ $test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true 例: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -```4d +````4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -``` +```` :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index db3cb9922d3000..3c4e67a05b69a6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -346,7 +346,7 @@ The `wait()` function TCP 接続が閉 :::note -`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 +`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index 27599d57aca16f..82f839a96dd6d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ title: 数値(実数、整数) ビットワイズ演算子を使用する式は倍長整数値を返します。 Bit Test 演算子の場合、式は例外的にブール値を返します。 次の表にビットワイズ演算子とそのシンタックスを示します: 次の表にビットワイズ演算子とそのシンタックスを示します: 次の表にビットワイズ演算子とそのシンタックスを示します: -| 演算 | 演算子 | シンタックス | 戻り値 | -| ----------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------- | -| Bitwise AND | & | Long & Long | Long | -| Bitwise OR (inclusive) | | | Long | Long | Long | -| Bitwise OR (exclusive) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (注記1 参照) | -| Right Bit Shift | > > | Long >> Long | Long (注記1 参照) | -| Bit Set | ?+ | Long ?+ Long | Long (注記2 参照) | -| Bit Clear | ?- | Long ?- Long | Long (注記2 参照) | -| Bit Test | ?? | Long ?? Long | Boolean (注記2 参照) | +| 演算 | 演算子 | シンタックス | 戻り値 | +| ----------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------- | +| Bitwise AND | & | Long & Long | Long | +| Bitwise OR (inclusive) | | | Long | Long | Long | +| Bitwise OR (exclusive) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (注記1 参照) | +| Right Bit Shift | > > | Long >> Long | Long (注記1 参照) | +| Bit Set | ?+ | Long ?+ Long | Long (注記2 参照) | +| Bit Clear | ?- | Long ?- Long | Long (注記2 参照) | +| Bit Test | ?? | Long ?? Long | Boolean (注記2 参照) | #### 注記 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 6853e9cae60522..19d7e9018a0489 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -315,21 +315,21 @@ SET DATABASE PARAMETER(SMTP Log;1) // SMTPログを開始 このログを開始するには: - ```4d - $server:=New object - ... - //SMTP - $server.logFile:="MySMTPAuthLog.txt" - $transporter:=SMTP New transporter($server) - - // POP3 - $server.logFile:="MyPOP3AuthLog.txt" - $transporter:=POP3 New transporter($server) - - //IMAP - $server.logFile:="MyIMAPAuthLog.txt" - $transporter:=IMAP New transporter($server) - ``` +```4d +$server:=New object +... +//SMTP +$server.logFile:="MySMTPAuthLog.txt" +$transporter:=SMTP New transporter($server) + +// POP3 +$server.logFile:="MyPOP3AuthLog.txt" +$transporter:=POP3 New transporter($server) + +//IMAP +$server.logFile:="MyIMAPAuthLog.txt" +$transporter:=IMAP New transporter($server) +``` #### 内容 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md index 6c0289021d73c4..d122d6ecb203ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md @@ -26,7 +26,7 @@ title: ラベル ラベルエディターは、次のように開きます: - デザインモードでは、**ツール**メニュー、あるいは4Dツールバーにあるツールボタンのメニューから\*\*ラベル...\*\*を選択します。 - OR + または - アプリケーションモードでは、 [`PRINT LABEL`](../commands-legacy/print-label.md) コマンドを使用します。 ![](../assets/en/Desktop/label-wizard.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 5df183550bf2ef..5ba9b4c8d196d3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - 両プラットフォーム用のファイル: - ``` - "css": "" - ``` +``` +"css": "" +``` - または、両プラットフォーム用に複数のファイル: - ``` - "css": [ - "", - "" - ], - ``` +``` +"css": [ + "", + "" + ], +``` - または、プラットフォームごとのファイルリスト: - ``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], - ``` +``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], +``` > ファイルパスは相対パスと絶対パスが使えます。 > diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index a4c106341760f6..3f8b9cbcbd78c7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Windows の場合、サークルは表示されません。 [タイプ](properties_Object.md#タイプ) - [オブジェクト名](properties_Object.md#オブジェクト名) - [変数あるいは式](properties_Object.md#変数あるいは式) - [タイトル](properties_Object.md#タイトル) - [CSSクラス](properties_Object.md#cssclass) - [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル) - [ピクチャーパス名](properties_TextAndPicture.md#ピクチャーパス名)(1) - [状態の数](properties_TextAndPicture.md#状態の数)(1) - [タイトル/ピクチャー位置](properties_TextAndPicture.md#タイトルピクチャー位置)(1) - [ポップアップメニューあり](properties_TextAndPicture.md#ポップアップメニューあり)(2) - [タイトルと画像を隣接させる](properties_TextAndPicture.md#タイトルと画像を隣接させる)(1) - [左](properties_CoordinatesAndSizing.md#左) - [上](properties_CoordinatesAndSizing.md#上) - [右](properties_CoordinatesAndSizing.md#右) - [下](properties_CoordinatesAndSizing.md#下) - [幅](properties_CoordinatesAndSizing.md#幅) - [高さ](properties_CoordinatesAndSizing.md#高さ) - [横方向サイズ変更](properties_ResizingOptions.md#横方向サイズ変更) - [縦方向サイズ変更](properties_ResizingOptions.md#縦方向サイズ変更) - [フォーカス可](properties_Entry.md#フォーカス可) - [ショートカット](properties_Entry.md#ショートカット) - [表示状態](properties_Display.md#表示状態) - [レンダリングしない](properties_Display.md#レンダリングしない) - [境界線スタイル](properties_BackgroundAndBorder.md#境界線スタイル) - [フォント](properties_Text.md#フォント) - [フォントサイズ](properties_Text.md#フォントサイズ) - [太字](properties_Text.md#太字) - [イタリック](properties_Text.md#イタリック) - [下線](properties_Text.md#下線) - [フォントカラー](properties_Text.md#フォントカラー) - [横揃え](properties_Text.md#横揃え) - [ヘルプTips](properties_Help.md#ヘルプtips) - [標準アクション](properties_Action.md#標準アクション) - [ドロップ有効](properties_Action.md#ドロップ有効) -> (1) [Help](#help) スタイルではサポートされていません。
        -> (2) [Help](#help)、[Flat](#flat)、[Regular](#regular) スタイルではサポートされていません。 +> (1) [ヘルプ](#ヘルプ) スタイルではサポートされていません。
        +> (2) [ヘルプ](#ヘルプ)、[フラット](#フラット) および [通常](#通常) スタイルではサポートされていません。 [ボタンスタイル](#ボタンスタイル) に応じて、次の追加プロパティが使用できます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 210a5da22f78d5..432da2f0395cdc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -577,7 +577,7 @@ JSON フォームにおいて、リストボックスに次のハイライトセ デベロッパーは、例えば[`LISTBOX SORT COLUMNS`](../commands-legacy/listbox-sort-columns.md) コマンドを使用したり、あるいは[`On Header Click`](../Events/onHeaderClick) および [`On After Sort`](../Events/onAfterSort) フォームイベントと関連する4D コマンドを組み合わせることにより、カスタムのソートを設定することができます。 -カスタムソートを以下のことが可能です: +カスタムソートは以下のことが可能です: - [`LISTBOX SORT COLUMNS`](../commands-legacy/listbox-sort-columns.md) コマンドを使うことで、複数のカラムに対してマルチレベルソートを実行する。 - [`collection.orderByMethod()`](../API/CollectionClass.md#orderbymethod) や [`entitySelection.orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) などの関数を使って、複雑な条件のソートをおこなう @@ -1049,9 +1049,9 @@ ARRAY OBJECT(obColumn;0) // カラム配列 behavior 属性は、値の通常の表示とは異なる表示方法を提供します。 4D v15では、一つだけ他の表示方法が用意されています: -| 属性 | 使用可能な値 | valueType | 説明 | -| -------- | ----------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | 数値をスリーステートチェックボックスとして表します。
        2=セミチェックボックス、1=チェックされている、0=チェックされていない、-1=非表示チェックボックス、-2=チェックされていない、入力不可、-3=チェックされている、入力不可、-4=セミチェックボックス、入力不可 | +| 属性 | 使用可能な値 | valueType | 説明 | +| -------- | ----------- | --------- | ------------------------------------------------------------------------------------------------------------ | +| behavior | threeStates | integer | スリーステートチェックボックスを数値として表現します。
        2=セミチェック、1=チェック、0=チェックされていない、-1=非表示、-2=チェックなしが無効化、-3=チェックが無効化、-4=セミチェックが無効化 | ```4d C_OBJECT($ob3) @@ -1150,9 +1150,9 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 OB SET($ob;"requiredListReference";<>List) ``` - ``` - ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) - ``` +``` +![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) +``` #### choiceListName と choiceListReference diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index b00021a4a95258..7603408bc9e02d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,8 @@ displayed_sidebar: docs ## 説明 -**Compile project** は、 カレントのホストプロジェクト、または*projectFile* 引数で指定したプロジェクトをコンパイルします。 コンパイルについてのより詳細な情報については、 [コンパイルページ](../Project/compiler.md) を参照してください。 +**Compile project** は、 +カレントのホストプロジェクト、または*projectFile* 引数で指定したプロジェクトをコンパイルします。コンパイルについてのより詳細な情報については、[コンパイルページ](../Project/compiler.md) を参照してください。 デフォルトでは、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 3e2b3a189092d1..5b7eee36f2bb23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -**DIALOG** コマンドはユーザーに対して*form* 引数で指定したフォームを、*formData* 引数(オプション)とともに表示します。 +The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). このコマンドは、フォームを基にした、カスタマイズされた高度なユーザーインターフェースで動作するように設計されています。 これを使用してデータベースや他の場所からの情報を表示したり、あるいはデータ入力機能を提供することができます。 [ADD RECORD](../commands-legacy/add-record.md) や [MODIFY RECORD](../commands-legacy/modify-record.md) とは異なり、**DIALOG** コマンドは、フォームとそのコンテンツ、内容、評価ボタンなどに対して、完全にコントロールすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md index 6a90630fc99be7..bbe1bd6d81db88 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md @@ -65,7 +65,7 @@ displayed_sidebar: docs | fk user preferences folder | 0 | ユーザー環境設定ファイルを保存している、ユーザーホームフォルダー内の 4Dフォルダー | | fk web root folder | 8 | データベースのカレントの Webルートフォルダー: ただし "/PACKAGE/path" のパッケージ内にある場合。そうでない場合はフルパス。 | -コマンドがコンポーネントから呼び出されている場合、 `*` 引数を渡してホストデータベースのパスを取得するようにします。 `*` 引数を省略すると、常に null オブジェクトが返されます。 +コマンドがコンポーネントから呼び出されている場合、`*` 引数を渡してホストデータベースのパスを取得するようにします。 `*` 引数を省略すると、常に null オブジェクトが返されます。 > Windows の場合、組み込みクライアントでは、`ShareLocalResourcesOnWindowsClient` [BuildApp キー](../Desktop/building.md#buildapp4dsettings) を使用されていた場合、ビルトインフォルダーの場所が変更されています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 4b58369044d2d7..3f85abc61839b6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## 説明 -**FORM EDIT** コマンドは *aTable* 引数で指定したテーブルに関連づけられている、 *form* 引数で指定したフォームを4D フォームエディターで開きます。オプションとして、*object* 引数で指定したフォームオブジェクトを選択した状態で開くこともできます。このとき、デザイン環境へのアクセスが必要である点に注意してください。ない場合には、エラー -9804("フォームを開けません")エラーが生成されます。 +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.**FORM EDIT** コマンドは *aTable* 引数で指定したテーブルに関連づけられている、 *form* 引数で指定したフォームを4D フォームエディターで開きます。オプションとして、*object* 引数で指定したフォームオブジェクトを選択した状態で開くこともできます。 このとき、デザイン環境へのアクセスが必要である点に注意してください。ない場合には、エラー -9804("フォームを開けません")エラーが生成されます。 このコマンドは非同期です。つまりこのコマンドは呼び出されたあとすぐに呼び出し元メソッドへと戻り、フォームが開かれるのを待つことはしないということです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 6305cfc00401be..097eda5af0b378 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -**FORM Event** は、発生したフォームイベント に関する情報を格納しているオブジェクトを返します。通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** は、発生したフォームイベント に関する情報を格納しているオブジェクトを返します。 通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 **返されるオブジェクト** diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md index 3f19f3471450cf..7b0710b1e8db50 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -**FORM LOAD** コマンドを使用してデータ印刷・コンテンツ解析のために *form* 引数で指定したフォームをカレントプロセスにおいて *formData* 引数のデータ(オプション)とともにメモリーにロードします。 1つのプロセスにつきカレントフォームは1つしか指定できません。 +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.**FORM LOAD** コマンドを使用してデータ印刷・コンテンツ解析のために *form* 引数で指定したフォームをカレントプロセスにおいて *formData* 引数のデータ(オプション)とともにメモリーにロードします。 1つのプロセスにつきカレントフォームは1つしか指定できません。 *form* 引数には、以下のいづれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index ec284ecd7a9bc4..aba37f55ba8ba5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## 説明 -**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: +The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - カレントフォームがサブフォームである場合。 @@ -57,7 +57,7 @@ displayed_sidebar: docs **Form** は画面に表示されているテーブルフォームに割り当てられているオブジェクトを返します。 出力フォームから表示された入力フォームのコンテキスト (つまりレコードをダブルクリックした後)の場合、返されるオブジェクトには以下のプロパティが格納されています: -| **プロパティ** | **型** | **Description** | +| **プロパティ** | **型** | **説明** | | ---------- | ------ | ----------------------- | | parentForm | object | 親出力フォームの**Form** オブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md index cf4704451c1ecd..e941a40a934dfd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## 説明 -**License info** コマンドは、アクティブなライセンスについての詳細な情報を提供するオブジェクトを返します。 +The **License info** command returns an object providing detailed information about the active license. コマンドが、ローカルではライセンスを使用しない4D アプリケーション上で実行された場合(例: 4D リモートなど)、コマンドはNull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index 1416e613ec9cda..2cafd76eb0944d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -`New collection` コマンドは、空の、あるいは値の入った新規コレクションを作成し、その参照を返します。 コレクションは、[Collection クラス API](../API/CollectionClass.md) のプロパティや関数を使用して操作することができます。 +`New collection` コマンドは、新しい空の、または値が既に入れられたコレクションを作成し、その参照を返します。コレクションは、[Collection クラス API](../API/CollectionClass.md)のプロパティや関数を使用して操作することができます。 引数を渡さなかった場合、`New collection` は空のコレクションを作成し、その参照を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 7b6bd571dad62d..99d4d0ca7a8ace 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -8,10 +8,10 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| ----- | ------------------------------- | --------------------------- | --------------------- | -| value | 数値、テキスト、日付、時間、ブール、オブジェクト、コレクション | → | 共有コレクションの値 | -| 戻り値 | Collection | ← | New shared collection | +| 引数 | 型 | | 説明 | +| ----- | ------------------------------- | --------------------------- | ---------- | +| value | 数値、テキスト、日付、時間、ブール、オブジェクト、コレクション | → | 共有コレクションの値 | +| 戻り値 | Collection | ← | 新規共有コレクション | @@ -41,8 +41,8 @@ displayed_sidebar: docs - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - text -- boolean -- date +- ブール +- 日付 - 時間 (ミリ秒の数 (実数) として保存されます)。 - null - 共有オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index f80d1bd1b2f9c9..62887e306c2f26 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## 説明 -**Print form** コマンドは、*aTable* のフィールドや変数の現在の値を使用して *form* 引数で指定したフォームを印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 +The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.**Print form** コマンドは、*aTable* のフィールドや変数の現在の値を使用して *form* 引数で指定したフォームを印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 *form* 引数には、以下のいづれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 3eeb65b142f53f..74bbec5f47b537 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## 説明 -**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション (4D Server のみ) のスナップショットを返します。このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション (4D Server のみ) のスナップショットを返します。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 デフォルトで、引数を渡さずに使用した場合、**Process activity** は以下のプロパティを格納したオブジェクトを返します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md index bb2e68af7cbbb5..d95ccc693a7335 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## 説明 -`Process number` コマンドは第一引数 *name* または *id* に渡した名前またはID を持つプロセスの番号を返します。。 プロセスが見つからない場合、`Process number` は0 を返します。 +The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter`Process number` コマンドは第一引数 *name* または *id* に渡した名前またはID を持つプロセスの番号を返します。 プロセスが見つからない場合、`Process number` は0 を返します。 オプションの \* 引数を渡すと、サーバー上で実行中のプロセス番号をリモートの 4D から取得することができます。 この場合、返される値は負の値になります。 このオプションは特に[GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md)、 [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) および [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md) コマンドを使用する場合などに有用です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index ce4395453272bb..51ffa313e5a69f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## 説明 -**Session storage** コマンドは、*id* 引数に渡された固有の識別子を持つセッションのストアレージオブジェクトを返します。 +The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. *id* 引数には、Storage を取得したいセッションのUUID を渡します 。 これは4D (4D Server、またはスタンドアロンセッションに対してはシングルユーザー版4D )によって自動的に割り振られるもので、[session オブジェクト](../API/SessionClass.md) の[**.id**](../API/SessionClass.md#id) プロパティに保存されています。 セッションが存在しない場合、コマンド**Null** はを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index 9c343b6c4e8419..e43c7d5ac33229 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -**SET ALLOWED METHODS** コマンドはアプリケーション経由で入力可能なプロジェクトメソッドを指定します。 +The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. 4Dには、以下のコンテキストからの呼び出し可能なプロジェクトメソッドをフィルターするセキュリティ機構が含まれています: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json deleted file mode 100644 index ad96e5b0923299..00000000000000 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "version.label": { - "message": "20 R8", - "description": "The label for version 20-R8" - }, - "sidebar.docs.category.Getting Started": { - "message": "Começando", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Começando", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Desenvolvimento", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Desenvolvimento", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestão de projectos", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Settings", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Ambiente de desenvolvimento", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Depuração", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Processos", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Preferências", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Línguagem 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Línguagem 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Conceitos", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Tipos de dados", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Comandos", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Comandos", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Ambiente 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.4D Environment.link.generated-index.title": { - "message": "Ambiente 4D", - "description": "The generated-index page title for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Arrays", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Arrays.link.generated-index.title": { - "message": "Arrays", - "description": "The generated-index page title for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Página de Backup", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.Backup.link.generated-index.title": { - "message": "Página de Backup", - "description": "The generated-index page title for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.BLOB.link.generated-index.title": { - "message": "BLOB", - "description": "The generated-index page title for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Parâmetros", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Boolean.link.generated-index.title": { - "message": "Parâmetros", - "description": "The generated-index page title for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Cache Management", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Cache Management.link.generated-index.title": { - "message": "Cache Management", - "description": "The generated-index page title for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Coleções", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Collections.link.generated-index.title": { - "message": "Coleções", - "description": "The generated-index page title for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Communications", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Communications.link.generated-index.title": { - "message": "Communications", - "description": "The generated-index page title for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compiler", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Compiler.link.generated-index.title": { - "message": "Compiler", - "description": "The generated-index page title for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Entrada de dados", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Entry.link.generated-index.title": { - "message": "Entrada de dados", - "description": "The generated-index page title for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Segurança dos dados", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Data Security.link.generated-index.title": { - "message": "Segurança dos dados", - "description": "The generated-index page title for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Database Methods", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Database Methods.link.generated-index.title": { - "message": "Database Methods", - "description": "The generated-index page title for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Data e Horas", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Date and Time.link.generated-index.title": { - "message": "Data e Horas", - "description": "The generated-index page title for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Design Object Access", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Design Object Access.link.generated-index.title": { - "message": "Design Object Access", - "description": "The generated-index page title for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Arrastar e Soltar", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop.link.generated-index.title": { - "message": "Arrastar e Soltar", - "description": "The generated-index page title for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Controle de entrada", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.Entry Control.link.generated-index.title": { - "message": "Controle de entrada", - "description": "The generated-index page title for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "File and Folder", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.File and Folder.link.generated-index.title": { - "message": "File and Folder", - "description": "The generated-index page title for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Eventos formulário", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Form Events.link.generated-index.title": { - "message": "Eventos formulário", - "description": "The generated-index page title for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formulários", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Forms.link.generated-index.title": { - "message": "Formulários", - "description": "The generated-index page title for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Fórmulas", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Formulas.link.generated-index.title": { - "message": "Fórmulas", - "description": "The generated-index page title for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Graphs", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.Graphs.link.generated-index.title": { - "message": "Graphs", - "description": "The generated-index page title for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.HTTP.link.generated-index.title": { - "message": "HTTP", - "description": "The generated-index page title for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Hierarchical Lists", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { - "message": "Hierarchical Lists", - "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import and Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Import and Export.link.generated-index.title": { - "message": "Import and Export", - "description": "The generated-index page title for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interruptions", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.Interruptions.link.generated-index.title": { - "message": "Interruptions", - "description": "The generated-index page title for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.JSON.link.generated-index.title": { - "message": "JSON", - "description": "The generated-index page title for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.LDAP.link.generated-index.title": { - "message": "LDAP", - "description": "The generated-index page title for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Línguagem", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Language.link.generated-index.title": { - "message": "Línguagem", - "description": "The generated-index page title for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licenças", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.Licenses.link.generated-index.title": { - "message": "Licenças", - "description": "The generated-index page title for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.List Box.link.generated-index.title": { - "message": "List Box", - "description": "The generated-index page title for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Mail.link.generated-index.title": { - "message": "Mail", - "description": "The generated-index page title for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Funções matemáticas", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Math.link.generated-index.title": { - "message": "Funções matemáticas", - "description": "The generated-index page title for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menus", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Menus.link.generated-index.title": { - "message": "Menus", - "description": "The generated-index page title for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Messages.link.generated-index.title": { - "message": "Messages", - "description": "The generated-index page title for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Seleções temporárias", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Named Selections.link.generated-index.title": { - "message": "Seleções temporárias", - "description": "The generated-index page title for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objects (Forms)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms).link.generated-index.title": { - "message": "Objects (Forms)", - "description": "The generated-index page title for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objects (Language)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language).link.generated-index.title": { - "message": "Objects (Language)", - "description": "The generated-index page title for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "On a Series", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.On a Series.link.generated-index.title": { - "message": "On a Series", - "description": "The generated-index page title for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.PHP.link.generated-index.title": { - "message": "PHP", - "description": "The generated-index page title for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Pasteboard", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pasteboard.link.generated-index.title": { - "message": "Pasteboard", - "description": "The generated-index page title for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Imagens", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Pictures.link.generated-index.title": { - "message": "Imagens", - "description": "The generated-index page title for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Printing", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Printing.link.generated-index.title": { - "message": "Printing", - "description": "The generated-index page title for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Processo (Comunicações)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (Communications).link.generated-index.title": { - "message": "Processo (Comunicações)", - "description": "The generated-index page title for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Processo (Interface do Usuário)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface).link.generated-index.title": { - "message": "Processo (Interface do Usuário)", - "description": "The generated-index page title for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Processes.link.generated-index.title": { - "message": "Processos", - "description": "The generated-index page title for category Processes in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Queries", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Queries.link.generated-index.title": { - "message": "Queries", - "description": "The generated-index page title for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Quick Report", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Quick Report.link.generated-index.title": { - "message": "Quick Report", - "description": "The generated-index page title for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Record Locking", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Record Locking.link.generated-index.title": { - "message": "Record Locking", - "description": "The generated-index page title for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Records", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Records.link.generated-index.title": { - "message": "Records", - "description": "The generated-index page title for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Relações", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Relations.link.generated-index.title": { - "message": "Relações", - "description": "The generated-index page title for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.Resources.link.generated-index.title": { - "message": "Resources", - "description": "The generated-index page title for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SQL.link.generated-index.title": { - "message": "SQL", - "description": "The generated-index page title for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.SVG.link.generated-index.title": { - "message": "SVG", - "description": "The generated-index page title for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocolo seguro", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol.link.generated-index.title": { - "message": "Protocolo seguro", - "description": "The generated-index page title for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Seleção", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Selection.link.generated-index.title": { - "message": "Seleção", - "description": "The generated-index page title for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Conjuntos", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Sets.link.generated-index.title": { - "message": "Conjuntos", - "description": "The generated-index page title for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Spell Checker", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.Spell Checker.link.generated-index.title": { - "message": "Spell Checker", - "description": "The generated-index page title for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.String.link.generated-index.title": { - "message": "String", - "description": "The generated-index page title for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Structure Access", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Structure Access.link.generated-index.title": { - "message": "Structure Access", - "description": "The generated-index page title for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Styled Text", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Styled Text.link.generated-index.title": { - "message": "Styled Text", - "description": "The generated-index page title for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Sub-registros", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.Subrecords.link.generated-index.title": { - "message": "Sub-registros", - "description": "The generated-index page title for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "System Documents", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Documents.link.generated-index.title": { - "message": "System Documents", - "description": "The generated-index page title for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "System Environment", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.System Environment.link.generated-index.title": { - "message": "System Environment", - "description": "The generated-index page title for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Tabela", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Table.link.generated-index.title": { - "message": "Tabela", - "description": "The generated-index page title for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Tools", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Tools.link.generated-index.title": { - "message": "Tools", - "description": "The generated-index page title for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Transactions.link.generated-index.title": { - "message": "Transactions", - "description": "The generated-index page title for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.Triggers.link.generated-index.title": { - "message": "Triggers", - "description": "The generated-index page title for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interface do usuário", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.User Interface.link.generated-index.title": { - "message": "Interface do usuário", - "description": "The generated-index page title for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Usuários e grupos", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Users and Groups.link.generated-index.title": { - "message": "Usuários e grupos", - "description": "The generated-index page title for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variáveis.", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Variables.link.generated-index.title": { - "message": "Variáveis.", - "description": "The generated-index page title for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Área Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Area.link.generated-index.title": { - "message": "Área Web", - "description": "The generated-index page title for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Servidor Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Server.link.generated-index.title": { - "message": "Servidor Web", - "description": "The generated-index page title for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client).link.generated-index.title": { - "message": "Web Services (Client)", - "description": "The generated-index page title for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Server)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server).link.generated-index.title": { - "message": "Web Services (Server)", - "description": "The generated-index page title for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.Windows.link.generated-index.title": { - "message": "Windows", - "description": "The generated-index page title for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML DOM.link.generated-index.title": { - "message": "XML DOM", - "description": "The generated-index page title for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML SAX.link.generated-index.title": { - "message": "XML SAX", - "description": "The generated-index page title for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.XML.link.generated-index.title": { - "message": "XML", - "description": "The generated-index page title for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Classes", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Classes", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Lista de classes 4D integradas", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administração", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administração", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Como monitorizar as suas aplicações 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Janela de administração de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administração Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administração Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Ferramentas web 4D para administrar e monitorar suas aplicações.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Cópia de segurança e restauração", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensões", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Aplicações Web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Aplicações Web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guias para desenvolver aplicações Web com 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Desenvolvimento Web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Using Qodly Studio to build powerful web interfaces.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exposing your datastore to REST and using the REST API.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Expondo seu datastore em REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Expondo seu datastore em REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configure seu datastore para acesso REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (geral)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (geral)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST para informações globais", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST para dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Aplicações Desktop", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Aplicações Desktop", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guias para desenvolver aplicações Desktop com 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Direitos de acesso", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Direitos de acesso", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Controlo de acesso e privilégios de usuário para aplicações Desktop.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Editor de formulários", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propriedades do formulário", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objectos formulário", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propriedades dos objectos formulário", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Aplicações móveis", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (arquivo)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interface de linha de comando", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocolo TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Managing 4D Licenses": { - "message": "Gestão de Licenças 4D", - "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Recolha de dados", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Cliente/Servidor", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propriedades usuário", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Build application overview", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - } -} diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json deleted file mode 100644 index 323dc2ff3ac447..00000000000000 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json +++ /dev/null @@ -1,742 +0,0 @@ -{ - "version.label": { - "message": "20 R9", - "description": "The label for version 20-R9" - }, - "sidebar.docs.category.Getting Started": { - "message": "Começando", - "description": "The label for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Getting Started.link.generated-index.title": { - "message": "Começando", - "description": "The generated-index page title for category Getting Started in sidebar docs" - }, - "sidebar.docs.category.Core Development": { - "message": "Desenvolvimento", - "description": "The label for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Core Development.link.generated-index.title": { - "message": "Desenvolvimento", - "description": "The generated-index page title for category Core Development in sidebar docs" - }, - "sidebar.docs.category.Project Management": { - "message": "Gestão de projectos", - "description": "The label for category Project Management in sidebar docs" - }, - "sidebar.docs.category.Settings": { - "message": "Settings", - "description": "The label for category Settings in sidebar docs" - }, - "sidebar.docs.category.Development Environment": { - "message": "Ambiente de desenvolvimento", - "description": "The label for category Development Environment in sidebar docs" - }, - "sidebar.docs.category.Debugging": { - "message": "Depuração", - "description": "The label for category Debugging in sidebar docs" - }, - "sidebar.docs.category.ORDA": { - "message": "ORDA", - "description": "The label for category ORDA in sidebar docs" - }, - "sidebar.docs.category.Processes": { - "message": "Processos", - "description": "The label for category Processes in sidebar docs" - }, - "sidebar.docs.category.Preferences": { - "message": "Preferências", - "description": "The label for category Preferences in sidebar docs" - }, - "sidebar.docs.category.4D Language": { - "message": "Línguagem 4D", - "description": "The label for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.4D Language.link.generated-index.title": { - "message": "Línguagem 4D", - "description": "The generated-index page title for category 4D Language in sidebar docs" - }, - "sidebar.docs.category.Concepts": { - "message": "Conceitos", - "description": "The label for category Concepts in sidebar docs" - }, - "sidebar.docs.category.Data Types": { - "message": "Tipos de dados", - "description": "The label for category Data Types in sidebar docs" - }, - "sidebar.docs.category.Commands": { - "message": "Comandos", - "description": "The label for category Commands in sidebar docs" - }, - "sidebar.docs.category.Commands.link.generated-index.title": { - "message": "Comandos", - "description": "The generated-index page title for category Commands in sidebar docs" - }, - "sidebar.docs.category.4D Environment": { - "message": "Ambiente 4D", - "description": "The label for category 4D Environment in sidebar docs" - }, - "sidebar.docs.category.Arrays": { - "message": "Arrays", - "description": "The label for category Arrays in sidebar docs" - }, - "sidebar.docs.category.Backup": { - "message": "Página de Backup", - "description": "The label for category Backup in sidebar docs" - }, - "sidebar.docs.category.BLOB": { - "message": "BLOB", - "description": "The label for category BLOB in sidebar docs" - }, - "sidebar.docs.category.Boolean": { - "message": "Parâmetros", - "description": "The label for category Boolean in sidebar docs" - }, - "sidebar.docs.category.Cache Management": { - "message": "Cache Management", - "description": "The label for category Cache Management in sidebar docs" - }, - "sidebar.docs.category.Collections": { - "message": "Coleções", - "description": "The label for category Collections in sidebar docs" - }, - "sidebar.docs.category.Communications": { - "message": "Communications", - "description": "The label for category Communications in sidebar docs" - }, - "sidebar.docs.category.Compiler": { - "message": "Compiler", - "description": "The label for category Compiler in sidebar docs" - }, - "sidebar.docs.category.Data Entry": { - "message": "Entrada de dados", - "description": "The label for category Data Entry in sidebar docs" - }, - "sidebar.docs.category.Data Security": { - "message": "Segurança dos dados", - "description": "The label for category Data Security in sidebar docs" - }, - "sidebar.docs.category.Database Methods": { - "message": "Database Methods", - "description": "The label for category Database Methods in sidebar docs" - }, - "sidebar.docs.category.Date and Time": { - "message": "Data e Horas", - "description": "The label for category Date and Time in sidebar docs" - }, - "sidebar.docs.category.Design Object Access": { - "message": "Design Object Access", - "description": "The label for category Design Object Access in sidebar docs" - }, - "sidebar.docs.category.Drag and Drop": { - "message": "Arrastar e Soltar", - "description": "The label for category Drag and Drop in sidebar docs" - }, - "sidebar.docs.category.Entry Control": { - "message": "Controle de entrada", - "description": "The label for category Entry Control in sidebar docs" - }, - "sidebar.docs.category.File and Folder": { - "message": "File and Folder", - "description": "The label for category File and Folder in sidebar docs" - }, - "sidebar.docs.category.Form Events": { - "message": "Eventos formulário", - "description": "The label for category Form Events in sidebar docs" - }, - "sidebar.docs.category.Forms": { - "message": "Formulários", - "description": "The label for category Forms in sidebar docs" - }, - "sidebar.docs.category.Formulas": { - "message": "Fórmulas", - "description": "The label for category Formulas in sidebar docs" - }, - "sidebar.docs.category.Graphs": { - "message": "Graphs", - "description": "The label for category Graphs in sidebar docs" - }, - "sidebar.docs.category.HTTP": { - "message": "HTTP", - "description": "The label for category HTTP in sidebar docs" - }, - "sidebar.docs.category.Hierarchical Lists": { - "message": "Hierarchical Lists", - "description": "The label for category Hierarchical Lists in sidebar docs" - }, - "sidebar.docs.category.Import and Export": { - "message": "Import and Export", - "description": "The label for category Import and Export in sidebar docs" - }, - "sidebar.docs.category.Interruptions": { - "message": "Interruptions", - "description": "The label for category Interruptions in sidebar docs" - }, - "sidebar.docs.category.JSON": { - "message": "JSON", - "description": "The label for category JSON in sidebar docs" - }, - "sidebar.docs.category.LDAP": { - "message": "LDAP", - "description": "The label for category LDAP in sidebar docs" - }, - "sidebar.docs.category.Language": { - "message": "Línguagem", - "description": "The label for category Language in sidebar docs" - }, - "sidebar.docs.category.Licenses": { - "message": "Licenças", - "description": "The label for category Licenses in sidebar docs" - }, - "sidebar.docs.category.List Box": { - "message": "List Box", - "description": "The label for category List Box in sidebar docs" - }, - "sidebar.docs.category.Mail": { - "message": "Mail", - "description": "The label for category Mail in sidebar docs" - }, - "sidebar.docs.category.Math": { - "message": "Funções matemáticas", - "description": "The label for category Math in sidebar docs" - }, - "sidebar.docs.category.Menus": { - "message": "Menus", - "description": "The label for category Menus in sidebar docs" - }, - "sidebar.docs.category.Messages": { - "message": "Messages", - "description": "The label for category Messages in sidebar docs" - }, - "sidebar.docs.category.Named Selections": { - "message": "Seleções temporárias", - "description": "The label for category Named Selections in sidebar docs" - }, - "sidebar.docs.category.Objects (Forms)": { - "message": "Objects (Forms)", - "description": "The label for category Objects (Forms) in sidebar docs" - }, - "sidebar.docs.category.Objects (Language)": { - "message": "Objects (Language)", - "description": "The label for category Objects (Language) in sidebar docs" - }, - "sidebar.docs.category.On a Series": { - "message": "On a Series", - "description": "The label for category On a Series in sidebar docs" - }, - "sidebar.docs.category.PHP": { - "message": "PHP", - "description": "The label for category PHP in sidebar docs" - }, - "sidebar.docs.category.Pasteboard": { - "message": "Pasteboard", - "description": "The label for category Pasteboard in sidebar docs" - }, - "sidebar.docs.category.Pictures": { - "message": "Imagens", - "description": "The label for category Pictures in sidebar docs" - }, - "sidebar.docs.category.Printing": { - "message": "Printing", - "description": "The label for category Printing in sidebar docs" - }, - "sidebar.docs.category.Process (Communications)": { - "message": "Processo (Comunicações)", - "description": "The label for category Process (Communications) in sidebar docs" - }, - "sidebar.docs.category.Process (User Interface)": { - "message": "Processo (Interface do Usuário)", - "description": "The label for category Process (User Interface) in sidebar docs" - }, - "sidebar.docs.category.Queries": { - "message": "Queries", - "description": "The label for category Queries in sidebar docs" - }, - "sidebar.docs.category.Quick Report": { - "message": "Quick Report", - "description": "The label for category Quick Report in sidebar docs" - }, - "sidebar.docs.category.Record Locking": { - "message": "Record Locking", - "description": "The label for category Record Locking in sidebar docs" - }, - "sidebar.docs.category.Records": { - "message": "Records", - "description": "The label for category Records in sidebar docs" - }, - "sidebar.docs.category.Relations": { - "message": "Relações", - "description": "The label for category Relations in sidebar docs" - }, - "sidebar.docs.category.Resources": { - "message": "Resources", - "description": "The label for category Resources in sidebar docs" - }, - "sidebar.docs.category.SQL": { - "message": "SQL", - "description": "The label for category SQL in sidebar docs" - }, - "sidebar.docs.category.SVG": { - "message": "SVG", - "description": "The label for category SVG in sidebar docs" - }, - "sidebar.docs.category.Secured Protocol": { - "message": "Protocolo seguro", - "description": "The label for category Secured Protocol in sidebar docs" - }, - "sidebar.docs.category.Selection": { - "message": "Seleção", - "description": "The label for category Selection in sidebar docs" - }, - "sidebar.docs.category.Sets": { - "message": "Conjuntos", - "description": "The label for category Sets in sidebar docs" - }, - "sidebar.docs.category.Spell Checker": { - "message": "Spell Checker", - "description": "The label for category Spell Checker in sidebar docs" - }, - "sidebar.docs.category.String": { - "message": "String", - "description": "The label for category String in sidebar docs" - }, - "sidebar.docs.category.Structure Access": { - "message": "Structure Access", - "description": "The label for category Structure Access in sidebar docs" - }, - "sidebar.docs.category.Styled Text": { - "message": "Styled Text", - "description": "The label for category Styled Text in sidebar docs" - }, - "sidebar.docs.category.Subrecords": { - "message": "Sub-registros", - "description": "The label for category Subrecords in sidebar docs" - }, - "sidebar.docs.category.System Documents": { - "message": "System Documents", - "description": "The label for category System Documents in sidebar docs" - }, - "sidebar.docs.category.System Environment": { - "message": "System Environment", - "description": "The label for category System Environment in sidebar docs" - }, - "sidebar.docs.category.Table": { - "message": "Tabela", - "description": "The label for category Table in sidebar docs" - }, - "sidebar.docs.category.Tools": { - "message": "Tools", - "description": "The label for category Tools in sidebar docs" - }, - "sidebar.docs.category.Transactions": { - "message": "Transactions", - "description": "The label for category Transactions in sidebar docs" - }, - "sidebar.docs.category.Triggers": { - "message": "Triggers", - "description": "The label for category Triggers in sidebar docs" - }, - "sidebar.docs.category.User Interface": { - "message": "Interface do usuário", - "description": "The label for category User Interface in sidebar docs" - }, - "sidebar.docs.category.Users and Groups": { - "message": "Usuários e grupos", - "description": "The label for category Users and Groups in sidebar docs" - }, - "sidebar.docs.category.Variables": { - "message": "Variáveis.", - "description": "The label for category Variables in sidebar docs" - }, - "sidebar.docs.category.Web Area": { - "message": "Área Web", - "description": "The label for category Web Area in sidebar docs" - }, - "sidebar.docs.category.Web Server": { - "message": "Servidor Web", - "description": "The label for category Web Server in sidebar docs" - }, - "sidebar.docs.category.Web Services (Client)": { - "message": "Web Services (Client)", - "description": "The label for category Web Services (Client) in sidebar docs" - }, - "sidebar.docs.category.Web Services (Server)": { - "message": "Web Services (Server)", - "description": "The label for category Web Services (Server) in sidebar docs" - }, - "sidebar.docs.category.Windows": { - "message": "Windows", - "description": "The label for category Windows in sidebar docs" - }, - "sidebar.docs.category.XML DOM": { - "message": "XML DOM", - "description": "The label for category XML DOM in sidebar docs" - }, - "sidebar.docs.category.XML SAX": { - "message": "XML SAX", - "description": "The label for category XML SAX in sidebar docs" - }, - "sidebar.docs.category.XML": { - "message": "XML", - "description": "The label for category XML in sidebar docs" - }, - "sidebar.docs.category.Classes": { - "message": "Classes", - "description": "The label for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.title": { - "message": "Classes", - "description": "The generated-index page title for category Classes in sidebar docs" - }, - "sidebar.docs.category.Classes.link.generated-index.description": { - "message": "Lista de classes 4D integradas", - "description": "The generated-index page description for category Classes in sidebar docs" - }, - "sidebar.docs.category.Administration": { - "message": "Administração", - "description": "The label for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.title": { - "message": "Administração", - "description": "The generated-index page title for category Administration in sidebar docs" - }, - "sidebar.docs.category.Administration.link.generated-index.description": { - "message": "Como monitorizar as suas aplicações 4D", - "description": "The generated-index page description for category Administration in sidebar docs" - }, - "sidebar.docs.category.4D Server Administration Window": { - "message": "Janela de administração de 4D Server", - "description": "The label for category 4D Server Administration Window in sidebar docs" - }, - "sidebar.docs.category.Web Administration": { - "message": "Administração Web", - "description": "The label for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.title": { - "message": "Administração Web", - "description": "The generated-index page title for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.Web Administration.link.generated-index.description": { - "message": "Ferramentas web 4D para administrar e monitorar suas aplicações.", - "description": "The generated-index page description for category Web Administration in sidebar docs" - }, - "sidebar.docs.category.MSC": { - "message": "CSM", - "description": "The label for category MSC in sidebar docs" - }, - "sidebar.docs.category.Backup and Restore": { - "message": "Cópia de segurança e restauração", - "description": "The label for category Backup and Restore in sidebar docs" - }, - "sidebar.docs.category.Extensions": { - "message": "Extensões", - "description": "The label for category Extensions in sidebar docs" - }, - "sidebar.docs.category.4D View Pro": { - "message": "4D View Pro", - "description": "The label for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.4D View Pro.link.generated-index.title": { - "message": "4D View Pro", - "description": "The generated-index page title for category 4D View Pro in sidebar docs" - }, - "sidebar.docs.category.A": { - "message": "A", - "description": "The label for category A in sidebar docs" - }, - "sidebar.docs.category.A.link.generated-index.title": { - "message": "A", - "description": "The generated-index page title for category A in sidebar docs" - }, - "sidebar.docs.category.C": { - "message": "C", - "description": "The label for category C in sidebar docs" - }, - "sidebar.docs.category.C.link.generated-index.title": { - "message": "C", - "description": "The generated-index page title for category C in sidebar docs" - }, - "sidebar.docs.category.D": { - "message": "D", - "description": "The label for category D in sidebar docs" - }, - "sidebar.docs.category.D.link.generated-index.title": { - "message": "D", - "description": "The generated-index page title for category D in sidebar docs" - }, - "sidebar.docs.category.E": { - "message": "E", - "description": "The label for category E in sidebar docs" - }, - "sidebar.docs.category.E.link.generated-index.title": { - "message": "E", - "description": "The generated-index page title for category E in sidebar docs" - }, - "sidebar.docs.category.F": { - "message": "F", - "description": "The label for category F in sidebar docs" - }, - "sidebar.docs.category.F.link.generated-index.title": { - "message": "F", - "description": "The generated-index page title for category F in sidebar docs" - }, - "sidebar.docs.category.G": { - "message": "G", - "description": "The label for category G in sidebar docs" - }, - "sidebar.docs.category.G.link.generated-index.title": { - "message": "G", - "description": "The generated-index page title for category G in sidebar docs" - }, - "sidebar.docs.category.I": { - "message": "I", - "description": "The label for category I in sidebar docs" - }, - "sidebar.docs.category.I.link.generated-index.title": { - "message": "I", - "description": "The generated-index page title for category I in sidebar docs" - }, - "sidebar.docs.category.M": { - "message": "M", - "description": "The label for category M in sidebar docs" - }, - "sidebar.docs.category.M.link.generated-index.title": { - "message": "M", - "description": "The generated-index page title for category M in sidebar docs" - }, - "sidebar.docs.category.N": { - "message": "N", - "description": "The label for category N in sidebar docs" - }, - "sidebar.docs.category.N.link.generated-index.title": { - "message": "N", - "description": "The generated-index page title for category N in sidebar docs" - }, - "sidebar.docs.category.O": { - "message": "O", - "description": "The label for category O in sidebar docs" - }, - "sidebar.docs.category.O.link.generated-index.title": { - "message": "O", - "description": "The generated-index page title for category O in sidebar docs" - }, - "sidebar.docs.category.P": { - "message": "P", - "description": "The label for category P in sidebar docs" - }, - "sidebar.docs.category.P.link.generated-index.title": { - "message": "P", - "description": "The generated-index page title for category P in sidebar docs" - }, - "sidebar.docs.category.R": { - "message": "R", - "description": "The label for category R in sidebar docs" - }, - "sidebar.docs.category.R.link.generated-index.title": { - "message": "R", - "description": "The generated-index page title for category R in sidebar docs" - }, - "sidebar.docs.category.S": { - "message": "S", - "description": "The label for category S in sidebar docs" - }, - "sidebar.docs.category.S.link.generated-index.title": { - "message": "S", - "description": "The generated-index page title for category S in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro": { - "message": "4D Write Pro", - "description": "The label for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D Write Pro.link.generated-index.title": { - "message": "4D Write Pro", - "description": "The generated-index page title for category 4D Write Pro in sidebar docs" - }, - "sidebar.docs.category.4D AIKit": { - "message": "4D AIKit", - "description": "The label for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.4D AIKit.link.generated-index.title": { - "message": "4D AIKit", - "description": "The generated-index page title for category 4D AIKit in sidebar docs" - }, - "sidebar.docs.category.Web Applications": { - "message": "Aplicações Web", - "description": "The label for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.title": { - "message": "Aplicações Web", - "description": "The generated-index page title for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Applications.link.generated-index.description": { - "message": "Guias para desenvolver aplicações Web com 4D", - "description": "The generated-index page description for category Web Applications in sidebar docs" - }, - "sidebar.docs.category.Web Development": { - "message": "Desenvolvimento Web", - "description": "The label for category Web Development in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio": { - "message": "Qodly Studio", - "description": "The label for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.title": { - "message": "Qodly Studio", - "description": "The generated-index page title for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.Qodly Studio.link.generated-index.description": { - "message": "Using Qodly Studio to build powerful web interfaces.", - "description": "The generated-index page description for category Qodly Studio in sidebar docs" - }, - "sidebar.docs.category.REST API": { - "message": "REST API", - "description": "The label for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.title": { - "message": "REST API", - "description": "The generated-index page title for category REST API in sidebar docs" - }, - "sidebar.docs.category.REST API.link.generated-index.description": { - "message": "Exposing your datastore to REST and using the REST API.", - "description": "The generated-index page description for category REST API in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST": { - "message": "Expondo seu datastore em REST", - "description": "The label for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { - "message": "Expondo seu datastore em REST", - "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { - "message": "Configure seu datastore para acesso REST", - "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" - }, - "sidebar.docs.category.API (general)": { - "message": "API (geral)", - "description": "The label for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.title": { - "message": "API (geral)", - "description": "The generated-index page title for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (general).link.generated-index.description": { - "message": "API REST para informações globais", - "description": "The generated-index page description for category API (general) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass)": { - "message": "API (dataClass)", - "description": "The label for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.title": { - "message": "API (dataClass)", - "description": "The generated-index page title for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.API (dataClass).link.generated-index.description": { - "message": "API REST para dataClass.", - "description": "The generated-index page description for category API (dataClass) in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications": { - "message": "Aplicações Desktop", - "description": "The label for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.title": { - "message": "Aplicações Desktop", - "description": "The generated-index page title for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Desktop Applications.link.generated-index.description": { - "message": "Guias para desenvolver aplicações Desktop com 4D", - "description": "The generated-index page description for category Desktop Applications in sidebar docs" - }, - "sidebar.docs.category.Access Rights": { - "message": "Direitos de acesso", - "description": "The label for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.title": { - "message": "Direitos de acesso", - "description": "The generated-index page title for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Access Rights.link.generated-index.description": { - "message": "Controlo de acesso e privilégios de usuário para aplicações Desktop.", - "description": "The generated-index page description for category Access Rights in sidebar docs" - }, - "sidebar.docs.category.Form Editor": { - "message": "Editor de formulários", - "description": "The label for category Form Editor in sidebar docs" - }, - "sidebar.docs.category.Form Properties": { - "message": "Propriedades do formulário", - "description": "The label for category Form Properties in sidebar docs" - }, - "sidebar.docs.category.Form Objects": { - "message": "Objectos formulário", - "description": "The label for category Form Objects in sidebar docs" - }, - "sidebar.docs.category.Form Object Properties": { - "message": "Propriedades dos objectos formulário", - "description": "The label for category Form Object Properties in sidebar docs" - }, - "sidebar.docs.category.Mobile Applications": { - "message": "Aplicações móveis", - "description": "The label for category Mobile Applications in sidebar docs" - }, - "sidebar.docs.link.4D Mobile App Server": { - "message": "4D Mobile App Server", - "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" - }, - "sidebar.docs.link.4D NetKit": { - "message": "4D NetKit", - "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" - }, - "sidebar.docs.link.4D Progress": { - "message": "4D Progress", - "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" - }, - "sidebar.docs.link.4D SVG": { - "message": "4D SVG", - "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" - }, - "sidebar.docs.link.4D Widgets": { - "message": "4D Widgets", - "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" - }, - "sidebar.docs.link.Go Mobile": { - "message": "Go Mobile", - "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" - }, - "sidebar.docs.link.4D for iOS (archive)": { - "message": "4D for iOS (arquivo)", - "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" - }, - "sidebar.docs.doc.Command Line Interface": { - "message": "Interface de linha de comando", - "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" - }, - "sidebar.docs.doc.TLS Protocol": { - "message": "Protocolo TLS", - "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" - }, - "sidebar.docs.doc.Licenses": { - "message": "Licenças", - "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" - }, - "sidebar.docs.doc.Data Collection": { - "message": "Recolha de dados", - "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" - }, - "sidebar.docs.doc.Client/Server": { - "message": "Cliente/Servidor", - "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" - }, - "sidebar.docs.doc.User Settings": { - "message": "Propriedades usuário", - "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" - }, - "sidebar.docs.doc.Build Application": { - "message": "Build application overview", - "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" - }, - "sidebar.docs.doc.Labels": { - "message": "Etiquetas", - "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" - } -} diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index 3f0cc44d806675..ceeec01850bac0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3195,14 +3195,14 @@ A função `.sort()` classifica os elemen Se `.sort()` for chamado sem parâmetros, somente os valores escalares (número, texto, data, booleanos) serão classificados. Os elementos são classificados por defeito em ordem ascendente, de acordo com o seu tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: - ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| - - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). - ``` +``` +|Constant| Type|Value|Comment| +|---|---|---|---| +|ck ascending|Integer|0|Elements are ordered in ascending order (default)| +|ck descending|Integer|1|Elements are ordered in descending order| + +This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +``` Se a coleção conter elementos de tipos diferentes, são primeiro agrupados por tipo e ordenados depois. Se attributePath levar a uma propriedade de objeto que conter valores de diferentes tipos, primeiro se agrupam por tipo e se ordenam depois. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 7be3d056bba2b9..92eabfaaffa451 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -221,7 +221,7 @@ A função `.decrypt()` descriptografa A chave deve ser uma chave RSA, o algoritmo é RSA-OAEP (consulte [RFC 3447](https://tools.ietf.org/html/rfc3447)). -##### *opções* +##### *options* | Propriedade | Tipo | Descrição | | ----------------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -311,7 +311,7 @@ O valor devolvido é a chave pública. **.pem** : Text -Definição PEM de uma chave de cifrado a carregar. Se a chave for uma chave privada, será deduzido dela a chave pública RSA ou ECDSA. +PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 59ef8f0eddf9b7..f4155f42c03ea9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -688,7 +688,7 @@ A função `.getInfo()` retorna um -**.getRemoteCache**() : Objeto +**.getRemoteCache**() : Object @@ -992,18 +992,18 @@ O uso de placeholders em consultas **é recomendado** pelos seguintes motivos: 1. Evita a inserção de código malicioso: se user diretamente variáveis preenchidas com uma string de pesquisa, um usuário poderia modificar as condições de pesquisa entrando argumentos adicionais. Por exemplo, imagine uma string de pesquisa como: - ```4d - $vquery:="status = 'público' & nome = "+meunome //usuário entra em seu nome - $result:=$col.query($vquery) - ``` +```4d + $vquery:="status = 'público' & nome = "+meunome //usuário entra em seu nome + $result:=$col.query($vquery) +``` Essa consulta parece segura, pois os dados não públicos são filtrados. No entanto, se o usuário inserir na área *myname* algo como *"smith OR status='private'*,\* a string de consulta será modificada na etapa de interpretação e poderá retornar dados privados. Ao usar placeholders, não é possível substituir as condições de segurança: - ```4d - $result:=$col.query("status='public' & name=:1";myname) - ``` +```4d + $result:=$col.query("status='public' & name=:1";myname) +``` Neste caso, se o usuário digitar *smith OR status='private'* na área *myname*, isso não será interpretado na string de consulta, mas apenas passado como um valor. A busca por uma pessoa chamada "smith OR status='private'" simplesmente falhará. @@ -1011,10 +1011,10 @@ Neste caso, se o usuário digitar *smith OR status='private'* na área *myname*, 3. Permite o uso de variáveis ou expressões nos argumentos de pesquisa. Exemplos: - ```4d - $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") - $result2:=$col.query("company.name = :1";"John's Pizzas") - ``` +```4d +$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") +$result2:=$col.query("company.name = :1";"John's Pizzas") +``` ### Pesquisa de valores null @@ -1628,7 +1628,7 @@ ds.VectorTable.query("embedding>:1 and embedding<:2";$vector1Comparison;$vector2 -> **Modo avançado:** Essa função é destinada a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, não necessitará de o utilizar. +> **Modo avançado:** essa função é destinada a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, não necessitará de o utilizar. #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md index d9dc92edd090dc..4052423d222bdb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md @@ -170,7 +170,7 @@ O objeto retornado contém as propriedades abaixo: | | *tableName* | | Object | Tabla encriptada ou cifrada | | | | name | Text | Nombre da tabela | | | | num | Number | Número de tabela | -| | | isEncryptable | Parâmetros | Verdadero se a tabela estiver declarada como encriptada no arquivo de estrutura | +| | | isEncryptable | Parâmetros | True se a tabela estiver declarada como encriptada no arquivo de estrutura | | | | isEncrypted | Parâmetros | True se os registros da tabela estiverem encriptados no arquivo de dados | (\*) a chave de criptografia pode ser fornecida: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md index 76d0dcce533c69..c687ebffa524ef 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md @@ -152,10 +152,10 @@ A propriedade `.bodyValues` contém o objeto **.subject** : Texto +**.subject** : Text #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index aa53eca5061903..aaad0983f02499 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -628,7 +628,7 @@ O seguinte código genérico duplica qualquer entidade: -**.getKey**( { *mode* : Integer } ) : qualquer +**.getKey**( { *mode* : Integer } ) : any @@ -986,7 +986,7 @@ O objeto retornado por `.lock()` contém as seguintes propriedades: | --------------------------------- | ----------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | success | | boolean | true se a ação de bloqueio for bem sucedida (ou se a entidade já estiver bloqueada no processo atual), falso caso contrário. | | | | | ***Disponível somente se a opção `dk reload if stamp changed` for usada:*** | -| **wasReloaded** | | boolean | verdadeiro se a entidade foi recarregada com sucesso, falso caso contrário. | +| **wasReloaded** | | boolean | true se a entidade foi recarregada com sucesso, false caso contrário. | | | | | ***Disponível apenas em caso de erro:*** | | status(\*) | | number | Código de erro, ver abaixo | | statusText(\*) | | text | Descrição do erro, ver abaixo | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 1a4ce052aa7d03..88a17bcaefbd35 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Descrição -A função `.expunge()` remove todas as mensagens com a bandeira "deletado" do servidor IMAP. O marcador "apagada" pode ser definida com os métodos .delete() ou .addFlags() . +A função `.expunge()` remove todas as mensagens com o sinalizador "deleted" do servidor de e-mail IMAP. O sinalizador "deleted" pode ser definido com os métodos [`.delete()`](#delete) ou [`.addFlags()`](#addflags). **Objeto devolvido** diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index c69c6b84993b04..3b1cf7b2fdf6fe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ Special characters such as simple quotes or carriage returns must be escaped. Exemple: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -```4d +````4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -``` +```` :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md index 2dfb11e78e3ccb..7b6236d31b4667 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md @@ -521,7 +521,7 @@ Essa propriedade é **somente leitura**. ## .timeout -**.timeout**: Integer +**.timeout** : Integer #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index 99994c494a1953..49c6900a526827 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -43,7 +43,7 @@ The `.address` property contains the IP ad ## .data -**data**: Blob +**data** : Blob #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index 59177d0eb3c990..c642094be0c25b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -217,7 +217,7 @@ Valor padrão: 63072000 (2 anos). ## .HTTPCompressionLevel -**.HTTPCompressionLevel**: Integer +**.HTTPCompressionLevel** : Integer O nível de compressão para todas as trocas HTTP comprimidas para o servidor HTTP 4D (solicitações do cliente ou respostas do servidor). Este seletor permite otimizar trocas priorizando a velocidade de execução (menos compactação) ou a quantidade de compressão (menos velocidade) @@ -306,7 +306,7 @@ O padrão = 443 A duração da vida (em minutos) dos processos de sessão legados inativos. No final do timeout, o processo é terminado no servidor, o método de database `On Web Legacy Close Session` é chamado, e então o contexto sessão legado é destruído. -Default = 480 minutos +Padrão = 480 minutos @@ -620,8 +620,8 @@ A função devolve um objecto que descreve o estado de lançamento do servidor W | Propriedade | | Tipo | Descrição | | ----------- | ------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------- | -| success | | Parâmetros | Verdadeiro se o servidor web foi correctamente iniciado, Falso caso contrário | -| errors | | Collection | pilha de erros 4D (não devolvidos se o servidor web começou com sucesso) | +| success | | Parâmetros | True se o servidor web foi correctamente iniciado, False caso contrário | +| errors | | Collection | Pilha de erros 4D (não devolvidos se o servidor web começou com sucesso) | | | \[].errCode | Number | Código de erro 4D | | | \[].message | Text | Descrição do erro 4D | | | \[].componentSignature | Text | Assinatura da componente interna que devolveu o erro | @@ -675,7 +675,7 @@ Se o servidor web foi iniciado, todas as ligações e processos web são fechado #### Exemplo -Para parar o servidor Web da base de dados: +Para interromper o servidor Web do banco de dados: ```4d var $webServer : 4D.WebServer diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md index db05d3958f78b8..5dac6f503c635f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md @@ -23,7 +23,7 @@ Para obter uma visão geral e alguns exemplos da implementação do servidor Web Um objeto `WebSocketConnection` é criado automaticamente quando a função de retorno de chamada [`WSHandler.onConnection`](WebSocketServerClass.md#wsshandler-parameter) do objeto [WebSocketServer](WebSocketServerClass.md#4dwebsocketservernew) retorna um objeto [`connectionHandler`](WebSocketServerClass.md#connectionhandler-object). -Os objectos Httprequest fornecem as seguintes propriedades e funções: +Os objetos Httprequest fornecem as seguintes propriedades e funções: | | | ---------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md index ce6fd8d5177173..e6232dbe652dcd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md @@ -9,7 +9,7 @@ Além disso, 4D trabalha constantemente com dados cache em memória. Todas as mu Por último, 4D possui funções que analisam os conteúdos do arquivo de histórico, tornando possível reverter as operações realizadas sobre os dados do banco de dados. Essas funções estão disponíveis no MSC: consulte a página de [Análise de atividade](MSC/analysis.md) e a página de [Rollback](MSC/rollback.md). -## como o arquivo de histórico funciona +## Como funciona o arquivo de log O arquivo de histórico gerado por 4D contém uma descrição de todas as operações realizadas nos dados das tbelas registradas no diário do banco de dados, as quais são registradas de forma sequencial. Por padrão, todas as tabelas são registradas, ou seja, incluídas no arquivo de log, mas você pode desmarcar tabelas individuais usando a propriedade de tabela **Incluir no arquivo de log**. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index 1354f72e062cca..1fa1aa3c366a34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ Já que cada bit pode ser igual a 0 ou 1, também se pode pensar num valor Long An expression that uses a bitwise operator returns a Long value, except for the Bit Test operator, where the expression returns a Boolean value. A tabela a seguir lista os operadores bitwise e sua sintaxe: -| Operação | Operador | Sintaxe | Retorna | -| ----------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | -| Bitwise AND | & | Long & Long | Long | -| OU (inclusive) | | | Long | Long | Long | -| Bitwise OR (exclusivo) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (ver nota 1) | -| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | -| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | -| Bit Clear | ?- | Long ?- Long | Long (ver nota 2) | -| Bit Test | ?? | Long ?? Long | Boolean (ver nota 2) | +| Operação | Operador | Sintaxe | Retorna | +| ----------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | +| Bitwise AND | & | Long & Long | Long | +| OU (inclusive) | | | Long | Long | Long | +| Bitwise OR (exclusivo) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (ver nota 1) | +| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | +| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | +| Bit Clear | ?- | Long ?- Long | Long (ver nota 2) | +| Bit Test | ?? | Long ?? Long | Boolean (ver nota 2) | #### Notas diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index 1d9f92c712095d..82dd4f3b973714 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -92,7 +92,7 @@ Within the custom error method, you have access to several pieces of information :::info -4D automatically maintains a number of variables called [**system variables**](variables.md#system-variables), meeting different needs. +4D mantém automaticamente um número de variáveis chamadas [**variáveis sistema**](variables.md#system-variables), indo ao encontro de necessidades diferentes. ::: - o comando [`Last errors`](../commands/last-errors.md) que retorna uma coleção da pilha de erros atual que ocorreu na aplicação 4D. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 4bb72185eeaee0..60899a30365e6f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -311,21 +311,21 @@ Esta rota do histórico é retornada pelo comando `Get 4D file`. Para começar esse histórico: - ```4d - $server:=New object - ... - //SMTP - $server.logFile:="MySMTPAuthLog.txt" - $transporter:=SMTP New transporter($server) - - // POP3 - $server.logFile:="MyPOP3AuthLog.txt" - $transporter:=POP3 New transporter($server) - - //IMAP - $server.logFile:="MyIMAPAuthLog.txt" - $transporter:=IMAP New transporter($server) - ``` +```4d +$server:=New object +... +//SMTP +$server.logFile:="MySMTPAuthLog.txt" +$transporter:=SMTP New transporter($server) + +// POP3 +$server.logFile:="MyPOP3AuthLog.txt" +$transporter:=POP3 New transporter($server) + +//IMAP +$server.logFile:="MyIMAPAuthLog.txt" +$transporter:=IMAP New transporter($server) +``` #### Conteúdos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 6a2307935b94a7..a5d5dbd6fe3f30 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -322,27 +322,27 @@ Durante a execução, 4D prioriza automaticamente as folhas de estilo na seguint - ou uma lista de arquivos por plataforma: - ``` - "css": "" - ``` +``` +"css": "" +``` - um arquivo para ambas plataformas: - ``` - "css": [ - "", - "" - ], - ``` +``` +"css": [ + "", + "" + ], +``` - ou uma lista de arquivos para ambas plataformas: - ``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], - ``` +``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], +``` > As rotas dos arquivos pedem ser relativas ou absolutas. > diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index 8b63dbf1737895..dd14a9df5da264 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Todos os botões partilham o mesmo conjunto de propriedades básicas: [Negrito](properties_Text.md#bold) - [Estilo da linha da borda](properties_BackgroundAndBorder.md#border-line-style) - [Fundo](properties_CoordinatesAndSizing.md#bottom) - [Estilo do botão](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Focável](properties_Entry.md#focusable) - [Fonte](properties_Text.md#font) - [Cor da fonte](properties_Text.md#font-color) - [Tamanho da fonte](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Dica de ajuda](properties_Help.md#help-tip) - [Alinhamento horizontal](properties_Text.md#horizontal-alignment) - [Dimensionamento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Itálico](properties_Text.md#italic) - [Título ajustado à imagem](properties_TextAndPicture.md#image-hugs-title)(1) - [Esquerda](properties_CoordinatesAndSizing.md#left) - [Não renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nome do objeto](properties_Object.md#object-name) - [Nome do caminho da imagem](properties_TextAndPicture.md#picture-pathname)(1) - [Direita](properties_CoordinatesAndSizing.md#right) - [Atalho](properties_Entry.md#shortcut) - [Ação padrão](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posição do título/imagem](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Sublinhado](properties_Text.md#underline) - [Variável ou expressão](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidade](properties_Display.md#visibility) - [Largura](properties_CoordinatesAndSizing.md#width) - [Com menu pop-up](properties_TextAndPicture.md#with-pop-up-menu)(2) -> (1) Não é compatível com o estilo [Ajuda](#help).
        -> (2) Não suportado pelos estilos [Help](#help), [Flat](#flat) e [Regular](#regular). +> (1) Não é compatível com o estilo [Help](#help).
        +> (2) Não é compatível com os estilos [Help](#help), [Flat](#flat) e [Regular](#regular). Outras propriedades específicas estão disponíveis, dependendo do [estilo do botão](#button-styles): diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md index a65581f1fc62c0..b9bf8480be3854 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md @@ -72,7 +72,7 @@ Uma [array](Concepts/arrays.md) é uma lista de valores na memória que é refer Para inicializar o array associado à lista pendente, pode: -- Insira uma lista de valores padrão nas propriedades do objeto selecionando `\` no tema [Fonte de dados](properties_DataSource.md) da Property List. Os valores padrão são carregados em um array automático. Pode fazer uma referência ao array usando o nome da variável associado com o objeto. +- Insira uma lista de valores padrão nas propriedades do objeto selecionando `\` no tema [Fonte de dados](properties_DataSource.md) da Lista de Propriedades. Os valores padrão são carregados em um array automático. Pode fazer uma referência ao array usando o nome da variável associado com o objeto. - Antes que o objeto seja exibido, execute um código que atribua valores aos elementos do array. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 7689f55e9a6862..fe424adf8fa630 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1003,9 +1003,9 @@ Esses atributos podem ser usados para controlar o intervalo de valores de entrad O atributo behavior fornece variações para a representação regular de valores. Em 4D v15, uma única variação é proposta: -| Atributo | Valor(es) disponível(eis) | valueType(s) | Descrição | -| -------- | --------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | Representa um valor numérico como uma caixa de verificação de três estados.
        2=semi-checado, 1=marcada, 0=desmarcada, -1=invisível, -2=desmarcado desabilitado, -3=checado desabilitado, -4=semi-checado desabilitado | +| Atributo | Valor(es) disponível(eis) | valueType(s) | Descrição | +| -------- | --------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | Representa um valor numérico como uma caixa de seleção de três estados.
        2=semi-marcado, 1=marcado, 0=desmarcado, -1=invisível, -2=desmarcado desabilitado, -3=marcado desabilitado, -4=semi-marcado desabilitado | ```4d C_OBJECT($ob3) @@ -1106,9 +1106,9 @@ Exemplos: OB SET($ob;"requiredListReference";<>List) ``` - ``` - ../assets/en/FormObjects/listbox_column_objectArray_cities.png - ``` +``` +../assets/en/FormObjects/listbox_column_objectArray_cities.png +``` #### choiceListName e choiceListReference diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index b74dda6f4a5e3e..f0bfe559655e7e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descrição -**Compile project** permite que você compile o projeto host atual ou o projeto especificado no parâmetro *projectFile*. Para obter mais informações sobre compilação, verifique a [página de compilação](../Project/compiler.md). +**Compile project** permite que você compile o projeto host atual ou o projeto especificado no parâmetro *projectFile*. Para obter mais informações sobre a compilação, verifique a [página de compilação](../Project/compiler.md). Por padrão, o comando usa as opções do compilador definidas nas Configurações da estrutura. Você pode substituí-los passando um parâmetro *options*. As seguintes sintaxes são suportadas: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 6b2e770bf46d5d..a481a3bb53561b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -O comando **DIALOG** apresenta o *formulário* ao usuário, juntamente com o(s) parâmetro(s) *formData* (opcional). +The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). This command is designed to work with customized and advanced user interfaces based on forms. Você pode usá-lo para exibir informações provenientes do banco de dados ou de outros locais, ou para fornecer recursos de entrada de dados. Ao contrário de [ADD RECORD](../commands-legacy/add-record.md) ou [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** dá a você controle total sobre o formulário, seus conteúdos e botões de navegação e validação. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 4689a694b9a9b1..26b8ff02695b57 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descrição -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.O comando **FORM EDIT** abre o *formulário* associado a *aTable* no editor do formulário 4D, com opcionalmente *objeto* selecionado. Note que você deve ter acesso ao ambiente de Design, caso contrário o erro -9804 ("Impossível abrir formulário") será gerado. +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.O comando **FORM EDIT** abre o *formulário* associado a *aTable* no editor do formulário 4D, com opcionalmente *objeto* selecionado. Note que você deve ter acesso ao ambiente de Design, caso contrário o erro -9804 ("Impossível abrir formulário") será gerado. O comando é assíncrono: ele retorna imediatamente ao método de chamada e não espera que a forma seja aberta. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md index a89e59e8aa3bf7..bbb6dd27fa4203 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -5,7 +5,7 @@ slug: /commands/form-event displayed_sidebar: docs --- -**FORM Event** : Objeto +**FORM Event** : Object @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -O **FORM Event** retorna um objeto que contém informações sobre o evento de formulário que acabou de ocorrer. Normalmente, você usará **FORM Event** em um método formulário ou objeto. +**FORM Event** returns an object containing information about the form event that has just occurred.O **FORM Event** retorna um objeto que contém informações sobre o evento de formulário que acabou de ocorrer. Normalmente, você usará **FORM Event** em um método formulário ou objeto. **Objeto devolvido** diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md index d79d137c88e0e1..10a5de836e71dd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -O comando **FORM LOAD** é usado para carregar o *form* na memória no processo atual juntamente com *formData* (opcional) para imprimir seus dados ou analisar seu conteúdo. Só pode haver um formulário atual por processo. +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.O comando **FORM LOAD** é usado para carregar o *form* na memória no processo atual juntamente com *formData* (opcional) para imprimir seus dados ou analisar seu conteúdo. Só pode haver um formulário atual por processo. No parâmetro *form*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md index bb24c7cbeb1d54..54c85e123fba1f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descrição -O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: +The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - o formulário atual é um subformulário, diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 72f55ce056d295..8ed810a2a705a8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Descrição -O comando **License info** retorna um objeto que fornece informações detalhadas sobre a licença ativa. +The **License info** command returns an object providing detailed information about the active license. If the command is executed on a 4D application that does not use locally a license (e.g. 4D remote), the command returns a Null object. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index eaa0046d2672fe..f044c5be71860c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -O comando `New collection` cria uma nova coleção vazia ou pré-preenchida e retorna sua referência. Coleções podem ser tratadas usando propriedades e funções da [API da classe da coleção](../API/CollectionClass.md). +The `New collection` command creates a new empty or prefilled collection and returns its reference. Collections can be handled using properties and functions of the [Collection class API](../API/CollectionClass.md). Se não passar nenhum parâmetro, New collection cria uma coleção vazia e retorna sua referência. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 06e4be9e27340c..5a7b84e56d29c0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Descrição -O comando **Print form** simplesmente imprime *form* com os valores atuais dos campos e variáveis de *aTable*. Normalmente é usado para imprimir relatórios muito complexos que exigem controle total sobre o processo de impressão. O **formulário de impressão** não faz nenhum processamento de registros, processamento de quebras ou quebras de página. Essas operações são de sua responsabilidade. **Print form** imprime campos e variáveis em um quadro de tamanho fixo apenas. +The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.O comando **Print form** simplesmente imprime *form* com os valores atuais dos campos e variáveis de *aTable*. Normalmente é usado para imprimir relatórios muito complexos que exigem controle total sobre o processo de impressão. O **formulário de impressão** não faz nenhum processamento de registros, processamento de quebras ou quebras de página. Essas operações são de sua responsabilidade. **Print form** imprime campos e variáveis em um quadro de tamanho fixo apenas. No parâmetro *form*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 499d1d70b5de05..4e5ccb13a57f90 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descrição -O comando **Process activity** retorna um snapshot dos processos em execução e/ou (4D Server apenas) sessões usuário conectadas em um dado momento. Este comando retorna todos os processos, incluindo processos internos que não são alcançáveis pelo comando [Informações do processo](process-info.md). +The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.O comando **Process activity** retorna um snapshot dos processos em execução e/ou (4D Server apenas) sessões usuário conectadas em um dado momento. Este comando retorna todos os processos, incluindo processos internos que não são alcançáveis pelo comando [Informações do processo](process-info.md). Por padrão quando usado sem quaisquer parâmetros, a **atividade de processo** retorna um objeto que contém as seguintes propriedades: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 00c5a2e1b49375..2a05cd4f7ea236 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descrição -O comando `Process number` retorna o número do processo cujo *name* ou *id* você passou no primeiro parâmetro. Se nenhum processo for encontrado, `Process number` retornará 0. +The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterThe `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Se nenhum processo for encontrado, `Process number` retornará 0. O parâmetro opcional \* permite que você recupere, de um 4D remoto, o número de um processo executado no servidor. Nesse caso, o valor retornado é negativo. Essa opção é especialmente útil ao usar os comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) e [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md index 81b139597c2ed2..84110d26a2835f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md @@ -4,7 +4,7 @@ title: Session info displayed_sidebar: docs --- -**Session info** ( *sessionId* : Integer ): Object +**Session info** ( *sessionId* : Integer ) : Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index 7ca2918c6c26bc..1b7f441f07501a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descrição -O comando **Session storage** retorna o objeto de armazenamento da sessão cujo identificador exclusivo você passou no parâmetro *id*. +The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. Em *id*, passe o UUID da sessão para a qual você deseja obter o armazenamento. Ele é atribuído automaticamente pelo 4D (4D Server ou, para sessões autônomas, 4D single-user) e é armazenado na propriedade [**.id**](../API/SessionClass.md#id) do [objeto sessão](../API/SessionClass.md). Se a sessão não existir, o comando retornará **Null**. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index ac3c72326c2666..497c2e8fcc456c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -O comando **SET ALLOWED METHODS** designa os métodos projeto que podem ser inseridos por meio da aplicação. +The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. 4D includes a security mechanism that filters enterable project methods from the following contexts: diff --git a/versioned_docs/version-21/Project/image.png b/versioned_docs/version-21/Project/image.png new file mode 100644 index 0000000000000000000000000000000000000000..be5f4801e6da3456edd9d35e3af33f0d408d8575 GIT binary patch literal 14867 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 s!h}8EFdUP~lpPSgk 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 literal 0 HcmV?d00001 From d6acedd6b5754171f2a7ab439cff1363302e4894 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 13 Oct 2025 10:44:14 +0200 Subject: [PATCH 074/119] fixes and removed banner --- docs/Project/image.png | Bin 14867 -> 0 bytes versioned_docs/version-21/Project/image.png | Bin 14867 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/Project/image.png delete mode 100644 versioned_docs/version-21/Project/image.png diff --git a/docs/Project/image.png b/docs/Project/image.png deleted file mode 100644 index be5f4801e6da3456edd9d35e3af33f0d408d8575..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14867 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 s!h}8EFdUP~lpPSgk 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 diff --git a/versioned_docs/version-21/Project/image.png b/versioned_docs/version-21/Project/image.png deleted file mode 100644 index be5f4801e6da3456edd9d35e3af33f0d408d8575..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14867 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 s!h}8EFdUP~lpPSgk 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 From 74cc919ead8d882d866d54a39f21dc83f982c2a0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 13 Oct 2025 11:01:25 +0200 Subject: [PATCH 075/119] New Crowdin updates (#2964) * New translations current.json (French) * New translations current.json (Spanish) * New translations current.json (Japanese) * New translations current.json (Portuguese, Brazilian) * New translations updates.md (Japanese) * New translations error-handling.md (French) * New translations error-handling.md (Spanish) * New translations error-handling.md (Japanese) * New translations error-handling.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations version-20-r10.json (Spanish) * New translations version-20-r10.json (Japanese) * New translations version-20-r10.json (Portuguese, Brazilian) * New translations version-20-r9.json (French) * New translations version-20-r9.json (Spanish) * New translations version-20-r9.json (Japanese) * New translations version-20-r9.json (Portuguese, Brazilian) * New translations updates.md (Japanese) * New translations components.md (Japanese) * New translations version-20-r8.json (French) * New translations version-20-r8.json (Spanish) * New translations version-20-r8.json (Japanese) * New translations version-20-r8.json (Portuguese, Brazilian) * New translations version-21.json (French) * New translations version-21.json (Spanish) * New translations version-21.json (Japanese) * New translations version-21.json (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations collectionclass.md (Spanish) * New translations collectionclass.md (Japanese) * New translations collectionclass.md (Portuguese, Brazilian) * New translations cryptokeyclass.md (French) * New translations cryptokeyclass.md (Spanish) * New translations cryptokeyclass.md (Japanese) * New translations cryptokeyclass.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations datastoreclass.md (French) * New translations datastoreclass.md (Spanish) * New translations datastoreclass.md (Japanese) * New translations datastoreclass.md (Portuguese, Brazilian) * New translations emailobjectclass.md (Portuguese, Brazilian) * New translations entityclass.md (French) * New translations entityclass.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Portuguese, Brazilian) * New translations entityselectionclass.md (Japanese) * New translations httprequestclass.md (French) * New translations httprequestclass.md (Spanish) * New translations imaptransporterclass.md (French) * New translations imaptransporterclass.md (Spanish) * New translations imaptransporterclass.md (Japanese) * New translations imaptransporterclass.md (Portuguese, Brazilian) * New translations incomingmessageclass.md (French) * New translations incomingmessageclass.md (Spanish) * New translations incomingmessageclass.md (Japanese) * New translations incomingmessageclass.md (Portuguese, Brazilian) * New translations signalclass.md (Japanese) * New translations systemworkerclass.md (Spanish) * New translations systemworkerclass.md (Portuguese, Brazilian) * New translations tcpconnectionclass.md (Spanish) * New translations tcpconnectionclass.md (Japanese) * New translations tcpeventclass.md (French) * New translations tcpeventclass.md (Portuguese, Brazilian) * New translations webserverclass.md (Portuguese, Brazilian) * New translations websocketclass.md (French) * New translations websocketclass.md (Spanish) * New translations websocketclass.md (Japanese) * New translations websocketclass.md (Portuguese, Brazilian) * New translations websocketconnectionclass.md (Portuguese, Brazilian) * New translations cli.md (French) * New translations cli.md (Spanish) * New translations cli.md (Japanese) * New translations cli.md (Portuguese, Brazilian) * New translations log.md (Portuguese, Brazilian) * New translations classes.md (French) * New translations classes.md (Spanish) * New translations classes.md (Japanese) * New translations classes.md (Portuguese, Brazilian) * New translations dt_number.md (French) * New translations dt_number.md (Spanish) * New translations dt_number.md (Japanese) * New translations dt_number.md (Portuguese, Brazilian) * New translations error-handling.md (French) * New translations error-handling.md (Spanish) * New translations error-handling.md (Japanese) * New translations error-handling.md (Portuguese, Brazilian) * New translations debuglogfiles.md (French) * New translations debuglogfiles.md (Spanish) * New translations debuglogfiles.md (Japanese) * New translations debuglogfiles.md (Portuguese, Brazilian) * New translations building.md (Spanish) * New translations labels.md (Japanese) * New translations onafteredit.md (French) * New translations onafteredit.md (Spanish) * New translations onafteredit.md (Japanese) * New translations onafteredit.md (Portuguese, Brazilian) * New translations develop-components.md (French) * New translations develop-components.md (Spanish) * New translations develop-components.md (Japanese) * New translations develop-components.md (Portuguese, Brazilian) * New translations createstylesheet.md (French) * New translations createstylesheet.md (Spanish) * New translations createstylesheet.md (Japanese) * New translations createstylesheet.md (Portuguese, Brazilian) * New translations formeditor.md (French) * New translations formeditor.md (Spanish) * New translations formeditor.md (Japanese) * New translations formeditor.md (Portuguese, Brazilian) * New translations pictures.md (French) * New translations pictures.md (Spanish) * New translations pictures.md (Japanese) * New translations pictures.md (Portuguese, Brazilian) * New translations properties_markers.md (French) * New translations properties_markers.md (Spanish) * New translations properties_markers.md (Portuguese, Brazilian) * New translations button_overview.md (Spanish) * New translations button_overview.md (Japanese) * New translations button_overview.md (Portuguese, Brazilian) * New translations checkbox_overview.md (Spanish) * New translations dropdownlist_overview.md (Portuguese, Brazilian) * New translations listbox_overview.md (French) * New translations listbox_overview.md (Spanish) * New translations listbox_overview.md (Japanese) * New translations listbox_overview.md (Portuguese, Brazilian) * New translations properties_object.md (French) * New translations properties_object.md (Spanish) * New translations properties_object.md (Japanese) * New translations properties_object.md (Portuguese, Brazilian) * New translations properties_text.md (French) * New translations properties_text.md (Spanish) * New translations radio_overview.md (Spanish) * New translations write-class-method.md (French) * New translations write-class-method.md (Spanish) * New translations write-class-method.md (Japanese) * New translations write-class-method.md (Portuguese, Brazilian) * New translations command-name.md (French) * New translations command-name.md (Spanish) * New translations command-name.md (Japanese) * New translations compile-project.md (French) * New translations compile-project.md (Spanish) * New translations compile-project.md (Japanese) * New translations compile-project.md (Portuguese, Brazilian) * New translations dialog.md (French) * New translations dialog.md (Spanish) * New translations dialog.md (Japanese) * New translations dialog.md (Portuguese, Brazilian) * New translations folder.md (Japanese) * New translations form-edit.md (French) * New translations form-edit.md (Spanish) * New translations form-edit.md (Japanese) * New translations form-edit.md (Portuguese, Brazilian) * New translations form-event.md (French) * New translations form-event.md (Spanish) * New translations form-event.md (Japanese) * New translations form-event.md (Portuguese, Brazilian) * New translations form-load.md (French) * New translations form-load.md (Spanish) * New translations form-load.md (Japanese) * New translations form-load.md (Portuguese, Brazilian) * New translations form.md (French) * New translations form.md (Spanish) * New translations form.md (Japanese) * New translations form.md (Portuguese, Brazilian) * New translations license-info.md (French) * New translations license-info.md (Spanish) * New translations license-info.md (Japanese) * New translations license-info.md (Portuguese, Brazilian) * New translations new-collection.md (French) * New translations new-collection.md (Spanish) * New translations new-collection.md (Japanese) * New translations new-collection.md (Portuguese, Brazilian) * New translations new-shared-collection.md (Japanese) * New translations open-datastore.md (French) * New translations open-datastore.md (Spanish) * New translations print-form.md (French) * New translations print-form.md (Spanish) * New translations print-form.md (Japanese) * New translations print-form.md (Portuguese, Brazilian) * New translations process-activity.md (French) * New translations process-activity.md (Spanish) * New translations process-activity.md (Japanese) * New translations process-activity.md (Portuguese, Brazilian) * New translations process-info.md (French) * New translations process-number.md (French) * New translations process-number.md (Spanish) * New translations process-number.md (Japanese) * New translations process-number.md (Portuguese, Brazilian) * New translations session-info.md (Japanese) * New translations session-info.md (Portuguese, Brazilian) * New translations session-storage.md (French) * New translations session-storage.md (Japanese) * New translations session-storage.md (Portuguese, Brazilian) * New translations set-allowed-methods.md (French) * New translations set-allowed-methods.md (Spanish) * New translations set-allowed-methods.md (Japanese) * New translations set-allowed-methods.md (Portuguese, Brazilian) * New translations string.md (French) * New translations string.md (Spanish) * New translations boolean.md (French) * New translations string.md (French) * New translations this.md (Spanish) * New translations this.md (Japanese) * New translations wa-set-context.md (Spanish) * New translations zip-create-archive.md (French) * New translations zip-create-archive.md (Spanish) * New translations zip-create-archive.md (Japanese) --- .../version-20-R8.json | 1042 +++++++++++++++++ .../version-20-R9.json | 742 ++++++++++++ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 10 +- .../version-21/API/SystemWorkerClass.md | 2 +- .../version-21/API/TCPConnectionClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/Desktop/building.md | 2 +- .../Extensions/develop-components.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/checkbox_overview.md | 4 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/FormObjects/properties_Text.md | 6 +- .../version-21/FormObjects/radio_overview.md | 4 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 4 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 4 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-21/commands/wa-set-context.md | 2 +- .../version-20-R8.json | 1042 +++++++++++++++++ .../version-20-R9.json | 742 ++++++++++++ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/HTTPRequestClass.md | 2 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/TCPEventClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormEditor/pictures.md | 8 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/FormObjects/properties_Text.md | 8 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 2 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-info.md | 6 +- .../version-21/commands/process-number.md | 4 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-20-R8.json | 1042 +++++++++++++++++ .../version-20-R9.json | 742 ++++++++++++ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 2 +- .../version-21/API/DataClassClass.md | 22 +- .../version-21/API/EntityClass.md | 4 +- .../version-21/API/EntitySelectionClass.md | 4 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/TCPConnectionClass.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/Desktop/labels.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/listbox_overview.md | 14 +- .../version-21/commands/compile-project.md | 3 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/folder.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 2 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 4 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../commands/new-shared-collection.md | 12 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- .../version-20-R8.json | 1042 +++++++++++++++++ .../version-20-R9.json | 742 ++++++++++++ .../version-21/API/CollectionClass.md | 16 +- .../version-21/API/CryptoKeyClass.md | 4 +- .../version-21/API/DataClassClass.md | 26 +- .../version-21/API/DataStoreClass.md | 2 +- .../version-21/API/EmailObjectClass.md | 10 +- .../version-21/API/EntityClass.md | 4 +- .../version-21/API/IMAPTransporterClass.md | 2 +- .../version-21/API/IncomingMessageClass.md | 4 +- .../version-21/API/SystemWorkerClass.md | 2 +- .../version-21/API/TCPEventClass.md | 2 +- .../version-21/API/WebServerClass.md | 10 +- .../API/WebSocketConnectionClass.md | 2 +- .../version-21/Backup/log.md | 2 +- .../version-21/Concepts/dt_number.md | 20 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-21/Debugging/debugLogFiles.md | 30 +- .../version-21/FormEditor/createStylesheet.md | 30 +- .../version-21/FormObjects/button_overview.md | 4 +- .../FormObjects/dropdownList_Overview.md | 2 +- .../FormObjects/listbox_overview.md | 12 +- .../version-21/commands/compile-project.md | 2 +- .../version-21/commands/dialog.md | 2 +- .../version-21/commands/form-edit.md | 2 +- .../version-21/commands/form-event.md | 4 +- .../version-21/commands/form-load.md | 2 +- .../version-21/commands/form.md | 2 +- .../version-21/commands/license-info.md | 2 +- .../version-21/commands/new-collection.md | 2 +- .../version-21/commands/print-form.md | 2 +- .../version-21/commands/process-activity.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../version-21/commands/session-info.md | 2 +- .../version-21/commands/session-storage.md | 2 +- .../commands/set-allowed-methods.md | 2 +- 128 files changed, 7539 insertions(+), 404 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-20-R8.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-20-R9.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json new file mode 100644 index 00000000000000..8035212601dd7e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R8.json @@ -0,0 +1,1042 @@ +{ + "version.label": { + "message": "20 R8", + "description": "The label for version 20-R8" + }, + "sidebar.docs.category.Getting Started": { + "message": "Comencemos", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Comencemos", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Desarrollo", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Desarrollo", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestión del proyecto", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Propiedades", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Entorno de desarrollo", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Depuración", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Procesos", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Preferencias", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Lenguaje 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Lenguaje 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Conceptos", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Tipos de datos", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Comandos", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Comandos", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Entorno 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.4D Environment.link.generated-index.title": { + "message": "Entorno 4D", + "description": "The generated-index page title for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Arrays", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Arrays.link.generated-index.title": { + "message": "Arrays", + "description": "The generated-index page title for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Copia de seguridad", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.Backup.link.generated-index.title": { + "message": "Copia de seguridad", + "description": "The generated-index page title for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.BLOB.link.generated-index.title": { + "message": "BLOB", + "description": "The generated-index page title for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Boolean.link.generated-index.title": { + "message": "Boolean", + "description": "The generated-index page title for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Gestión de caché", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Cache Management.link.generated-index.title": { + "message": "Gestión de caché", + "description": "The generated-index page title for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Collections", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Collections.link.generated-index.title": { + "message": "Collections", + "description": "The generated-index page title for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Comunicaciones", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Communications.link.generated-index.title": { + "message": "Comunicaciones", + "description": "The generated-index page title for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compilador", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Compiler.link.generated-index.title": { + "message": "Compilador", + "description": "The generated-index page title for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Entrada", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Entry.link.generated-index.title": { + "message": "Entrada", + "description": "The generated-index page title for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Seguridad de los datos", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Data Security.link.generated-index.title": { + "message": "Seguridad de los datos", + "description": "The generated-index page title for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Métodos base", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Database Methods.link.generated-index.title": { + "message": "Métodos base", + "description": "The generated-index page title for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Fechas y horas", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Date and Time.link.generated-index.title": { + "message": "Fechas y horas", + "description": "The generated-index page title for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Acceso objetos diseño", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Design Object Access.link.generated-index.title": { + "message": "Acceso objetos diseño", + "description": "The generated-index page title for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Arrastrar y soltar", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop.link.generated-index.title": { + "message": "Arrastrar y soltar", + "description": "The generated-index page title for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Control de entrada", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.Entry Control.link.generated-index.title": { + "message": "Control de entrada", + "description": "The generated-index page title for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "Archivo y carpeta", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.File and Folder.link.generated-index.title": { + "message": "Archivo y carpeta", + "description": "The generated-index page title for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Eventos formulario", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Form Events.link.generated-index.title": { + "message": "Eventos formulario", + "description": "The generated-index page title for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formularios", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Forms.link.generated-index.title": { + "message": "Formularios", + "description": "The generated-index page title for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Fórmulas", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Formulas.link.generated-index.title": { + "message": "Fórmulas", + "description": "The generated-index page title for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Gráficos", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.Graphs.link.generated-index.title": { + "message": "Gráficos", + "description": "The generated-index page title for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.HTTP.link.generated-index.title": { + "message": "HTTP", + "description": "The generated-index page title for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Listas jerárquicas", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { + "message": "Listas jerárquicas", + "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import-Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Import and Export.link.generated-index.title": { + "message": "Import-Export", + "description": "The generated-index page title for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interrupciones", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.Interruptions.link.generated-index.title": { + "message": "Interrupciones", + "description": "The generated-index page title for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.JSON.link.generated-index.title": { + "message": "JSON", + "description": "The generated-index page title for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.LDAP.link.generated-index.title": { + "message": "LDAP", + "description": "The generated-index page title for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Lenguaje", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Language.link.generated-index.title": { + "message": "Lenguaje", + "description": "The generated-index page title for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licencias", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.Licenses.link.generated-index.title": { + "message": "Licencias", + "description": "The generated-index page title for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.List Box.link.generated-index.title": { + "message": "List Box", + "description": "The generated-index page title for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Mail.link.generated-index.title": { + "message": "Mail", + "description": "The generated-index page title for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Funciones matemáticas", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Math.link.generated-index.title": { + "message": "Funciones matemáticas", + "description": "The generated-index page title for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menús", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Menus.link.generated-index.title": { + "message": "Menús", + "description": "The generated-index page title for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Messages.link.generated-index.title": { + "message": "Messages", + "description": "The generated-index page title for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Selecciones temporales", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Named Selections.link.generated-index.title": { + "message": "Selecciones temporales", + "description": "The generated-index page title for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objetos (formularios)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms).link.generated-index.title": { + "message": "Objetos (formularios)", + "description": "The generated-index page title for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objetos (Lenguaje)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language).link.generated-index.title": { + "message": "Objetos (Lenguaje)", + "description": "The generated-index page title for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "Funciones estadísticas", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.On a Series.link.generated-index.title": { + "message": "Funciones estadísticas", + "description": "The generated-index page title for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.PHP.link.generated-index.title": { + "message": "PHP", + "description": "The generated-index page title for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Portapapeles", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pasteboard.link.generated-index.title": { + "message": "Portapapeles", + "description": "The generated-index page title for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Imágenes", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Pictures.link.generated-index.title": { + "message": "Imágenes", + "description": "The generated-index page title for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Impresiones", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Printing.link.generated-index.title": { + "message": "Impresiones", + "description": "The generated-index page title for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Process (Communications)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (Communications).link.generated-index.title": { + "message": "Process (Communications)", + "description": "The generated-index page title for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Proceso (interfaz de usuario)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface).link.generated-index.title": { + "message": "Proceso (interfaz de usuario)", + "description": "The generated-index page title for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Processes.link.generated-index.title": { + "message": "Procesos", + "description": "The generated-index page title for category Processes in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Búsquedas", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Queries.link.generated-index.title": { + "message": "Búsquedas", + "description": "The generated-index page title for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Informes rápidos", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Quick Report.link.generated-index.title": { + "message": "Informes rápidos", + "description": "The generated-index page title for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Bloqueo de registros", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Record Locking.link.generated-index.title": { + "message": "Bloqueo de registros", + "description": "The generated-index page title for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Registros", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Records.link.generated-index.title": { + "message": "Registros", + "description": "The generated-index page title for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Relaciones", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Relations.link.generated-index.title": { + "message": "Relaciones", + "description": "The generated-index page title for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.Resources.link.generated-index.title": { + "message": "Resources", + "description": "The generated-index page title for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SQL.link.generated-index.title": { + "message": "SQL", + "description": "The generated-index page title for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.SVG.link.generated-index.title": { + "message": "SVG", + "description": "The generated-index page title for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocolo seguro", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol.link.generated-index.title": { + "message": "Protocolo seguro", + "description": "The generated-index page title for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Selección", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Selection.link.generated-index.title": { + "message": "Selección", + "description": "The generated-index page title for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Conjuntos", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Sets.link.generated-index.title": { + "message": "Conjuntos", + "description": "The generated-index page title for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Corrector ortográfico", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.Spell Checker.link.generated-index.title": { + "message": "Corrector ortográfico", + "description": "The generated-index page title for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.String.link.generated-index.title": { + "message": "String", + "description": "The generated-index page title for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Definición estructura", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Structure Access.link.generated-index.title": { + "message": "Definición estructura", + "description": "The generated-index page title for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Texto multiestilo", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Styled Text.link.generated-index.title": { + "message": "Texto multiestilo", + "description": "The generated-index page title for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Subregistros", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.Subrecords.link.generated-index.title": { + "message": "Subregistros", + "description": "The generated-index page title for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "Documentos sistema", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Documents.link.generated-index.title": { + "message": "Documentos sistema", + "description": "The generated-index page title for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "Entorno sistema", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.System Environment.link.generated-index.title": { + "message": "Entorno sistema", + "description": "The generated-index page title for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Tabla", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Table.link.generated-index.title": { + "message": "Tabla", + "description": "The generated-index page title for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Herramientas", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Tools.link.generated-index.title": { + "message": "Herramientas", + "description": "The generated-index page title for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transacciones", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Transactions.link.generated-index.title": { + "message": "Transacciones", + "description": "The generated-index page title for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.Triggers.link.generated-index.title": { + "message": "Triggers", + "description": "The generated-index page title for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interfaz de usuario", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.User Interface.link.generated-index.title": { + "message": "Interfaz de usuario", + "description": "The generated-index page title for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Usuarios y grupos", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Users and Groups.link.generated-index.title": { + "message": "Usuarios y grupos", + "description": "The generated-index page title for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variables", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Variables.link.generated-index.title": { + "message": "Variables", + "description": "The generated-index page title for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Área Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Area.link.generated-index.title": { + "message": "Área Web", + "description": "The generated-index page title for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Servidor Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Server.link.generated-index.title": { + "message": "Servidor Web", + "description": "The generated-index page title for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client).link.generated-index.title": { + "message": "Web Services (Client)", + "description": "The generated-index page title for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Servidor)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server).link.generated-index.title": { + "message": "Web Services (Servidor)", + "description": "The generated-index page title for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.Windows.link.generated-index.title": { + "message": "Windows", + "description": "The generated-index page title for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML DOM.link.generated-index.title": { + "message": "XML DOM", + "description": "The generated-index page title for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML SAX.link.generated-index.title": { + "message": "XML SAX", + "description": "The generated-index page title for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.XML.link.generated-index.title": { + "message": "XML", + "description": "The generated-index page title for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Clases", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Clases", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Lista de clases 4D integradas", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administración", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administración", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Cómo supervisar sus aplicaciones 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Ventana de administración de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administración Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administración Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Herramientas web 4D para administrar y supervisar sus aplicaciones.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Copia de seguridad y restauración", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensiones", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Aplicaciones web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Aplicaciones web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guías para el desarrollo de aplicaciones Web con 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Desarrollo web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Uso de Qodly Studio para crear poderosas interfaces web.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exponiendo su datastore a REST y utilizando la API REST.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Exponiendo su almacén de datos en REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Exponiendo su almacén de datos en REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configura su almacén de datos para acceso REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (general)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (general)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST para información global", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST para dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Aplicaciones de escritorio", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Aplicaciones de escritorio", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guías para el desarrollo de aplicaciones de escritorio con 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Derechos de acceso", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Derechos de acceso", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Control de acceso y privilegios de usuario para aplicaciones de escritorio.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Editor de formularios", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propiedades de los formularios", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objetos formularios", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propiedades de los objetos de formulario", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Aplicaciones móviles", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (archive)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interfaz de línea de\n comando", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocolo TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Managing 4D Licenses": { + "message": "Gestión de licencias 4D", + "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Recopilación de datos", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Cliente/Servidor", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propiedades usuario", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Generador de aplicaciones", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json new file mode 100644 index 00000000000000..c647631735ae7f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R9.json @@ -0,0 +1,742 @@ +{ + "version.label": { + "message": "20 R9", + "description": "The label for version 20-R9" + }, + "sidebar.docs.category.Getting Started": { + "message": "Comencemos", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Comencemos", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Desarrollo", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Desarrollo", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestión del proyecto", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Propiedades", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Entorno de desarrollo", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Depuración", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Procesos", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Preferencias", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Lenguaje 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Lenguaje 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Conceptos", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Tipos de datos", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Comandos", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Comandos", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Entorno 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Arrays", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Copia de seguridad", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Gestión de caché", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Collections", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Comunicaciones", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compilador", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Entrada", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Seguridad de los datos", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Métodos base", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Fechas y horas", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Acceso objetos diseño", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Arrastrar y soltar", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Control de entrada", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "Archivo y carpeta", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Eventos formulario", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formularios", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Fórmulas", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Gráficos", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Listas jerárquicas", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import-Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interrupciones", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Lenguaje", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licencias", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Funciones matemáticas", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menús", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Selecciones temporales", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objetos (formularios)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objetos (Lenguaje)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "Funciones estadísticas", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Portapapeles", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Imágenes", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Impresiones", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Process (Communications)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Proceso (interfaz de usuario)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Búsquedas", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Informes rápidos", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Bloqueo de registros", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Registros", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Relaciones", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocolo seguro", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Selección", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Conjuntos", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Corrector ortográfico", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Definición estructura", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Texto multiestilo", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Subregistros", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "Documentos sistema", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "Entorno sistema", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Tabla", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Herramientas", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transacciones", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interfaz de usuario", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Usuarios y grupos", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variables", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Área Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Servidor Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Servidor)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Clases", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Clases", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Lista de clases 4D integradas", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administración", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administración", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Cómo supervisar sus aplicaciones 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Ventana de administración de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administración Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administración Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Herramientas web 4D para administrar y supervisar sus aplicaciones.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Copia de seguridad y restauración", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensiones", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D AIKit": { + "message": "4D AIKit", + "description": "The label for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.4D AIKit.link.generated-index.title": { + "message": "4D AIKit", + "description": "The generated-index page title for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Aplicaciones web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Aplicaciones web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guías para el desarrollo de aplicaciones Web con 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Desarrollo web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Uso de Qodly Studio para crear poderosas interfaces web.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exponiendo su datastore a REST y utilizando la API REST.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Exponiendo su almacén de datos en REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Exponiendo su almacén de datos en REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configura su almacén de datos para acceso REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (general)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (general)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST para información global", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST para dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Aplicaciones de escritorio", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Aplicaciones de escritorio", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guías para el desarrollo de aplicaciones de escritorio con 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Derechos de acceso", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Derechos de acceso", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Control de acceso y privilegios de usuario para aplicaciones de escritorio.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Editor de formularios", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propiedades de los formularios", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objetos formularios", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propiedades de los objetos de formulario", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Aplicaciones móviles", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (archive)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interfaz de línea de\n comando", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocolo TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Licenses": { + "message": "Licencias", + "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Recopilación de datos", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Cliente/Servidor", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propiedades usuario", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Generador de aplicaciones", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + }, + "sidebar.docs.doc.Labels": { + "message": "Etiquetas", + "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index 52e214a97ff15e..de25918e361018 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3171,14 +3171,14 @@ La función `.sort()` ordena los elemento Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: -``` -|Constant| Type|Value|Comment| -|---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| - -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). -``` + ``` + |Constant| Type|Value|Comment| + |---|---|---|---| + |ck ascending|Integer|0|Elements are ordered in ascending order (default)| + |ck descending|Integer|1|Elements are ordered in descending order| + + This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + ``` Si la colección contiene elementos de diferentes tipos, se agrupan primero por tipo y se ordenan después. Si attributePath lleva a una propiedad de objeto que contiene valores de diferentes tipos, primero se agrupan por tipo y se ordenan después. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 52cdfa7c3b3ea3..c653dc8dc6987d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -311,7 +311,7 @@ El valor devuelto es la llave pública. **.pem** : Text -PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. +Definición PEM de una llave de cifrado a cargar. Si la llave es una llave privada, se deducirá de ella la llave pública RSA o ECDSA. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 1a8a2702277ab8..53054ee02534df 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -995,18 +995,18 @@ El uso de marcadores de posición en las búsquedas **se recomienda** por las si 1. Evita la inserción de código malicioso: si utiliza directamente variables completadas por el usuario dentro de la cadena de búsqueda, un usuario podría modificar las condiciones de búsqueda introduciendo argumentos de búsqueda adicionales. Por ejemplo, imagine una cadena de búsqueda como: -```4d - $vquery:="status = 'public' & name = "+myname //el usuario introduce su nombre - $result:=$col.query($vquery) -``` + ```4d + $vquery:="status = 'public' & name = "+myname //el usuario introduce su nombre + $result:=$col.query($vquery) + ``` Esta búsqueda parece segura ya que se filtran los datos no públicos. Sin embargo, si el usuario introduce en el área *myname* algo como *"smith OR status='private'*, la cadena de consulta se modificaría en el paso de interpretación y podría devolver datos privados. Cuando se utilizan marcadores de posición, no es posible anular las condiciones de seguridad: -```4d - $result:=$col.query("status='public' & name=:1";myname) -``` + ```4d + $result:=$col.query("status='public' & name=:1";myname) + ``` En este caso, si el usuario introduce *smith OR status='private'* en el área *myname*, no se interpretará en la cadena de búsqueda, sino que sólo se pasará como valor. La búsqueda de una persona llamada "smith OR status='private'" simplemente fallará. @@ -1014,10 +1014,10 @@ En este caso, si el usuario introduce *smith OR status='private'* en el área *m 3. Permite el uso de variables o expresiones en los argumentos de búsqueda. Ejemplos: -```4d -$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") -$result2:=$col.query("company.name = :1";"John's Pizzas") -``` + ```4d + $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") + $result2:=$col.query("company.name = :1";"John's Pizzas") + ``` ### Búsqueda de valores null diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index b04868d96d8158..2586d2f95f4f9a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Descripción -La función `.expunge()` elimina todos los mensajes con el marcador "deleted" del servidor de correo IMAP. El marcador "deleted" puede definirse con los métodos [`delete()`](#delete) o [`addFlags()`](#addflags). +La función `.expunge()` elimina todos los mensajes con la bandera "eliminada" del servidor de correo IMAP. La bandera "deleted" puede definirse con los métodos [`.delete()`](#delete) o [`.addFlags()`](#addflags). **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 00a40a1fb3a6b2..0ae9ec207f1c61 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -101,7 +101,7 @@ Un objeto 4D.IncomingMessage es un objeto [no compartible](../Concepts/shared.md ## .getBlob() -**.getBlob**() : Blob +**.getBlob**(): Blob @@ -210,7 +210,7 @@ Si el cuerpo no se recibe como una imagen válida, la función devuelve null. ## .getText() -**.getText**() : Text +**.getText**(): Text @@ -286,7 +286,7 @@ La propiedad `.urlPath` es de sólo lectura. ## .urlQuery -**urlQuery** : Object +**urlQuery**: Object #### Descripción @@ -319,10 +319,10 @@ Los caracteres especiales, como las comillas simples o los retornos de carro, de Ejemplo: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -````4d +```4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -```` +``` :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md index de764904264fcb..c71166458846d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md @@ -418,7 +418,7 @@ Esta propiedad está en **lectura-escritura**. ## .pid -**.pid** : Integer +**.pid**: Integer #### Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 4b41fc002cb1ab..846550e7f5f448 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -346,7 +346,7 @@ La función `wait()` espera hasta que :::note -Durante la ejecución de `.wait()`, se ejecutan funciones de callback, tanto si proceden de otras instancias de `SystemWorker`. Puede salir de un `.wait()` llamando a [`shutdown()`](#shutdown) desde una retrollamada. +Durante la ejecución de `.wait()`, se ejecutan funciones de retrollamda, tanto si proceden de otras instancias de `SystemWorker`. Puede salir de un `.wait()` llamando a [`shutdown()`](#shutdown) desde una retrollamada. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index d273e88f96b557..bec97cdc37fcdf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ Dado que cada bit puede ser igual a 0 o 1, también se puede pensar en un valor Una expresión que utiliza un operador de bits devuelve un valor de tipo Long, excepto para el operador Bit Test, donde la expresión devuelve un valor booleano. La siguiente tabla lista los operadores a nivel de bits y su sintaxis: -| Operación | Operador | Sintaxis | Devuelve | -| -------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | -| Y | & | Long & Long | Long | -| O (inclusive) | | | Long | Long | Long | -| O (exclusivo) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (ver nota 1) | -| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | -| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | -| Poner el bit en 0 | ?- | Long ?- Long | Long (ver nota 2) | -| Probar bit | ?? | Long ?? Long Long | Boolean (ver nota 2) | +| Operación | Operador | Sintaxis | Devuelve | +| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | +| Y | & | Long & Long | Long | +| O (inclusive) | | | Long | Long | Long | +| O (exclusivo) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (ver nota 1) | +| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | +| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | +| Poner el bit en 0 | ?- | Long ?- Long | Long (ver nota 2) | +| Probar bit | ?? | Long ?? Long Long | Boolean (ver nota 2) | #### Notas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 6a11f1b2f93727..d6b32a4f015be7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -315,21 +315,21 @@ Esta ruta al historial es devuelta por el comando `Get 4D file`. Para iniciar este historial: -```4d -$server:=New object -... -//SMTP -$server.logFile:="MySMTPAuthLog.txt" -$transporter:=SMTP New transporter($server) - -// POP3 -$server.logFile:="MyPOP3AuthLog.txt" -$transporter:=POP3 New transporter($server) - -//IMAP -$server.logFile:="MyIMAPAuthLog.txt" -$transporter:=IMAP New transporter($server) -``` + ```4d + $server:=New object + ... + //SMTP + $server.logFile:="MySMTPAuthLog.txt" + $transporter:=SMTP New transporter($server) + + // POP3 + $server.logFile:="MyPOP3AuthLog.txt" + $transporter:=POP3 New transporter($server) + + //IMAP + $server.logFile:="MyIMAPAuthLog.txt" + $transporter:=IMAP New transporter($server) + ``` #### Contenido diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md index a4fcb9aef8f1f5..b4bb86c4b4387c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/building.md @@ -202,7 +202,7 @@ Los elementos deben ser instalados: ## Página Cliente/Servidor -En esta pestaña, puede generar aplicaciones cliente y servidor personalizadas que son homogéneas, multiplataforma y con una opción de actualización automática. +En esta pestaña, usted puede construir aplicaciones cliente y servidor personalizadas que son homogénicas, multiplataforma y con una opción de actualización automática. ![](../assets/en/Desktop/client-server-buildapp.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md index bdaf92b77f70e5..b2bd470b087778 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md @@ -458,7 +458,7 @@ Las llaves soportadas en los archivos `Info.plist` de los componentes son en su Se pueden definir las siguientes teclas: -| tecla | descripción | +| key | description | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | CFBundleName | Nombre del componente (interno) | | CFBundleDisplayName | Nombre del componente a mostrar | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 292d49e5de368c..71ff26254cf850 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ Durante la ejecución, 4D prioriza automáticamente las hojas de estilo en el si - un archivo para ambas plataformas: -``` -"css": "" -``` + ``` + "css": "" + ``` - o una lista de archivos para ambas plataformas: -``` -"css": [ - "", - "" - ], -``` + ``` + "css": [ + "", + "" + ], + ``` - o una lista de archivos por plataforma: -``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], -``` + ``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], + ``` > Las rutas de los archivos pueden ser relativas o absolutas. > diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index 1e187335df4aab..bc28dd10b260a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Todos los botones comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Consejo de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Cursiva](properties_Text.md#italic) - [Título de abrazos de imagen](properties_TextAndPicture.md#image-hugs-title)(1) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [No renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nombre del objeto](properties_Object.md#object-name) - [Nombre de la ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(1) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Con menú emergente](properties_TextAndPicture.md#with-pop-up-menu)(2) -> (1) No soportado por el estilo [Help](#help).
        -> (2) No soportado por los estilos [Help](#help), [Flat](#flat) y [Regular](#regular). +> (1) No soportado por el estilo [Ayuda](#help).
        +> (2) Not supported by the [Help](#help), [Flat](#flat) and [Regular](#regular) styles. Existen propiedades específicas adicionales, dependiendo del [estilo-de-botón](#button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md index 0811debdd3fb88..a363a7ce13de38 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/checkbox_overview.md @@ -389,8 +389,8 @@ Todas las casillas de selección comparten un mismo conjunto de propiedades bás [Negrita](properties_Text.md#bold) - [Abajo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Editable](properties_Entry.md#enterable) - [Tipo de expresión](properties_Object.md#expression-type) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Alto](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment)(1) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Título de la imagen](properties_TextAndPicture.md#image-hugs-title)(2) - [Itálica](properties_Text.md#italic) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Número de estados](properties_TextAndPicture.md#number-of-states)(2) - [Nombre del objeto](properties_Object.md#nombre_objeto) - [Ruta de la imagen](properties_TextAndPicture.md#nombre_de_imagen)(2) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Guardar valor](properties_Object.md#save-value) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(2) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibilidad) - [Ancho](properties_CoordinatesAndSizing.md#ancho) -> (1) No soportado por los estilos [Regular](#regular) y [Flat](#flat).
        -> (2) No soportado por los estilos [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) y [Collapse/Expand](#collapseexpanded). +> (1) No compatible con los estilos [Regular](#regular) y [Plano](#flat).
        +> (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. Propiedades específicas adicionales están disponibles en función del [estilo de botón](#check-box-button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 6ae6f72f1bb32d..492d678bcc786a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1002,9 +1002,9 @@ Estos atributos pueden utilizarse para controlar el rango de valores de entrada. El atributo behavior ofrece variaciones a la representación estándar de los valores. En 4D v15, se ofrece una única variación: -| Atributo | Valor(es) disponible(s) | valueType(s) | Descripción | -| -------- | ------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | Representa un valor numérico como una casilla de selección de tres estados.
        2=intermediario, 1=seleccionado, 0=no seleccionado, -1=invisible, -2=no seleccionado desactivado, -3=seleccionado desactivado, -4=semi seleccionado desactivado | +| Atributo | Valor(es) disponible(s) | valueType(s) | Descripción | +| -------- | ------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| behavior | threeStates | integer | Representa un valor numérico como una casilla de verificación de tres estados.
        2=semi-checked, 1=checked, 0=unchecked, -1=invisible, -2=unchecked disabled, -3=checked disabled, -4=semi-checked disabled | ```4d C_OBJECT($ob3) @@ -1103,9 +1103,9 @@ Ejemplos: OB SET($ob;"requiredListReference";<>List) ``` -``` -![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) -``` + ``` + ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) + ``` #### choiceListName y choiceListReference diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md index 714bf9fe8df031..2745aa87c59e22 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md @@ -27,7 +27,7 @@ Ajusta el texto seleccionado para que aparezca más oscuro y pesado. Puede definir esta propiedad utilizando el comando [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Esto es texto normal.
        +> Este es un texto normal.
        > **Esto es texto en negrita.** #### Gramática JSON @@ -52,8 +52,8 @@ Hace que el texto seleccionado se incline ligeramente hacia la derecha. También puede definir esta propiedad por medio del comando [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> Esto es texto normal.
        -> *Este es texto en cursiva.* +> Este es un texto normal.
        +> *Este texto está en cursiva.* #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md index 6c454bf70930d5..7334b435e453ff 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/radio_overview.md @@ -147,8 +147,8 @@ Todos los botones radio comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Inferior](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Tipo de expresión](properties_Object.md#expression-type) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Alto](properties_CoordinatesAndSizing.md#height) - [Mensaje de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment)(1) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Título de la imagen](properties_TextAndPicture.md#image-hugs-title)(2) - [Itálica](properties_Text.md#italic) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [Número de estados](properties_TextAndPicture.md#number-of-states)(2) - [Método](properties_Action.md#method) - [Nombre del objeto](properties_Object.md#object-name) - [Grupo radio](properties_Object.md#radio-group) - [Ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(2) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Guardar valor](properties_Object.md#save-value) - [Acceso directo](properties_Entry.md#shortcut) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(2) - [Arriba](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#type) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-o-expresión) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibilidad) - [Ancho](properties_CoordinatesAndSizing.md#ancho) -> (1) No soportado por los estilos [Regular](#regular) y [Flat](#flat).
        -> (2) No soportado por los estilos [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) y [Collapse/Expand](#collapseexpanded). +> (1) No compatible con los estilos [Regular](#regular) y [Plano](#flat).
        +> (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. Propiedades específicas adicionales están disponibles en función del [estilo de botón](#button-styles): diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index 210a58340b690a..e7d3d9bcf05f79 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descripción -**Compile project** permite compilar el proyecto local actual o el proyecto especificado en el parámetro *projectFile*. Para más información sobre compilación, consultr la [página de compilación](../Project/compiler.md). +**Compilar proyecto** le permite compilar el proyecto host actual o el proyecto especificado en el parámetro *projectFile*. Para más información sobre compilación, consulte la [página de compilación](../Project/compiler.md). De forma predeterminada, el comando utiliza las opciones del compilador definidas en los parámetros de estructura. Puede sobreescribirlas pasando un parámetro *options*. Se soportan las siguientes sintaxis: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md index a8505d4751b3c0..246f5bce3ee897 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). +El comando **DIALOG** presenta el *formulario* al usuario, junto con (el) los parámetro(s) *formData* (opcional). Este comando está diseñado para trabajar con interfaces de usuario personalizadas y avanzadas basadas en formularios. Puede utilizarlo para mostrar información procedente de la base de datos o de otras ubicaciones, o para proporcionar funciones de entrada de datos. A diferencia de [ADD RECORD](../commands-legacy/add-record.md) o [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** le ofrece un control total sobre el formulario, su contenido y los botones de navegación y validación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 6778f27afd0280..490b6f1cdd6f4b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descripción -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.El comando **FORM EDIT** abre el *form* asociado a *aTable* en el editor de formularios 4D, con opcionalmente *object* seleccionado. Tenga en cuenta que debe tener acceso al entorno Diseño, de lo contrario se generará el error -9804 ("No se puede abrir el formulario"). +El comando **FORM EDIT** abre el *form* asociado a *aTable* en el editor de formularios 4D, con opcionalmente *object* seleccionado. Tenga en cuenta que debe tener acceso al entorno Diseño, de lo contrario se generará el error -9804 ("Cannot open form"). El comando es asíncrono: vuelve inmediatamente al método que lo llama y no espera a que el formulario esté abierto. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 7a1cd053401abd..de710cd9d2102d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** devuelve un objeto que contiene información sobre el evento formulario que acaba de ocurrir. Por lo general, utilizará **FORM Event** en un método formulario u objeto. +**FORM Event** devuelve un objeto que contiene información sobre el evento formulario que acaba de ocurrir. Por lo general, utilizará **FORM Event** en un método formulario u objeto. **Objeto devuelto** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md index 7715302211da73..d4254f6891c5b6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.El comando **FORM LOAD** se utiliza para cargar el *form* en memoria en el proceso actual junto con *formData* (opcional) para imprimir sus datos o analizar su contenido. Sólo puede haber un formulario actual por proceso. +El comando **FORM LOAD** se utiliza para cargar el *form* en memoria en el proceso actual junto con *formData* (opcional) para imprimir sus datos o analizar su contenido. Sólo puede haber un formulario actual por proceso. En el parámetro *form*, puede pasar: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index d1c77227cb7186..355633c3e4ffb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -4,7 +4,7 @@ title: Formulario displayed_sidebar: docs --- -**Form** : Object +**Form** : Object @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descripción -The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D asocia automáticamente un objeto al formulario actual en los siguientes casos: +El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D automatically associates an object to the current form in the following cases: - el formulario actual ha sido cargado por uno de los comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), - el formulario actual es un subformulario, diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 2dd755075547c4..0831a61bd841cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Descripción -The **License info** command returns an object providing detailed information about the active license. +El comando **Licencia info** devuelve un objeto que suministra información detallada sobre la licencia activa. Si el comando se ejecuta en una aplicación 4D que no utiliza localmente una licencia (por ejemplo, 4D remote), el comando devuelve un objeto Null. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index 93317601d41e52..a185e5dda8b962 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -El comando `New collection` crea una nueva colección vacía o prellenada y devuelve su referencia. Las colecciones pueden manejarse utilizando propiedades y funciones de la [API de la clase Collection](../API/CollectionClass.md). +El comando `New collection` crea una nueva colección vacía o pre diligenciada y devuelve su referencia. Las colecciones se pueden manejar usando propiedades y funciones de la [API Collection class](../API/CollectionClass.md). Si no se pasa ningún parámetro, `New collection` crea una colección vacía y devuelve su referencia. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 1358e18b92a2e4..b1777d0a1ecce1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Descripción -The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.El comando **Print form** simplemente imprime *form* con los valores actuales de los campos y variables de la tabla *aTable*. Suele utilizarse para imprimir informes muy complejos que requieren un control total del proceso de impresión. **Print form** no realiza ningún procesamiento de registros, ni las rupturas, ni de saltos de página. Estas operaciones son responsabilidad suya. **Print form*** imprime campos y variables solo en un marco de tamaño fijo. +El comando **Print form** simplemente imprime *form* con los valores actuales de los campos y variables de la tabla *aTable*. Suele utilizarse para imprimir informes muy complejos que requieren un control total del proceso de impresión. **Print form** no realiza ningún procesamiento de registros, ni las rupturas, ni de saltos de página. Estas operaciones son responsabilidad suya. **Print form*** imprime campos y variables solo en un marco de tamaño fijo. En el parámetro *form*, puede pasar: @@ -91,7 +91,7 @@ En este caso, el comando imprimirá la sección incluida entre los parámetros * **formData** -Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas la propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). +Opcionalmente, puede pasar parámetros al *form* usando el objeto *formData* o el objeto de clase form automáticamente instanciado por 4D si has [asociado una clase de usuario al formulario](../FormEditor/properties_FormProperties.md#form-class). Todas las propiedades del objeto de datos del formulario estarán entonces disponibles desde el contexto del formulario a través del comando [Form](form.md). Optionally, you can pass parameters to the *form* using either the *formData* object or the form class object automatically instantiated by 4D if you have [associated a user class to the form](../FormEditor/properties_FormProperties.md#form-class). Para obtener información detallada sobre el objeto de datos del formulario, consulte el comando [`DIALOG`](dialog.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 3e4844a5b9d3c8..c7cae10f86858b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descripción -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.El comando **Process activity** devuelve una instantánea de los procesos en ejecución y/o (sólo en 4D Server) de las sesiones de usuario conectadas en un momento dado. Este comando devuelve todos los procesos, incluidos los procesos internos a los que no se puede acceder mediante el comando [Process info](process-info.md). +El comando **Process activity** devuelve una instantánea de los procesos en ejecución y/o (sólo en 4D Server) de las sesiones de usuario conectadas en un momento dado. Este comando devuelve todos los procesos, incluidos los procesos internos a los que no se puede acceder mediante el comando [Process info](process-info.md). Por defecto, cuando se utiliza sin ningún parámetro, **Process activity** devuelve un objeto que contiene las siguientes propiedades: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 90bf19d98f907c..8e5b81d1056ae0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descripción -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterEl comando `Process number` devuelve el número del proceso cuyo *name* o *id* pasa en el primer parámetro. Si no se encuentra ningún proceso, `Process number` devuelve 0. +The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Si no se encuentra ningún proceso, `Process number` devuelve 0. El parámetro opcional \* permite recuperar, de un 4D remoto, el número de un proceso que se ejecuta en el servidor. En este caso, el valor devuelto es negativo. Esta opción es especialmente útil cuando se utilizan los comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) y [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index c44ba12a072356..dba743039ab392 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. +El comando **SET ALLOWED METHODS** designa los métodos proyecto que se pueden llamar a través de la aplicación. 4D incluye un mecanismo de seguridad que filtra los métodos proyecto que se pueden introducir desde los siguientes contextos: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md index 7ece11fd7e2dd5..30c22ac7be99fd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md @@ -22,7 +22,7 @@ El comando `WA SET CONTEXT` define :::note -El comando solo es utilizable con un área web integrada en la que los parámetros [**Utilizar el motor de renderizado web integrado**](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine) y **Acceder a los métodos 4D** estén configurados como `true`. +The command is only usable with an embedded web area where the [**Use embedded web rendering engine**](../FormObjects/properties_WebArea.md#use-embedded-web-rendering-engine) and **Access 4D methods** parameters are set to `true`. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json new file mode 100644 index 00000000000000..d4cf2a4c396db0 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R8.json @@ -0,0 +1,1042 @@ +{ + "version.label": { + "message": "20 R8", + "description": "The label for version 20-R8" + }, + "sidebar.docs.category.Getting Started": { + "message": "Prise en main", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Prise en main", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Développement", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Développement", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestion des projets", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Propriétés", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Environnement de développement", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Débogage", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Process", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Préférences", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Langage 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Langage 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Concepts", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Types de données", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Commandes", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Commandes", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Environnement 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.4D Environment.link.generated-index.title": { + "message": "Environnement 4D", + "description": "The generated-index page title for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Tableaux", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Arrays.link.generated-index.title": { + "message": "Tableaux", + "description": "The generated-index page title for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Sauvegarde", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.Backup.link.generated-index.title": { + "message": "Sauvegarde", + "description": "The generated-index page title for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.BLOB.link.generated-index.title": { + "message": "BLOB", + "description": "The generated-index page title for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Boolean.link.generated-index.title": { + "message": "Boolean", + "description": "The generated-index page title for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Gestion du cache", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Cache Management.link.generated-index.title": { + "message": "Gestion du cache", + "description": "The generated-index page title for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Collections", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Collections.link.generated-index.title": { + "message": "Collections", + "description": "The generated-index page title for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Communications", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Communications.link.generated-index.title": { + "message": "Communications", + "description": "The generated-index page title for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compilateur", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Compiler.link.generated-index.title": { + "message": "Compilateur", + "description": "The generated-index page title for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Saisie", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Entry.link.generated-index.title": { + "message": "Saisie", + "description": "The generated-index page title for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Sécurité des données", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Data Security.link.generated-index.title": { + "message": "Sécurité des données", + "description": "The generated-index page title for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Méthodes base", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Database Methods.link.generated-index.title": { + "message": "Méthodes base", + "description": "The generated-index page title for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Dates et heures", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Date and Time.link.generated-index.title": { + "message": "Dates et heures", + "description": "The generated-index page title for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Accès objets développement", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Design Object Access.link.generated-index.title": { + "message": "Accès objets développement", + "description": "The generated-index page title for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Glisser-Déposer", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop.link.generated-index.title": { + "message": "Glisser-Déposer", + "description": "The generated-index page title for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Gestion de la saisie", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.Entry Control.link.generated-index.title": { + "message": "Gestion de la saisie", + "description": "The generated-index page title for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "Fichier et dossier", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.File and Folder.link.generated-index.title": { + "message": "Fichier et dossier", + "description": "The generated-index page title for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Evénements formulaire", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Form Events.link.generated-index.title": { + "message": "Evénements formulaire", + "description": "The generated-index page title for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formulaires", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Forms.link.generated-index.title": { + "message": "Formulaires", + "description": "The generated-index page title for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Formules", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Formulas.link.generated-index.title": { + "message": "Formules", + "description": "The generated-index page title for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Graphes", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.Graphs.link.generated-index.title": { + "message": "Graphes", + "description": "The generated-index page title for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.HTTP.link.generated-index.title": { + "message": "HTTP", + "description": "The generated-index page title for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Listes hiérarchiques", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { + "message": "Listes hiérarchiques", + "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import-Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Import and Export.link.generated-index.title": { + "message": "Import-Export", + "description": "The generated-index page title for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interruptions", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.Interruptions.link.generated-index.title": { + "message": "Interruptions", + "description": "The generated-index page title for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.JSON.link.generated-index.title": { + "message": "JSON", + "description": "The generated-index page title for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.LDAP.link.generated-index.title": { + "message": "LDAP", + "description": "The generated-index page title for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Langage", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Language.link.generated-index.title": { + "message": "Langage", + "description": "The generated-index page title for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licences", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.Licenses.link.generated-index.title": { + "message": "Licences", + "description": "The generated-index page title for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.List Box.link.generated-index.title": { + "message": "List Box", + "description": "The generated-index page title for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Mail.link.generated-index.title": { + "message": "Mail", + "description": "The generated-index page title for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Fonctions mathématiques", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Math.link.generated-index.title": { + "message": "Fonctions mathématiques", + "description": "The generated-index page title for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menus", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Menus.link.generated-index.title": { + "message": "Menus", + "description": "The generated-index page title for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Messages.link.generated-index.title": { + "message": "Messages", + "description": "The generated-index page title for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Sélections temporaires", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Named Selections.link.generated-index.title": { + "message": "Sélections temporaires", + "description": "The generated-index page title for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objets (Formulaires)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms).link.generated-index.title": { + "message": "Objets (Formulaires)", + "description": "The generated-index page title for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objets (Langage)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language).link.generated-index.title": { + "message": "Objets (Langage)", + "description": "The generated-index page title for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "Fonctions statistiques", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.On a Series.link.generated-index.title": { + "message": "Fonctions statistiques", + "description": "The generated-index page title for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.PHP.link.generated-index.title": { + "message": "PHP", + "description": "The generated-index page title for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Conteneur de données", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pasteboard.link.generated-index.title": { + "message": "Conteneur de données", + "description": "The generated-index page title for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Images", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Pictures.link.generated-index.title": { + "message": "Images", + "description": "The generated-index page title for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Impressions", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Printing.link.generated-index.title": { + "message": "Impressions", + "description": "The generated-index page title for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Process (Communications)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (Communications).link.generated-index.title": { + "message": "Process (Communications)", + "description": "The generated-index page title for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Process (Interface utilisateur)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface).link.generated-index.title": { + "message": "Process (Interface utilisateur)", + "description": "The generated-index page title for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Processes.link.generated-index.title": { + "message": "Process", + "description": "The generated-index page title for category Processes in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Recherches et tris", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Queries.link.generated-index.title": { + "message": "Recherches et tris", + "description": "The generated-index page title for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Etats rapides", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Quick Report.link.generated-index.title": { + "message": "Etats rapides", + "description": "The generated-index page title for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Enregistrements (verrouillage)", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Record Locking.link.generated-index.title": { + "message": "Enregistrements (verrouillage)", + "description": "The generated-index page title for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Enregistrements", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Records.link.generated-index.title": { + "message": "Enregistrements", + "description": "The generated-index page title for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Liens", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Relations.link.generated-index.title": { + "message": "Liens", + "description": "The generated-index page title for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.Resources.link.generated-index.title": { + "message": "Resources", + "description": "The generated-index page title for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SQL.link.generated-index.title": { + "message": "SQL", + "description": "The generated-index page title for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.SVG.link.generated-index.title": { + "message": "SVG", + "description": "The generated-index page title for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocole sécurisé", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol.link.generated-index.title": { + "message": "Protocole sécurisé", + "description": "The generated-index page title for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Sélections", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Selection.link.generated-index.title": { + "message": "Sélections", + "description": "The generated-index page title for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Ensembles", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Sets.link.generated-index.title": { + "message": "Ensembles", + "description": "The generated-index page title for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Correcteur orthographique", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.Spell Checker.link.generated-index.title": { + "message": "Correcteur orthographique", + "description": "The generated-index page title for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.String.link.generated-index.title": { + "message": "String", + "description": "The generated-index page title for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Définition structure", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Structure Access.link.generated-index.title": { + "message": "Définition structure", + "description": "The generated-index page title for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Texte multistyle", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Styled Text.link.generated-index.title": { + "message": "Texte multistyle", + "description": "The generated-index page title for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Sous-enregistrements", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.Subrecords.link.generated-index.title": { + "message": "Sous-enregistrements", + "description": "The generated-index page title for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "Documents système", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Documents.link.generated-index.title": { + "message": "Documents système", + "description": "The generated-index page title for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "Environnement système", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.System Environment.link.generated-index.title": { + "message": "Environnement système", + "description": "The generated-index page title for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Table", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Table.link.generated-index.title": { + "message": "Table", + "description": "The generated-index page title for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Outils", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Tools.link.generated-index.title": { + "message": "Outils", + "description": "The generated-index page title for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transactions", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Transactions.link.generated-index.title": { + "message": "Transactions", + "description": "The generated-index page title for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.Triggers.link.generated-index.title": { + "message": "Triggers", + "description": "The generated-index page title for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interface utilisateur", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.User Interface.link.generated-index.title": { + "message": "Interface utilisateur", + "description": "The generated-index page title for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Utilisateurs et groupes", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Users and Groups.link.generated-index.title": { + "message": "Utilisateurs et groupes", + "description": "The generated-index page title for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variables", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Variables.link.generated-index.title": { + "message": "Variables", + "description": "The generated-index page title for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Zones Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Area.link.generated-index.title": { + "message": "Zones Web", + "description": "The generated-index page title for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Serveur Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Server.link.generated-index.title": { + "message": "Serveur Web", + "description": "The generated-index page title for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client).link.generated-index.title": { + "message": "Web Services (Client)", + "description": "The generated-index page title for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Serveur)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server).link.generated-index.title": { + "message": "Web Services (Serveur)", + "description": "The generated-index page title for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.Windows.link.generated-index.title": { + "message": "Windows", + "description": "The generated-index page title for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML DOM.link.generated-index.title": { + "message": "XML DOM", + "description": "The generated-index page title for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML SAX.link.generated-index.title": { + "message": "XML SAX", + "description": "The generated-index page title for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.XML.link.generated-index.title": { + "message": "XML", + "description": "The generated-index page title for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Classes", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Classes", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Liste des classes 4D", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administration", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Comment contrôler vos applications 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Fenêtre d'administration de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administration Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administration Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Outils web 4D pour l'administration et la surveillance de vos applications.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Sauvegarde et restitution", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensions", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Applications Web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Applications Web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guides pour le développement d'applications Web avec 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Développement Web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Utiliser Qodly Studio pour créer des interfaces web puissantes.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "API REST", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "API REST", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exposer votre datastore en REST et utiliser l'API REST.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Exposer votre datastore en REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Exposer votre datastore en REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configurez votre datastore pour l'accès REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (général)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (général)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST pour les informations globales", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST pour dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Applications Desktop", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Applications Desktop", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guides pour le développement d'applications Desktop avec 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Droits d'accès", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Droits d'accès", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Contrôle d'accès et privilèges des utilisateurs pour les applications Desktop.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Éditeur de formulaires", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propriétés des formulaires", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objets de formulaire", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propriétés des objets de formulaire", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Applications mobiles", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (archive)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interface de ligne de commande", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocole TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Managing 4D Licenses": { + "message": "Gestion des licences 4D", + "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Collecte des données", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Client/Serveur", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propriétés utilisateur", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Générateur d'application", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json new file mode 100644 index 00000000000000..c6b596dba9ea55 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R9.json @@ -0,0 +1,742 @@ +{ + "version.label": { + "message": "20 R9", + "description": "The label for version 20-R9" + }, + "sidebar.docs.category.Getting Started": { + "message": "Prise en main", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Prise en main", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Développement", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Développement", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestion des projets", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Propriétés", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Environnement de développement", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Débogage", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Process", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Préférences", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Langage 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Langage 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Concepts", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Types de données", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Commandes", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Commandes", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Environnement 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Tableaux", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Sauvegarde", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Gestion du cache", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Collections", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Communications", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compilateur", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Saisie", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Sécurité des données", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Méthodes base", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Dates et heures", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Accès objets développement", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Glisser-Déposer", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Gestion de la saisie", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "Fichier et dossier", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Evénements formulaire", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formulaires", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Formules", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Graphes", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Listes hiérarchiques", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import-Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interruptions", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Langage", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licences", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Fonctions mathématiques", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menus", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Sélections temporaires", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objets (Formulaires)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objets (Langage)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "Fonctions statistiques", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Conteneur de données", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Images", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Impressions", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Process (Communications)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Process (Interface utilisateur)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Recherches et tris", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Etats rapides", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Enregistrements (verrouillage)", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Enregistrements", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Liens", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocole sécurisé", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Sélections", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Ensembles", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Correcteur orthographique", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Définition structure", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Texte multistyle", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Sous-enregistrements", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "Documents système", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "Environnement système", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Table", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Outils", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transactions", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interface utilisateur", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Utilisateurs et groupes", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variables", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Zones Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Serveur Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Serveur)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Classes", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Classes", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Liste des classes 4D", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administration", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Comment contrôler vos applications 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Fenêtre d'administration de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administration Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administration Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Outils web 4D pour l'administration et la surveillance de vos applications.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Sauvegarde et restitution", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensions", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D AIKit": { + "message": "4D AIKit", + "description": "The label for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.4D AIKit.link.generated-index.title": { + "message": "4D AIKit", + "description": "The generated-index page title for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Applications Web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Applications Web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guides pour le développement d'applications Web avec 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Développement Web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Utiliser Qodly Studio pour créer des interfaces web puissantes.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "API REST", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "API REST", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exposer votre datastore en REST et utiliser l'API REST.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Exposer votre datastore en REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Exposer votre datastore en REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configurez votre datastore pour l'accès REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (général)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (général)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST pour les informations globales", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST pour dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Applications Desktop", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Applications Desktop", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guides pour le développement d'applications Desktop avec 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Droits d'accès", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Droits d'accès", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Contrôle d'accès et privilèges des utilisateurs pour les applications Desktop.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Éditeur de formulaires", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propriétés des formulaires", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objets de formulaire", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propriétés des objets de formulaire", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Applications mobiles", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (archive)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interface de ligne de commande", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocole TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Licenses": { + "message": "Licences", + "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Collecte des données", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Client/Serveur", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propriétés utilisateur", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Générateur d'application", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + }, + "sidebar.docs.doc.Labels": { + "message": "Etiquettes", + "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index 5dcf2027434be2..0f3efe19eef728 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3218,14 +3218,14 @@ La fonction `.sort()` trie les éléments Si `.sort()` est appelé sans paramètres, seules les valeurs scalaires (nombres, textes, dates, booléens) sont triées. Les éléments sont triés par défaut par ordre croissant, en fonction de leur type. You can also pass one of the following constants in the *ascOrDesc* parameter: -``` -|Constant| Type|Value|Comment| -|---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| - -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). -``` + ``` + |Constant| Type|Value|Comment| + |---|---|---|---| + |ck ascending|Integer|0|Elements are ordered in ascending order (default)| + |ck descending|Integer|1|Elements are ordered in descending order| + + This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + ``` Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont renvoyés dans l'ordre suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 8aaf2eeb80c868..843671c80fe004 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -311,7 +311,7 @@ La valeur retournée est la clé publique. **.pem** : Text -PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. +Définition PEM d'une clé de chiffrement à charger. Si la clé est une clé privée, la clé publique RSA ou ECDSA en sera déduite. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 7e4e78654f65f7..c6151a92503144 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -989,18 +989,18 @@ L'utilisation de placeholders dans les recherches **est recommandée** pour les 1. Cela empêche l'injection de code malveillant : si vous utilisez dans la chaîne de recherche des variables dont le contenu provient directement de la saisie de l'utilisateur, celui-ci pourrait modifier les conditions de recherche en saisissant des arguments de recherche supplémentaires. Par exemple, imaginez une chaîne de recherche du type : -```4d - $vquery:="status = 'public' & name = "+myname //l'utilisateur saisit son nom - $result:=$col.query($vquery) -``` + ```4d + $vquery:="status = 'public' & name = "+myname //l'utilisateur saisit son nom + $result:=$col.query($vquery) + ``` Cette recherche semble sécurisée puisque les données non publiques sont filtrées. Cependant, si l'utilisateur saisit dans la zone *myname* une chaîne du type *"smith OR status='private'*, la chaîne de recherche sera modifiée à l'étape de l'interprétation et pourra retourner des données privées. Lorsque vous utilisez des placeholders, le contournement des options de sécurité n'est pas possible : -```4d - $result:=$col.query("status='public' & name=:1";myname) -``` + ```4d + $result:=$col.query("status='public' & name=:1";myname) + ``` Dans ce cas, si l'utilisateur saisit *smith OR status='private'* dans la zone *myname*, cela ne sera pas interprété dans la chaîne de recherche, mais uniquement passé en tant que valeur. La recherche d'une personne nommée "smith OR status='private"' échouera simplement. @@ -1008,10 +1008,10 @@ Dans ce cas, si l'utilisateur saisit *smith OR status='private'* dans la zone *m 3. Cela permet l'utilisation de variables ou d'expressions dans les arguments de recherche. Exemples : -```4d -$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") -$result2:=$col.query("company.name = :1";"John's Pizzas") -``` + ```4d + $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") + $result2:=$col.query("company.name = :1";"John's Pizzas") + ``` ### Recherche de valeurs null diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md index 4068cecd72d6f6..06f6647839c522 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/HTTPRequestClass.md @@ -395,7 +395,7 @@ La propriété `.url` contient l'URL d ## .wait() -**.wait**( { *timeout* : Real } ) : 4D.HTTPRequest +**.wait**( { *time* : Real } ) : 4D.HTTPRequest diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 86e3551428297f..30d84b9a0721ad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Description -La fonction `.expunge()` supprime tous les messages marqués "deleted" du serveur de messagerie IMAP. Le marqueur "deleted" peut être fixé avec les fonctions [`.delete()`](#delete) ou [`.addFlags()`](#addflags). +La fonction `.expunge()` supprime tous les messages avec le flag "deleted" du serveur de messagerie IMAP. Le flag "deleted" peut être défini avec les méthodes [`.delete()`](#delete) ou [`.addFlags()`](#addflags). **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 647c7e5326f748..aa33f878a1195e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ Les caractères spéciaux tels que les guillemets simples ou les retours à la l Exemple : `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -````4d +```4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -```` +``` :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index 6d33231b64fbbc..f04cf6f1e16ad7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -73,7 +73,7 @@ La propriété `.port` contient le numéro de ## .type -**type** : Text +**type** : Texte #### Description 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 1104e812cfeb76..c1c4c8d456648a 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 @@ -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 | 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) | #### Notes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 3ce8a9a6391d0e..2fcaf9ebcab865 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -316,21 +316,21 @@ Ce chemin d'accès au journal est retourné par la commande `Get 4D file`. Pour démarrer ce journal : -```4d -$server:=New object -... -//SMTP -$server.logFile:="MySMTPAuthLog.txt" -$transporter:=SMTP New transporter($server) - -// POP3 -$server.logFile:="MyPOP3AuthLog.txt" -$transporter:=POP3 New transporter($server) - -//IMAP -$server.logFile:="MyIMAPAuthLog.txt" -$transporter:=IMAP New transporter($server) -``` + ```4d + $server:=New object + ... + //SMTP + $server.logFile:="MySMTPAuthLog.txt" + $transporter:=SMTP New transporter($server) + + // POP3 + $server.logFile:="MyPOP3AuthLog.txt" + $transporter:=POP3 New transporter($server) + + //IMAP + $server.logFile:="MyIMAPAuthLog.txt" + $transporter:=IMAP New transporter($server) + ``` #### Contenu diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 86d815735c548c..c228acbcc97346 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ A l'exécution, 4D hiérarchise automatiquement les feuilles de style dans l'ord - un fichier pour les deux plates-formes : -``` -"css": "" -``` + ``` + "css": "" + ``` - ou une liste de fichiers pour les deux plates-formes : -``` -"css": [ - "", - "" - ], -``` + ``` + "css": [ + "", + "" + ], + ``` - ou une liste de fichiers par plate-forme : -``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], -``` + ``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], + ``` > Les chemins de fichiers peuvent être relatifs ou absolus. > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md index 177ddd5f3c53a3..ea0e62531b19ed 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md @@ -57,10 +57,10 @@ Les images haute résolution avec la convention @nx peuvent être utilisées dan Si 4D donne automatiquement la priorité à la résolution la plus élevée, il existe cependant des différences de comportement en fonction de la résolution de l'écran et de l'image *(\*)* et du format de l'image : -| Opération | Comportement | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Déposer ou Coller | Si l'image a :

        | -| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | Si le format d'affichage de l'image est :
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - L'objet contenant l'image est redimensionné en fonction du (nombre de pixels de l'image \* dpi de l'écran) / (dpi de l'image).
        • **Non redimensionné** - L'objet contenant l'image a le même nombre de pixels que l'image.
        | +| Opération | Comportement | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Déposer ou Coller | If the picture has:
        • **72dpi or 96dpi** - The picture is "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatted and the object containing the picture has the same number of pixels.
        • **Other dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted and the object containing the picture is equal to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **No dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted.
        | +| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | If the picture's display format is:
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - The object containing the picture is resized according to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **Not scaled** - The object containing the picture has the same number of pixels as the picture.
        | *(\*) Généralement, macOS = 72 dpi, Windows = 96 dpi* diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index cae3ebae04c6bc..ed8cf2139c5922 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1004,9 +1004,9 @@ Ces attributs peuvent être utilisés pour contrôler la plage de valeurs d'entr L'attribut behavior propose des variations de la représentation standard des valeurs. Une seule variation est possible : -| Attribut | Valeur(s) disponible(s) | valueType(s) | Description | -| -------- | ------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | Représente une valeur numérique sous forme de case à cocher à trois états.
        2=intermédiaire, 1=cochée, 0=non cochée, -1=invisible, -2=non cochée désactivée, -3=cochée désactivée, -4=intermédiaire désactivée | +| Attribut | Valeur(s) disponible(s) | valueType(s) | Description | +| -------- | ------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | Représente une valeur numérique sous la forme d'une case à cocher à trois états.
        2=semi-coché, 1=coché, 0=décoché, -1=invisible, -2=décoché désactivé, -3=coché désactivé, -4=semi-coché désactivé | ```4d C_OBJECT($ob3) @@ -1105,9 +1105,9 @@ Exemples : OB SET($ob;"requiredListReference";<>List) ``` -``` -![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) -``` + ``` + ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) + ``` #### choiceListName et choiceListReference diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md index 312604665d50bf..b3a2fd136c69c7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md @@ -27,8 +27,8 @@ Le texte sélectionné est plus foncé et plus épais. Vous pouvez définir cette propriété en utilisant la commande [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> This is normal text.
        -> **This is bold text.** +> Ceci est un texte normal.
        +> **Ceci est un texte en gras.** #### Grammaire JSON @@ -52,8 +52,8 @@ Fait pencher le texte sélectionné légèrement vers la droite. Vous pouvez également définir cette propriété via la commande [**OBJECT SET FONT STYLE**](../commands-legacy/object-set-font-style.md). -> This is normal text.
        -> *This is text in italics.* +> Ceci est un texte normal.
        +> *Ceci est un texte en italique.* #### Grammaire JSON diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index ad52acd58a7e5b..a5fceb7c36ae6a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Description -**Compile project** vous permet de compiler le projet hôte courant ou le projet spécifié dans le paramètre *projectFile*. Pour plus d'informations sur la compilation, consultez la [page Compilation](../Project/compiler.md). +**Compile project** vous permet de compiler le projet hôte courant ou le projet spécifié dans le paramètre *projectFile*. Pour plus d'informations sur la compilation, consultez la [page Compilation] (../Project/compiler.md). Par défaut, la commande utilise les options du compilateur définies dans les Paramètres de structure. Vous pouvez les remplacer en passant un paramètre *options*. Les syntaxes suivantes sont prises en charge : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 9fb97a11f774c7..4ee827c73626cd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). +La commande **DIALOG** présente le *formulaire* à l'utilisateur, en lui passant de(s) paramètre(s) *formData* (facultatif). Cette commande permet de concevoir des interfaces utilisateur personnalisées et sophistiquées, basées sur des formulaires. Vous pouvez l'utiliser pour afficher des informations provenant de la base ou d'autres sources, ou proposer des fonctions de saisie des données. Contrairement à [ADD RECORD](../commands-legacy/add-record.md) ou [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** vous donne un contrôle total sur le formulaire, son contenu et les boutons de navigation et de validation. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 60cf2b71f91fc6..f3dd50a1af6982 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Description -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.La commande **FORM EDIT** ouvre le formulaire *form* associé à *aTable* dans l'éditeur de formulaires de 4D, avec optionnellement *object* sélectionné. Notez que vous devez avoir accès à l'environnement de Structure, sinon l'erreur -9804 ("Cannot open form") est générée. +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.La commande **FORM EDIT** ouvre le formulaire *form* associé à *aTable* dans l'éditeur de formulaires de 4D, avec optionnellement *object* sélectionné. Notez que vous devez avoir accès à l'environnement de Structure, sinon l'erreur -9804 ("Cannot open form") est générée. La commande est asynchrone : elle retourne immédiatement à la méthode appelante et n'attend pas que le formulaire soit ouvert. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 01e07a45a6e839..571dc0d82ab13a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** retourne un objet contenant des informations sur l'événement formulaire qui vient de se produire. Habituellement, vous utiliserez **FORM Event** à partir d'une méthode formulaire ou objet. +**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** retourne un objet contenant des informations sur l'événement formulaire qui vient de se produire. Habituellement, vous utiliserez **FORM Event** à partir d'une méthode formulaire ou objet. **Objet retourné** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md index d7b6263916c62d..c6eee7eccce15b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.La commande **FORM LOAD** est utilisée pour charger le formulaire *form* en mémoire dans le process courant avec *formData* (facultatif) afin d'imprimer ses données ou d'analyser son contenu. Il ne peut y avoir qu'un seul formulaire courant par process. +The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.La commande **FORM LOAD** est utilisée pour charger le formulaire *form* en mémoire dans le process courant avec *formData* (facultatif) afin d'imprimer ses données ou d'analyser son contenu. Il ne peut y avoir qu'un seul formulaire courant par process. Dans le paramètre *form*, vous pouvez passer soit : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md index 092f5a77775426..1a1235e558d81c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Description -The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : +La commande **Form** renvoie l'objet associé au formulaire courant (instancié à partir du paramètre *formData* ou de la classe utilisateur attribuée dans l'éditeur de formulaire). 4D associe automatiquement un objet au formulaire courant dans les cas suivants : - le formulaire courant a été chargé par l'une des commandes [`DIALOG`](dialog.md), [`Print form`](print-form.md), ou [`FORM LOAD`](form-load.md), - le formulaire courant est un sous-formulaire, diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 5f63d1446493b8..87c974d2cb08bb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Description -The **License info** command returns an object providing detailed information about the active license. +La commande **License info** renvoie un objet fournissant des informations détaillées sur la licence active. Si la commande est exécutée sur une application 4D qui n'utilise pas de licence localement (par exemple 4D remote), la commande renvoie un objet Null. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index b5f2609953b224..793db83a3d414c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -La commande `New collection` crée une nouvelle collection vide ou pré-remplie et retourne sa référence. Les collections peuvent être manipulées à l'aide des propriétés et des fonctions de la [classe Collection](../API/CollectionClass.md). +La commande `New collection` crée une nouvelle collection vide ou pré-remplie et retourne sa référence. Les collections peuvent être gérées à l'aide des propriétés et des fonctions de la [classe Collection](../API/CollectionClass.md). Si vous ne passez aucun paramètre, `New collection` crée une collection vide et retourne sa référence. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 8e4b4910b6ac60..9e5f7ad5a9d05f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Description -The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.La commande **Print form** imprime simplement *form* avec les valeurs courantes des champs et des variables de la table *aTable*. Elle est généralement utilisée pour imprimer des états très complexes qui nécessitent un contrôle complet du processus d'impression. **Print form** ne gère pas les traitements d'enregistrements, ni les ruptures, sauts de pages, en-têtes ou pieds de pages. Vous devez vous-même prendre en charge ces opérations. **Print form** imprime uniquement des champs et des variables avec une taille fixe, la commande ne gère pas les objets de taille variable. +La commande **Print form** imprime simplement *form* avec les valeurs courantes des champs et des variables de la table *aTable*. Elle est généralement utilisée pour imprimer des états très complexes qui nécessitent un contrôle complet du processus d'impression. **Print form** ne gère pas les traitements d'enregistrements, ni les ruptures, sauts de pages, en-têtes ou pieds de pages. Vous devez vous-même prendre en charge ces opérations. **Print form** imprime uniquement des champs et des variables avec une taille fixe, la commande ne gère pas les objets de taille variable. Dans le paramètre *form*, vous pouvez passer soit : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 31988f39c658e0..8e09a9716b1f37 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Description -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.La commande **Process activity** retourne une vue instantanée des process en cours d'exécution et/ou (4D Server uniquement) de sessions utilisateur à un moment donné. Cette commande retourne tous les process, y compris les process internes qui ne sont pas accessibles par la commande [Process info](process-info.md). +La commande **Process activity** retourne une vue instantanée des process en cours d'exécution et/ou (4D Server uniquement) de sessions utilisateur à un moment donné. Cette commande retourne tous les process, y compris les process internes qui ne sont pas accessibles à la commande [Process info](process-info.md). Par défaut, lorsqu'elle est utilisée sans aucun paramètre, **Process activity** renvoie un objet contenant les propriétés suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md index 2151b672b79934..beaa5cb365a0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-info.md @@ -10,7 +10,7 @@ displayed_sidebar: docs | Paramètres | Type | | Description | | ------------- | ------- | :-------------------------: | --------------------------- | -| processNumber | Integer | → | Numéro du process | +| processNumber | Integer | → | Process number | | Résultat | Object | ← | Informations sur le process | @@ -36,8 +36,8 @@ L'objet retourné contient les propriétés suivantes : | creationDateTime | Text (Date ISO 8601) | Date et heure de création du process | | ID | Integer | ID unique du process | | name | Text | Nom du process | -| number | Integer | Numéro du process | -| preemptive | Boolean | Vrai si l'exécution est préemptive, faux sinon | +| number | Integer | Process number | +| préemptif | Boolean | Vrai si l'exécution est préemptive, faux sinon | | sessionID | Text | UUID de la session | | state | Integer | Statut courant. Valeurs possibles : voir ci-dessous | | systemID | Text | ID du process utilisateur, 4D ou de réserve | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md index d397f988bdf94a..2db1ea4facec81 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -14,7 +14,7 @@ displayed_sidebar: docs | name | Text | → | Nom du process duquel obtenir le numéro | | id | Text | → | ID du process duquel récupérer le numéro | | \* | Opérateur | → | Renvoyer le numéro du process depuis le serveur | -| Résultat | Integer | ← | Numéro du process | +| Résultat | Integer | ← | Process number | @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Description -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterThe `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterLa commande `Process number` renvoie le numéro du process dont le nom *name* ou l'*id* est passé en premier paramètre. Si aucun process n'est trouvé, `Process number` renvoie 0. +La commande `Process number` retourne le numéro du process dont le nom *name* ou l'*id* est passé en premier paramètre. Si aucun process n'est trouvé, `Process number` renvoie 0. Le paramètre optionnel \* permet de récupérer, à partir d'un 4D distant, le numéro d'un process exécuté sur le serveur. Dans ce cas, la valeur retournée est négative. Cette option est particulièrement utile lors de l'utilisation des commandes [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) et [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index 2ee3e31d620a5d..177583a834db94 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Description -The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. +La commande **Session storage** renvoie l'objet de stockage de la session dont l'identifiant unique a été passé dans le paramètre *id*. Dans *id*, indiquez l'UUID de la session pour laquelle vous souhaitez obtenir le stockage. Il est automatiquement attribué par 4D (4D Server ou, pour les sessions autonomes, 4D monoposte) et est stocké dans la propriété [**.id**](../API/SessionClass.md#id) de l'[objet session](../API/SessionClass.md). Si la session n'existe pas, la commande renvoie **Null**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index 34ea3ae747b594..0aa053320fedd4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Description -The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. +La commande **SET ALLOWED METHODS** permet de désigner les méthodes projet qui peuvent être appelées directement depuis l'application. 4D inclut un mécanisme de sécurité filtrant les méthodes projet saisissables depuis les contextes suivants : diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json new file mode 100644 index 00000000000000..04d401abd7c6e8 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R8.json @@ -0,0 +1,1042 @@ +{ + "version.label": { + "message": "20 R8", + "description": "The label for version 20-R8" + }, + "sidebar.docs.category.Getting Started": { + "message": "はじめに", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "はじめに", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "コア開発", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "コア開発", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "プロジェクト管理", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Settings", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "開発環境", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "デバッガー", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "プロセス", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "環境設定", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "4Dランゲージ", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "4Dランゲージ", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "コンセプト", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "データタイプ", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "コマンド", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "コマンド", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "4D環境", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.4D Environment.link.generated-index.title": { + "message": "4D環境", + "description": "The generated-index page title for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "配列", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Arrays.link.generated-index.title": { + "message": "配列", + "description": "The generated-index page title for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "バックアップ", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.Backup.link.generated-index.title": { + "message": "バックアップ", + "description": "The generated-index page title for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.BLOB.link.generated-index.title": { + "message": "BLOB", + "description": "The generated-index page title for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Boolean.link.generated-index.title": { + "message": "Boolean", + "description": "The generated-index page title for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "キャッシュ管理", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Cache Management.link.generated-index.title": { + "message": "キャッシュ管理", + "description": "The generated-index page title for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "コレクション", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Collections.link.generated-index.title": { + "message": "コレクション", + "description": "The generated-index page title for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "通信", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Communications.link.generated-index.title": { + "message": "通信", + "description": "The generated-index page title for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "コンパイラー", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Compiler.link.generated-index.title": { + "message": "コンパイラー", + "description": "The generated-index page title for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "データ入力", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Entry.link.generated-index.title": { + "message": "データ入力", + "description": "The generated-index page title for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "データセキュリティ", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Data Security.link.generated-index.title": { + "message": "データセキュリティ", + "description": "The generated-index page title for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "データベースメソッド", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Database Methods.link.generated-index.title": { + "message": "データベースメソッド", + "description": "The generated-index page title for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "日付と時間", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Date and Time.link.generated-index.title": { + "message": "日付と時間", + "description": "The generated-index page title for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "デザインオブジェクトアクセス", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Design Object Access.link.generated-index.title": { + "message": "デザインオブジェクトアクセス", + "description": "The generated-index page title for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "ドラッグ&ドロップ", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop.link.generated-index.title": { + "message": "ドラッグ&ドロップ", + "description": "The generated-index page title for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "入力制御", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.Entry Control.link.generated-index.title": { + "message": "入力制御", + "description": "The generated-index page title for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "ファイルとフォルダ", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.File and Folder.link.generated-index.title": { + "message": "ファイルとフォルダ", + "description": "The generated-index page title for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "フォームイベント", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Form Events.link.generated-index.title": { + "message": "フォームイベント", + "description": "The generated-index page title for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Forms", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Forms.link.generated-index.title": { + "message": "Forms", + "description": "The generated-index page title for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "フォーミュラ", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Formulas.link.generated-index.title": { + "message": "フォーミュラ", + "description": "The generated-index page title for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "グラフ", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.Graphs.link.generated-index.title": { + "message": "グラフ", + "description": "The generated-index page title for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTPクライアント", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.HTTP.link.generated-index.title": { + "message": "HTTPクライアント", + "description": "The generated-index page title for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "階層リスト", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { + "message": "階層リスト", + "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "インポート&エクスポート", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Import and Export.link.generated-index.title": { + "message": "インポート&エクスポート", + "description": "The generated-index page title for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "割り込み", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.Interruptions.link.generated-index.title": { + "message": "割り込み", + "description": "The generated-index page title for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.JSON.link.generated-index.title": { + "message": "JSON", + "description": "The generated-index page title for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.LDAP.link.generated-index.title": { + "message": "LDAP", + "description": "The generated-index page title for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "ランゲージ", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Language.link.generated-index.title": { + "message": "ランゲージ", + "description": "The generated-index page title for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "ライセンスリスト", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.Licenses.link.generated-index.title": { + "message": "ライセンスリスト", + "description": "The generated-index page title for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "リストボックス", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.List Box.link.generated-index.title": { + "message": "リストボックス", + "description": "The generated-index page title for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "メール", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Mail.link.generated-index.title": { + "message": "メール", + "description": "The generated-index page title for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "算術関数", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Math.link.generated-index.title": { + "message": "算術関数", + "description": "The generated-index page title for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "メニュー", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Menus.link.generated-index.title": { + "message": "メニュー", + "description": "The generated-index page title for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "メッセージ", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Messages.link.generated-index.title": { + "message": "メッセージ", + "description": "The generated-index page title for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "命名セレクション", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Named Selections.link.generated-index.title": { + "message": "命名セレクション", + "description": "The generated-index page title for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "オブジェクト (フォーム)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms).link.generated-index.title": { + "message": "オブジェクト (フォーム)", + "description": "The generated-index page title for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "オブジェクト (ランゲージ)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language).link.generated-index.title": { + "message": "オブジェクト (ランゲージ)", + "description": "The generated-index page title for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "統計関数", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.On a Series.link.generated-index.title": { + "message": "統計関数", + "description": "The generated-index page title for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.PHP.link.generated-index.title": { + "message": "PHP", + "description": "The generated-index page title for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "ペーストボード", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pasteboard.link.generated-index.title": { + "message": "ペーストボード", + "description": "The generated-index page title for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "ピクチャー", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Pictures.link.generated-index.title": { + "message": "ピクチャー", + "description": "The generated-index page title for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "印刷", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Printing.link.generated-index.title": { + "message": "印刷", + "description": "The generated-index page title for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "プロセス (通信)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (Communications).link.generated-index.title": { + "message": "プロセス (通信)", + "description": "The generated-index page title for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "プロセス (ユーザーインターフェース)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface).link.generated-index.title": { + "message": "プロセス (ユーザーインターフェース)", + "description": "The generated-index page title for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Processes.link.generated-index.title": { + "message": "プロセス", + "description": "The generated-index page title for category Processes in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "クエリ", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Queries.link.generated-index.title": { + "message": "クエリ", + "description": "The generated-index page title for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "クイックレポート", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Quick Report.link.generated-index.title": { + "message": "クイックレポート", + "description": "The generated-index page title for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "レコードロック", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Record Locking.link.generated-index.title": { + "message": "レコードロック", + "description": "The generated-index page title for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "レコード", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Records.link.generated-index.title": { + "message": "レコード", + "description": "The generated-index page title for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "リレーション", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Relations.link.generated-index.title": { + "message": "リレーション", + "description": "The generated-index page title for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.Resources.link.generated-index.title": { + "message": "Resources", + "description": "The generated-index page title for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SQL.link.generated-index.title": { + "message": "SQL", + "description": "The generated-index page title for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.SVG.link.generated-index.title": { + "message": "SVG", + "description": "The generated-index page title for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "暗号化プロトコル", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol.link.generated-index.title": { + "message": "暗号化プロトコル", + "description": "The generated-index page title for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "セレクション", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Selection.link.generated-index.title": { + "message": "セレクション", + "description": "The generated-index page title for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "セット", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Sets.link.generated-index.title": { + "message": "セット", + "description": "The generated-index page title for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "スペルチェッカー", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.Spell Checker.link.generated-index.title": { + "message": "スペルチェッカー", + "description": "The generated-index page title for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "文字列", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.String.link.generated-index.title": { + "message": "文字列", + "description": "The generated-index page title for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "ストラクチャーアクセス", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Structure Access.link.generated-index.title": { + "message": "ストラクチャーアクセス", + "description": "The generated-index page title for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "スタイル付きテキスト", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Styled Text.link.generated-index.title": { + "message": "スタイル付きテキスト", + "description": "The generated-index page title for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "サブレコード", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.Subrecords.link.generated-index.title": { + "message": "サブレコード", + "description": "The generated-index page title for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "システムドキュメント", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Documents.link.generated-index.title": { + "message": "システムドキュメント", + "description": "The generated-index page title for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "システム環境", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.System Environment.link.generated-index.title": { + "message": "システム環境", + "description": "The generated-index page title for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Table", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Table.link.generated-index.title": { + "message": "Table", + "description": "The generated-index page title for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "ツール", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Tools.link.generated-index.title": { + "message": "ツール", + "description": "The generated-index page title for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "トランザクション", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Transactions.link.generated-index.title": { + "message": "トランザクション", + "description": "The generated-index page title for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.Triggers.link.generated-index.title": { + "message": "Triggers", + "description": "The generated-index page title for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "ユーザーインターフェース", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.User Interface.link.generated-index.title": { + "message": "ユーザーインターフェース", + "description": "The generated-index page title for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "ユーザー&グループ", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Users and Groups.link.generated-index.title": { + "message": "ユーザー&グループ", + "description": "The generated-index page title for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "変数", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Variables.link.generated-index.title": { + "message": "変数", + "description": "The generated-index page title for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Webエリア", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Area.link.generated-index.title": { + "message": "Webエリア", + "description": "The generated-index page title for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Web サーバー", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Server.link.generated-index.title": { + "message": "Web サーバー", + "description": "The generated-index page title for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Webサービス (クライアント)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client).link.generated-index.title": { + "message": "Webサービス (クライアント)", + "description": "The generated-index page title for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Webサービス (サーバー)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server).link.generated-index.title": { + "message": "Webサービス (サーバー)", + "description": "The generated-index page title for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.Windows.link.generated-index.title": { + "message": "Windows", + "description": "The generated-index page title for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML DOM.link.generated-index.title": { + "message": "XML DOM", + "description": "The generated-index page title for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML SAX.link.generated-index.title": { + "message": "XML SAX", + "description": "The generated-index page title for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.XML.link.generated-index.title": { + "message": "XML", + "description": "The generated-index page title for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "クラス", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "クラス関数", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "ビルトイン 4Dクラスの一覧", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "管理", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "管理", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "4Dアプリケーションの管理", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "4D Server 管理ウィンドウ", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Web 管理", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Web 管理", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "アプリケーション管理・監視用の 4D Web ツール", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "メンテナンス&セキュリティセンター", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "バックアップと復元", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "拡張機能", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Web アプリ", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Web アプリ", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "4D での Webアプリケーション開発ガイド", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Web 開発", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Qodly Studio を使用して強力な Webインターフェースを構築する。", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "データストアを REST に公開し、REST API を使用する。", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "データストアを REST に公開する", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "データストアを REST に公開する", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "RESTアクセスのためにデータストアを設定する", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (一般)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (一般)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "グローバル情報用の REST API", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "データクラス用の REST API", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "デスクトップアプリ", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "デスクトップアプリ", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "4D でのデスクトップアプリケーション開発ガイド", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "アクセス権限", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "アクセス権限", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "デスクトップアプリケーションのアクセス管理とユーザー権限", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "フォームエディター", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "フォームプロパティ", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "フォームオブジェクト", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "フォームオブジェクトプロパティ", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "モバイルアプリ", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (アーカイブ)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "コマンドライン・インターフェース", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "TLSプロトコル", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Managing 4D Licenses": { + "message": "4D ライセンスの管理", + "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "データ収集", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "クライアント/サーバー", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "ユーザー設定", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "アプリケーションビルド", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + } +} diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json new file mode 100644 index 00000000000000..47a9daab258bd5 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R9.json @@ -0,0 +1,742 @@ +{ + "version.label": { + "message": "20 R9", + "description": "The label for version 20-R9" + }, + "sidebar.docs.category.Getting Started": { + "message": "はじめに", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "はじめに", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "コア開発", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "コア開発", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "プロジェクト管理", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Settings", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "開発環境", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "デバッガー", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "プロセス", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "環境設定", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "4Dランゲージ", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "4Dランゲージ", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "コンセプト", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "データタイプ", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "コマンド", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "コマンド", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "4D環境", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "配列", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "バックアップ", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Boolean", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "キャッシュ管理", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "コレクション", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "通信", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "コンパイラー", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "データ入力", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "データセキュリティ", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "データベースメソッド", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "日付と時間", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "デザインオブジェクトアクセス", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "ドラッグ&ドロップ", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "入力制御", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "ファイルとフォルダ", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "フォームイベント", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Forms", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "フォーミュラ", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "グラフ", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTPクライアント", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "階層リスト", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "インポート&エクスポート", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "割り込み", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "ランゲージ", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "ライセンスリスト", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "リストボックス", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "メール", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "算術関数", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "メニュー", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "メッセージ", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "命名セレクション", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "オブジェクト (フォーム)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "オブジェクト (ランゲージ)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "統計関数", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "ペーストボード", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "ピクチャー", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "印刷", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "プロセス (通信)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "プロセス (ユーザーインターフェース)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "クエリ", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "クイックレポート", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "レコードロック", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "レコード", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "リレーション", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "暗号化プロトコル", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "セレクション", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "セット", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "スペルチェッカー", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "文字列", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "ストラクチャーアクセス", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "スタイル付きテキスト", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "サブレコード", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "システムドキュメント", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "システム環境", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Table", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "ツール", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "トランザクション", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "ユーザーインターフェース", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "ユーザー&グループ", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "変数", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Webエリア", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Web サーバー", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Webサービス (クライアント)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Webサービス (サーバー)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "クラス", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "クラス関数", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "ビルトイン 4Dクラスの一覧", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "管理", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "管理", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "4Dアプリケーションの管理", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "4D Server 管理ウィンドウ", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Web 管理", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Web 管理", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "アプリケーション管理・監視用の 4D Web ツール", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "メンテナンス&セキュリティセンター", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "バックアップと復元", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "拡張機能", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D AIKit": { + "message": "4D AIKit", + "description": "The label for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.4D AIKit.link.generated-index.title": { + "message": "4D AIKit", + "description": "The generated-index page title for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Web アプリ", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Web アプリ", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "4D での Webアプリケーション開発ガイド", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Web 開発", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Qodly Studio を使用して強力な Webインターフェースを構築する。", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "データストアを REST に公開し、REST API を使用する。", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "データストアを REST に公開する", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "データストアを REST に公開する", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "RESTアクセスのためにデータストアを設定する", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (一般)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (一般)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "グローバル情報用の REST API", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "データクラス用の REST API", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "デスクトップアプリ", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "デスクトップアプリ", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "4D でのデスクトップアプリケーション開発ガイド", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "アクセス権限", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "アクセス権限", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "デスクトップアプリケーションのアクセス管理とユーザー権限", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "フォームエディター", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "フォームプロパティ", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "フォームオブジェクト", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "フォームオブジェクトプロパティ", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "モバイルアプリ", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (アーカイブ)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "コマンドライン・インターフェース", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "TLSプロトコル", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Licenses": { + "message": "ライセンスリスト", + "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "データ収集", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "クライアント/サーバー", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "ユーザー設定", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "アプリケーションビルド", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + }, + "sidebar.docs.doc.Labels": { + "message": "ラベル", + "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" + } +} diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index e4e4c9dc5dc0fe..b073eab4be9478 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3222,14 +3222,14 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 You can also pass one of the following constants in the *ascOrDesc* parameter: -``` -|Constant| Type|Value|Comment| -|---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| - -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). -``` + ``` + |Constant| Type|Value|Comment| + |---|---|---|---| + |ck ascending|Integer|0|Elements are ordered in ascending order (default)| + |ck descending|Integer|1|Elements are ordered in descending order| + + This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + ``` コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index b2c7222ef927b4..5c59fb9d193903 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -312,7 +312,7 @@ ECDSA キーのみ: キーの楕円曲線 **.pem** : Text -PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. +ロードする PEM 形式の暗号化キー。 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 8c7751024c35e9..a8f389fc3a0b6a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -995,18 +995,18 @@ attributePath|formula 比較演算子 値 1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。 たとえば、以下のようなクエリ文字列を考えます: -```4d - $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します - $result:=$col.query($vquery) -``` + ```4d + $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します + $result:=$col.query($vquery) + ``` 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。 しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: -```4d - $result:=$col.query("status='public' & name=:1";myname) -``` + ```4d + $result:=$col.query("status='public' & name=:1";myname) + ``` この場合、ユーザーが *myname* エリアに *smith OR status='private'* と入力した場合でも、それはクエリ文字列 とはみなされず、値として渡されるだけです。 "smith OR status='private' " という名前の人物を検索したところで、結果は失敗に終わるだけです。 @@ -1014,10 +1014,10 @@ attributePath|formula 比較演算子 値 3. クエリに変数や式を使用することができます。 例: -```4d -$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") -$result2:=$col.query("company.name = :1";"John's Pizzas") -``` + ```4d + $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") + $result2:=$col.query("company.name = :1";"John's Pizzas") + ``` ### null値を検索する diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index c44d08c32ee4ad..ea05954febe964 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -58,7 +58,7 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性が**リレートエンティティ**型の場合: - `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" + `.attributeName` はリレートエンティティを返します。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が attributeName プロパティに返されます (リレーション名についての value および otherValue は空になります)。 - *attributeName* で指定した属性が**リレートエンティティズ型**の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 @@ -358,7 +358,7 @@ vCompareResult1 (すべての差異が返されています): #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。 ただしエンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md index 55e058d85bd076..d4229c8053e25e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntitySelectionClass.md @@ -130,7 +130,7 @@ $result:=$sel[0].lock() //動作しません - *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクション を返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 -エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクション です。 +エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクションです。 属性がエンティティセレクション内に存在しない場合、エラーが返されます。 @@ -677,7 +677,7 @@ $sel2:=$sel.clean() `.distinct()` 関数は、*attributePath* に指定した、エンティティセレクション内の重複しない (異なる) 値のみを格納したコレクションを返します。 -返されたコレクションは自動的に並べ替えられています。 **Null** 値 は返されません。 +返されたコレクションは自動的に並べ替えられています。 **Null** 値は返されません。 *attributePath* 引数として、固有の値を取得したいエンティティ属性を渡します。 スカラー値 (テキスト、数値、ブール、あるいは日付) のみが可能です。 *attributePath* のパスが異なる型の値を格納しているオブジェクトプロパティ であった場合、まず最初に型ごとにグループ分けされ、そのあとで並べ替えされます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 3f0ddf41a24a61..d2084f00b09799 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -652,7 +652,7 @@ End if #### 説明 -`.expunge()` 関数は、"deleted" フラグがつけられたメッセージをすべて IMAP メールサーバーから削除します。"deleted" フラグは、[`.delete()`](#delete) または [`.addFlags()`](#addflags) 関数によって設定可能です。 +`.expunge()` 関数は IMAPメールサーバーから "deleted "フラグのついたメッセー ジをすべて削除します。 "deleted" フラグは[`.delete()`](#delete) または [`.addFlags()`](#addflags) 関数によって設定可能です。 **返されるオブジェクト** diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 15987181406bdd..04d4a74933c492 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ $test:=Value type(JSON Parse($r.urlQuery.myparams))=Is collection) //true 例: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -````4d +```4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -```` +``` :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md index 3c4e67a05b69a6..db3cb9922d3000 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/TCPConnectionClass.md @@ -346,7 +346,7 @@ The `wait()` function TCP 接続が閉 :::note -`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 +`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index 82f839a96dd6d6..27599d57aca16f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ title: 数値(実数、整数) ビットワイズ演算子を使用する式は倍長整数値を返します。 Bit Test 演算子の場合、式は例外的にブール値を返します。 次の表にビットワイズ演算子とそのシンタックスを示します: 次の表にビットワイズ演算子とそのシンタックスを示します: 次の表にビットワイズ演算子とそのシンタックスを示します: -| 演算 | 演算子 | シンタックス | 戻り値 | -| ----------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------- | -| Bitwise AND | & | Long & Long | Long | -| Bitwise OR (inclusive) | | | Long | Long | Long | -| Bitwise OR (exclusive) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (注記1 参照) | -| Right Bit Shift | > > | Long >> Long | Long (注記1 参照) | -| Bit Set | ?+ | Long ?+ Long | Long (注記2 参照) | -| Bit Clear | ?- | Long ?- Long | Long (注記2 参照) | -| Bit Test | ?? | Long ?? Long | Boolean (注記2 参照) | +| 演算 | 演算子 | シンタックス | 戻り値 | +| ----------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------- | +| Bitwise AND | & | Long & Long | Long | +| Bitwise OR (inclusive) | | | Long | Long | Long | +| Bitwise OR (exclusive) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (注記1 参照) | +| Right Bit Shift | > > | Long >> Long | Long (注記1 参照) | +| Bit Set | ?+ | Long ?+ Long | Long (注記2 参照) | +| Bit Clear | ?- | Long ?- Long | Long (注記2 参照) | +| Bit Test | ?? | Long ?? Long | Boolean (注記2 参照) | #### 注記 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 19d7e9018a0489..6853e9cae60522 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -315,21 +315,21 @@ SET DATABASE PARAMETER(SMTP Log;1) // SMTPログを開始 このログを開始するには: -```4d -$server:=New object -... -//SMTP -$server.logFile:="MySMTPAuthLog.txt" -$transporter:=SMTP New transporter($server) - -// POP3 -$server.logFile:="MyPOP3AuthLog.txt" -$transporter:=POP3 New transporter($server) - -//IMAP -$server.logFile:="MyIMAPAuthLog.txt" -$transporter:=IMAP New transporter($server) -``` + ```4d + $server:=New object + ... + //SMTP + $server.logFile:="MySMTPAuthLog.txt" + $transporter:=SMTP New transporter($server) + + // POP3 + $server.logFile:="MyPOP3AuthLog.txt" + $transporter:=POP3 New transporter($server) + + //IMAP + $server.logFile:="MyIMAPAuthLog.txt" + $transporter:=IMAP New transporter($server) + ``` #### 内容 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md index d122d6ecb203ef..6c0289021d73c4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Desktop/labels.md @@ -26,7 +26,7 @@ title: ラベル ラベルエディターは、次のように開きます: - デザインモードでは、**ツール**メニュー、あるいは4Dツールバーにあるツールボタンのメニューから\*\*ラベル...\*\*を選択します。 - または + OR - アプリケーションモードでは、 [`PRINT LABEL`](../commands-legacy/print-label.md) コマンドを使用します。 ![](../assets/en/Desktop/label-wizard.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index 5ba9b4c8d196d3..5df183550bf2ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -323,27 +323,27 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - 両プラットフォーム用のファイル: -``` -"css": "" -``` + ``` + "css": "" + ``` - または、両プラットフォーム用に複数のファイル: -``` -"css": [ - "", - "" - ], -``` + ``` + "css": [ + "", + "" + ], + ``` - または、プラットフォームごとのファイルリスト: -``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], -``` + ``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], + ``` > ファイルパスは相対パスと絶対パスが使えます。 > diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index 3f8b9cbcbd78c7..a4c106341760f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Windows の場合、サークルは表示されません。 [タイプ](properties_Object.md#タイプ) - [オブジェクト名](properties_Object.md#オブジェクト名) - [変数あるいは式](properties_Object.md#変数あるいは式) - [タイトル](properties_Object.md#タイトル) - [CSSクラス](properties_Object.md#cssclass) - [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル) - [ピクチャーパス名](properties_TextAndPicture.md#ピクチャーパス名)(1) - [状態の数](properties_TextAndPicture.md#状態の数)(1) - [タイトル/ピクチャー位置](properties_TextAndPicture.md#タイトルピクチャー位置)(1) - [ポップアップメニューあり](properties_TextAndPicture.md#ポップアップメニューあり)(2) - [タイトルと画像を隣接させる](properties_TextAndPicture.md#タイトルと画像を隣接させる)(1) - [左](properties_CoordinatesAndSizing.md#左) - [上](properties_CoordinatesAndSizing.md#上) - [右](properties_CoordinatesAndSizing.md#右) - [下](properties_CoordinatesAndSizing.md#下) - [幅](properties_CoordinatesAndSizing.md#幅) - [高さ](properties_CoordinatesAndSizing.md#高さ) - [横方向サイズ変更](properties_ResizingOptions.md#横方向サイズ変更) - [縦方向サイズ変更](properties_ResizingOptions.md#縦方向サイズ変更) - [フォーカス可](properties_Entry.md#フォーカス可) - [ショートカット](properties_Entry.md#ショートカット) - [表示状態](properties_Display.md#表示状態) - [レンダリングしない](properties_Display.md#レンダリングしない) - [境界線スタイル](properties_BackgroundAndBorder.md#境界線スタイル) - [フォント](properties_Text.md#フォント) - [フォントサイズ](properties_Text.md#フォントサイズ) - [太字](properties_Text.md#太字) - [イタリック](properties_Text.md#イタリック) - [下線](properties_Text.md#下線) - [フォントカラー](properties_Text.md#フォントカラー) - [横揃え](properties_Text.md#横揃え) - [ヘルプTips](properties_Help.md#ヘルプtips) - [標準アクション](properties_Action.md#標準アクション) - [ドロップ有効](properties_Action.md#ドロップ有効) -> (1) [ヘルプ](#ヘルプ) スタイルではサポートされていません。
        -> (2) [ヘルプ](#ヘルプ)、[フラット](#フラット) および [通常](#通常) スタイルではサポートされていません。 +> (1) [Help](#help) スタイルではサポートされていません。
        +> (2) [Help](#help)、[Flat](#flat)、[Regular](#regular) スタイルではサポートされていません。 [ボタンスタイル](#ボタンスタイル) に応じて、次の追加プロパティが使用できます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 432da2f0395cdc..210a5da22f78d5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -577,7 +577,7 @@ JSON フォームにおいて、リストボックスに次のハイライトセ デベロッパーは、例えば[`LISTBOX SORT COLUMNS`](../commands-legacy/listbox-sort-columns.md) コマンドを使用したり、あるいは[`On Header Click`](../Events/onHeaderClick) および [`On After Sort`](../Events/onAfterSort) フォームイベントと関連する4D コマンドを組み合わせることにより、カスタムのソートを設定することができます。 -カスタムソートは以下のことが可能です: +カスタムソートを以下のことが可能です: - [`LISTBOX SORT COLUMNS`](../commands-legacy/listbox-sort-columns.md) コマンドを使うことで、複数のカラムに対してマルチレベルソートを実行する。 - [`collection.orderByMethod()`](../API/CollectionClass.md#orderbymethod) や [`entitySelection.orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) などの関数を使って、複雑な条件のソートをおこなう @@ -1049,9 +1049,9 @@ ARRAY OBJECT(obColumn;0) // カラム配列 behavior 属性は、値の通常の表示とは異なる表示方法を提供します。 4D v15では、一つだけ他の表示方法が用意されています: -| 属性 | 使用可能な値 | valueType | 説明 | -| -------- | ----------- | --------- | ------------------------------------------------------------------------------------------------------------ | -| behavior | threeStates | integer | スリーステートチェックボックスを数値として表現します。
        2=セミチェック、1=チェック、0=チェックされていない、-1=非表示、-2=チェックなしが無効化、-3=チェックが無効化、-4=セミチェックが無効化 | +| 属性 | 使用可能な値 | valueType | 説明 | +| -------- | ----------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | 数値をスリーステートチェックボックスとして表します。
        2=セミチェックボックス、1=チェックされている、0=チェックされていない、-1=非表示チェックボックス、-2=チェックされていない、入力不可、-3=チェックされている、入力不可、-4=セミチェックボックス、入力不可 | ```4d C_OBJECT($ob3) @@ -1150,9 +1150,9 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 OB SET($ob;"requiredListReference";<>List) ``` -``` -![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) -``` + ``` + ![](../assets/en/FormObjects/listbox_column_objectArray_cities.png) + ``` #### choiceListName と choiceListReference diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index 7603408bc9e02d..b00021a4a95258 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,8 +27,7 @@ displayed_sidebar: docs ## 説明 -**Compile project** は、 -カレントのホストプロジェクト、または*projectFile* 引数で指定したプロジェクトをコンパイルします。コンパイルについてのより詳細な情報については、[コンパイルページ](../Project/compiler.md) を参照してください。 +**Compile project** は、 カレントのホストプロジェクト、または*projectFile* 引数で指定したプロジェクトをコンパイルします。 コンパイルについてのより詳細な情報については、 [コンパイルページ](../Project/compiler.md) を参照してください。 デフォルトでは、このコマンドはストラクチャー設定で定義されているコンパイラオプションを使用します。 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: 任意の*options* 引数を渡すことで、それらを上書きすることができます。 以下のシンタックスがサポートされています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md index 5b7eee36f2bb23..3e2b3a189092d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). +**DIALOG** コマンドはユーザーに対して*form* 引数で指定したフォームを、*formData* 引数(オプション)とともに表示します。 このコマンドは、フォームを基にした、カスタマイズされた高度なユーザーインターフェースで動作するように設計されています。 これを使用してデータベースや他の場所からの情報を表示したり、あるいはデータ入力機能を提供することができます。 [ADD RECORD](../commands-legacy/add-record.md) や [MODIFY RECORD](../commands-legacy/modify-record.md) とは異なり、**DIALOG** コマンドは、フォームとそのコンテンツ、内容、評価ボタンなどに対して、完全にコントロールすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md index bbe1bd6d81db88..6a90630fc99be7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/folder.md @@ -65,7 +65,7 @@ displayed_sidebar: docs | fk user preferences folder | 0 | ユーザー環境設定ファイルを保存している、ユーザーホームフォルダー内の 4Dフォルダー | | fk web root folder | 8 | データベースのカレントの Webルートフォルダー: ただし "/PACKAGE/path" のパッケージ内にある場合。そうでない場合はフルパス。 | -コマンドがコンポーネントから呼び出されている場合、`*` 引数を渡してホストデータベースのパスを取得するようにします。 `*` 引数を省略すると、常に null オブジェクトが返されます。 +コマンドがコンポーネントから呼び出されている場合、 `*` 引数を渡してホストデータベースのパスを取得するようにします。 `*` 引数を省略すると、常に null オブジェクトが返されます。 > Windows の場合、組み込みクライアントでは、`ShareLocalResourcesOnWindowsClient` [BuildApp キー](../Desktop/building.md#buildapp4dsettings) を使用されていた場合、ビルトインフォルダーの場所が変更されています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 3f85abc61839b6..4b58369044d2d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## 説明 -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.**FORM EDIT** コマンドは *aTable* 引数で指定したテーブルに関連づけられている、 *form* 引数で指定したフォームを4D フォームエディターで開きます。オプションとして、*object* 引数で指定したフォームオブジェクトを選択した状態で開くこともできます。 このとき、デザイン環境へのアクセスが必要である点に注意してください。ない場合には、エラー -9804("フォームを開けません")エラーが生成されます。 +**FORM EDIT** コマンドは *aTable* 引数で指定したテーブルに関連づけられている、 *form* 引数で指定したフォームを4D フォームエディターで開きます。オプションとして、*object* 引数で指定したフォームオブジェクトを選択した状態で開くこともできます。このとき、デザイン環境へのアクセスが必要である点に注意してください。ない場合には、エラー -9804("フォームを開けません")エラーが生成されます。 このコマンドは非同期です。つまりこのコマンドは呼び出されたあとすぐに呼び出し元メソッドへと戻り、フォームが開かれるのを待つことはしないということです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md index 097eda5af0b378..6305cfc00401be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -**FORM Event** returns an object containing information about the form event that has just occurred.**FORM Event** は、発生したフォームイベント に関する情報を格納しているオブジェクトを返します。 通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 +**FORM Event** は、発生したフォームイベント に関する情報を格納しているオブジェクトを返します。通常、**FORM Event** はフォームメソッドまたはオブジェクトメソッド内にて使用します。 **返されるオブジェクト** diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md index 7b0710b1e8db50..3f19f3471450cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.**FORM LOAD** コマンドを使用してデータ印刷・コンテンツ解析のために *form* 引数で指定したフォームをカレントプロセスにおいて *formData* 引数のデータ(オプション)とともにメモリーにロードします。 1つのプロセスにつきカレントフォームは1つしか指定できません。 +**FORM LOAD** コマンドを使用してデータ印刷・コンテンツ解析のために *form* 引数で指定したフォームをカレントプロセスにおいて *formData* 引数のデータ(オプション)とともにメモリーにロードします。 1つのプロセスにつきカレントフォームは1つしか指定できません。 *form* 引数には、以下のいづれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md index aba37f55ba8ba5..ec284ecd7a9bc4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## 説明 -The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: +**Form** コマンドはカレントフォームに割り当てられている( *formData* 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます: - カレントフォームが、[`DIALOG`](dialog.md)、[`Print form`](print-form.md) あるいは [`FORM LOAD`](form-load.md) コマンドのいずれか一つによってロードされた場合。 - カレントフォームがサブフォームである場合。 @@ -57,7 +57,7 @@ displayed_sidebar: docs **Form** は画面に表示されているテーブルフォームに割り当てられているオブジェクトを返します。 出力フォームから表示された入力フォームのコンテキスト (つまりレコードをダブルクリックした後)の場合、返されるオブジェクトには以下のプロパティが格納されています: -| **プロパティ** | **型** | **説明** | +| **プロパティ** | **型** | **Description** | | ---------- | ------ | ----------------------- | | parentForm | object | 親出力フォームの**Form** オブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md index e941a40a934dfd..cf4704451c1ecd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## 説明 -The **License info** command returns an object providing detailed information about the active license. +**License info** コマンドは、アクティブなライセンスについての詳細な情報を提供するオブジェクトを返します。 コマンドが、ローカルではライセンスを使用しない4D アプリケーション上で実行された場合(例: 4D リモートなど)、コマンドはNull オブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index 2cafd76eb0944d..1416e613ec9cda 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -`New collection` コマンドは、新しい空の、または値が既に入れられたコレクションを作成し、その参照を返します。コレクションは、[Collection クラス API](../API/CollectionClass.md)のプロパティや関数を使用して操作することができます。 +`New collection` コマンドは、空の、あるいは値の入った新規コレクションを作成し、その参照を返します。 コレクションは、[Collection クラス API](../API/CollectionClass.md) のプロパティや関数を使用して操作することができます。 引数を渡さなかった場合、`New collection` は空のコレクションを作成し、その参照を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md index 99d4d0ca7a8ace..7b6bd571dad62d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/new-shared-collection.md @@ -8,10 +8,10 @@ displayed_sidebar: docs -| 引数 | 型 | | 説明 | -| ----- | ------------------------------- | --------------------------- | ---------- | -| value | 数値、テキスト、日付、時間、ブール、オブジェクト、コレクション | → | 共有コレクションの値 | -| 戻り値 | Collection | ← | 新規共有コレクション | +| 引数 | 型 | | 説明 | +| ----- | ------------------------------- | --------------------------- | --------------------- | +| value | 数値、テキスト、日付、時間、ブール、オブジェクト、コレクション | → | 共有コレクションの値 | +| 戻り値 | Collection | ← | New shared collection | @@ -41,8 +41,8 @@ displayed_sidebar: docs - 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 - text -- ブール -- 日付 +- boolean +- date - 時間 (ミリ秒の数 (実数) として保存されます)。 - null - 共有オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 62887e306c2f26..f80d1bd1b2f9c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## 説明 -The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.**Print form** コマンドは、*aTable* のフィールドや変数の現在の値を使用して *form* 引数で指定したフォームを印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 +**Print form** コマンドは、*aTable* のフィールドや変数の現在の値を使用して *form* 引数で指定したフォームを印刷します。 通常は、印刷処理を完全に制御する必要のある非常に複雑なレポートを印刷するために使用します。 **Print form** はレコード処理、ブレーク処理、改ページ処理を全く行いません。 これらの処理はすべて開発者が行います。 **Print form** は固定されたサイズの枠のなかにフィ-ルドや変数を印刷します。 *form* 引数には、以下のいづれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 74bbec5f47b537..3eeb65b142f53f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## 説明 -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション (4D Server のみ) のスナップショットを返します。 このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 +**Process activity** コマンドは特定の時刻での、実行中のプロセスや接続ユーザーセッション (4D Server のみ) のスナップショットを返します。このコマンドは、全てのプロセスを返します。これには、[Process info](process-info.md) コマンドでもアクセスできない内部プロセスも含まれます。 デフォルトで、引数を渡さずに使用した場合、**Process activity** は以下のプロパティを格納したオブジェクトを返します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md index d95ccc693a7335..bb2e68af7cbbb5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## 説明 -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter`Process number` コマンドは第一引数 *name* または *id* に渡した名前またはID を持つプロセスの番号を返します。 プロセスが見つからない場合、`Process number` は0 を返します。 +`Process number` コマンドは第一引数 *name* または *id* に渡した名前またはID を持つプロセスの番号を返します。。 プロセスが見つからない場合、`Process number` は0 を返します。 オプションの \* 引数を渡すと、サーバー上で実行中のプロセス番号をリモートの 4D から取得することができます。 この場合、返される値は負の値になります。 このオプションは特に[GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md)、 [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) および [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md) コマンドを使用する場合などに有用です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index 51ffa313e5a69f..ce4395453272bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## 説明 -The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. +**Session storage** コマンドは、*id* 引数に渡された固有の識別子を持つセッションのストアレージオブジェクトを返します。 *id* 引数には、Storage を取得したいセッションのUUID を渡します 。 これは4D (4D Server、またはスタンドアロンセッションに対してはシングルユーザー版4D )によって自動的に割り振られるもので、[session オブジェクト](../API/SessionClass.md) の[**.id**](../API/SessionClass.md#id) プロパティに保存されています。 セッションが存在しない場合、コマンド**Null** はを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index e43c7d5ac33229..9c343b6c4e8419 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## 説明 -The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. +**SET ALLOWED METHODS** コマンドはアプリケーション経由で入力可能なプロジェクトメソッドを指定します。 4Dには、以下のコンテキストからの呼び出し可能なプロジェクトメソッドをフィルターするセキュリティ機構が含まれています: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json b/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json new file mode 100644 index 00000000000000..ad96e5b0923299 --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R8.json @@ -0,0 +1,1042 @@ +{ + "version.label": { + "message": "20 R8", + "description": "The label for version 20-R8" + }, + "sidebar.docs.category.Getting Started": { + "message": "Começando", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Começando", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Desenvolvimento", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Desenvolvimento", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestão de projectos", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Settings", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Ambiente de desenvolvimento", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Depuração", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Processos", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Preferências", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Línguagem 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Línguagem 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Conceitos", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Tipos de dados", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Comandos", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Comandos", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Ambiente 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.4D Environment.link.generated-index.title": { + "message": "Ambiente 4D", + "description": "The generated-index page title for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Arrays", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Arrays.link.generated-index.title": { + "message": "Arrays", + "description": "The generated-index page title for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Página de Backup", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.Backup.link.generated-index.title": { + "message": "Página de Backup", + "description": "The generated-index page title for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.BLOB.link.generated-index.title": { + "message": "BLOB", + "description": "The generated-index page title for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Parâmetros", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Boolean.link.generated-index.title": { + "message": "Parâmetros", + "description": "The generated-index page title for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Cache Management", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Cache Management.link.generated-index.title": { + "message": "Cache Management", + "description": "The generated-index page title for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Coleções", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Collections.link.generated-index.title": { + "message": "Coleções", + "description": "The generated-index page title for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Communications", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Communications.link.generated-index.title": { + "message": "Communications", + "description": "The generated-index page title for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compiler", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Compiler.link.generated-index.title": { + "message": "Compiler", + "description": "The generated-index page title for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Entrada de dados", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Entry.link.generated-index.title": { + "message": "Entrada de dados", + "description": "The generated-index page title for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Segurança dos dados", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Data Security.link.generated-index.title": { + "message": "Segurança dos dados", + "description": "The generated-index page title for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Database Methods", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Database Methods.link.generated-index.title": { + "message": "Database Methods", + "description": "The generated-index page title for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Data e Horas", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Date and Time.link.generated-index.title": { + "message": "Data e Horas", + "description": "The generated-index page title for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Design Object Access", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Design Object Access.link.generated-index.title": { + "message": "Design Object Access", + "description": "The generated-index page title for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Arrastar e Soltar", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop.link.generated-index.title": { + "message": "Arrastar e Soltar", + "description": "The generated-index page title for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Controle de entrada", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.Entry Control.link.generated-index.title": { + "message": "Controle de entrada", + "description": "The generated-index page title for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "File and Folder", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.File and Folder.link.generated-index.title": { + "message": "File and Folder", + "description": "The generated-index page title for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Eventos formulário", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Form Events.link.generated-index.title": { + "message": "Eventos formulário", + "description": "The generated-index page title for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formulários", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Forms.link.generated-index.title": { + "message": "Formulários", + "description": "The generated-index page title for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Fórmulas", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Formulas.link.generated-index.title": { + "message": "Fórmulas", + "description": "The generated-index page title for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Graphs", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.Graphs.link.generated-index.title": { + "message": "Graphs", + "description": "The generated-index page title for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.HTTP.link.generated-index.title": { + "message": "HTTP", + "description": "The generated-index page title for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Hierarchical Lists", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists.link.generated-index.title": { + "message": "Hierarchical Lists", + "description": "The generated-index page title for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import and Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Import and Export.link.generated-index.title": { + "message": "Import and Export", + "description": "The generated-index page title for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interruptions", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.Interruptions.link.generated-index.title": { + "message": "Interruptions", + "description": "The generated-index page title for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.JSON.link.generated-index.title": { + "message": "JSON", + "description": "The generated-index page title for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.LDAP.link.generated-index.title": { + "message": "LDAP", + "description": "The generated-index page title for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Línguagem", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Language.link.generated-index.title": { + "message": "Línguagem", + "description": "The generated-index page title for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licenças", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.Licenses.link.generated-index.title": { + "message": "Licenças", + "description": "The generated-index page title for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.List Box.link.generated-index.title": { + "message": "List Box", + "description": "The generated-index page title for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Mail.link.generated-index.title": { + "message": "Mail", + "description": "The generated-index page title for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Funções matemáticas", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Math.link.generated-index.title": { + "message": "Funções matemáticas", + "description": "The generated-index page title for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menus", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Menus.link.generated-index.title": { + "message": "Menus", + "description": "The generated-index page title for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Messages.link.generated-index.title": { + "message": "Messages", + "description": "The generated-index page title for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Seleções temporárias", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Named Selections.link.generated-index.title": { + "message": "Seleções temporárias", + "description": "The generated-index page title for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objects (Forms)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms).link.generated-index.title": { + "message": "Objects (Forms)", + "description": "The generated-index page title for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objects (Language)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language).link.generated-index.title": { + "message": "Objects (Language)", + "description": "The generated-index page title for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "On a Series", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.On a Series.link.generated-index.title": { + "message": "On a Series", + "description": "The generated-index page title for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.PHP.link.generated-index.title": { + "message": "PHP", + "description": "The generated-index page title for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Pasteboard", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pasteboard.link.generated-index.title": { + "message": "Pasteboard", + "description": "The generated-index page title for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Imagens", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Pictures.link.generated-index.title": { + "message": "Imagens", + "description": "The generated-index page title for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Printing", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Printing.link.generated-index.title": { + "message": "Printing", + "description": "The generated-index page title for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Processo (Comunicações)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (Communications).link.generated-index.title": { + "message": "Processo (Comunicações)", + "description": "The generated-index page title for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Processo (Interface do Usuário)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface).link.generated-index.title": { + "message": "Processo (Interface do Usuário)", + "description": "The generated-index page title for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Processes.link.generated-index.title": { + "message": "Processos", + "description": "The generated-index page title for category Processes in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Queries", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Queries.link.generated-index.title": { + "message": "Queries", + "description": "The generated-index page title for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Quick Report", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Quick Report.link.generated-index.title": { + "message": "Quick Report", + "description": "The generated-index page title for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Record Locking", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Record Locking.link.generated-index.title": { + "message": "Record Locking", + "description": "The generated-index page title for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Records", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Records.link.generated-index.title": { + "message": "Records", + "description": "The generated-index page title for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Relações", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Relations.link.generated-index.title": { + "message": "Relações", + "description": "The generated-index page title for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.Resources.link.generated-index.title": { + "message": "Resources", + "description": "The generated-index page title for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SQL.link.generated-index.title": { + "message": "SQL", + "description": "The generated-index page title for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.SVG.link.generated-index.title": { + "message": "SVG", + "description": "The generated-index page title for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocolo seguro", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol.link.generated-index.title": { + "message": "Protocolo seguro", + "description": "The generated-index page title for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Seleção", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Selection.link.generated-index.title": { + "message": "Seleção", + "description": "The generated-index page title for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Conjuntos", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Sets.link.generated-index.title": { + "message": "Conjuntos", + "description": "The generated-index page title for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Spell Checker", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.Spell Checker.link.generated-index.title": { + "message": "Spell Checker", + "description": "The generated-index page title for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.String.link.generated-index.title": { + "message": "String", + "description": "The generated-index page title for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Structure Access", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Structure Access.link.generated-index.title": { + "message": "Structure Access", + "description": "The generated-index page title for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Styled Text", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Styled Text.link.generated-index.title": { + "message": "Styled Text", + "description": "The generated-index page title for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Sub-registros", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.Subrecords.link.generated-index.title": { + "message": "Sub-registros", + "description": "The generated-index page title for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "System Documents", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Documents.link.generated-index.title": { + "message": "System Documents", + "description": "The generated-index page title for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "System Environment", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.System Environment.link.generated-index.title": { + "message": "System Environment", + "description": "The generated-index page title for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Tabela", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Table.link.generated-index.title": { + "message": "Tabela", + "description": "The generated-index page title for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Tools", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Tools.link.generated-index.title": { + "message": "Tools", + "description": "The generated-index page title for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transactions", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Transactions.link.generated-index.title": { + "message": "Transactions", + "description": "The generated-index page title for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.Triggers.link.generated-index.title": { + "message": "Triggers", + "description": "The generated-index page title for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interface do usuário", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.User Interface.link.generated-index.title": { + "message": "Interface do usuário", + "description": "The generated-index page title for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Usuários e grupos", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Users and Groups.link.generated-index.title": { + "message": "Usuários e grupos", + "description": "The generated-index page title for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variáveis.", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Variables.link.generated-index.title": { + "message": "Variáveis.", + "description": "The generated-index page title for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Área Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Area.link.generated-index.title": { + "message": "Área Web", + "description": "The generated-index page title for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Servidor Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Server.link.generated-index.title": { + "message": "Servidor Web", + "description": "The generated-index page title for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client).link.generated-index.title": { + "message": "Web Services (Client)", + "description": "The generated-index page title for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Server)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server).link.generated-index.title": { + "message": "Web Services (Server)", + "description": "The generated-index page title for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.Windows.link.generated-index.title": { + "message": "Windows", + "description": "The generated-index page title for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML DOM.link.generated-index.title": { + "message": "XML DOM", + "description": "The generated-index page title for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML SAX.link.generated-index.title": { + "message": "XML SAX", + "description": "The generated-index page title for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.XML.link.generated-index.title": { + "message": "XML", + "description": "The generated-index page title for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Classes", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Classes", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Lista de classes 4D integradas", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administração", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administração", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Como monitorizar as suas aplicações 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Janela de administração de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administração Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administração Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Ferramentas web 4D para administrar e monitorar suas aplicações.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Cópia de segurança e restauração", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensões", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Aplicações Web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Aplicações Web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guias para desenvolver aplicações Web com 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Desenvolvimento Web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Using Qodly Studio to build powerful web interfaces.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exposing your datastore to REST and using the REST API.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Expondo seu datastore em REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Expondo seu datastore em REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configure seu datastore para acesso REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (geral)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (geral)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST para informações globais", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST para dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Aplicações Desktop", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Aplicações Desktop", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guias para desenvolver aplicações Desktop com 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Direitos de acesso", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Direitos de acesso", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Controlo de acesso e privilégios de usuário para aplicações Desktop.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Editor de formulários", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propriedades do formulário", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objectos formulário", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propriedades dos objectos formulário", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Aplicações móveis", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Progress.100-7476284.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-SVG-Component.100-7477155.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R8/4D/20-R8/4D-Widgets.100-7477804.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (arquivo)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interface de linha de comando", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocolo TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Managing 4D Licenses": { + "message": "Gestão de Licenças 4D", + "description": "The label for the doc item Managing 4D Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Recolha de dados", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Cliente/Servidor", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propriedades usuário", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Build application overview", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + } +} diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json b/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json new file mode 100644 index 00000000000000..323dc2ff3ac447 --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R9.json @@ -0,0 +1,742 @@ +{ + "version.label": { + "message": "20 R9", + "description": "The label for version 20-R9" + }, + "sidebar.docs.category.Getting Started": { + "message": "Começando", + "description": "The label for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Getting Started.link.generated-index.title": { + "message": "Começando", + "description": "The generated-index page title for category Getting Started in sidebar docs" + }, + "sidebar.docs.category.Core Development": { + "message": "Desenvolvimento", + "description": "The label for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Core Development.link.generated-index.title": { + "message": "Desenvolvimento", + "description": "The generated-index page title for category Core Development in sidebar docs" + }, + "sidebar.docs.category.Project Management": { + "message": "Gestão de projectos", + "description": "The label for category Project Management in sidebar docs" + }, + "sidebar.docs.category.Settings": { + "message": "Settings", + "description": "The label for category Settings in sidebar docs" + }, + "sidebar.docs.category.Development Environment": { + "message": "Ambiente de desenvolvimento", + "description": "The label for category Development Environment in sidebar docs" + }, + "sidebar.docs.category.Debugging": { + "message": "Depuração", + "description": "The label for category Debugging in sidebar docs" + }, + "sidebar.docs.category.ORDA": { + "message": "ORDA", + "description": "The label for category ORDA in sidebar docs" + }, + "sidebar.docs.category.Processes": { + "message": "Processos", + "description": "The label for category Processes in sidebar docs" + }, + "sidebar.docs.category.Preferences": { + "message": "Preferências", + "description": "The label for category Preferences in sidebar docs" + }, + "sidebar.docs.category.4D Language": { + "message": "Línguagem 4D", + "description": "The label for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.4D Language.link.generated-index.title": { + "message": "Línguagem 4D", + "description": "The generated-index page title for category 4D Language in sidebar docs" + }, + "sidebar.docs.category.Concepts": { + "message": "Conceitos", + "description": "The label for category Concepts in sidebar docs" + }, + "sidebar.docs.category.Data Types": { + "message": "Tipos de dados", + "description": "The label for category Data Types in sidebar docs" + }, + "sidebar.docs.category.Commands": { + "message": "Comandos", + "description": "The label for category Commands in sidebar docs" + }, + "sidebar.docs.category.Commands.link.generated-index.title": { + "message": "Comandos", + "description": "The generated-index page title for category Commands in sidebar docs" + }, + "sidebar.docs.category.4D Environment": { + "message": "Ambiente 4D", + "description": "The label for category 4D Environment in sidebar docs" + }, + "sidebar.docs.category.Arrays": { + "message": "Arrays", + "description": "The label for category Arrays in sidebar docs" + }, + "sidebar.docs.category.Backup": { + "message": "Página de Backup", + "description": "The label for category Backup in sidebar docs" + }, + "sidebar.docs.category.BLOB": { + "message": "BLOB", + "description": "The label for category BLOB in sidebar docs" + }, + "sidebar.docs.category.Boolean": { + "message": "Parâmetros", + "description": "The label for category Boolean in sidebar docs" + }, + "sidebar.docs.category.Cache Management": { + "message": "Cache Management", + "description": "The label for category Cache Management in sidebar docs" + }, + "sidebar.docs.category.Collections": { + "message": "Coleções", + "description": "The label for category Collections in sidebar docs" + }, + "sidebar.docs.category.Communications": { + "message": "Communications", + "description": "The label for category Communications in sidebar docs" + }, + "sidebar.docs.category.Compiler": { + "message": "Compiler", + "description": "The label for category Compiler in sidebar docs" + }, + "sidebar.docs.category.Data Entry": { + "message": "Entrada de dados", + "description": "The label for category Data Entry in sidebar docs" + }, + "sidebar.docs.category.Data Security": { + "message": "Segurança dos dados", + "description": "The label for category Data Security in sidebar docs" + }, + "sidebar.docs.category.Database Methods": { + "message": "Database Methods", + "description": "The label for category Database Methods in sidebar docs" + }, + "sidebar.docs.category.Date and Time": { + "message": "Data e Horas", + "description": "The label for category Date and Time in sidebar docs" + }, + "sidebar.docs.category.Design Object Access": { + "message": "Design Object Access", + "description": "The label for category Design Object Access in sidebar docs" + }, + "sidebar.docs.category.Drag and Drop": { + "message": "Arrastar e Soltar", + "description": "The label for category Drag and Drop in sidebar docs" + }, + "sidebar.docs.category.Entry Control": { + "message": "Controle de entrada", + "description": "The label for category Entry Control in sidebar docs" + }, + "sidebar.docs.category.File and Folder": { + "message": "File and Folder", + "description": "The label for category File and Folder in sidebar docs" + }, + "sidebar.docs.category.Form Events": { + "message": "Eventos formulário", + "description": "The label for category Form Events in sidebar docs" + }, + "sidebar.docs.category.Forms": { + "message": "Formulários", + "description": "The label for category Forms in sidebar docs" + }, + "sidebar.docs.category.Formulas": { + "message": "Fórmulas", + "description": "The label for category Formulas in sidebar docs" + }, + "sidebar.docs.category.Graphs": { + "message": "Graphs", + "description": "The label for category Graphs in sidebar docs" + }, + "sidebar.docs.category.HTTP": { + "message": "HTTP", + "description": "The label for category HTTP in sidebar docs" + }, + "sidebar.docs.category.Hierarchical Lists": { + "message": "Hierarchical Lists", + "description": "The label for category Hierarchical Lists in sidebar docs" + }, + "sidebar.docs.category.Import and Export": { + "message": "Import and Export", + "description": "The label for category Import and Export in sidebar docs" + }, + "sidebar.docs.category.Interruptions": { + "message": "Interruptions", + "description": "The label for category Interruptions in sidebar docs" + }, + "sidebar.docs.category.JSON": { + "message": "JSON", + "description": "The label for category JSON in sidebar docs" + }, + "sidebar.docs.category.LDAP": { + "message": "LDAP", + "description": "The label for category LDAP in sidebar docs" + }, + "sidebar.docs.category.Language": { + "message": "Línguagem", + "description": "The label for category Language in sidebar docs" + }, + "sidebar.docs.category.Licenses": { + "message": "Licenças", + "description": "The label for category Licenses in sidebar docs" + }, + "sidebar.docs.category.List Box": { + "message": "List Box", + "description": "The label for category List Box in sidebar docs" + }, + "sidebar.docs.category.Mail": { + "message": "Mail", + "description": "The label for category Mail in sidebar docs" + }, + "sidebar.docs.category.Math": { + "message": "Funções matemáticas", + "description": "The label for category Math in sidebar docs" + }, + "sidebar.docs.category.Menus": { + "message": "Menus", + "description": "The label for category Menus in sidebar docs" + }, + "sidebar.docs.category.Messages": { + "message": "Messages", + "description": "The label for category Messages in sidebar docs" + }, + "sidebar.docs.category.Named Selections": { + "message": "Seleções temporárias", + "description": "The label for category Named Selections in sidebar docs" + }, + "sidebar.docs.category.Objects (Forms)": { + "message": "Objects (Forms)", + "description": "The label for category Objects (Forms) in sidebar docs" + }, + "sidebar.docs.category.Objects (Language)": { + "message": "Objects (Language)", + "description": "The label for category Objects (Language) in sidebar docs" + }, + "sidebar.docs.category.On a Series": { + "message": "On a Series", + "description": "The label for category On a Series in sidebar docs" + }, + "sidebar.docs.category.PHP": { + "message": "PHP", + "description": "The label for category PHP in sidebar docs" + }, + "sidebar.docs.category.Pasteboard": { + "message": "Pasteboard", + "description": "The label for category Pasteboard in sidebar docs" + }, + "sidebar.docs.category.Pictures": { + "message": "Imagens", + "description": "The label for category Pictures in sidebar docs" + }, + "sidebar.docs.category.Printing": { + "message": "Printing", + "description": "The label for category Printing in sidebar docs" + }, + "sidebar.docs.category.Process (Communications)": { + "message": "Processo (Comunicações)", + "description": "The label for category Process (Communications) in sidebar docs" + }, + "sidebar.docs.category.Process (User Interface)": { + "message": "Processo (Interface do Usuário)", + "description": "The label for category Process (User Interface) in sidebar docs" + }, + "sidebar.docs.category.Queries": { + "message": "Queries", + "description": "The label for category Queries in sidebar docs" + }, + "sidebar.docs.category.Quick Report": { + "message": "Quick Report", + "description": "The label for category Quick Report in sidebar docs" + }, + "sidebar.docs.category.Record Locking": { + "message": "Record Locking", + "description": "The label for category Record Locking in sidebar docs" + }, + "sidebar.docs.category.Records": { + "message": "Records", + "description": "The label for category Records in sidebar docs" + }, + "sidebar.docs.category.Relations": { + "message": "Relações", + "description": "The label for category Relations in sidebar docs" + }, + "sidebar.docs.category.Resources": { + "message": "Resources", + "description": "The label for category Resources in sidebar docs" + }, + "sidebar.docs.category.SQL": { + "message": "SQL", + "description": "The label for category SQL in sidebar docs" + }, + "sidebar.docs.category.SVG": { + "message": "SVG", + "description": "The label for category SVG in sidebar docs" + }, + "sidebar.docs.category.Secured Protocol": { + "message": "Protocolo seguro", + "description": "The label for category Secured Protocol in sidebar docs" + }, + "sidebar.docs.category.Selection": { + "message": "Seleção", + "description": "The label for category Selection in sidebar docs" + }, + "sidebar.docs.category.Sets": { + "message": "Conjuntos", + "description": "The label for category Sets in sidebar docs" + }, + "sidebar.docs.category.Spell Checker": { + "message": "Spell Checker", + "description": "The label for category Spell Checker in sidebar docs" + }, + "sidebar.docs.category.String": { + "message": "String", + "description": "The label for category String in sidebar docs" + }, + "sidebar.docs.category.Structure Access": { + "message": "Structure Access", + "description": "The label for category Structure Access in sidebar docs" + }, + "sidebar.docs.category.Styled Text": { + "message": "Styled Text", + "description": "The label for category Styled Text in sidebar docs" + }, + "sidebar.docs.category.Subrecords": { + "message": "Sub-registros", + "description": "The label for category Subrecords in sidebar docs" + }, + "sidebar.docs.category.System Documents": { + "message": "System Documents", + "description": "The label for category System Documents in sidebar docs" + }, + "sidebar.docs.category.System Environment": { + "message": "System Environment", + "description": "The label for category System Environment in sidebar docs" + }, + "sidebar.docs.category.Table": { + "message": "Tabela", + "description": "The label for category Table in sidebar docs" + }, + "sidebar.docs.category.Tools": { + "message": "Tools", + "description": "The label for category Tools in sidebar docs" + }, + "sidebar.docs.category.Transactions": { + "message": "Transactions", + "description": "The label for category Transactions in sidebar docs" + }, + "sidebar.docs.category.Triggers": { + "message": "Triggers", + "description": "The label for category Triggers in sidebar docs" + }, + "sidebar.docs.category.User Interface": { + "message": "Interface do usuário", + "description": "The label for category User Interface in sidebar docs" + }, + "sidebar.docs.category.Users and Groups": { + "message": "Usuários e grupos", + "description": "The label for category Users and Groups in sidebar docs" + }, + "sidebar.docs.category.Variables": { + "message": "Variáveis.", + "description": "The label for category Variables in sidebar docs" + }, + "sidebar.docs.category.Web Area": { + "message": "Área Web", + "description": "The label for category Web Area in sidebar docs" + }, + "sidebar.docs.category.Web Server": { + "message": "Servidor Web", + "description": "The label for category Web Server in sidebar docs" + }, + "sidebar.docs.category.Web Services (Client)": { + "message": "Web Services (Client)", + "description": "The label for category Web Services (Client) in sidebar docs" + }, + "sidebar.docs.category.Web Services (Server)": { + "message": "Web Services (Server)", + "description": "The label for category Web Services (Server) in sidebar docs" + }, + "sidebar.docs.category.Windows": { + "message": "Windows", + "description": "The label for category Windows in sidebar docs" + }, + "sidebar.docs.category.XML DOM": { + "message": "XML DOM", + "description": "The label for category XML DOM in sidebar docs" + }, + "sidebar.docs.category.XML SAX": { + "message": "XML SAX", + "description": "The label for category XML SAX in sidebar docs" + }, + "sidebar.docs.category.XML": { + "message": "XML", + "description": "The label for category XML in sidebar docs" + }, + "sidebar.docs.category.Classes": { + "message": "Classes", + "description": "The label for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.title": { + "message": "Classes", + "description": "The generated-index page title for category Classes in sidebar docs" + }, + "sidebar.docs.category.Classes.link.generated-index.description": { + "message": "Lista de classes 4D integradas", + "description": "The generated-index page description for category Classes in sidebar docs" + }, + "sidebar.docs.category.Administration": { + "message": "Administração", + "description": "The label for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.title": { + "message": "Administração", + "description": "The generated-index page title for category Administration in sidebar docs" + }, + "sidebar.docs.category.Administration.link.generated-index.description": { + "message": "Como monitorizar as suas aplicações 4D", + "description": "The generated-index page description for category Administration in sidebar docs" + }, + "sidebar.docs.category.4D Server Administration Window": { + "message": "Janela de administração de 4D Server", + "description": "The label for category 4D Server Administration Window in sidebar docs" + }, + "sidebar.docs.category.Web Administration": { + "message": "Administração Web", + "description": "The label for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.title": { + "message": "Administração Web", + "description": "The generated-index page title for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.Web Administration.link.generated-index.description": { + "message": "Ferramentas web 4D para administrar e monitorar suas aplicações.", + "description": "The generated-index page description for category Web Administration in sidebar docs" + }, + "sidebar.docs.category.MSC": { + "message": "CSM", + "description": "The label for category MSC in sidebar docs" + }, + "sidebar.docs.category.Backup and Restore": { + "message": "Cópia de segurança e restauração", + "description": "The label for category Backup and Restore in sidebar docs" + }, + "sidebar.docs.category.Extensions": { + "message": "Extensões", + "description": "The label for category Extensions in sidebar docs" + }, + "sidebar.docs.category.4D View Pro": { + "message": "4D View Pro", + "description": "The label for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.4D View Pro.link.generated-index.title": { + "message": "4D View Pro", + "description": "The generated-index page title for category 4D View Pro in sidebar docs" + }, + "sidebar.docs.category.A": { + "message": "A", + "description": "The label for category A in sidebar docs" + }, + "sidebar.docs.category.A.link.generated-index.title": { + "message": "A", + "description": "The generated-index page title for category A in sidebar docs" + }, + "sidebar.docs.category.C": { + "message": "C", + "description": "The label for category C in sidebar docs" + }, + "sidebar.docs.category.C.link.generated-index.title": { + "message": "C", + "description": "The generated-index page title for category C in sidebar docs" + }, + "sidebar.docs.category.D": { + "message": "D", + "description": "The label for category D in sidebar docs" + }, + "sidebar.docs.category.D.link.generated-index.title": { + "message": "D", + "description": "The generated-index page title for category D in sidebar docs" + }, + "sidebar.docs.category.E": { + "message": "E", + "description": "The label for category E in sidebar docs" + }, + "sidebar.docs.category.E.link.generated-index.title": { + "message": "E", + "description": "The generated-index page title for category E in sidebar docs" + }, + "sidebar.docs.category.F": { + "message": "F", + "description": "The label for category F in sidebar docs" + }, + "sidebar.docs.category.F.link.generated-index.title": { + "message": "F", + "description": "The generated-index page title for category F in sidebar docs" + }, + "sidebar.docs.category.G": { + "message": "G", + "description": "The label for category G in sidebar docs" + }, + "sidebar.docs.category.G.link.generated-index.title": { + "message": "G", + "description": "The generated-index page title for category G in sidebar docs" + }, + "sidebar.docs.category.I": { + "message": "I", + "description": "The label for category I in sidebar docs" + }, + "sidebar.docs.category.I.link.generated-index.title": { + "message": "I", + "description": "The generated-index page title for category I in sidebar docs" + }, + "sidebar.docs.category.M": { + "message": "M", + "description": "The label for category M in sidebar docs" + }, + "sidebar.docs.category.M.link.generated-index.title": { + "message": "M", + "description": "The generated-index page title for category M in sidebar docs" + }, + "sidebar.docs.category.N": { + "message": "N", + "description": "The label for category N in sidebar docs" + }, + "sidebar.docs.category.N.link.generated-index.title": { + "message": "N", + "description": "The generated-index page title for category N in sidebar docs" + }, + "sidebar.docs.category.O": { + "message": "O", + "description": "The label for category O in sidebar docs" + }, + "sidebar.docs.category.O.link.generated-index.title": { + "message": "O", + "description": "The generated-index page title for category O in sidebar docs" + }, + "sidebar.docs.category.P": { + "message": "P", + "description": "The label for category P in sidebar docs" + }, + "sidebar.docs.category.P.link.generated-index.title": { + "message": "P", + "description": "The generated-index page title for category P in sidebar docs" + }, + "sidebar.docs.category.R": { + "message": "R", + "description": "The label for category R in sidebar docs" + }, + "sidebar.docs.category.R.link.generated-index.title": { + "message": "R", + "description": "The generated-index page title for category R in sidebar docs" + }, + "sidebar.docs.category.S": { + "message": "S", + "description": "The label for category S in sidebar docs" + }, + "sidebar.docs.category.S.link.generated-index.title": { + "message": "S", + "description": "The generated-index page title for category S in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro": { + "message": "4D Write Pro", + "description": "The label for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D Write Pro.link.generated-index.title": { + "message": "4D Write Pro", + "description": "The generated-index page title for category 4D Write Pro in sidebar docs" + }, + "sidebar.docs.category.4D AIKit": { + "message": "4D AIKit", + "description": "The label for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.4D AIKit.link.generated-index.title": { + "message": "4D AIKit", + "description": "The generated-index page title for category 4D AIKit in sidebar docs" + }, + "sidebar.docs.category.Web Applications": { + "message": "Aplicações Web", + "description": "The label for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.title": { + "message": "Aplicações Web", + "description": "The generated-index page title for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Applications.link.generated-index.description": { + "message": "Guias para desenvolver aplicações Web com 4D", + "description": "The generated-index page description for category Web Applications in sidebar docs" + }, + "sidebar.docs.category.Web Development": { + "message": "Desenvolvimento Web", + "description": "The label for category Web Development in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio": { + "message": "Qodly Studio", + "description": "The label for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.title": { + "message": "Qodly Studio", + "description": "The generated-index page title for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.Qodly Studio.link.generated-index.description": { + "message": "Using Qodly Studio to build powerful web interfaces.", + "description": "The generated-index page description for category Qodly Studio in sidebar docs" + }, + "sidebar.docs.category.REST API": { + "message": "REST API", + "description": "The label for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.title": { + "message": "REST API", + "description": "The generated-index page title for category REST API in sidebar docs" + }, + "sidebar.docs.category.REST API.link.generated-index.description": { + "message": "Exposing your datastore to REST and using the REST API.", + "description": "The generated-index page description for category REST API in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST": { + "message": "Expondo seu datastore em REST", + "description": "The label for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.title": { + "message": "Expondo seu datastore em REST", + "description": "The generated-index page title for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.Exposing your datastore in REST.link.generated-index.description": { + "message": "Configure seu datastore para acesso REST", + "description": "The generated-index page description for category Exposing your datastore in REST in sidebar docs" + }, + "sidebar.docs.category.API (general)": { + "message": "API (geral)", + "description": "The label for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.title": { + "message": "API (geral)", + "description": "The generated-index page title for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (general).link.generated-index.description": { + "message": "API REST para informações globais", + "description": "The generated-index page description for category API (general) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass)": { + "message": "API (dataClass)", + "description": "The label for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.title": { + "message": "API (dataClass)", + "description": "The generated-index page title for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.API (dataClass).link.generated-index.description": { + "message": "API REST para dataClass.", + "description": "The generated-index page description for category API (dataClass) in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications": { + "message": "Aplicações Desktop", + "description": "The label for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.title": { + "message": "Aplicações Desktop", + "description": "The generated-index page title for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Desktop Applications.link.generated-index.description": { + "message": "Guias para desenvolver aplicações Desktop com 4D", + "description": "The generated-index page description for category Desktop Applications in sidebar docs" + }, + "sidebar.docs.category.Access Rights": { + "message": "Direitos de acesso", + "description": "The label for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.title": { + "message": "Direitos de acesso", + "description": "The generated-index page title for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Access Rights.link.generated-index.description": { + "message": "Controlo de acesso e privilégios de usuário para aplicações Desktop.", + "description": "The generated-index page description for category Access Rights in sidebar docs" + }, + "sidebar.docs.category.Form Editor": { + "message": "Editor de formulários", + "description": "The label for category Form Editor in sidebar docs" + }, + "sidebar.docs.category.Form Properties": { + "message": "Propriedades do formulário", + "description": "The label for category Form Properties in sidebar docs" + }, + "sidebar.docs.category.Form Objects": { + "message": "Objectos formulário", + "description": "The label for category Form Objects in sidebar docs" + }, + "sidebar.docs.category.Form Object Properties": { + "message": "Propriedades dos objectos formulário", + "description": "The label for category Form Object Properties in sidebar docs" + }, + "sidebar.docs.category.Mobile Applications": { + "message": "Aplicações móveis", + "description": "The label for category Mobile Applications in sidebar docs" + }, + "sidebar.docs.link.4D Mobile App Server": { + "message": "4D Mobile App Server", + "description": "The label for link 4D Mobile App Server in sidebar docs, linking to https://github.com/4d-go-mobile/4D-Mobile-App-Server" + }, + "sidebar.docs.link.4D NetKit": { + "message": "4D NetKit", + "description": "The label for link 4D NetKit in sidebar docs, linking to https://developer.4d.com/4D-NetKit" + }, + "sidebar.docs.link.4D Progress": { + "message": "4D Progress", + "description": "The label for link 4D Progress in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Progress.100-7545461.en.html" + }, + "sidebar.docs.link.4D SVG": { + "message": "4D SVG", + "description": "The label for link 4D SVG in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-SVG-Component.100-7546332.en.html" + }, + "sidebar.docs.link.4D Widgets": { + "message": "4D Widgets", + "description": "The label for link 4D Widgets in sidebar docs, linking to https://doc.4d.com/4Dv20R9/4D/20-R9/4D-Widgets.100-7546981.en.html" + }, + "sidebar.docs.link.Go Mobile": { + "message": "Go Mobile", + "description": "The label for link Go Mobile in sidebar docs, linking to https://developer.4d.com/go-mobile/" + }, + "sidebar.docs.link.4D for iOS (archive)": { + "message": "4D for iOS (arquivo)", + "description": "The label for link 4D for iOS (archive) in sidebar docs, linking to https://developer.4d.com/4d-for-ios" + }, + "sidebar.docs.doc.Command Line Interface": { + "message": "Interface de linha de comando", + "description": "The label for the doc item Command Line Interface in sidebar docs, linking to the doc Admin/cli" + }, + "sidebar.docs.doc.TLS Protocol": { + "message": "Protocolo TLS", + "description": "The label for the doc item TLS Protocol in sidebar docs, linking to the doc Admin/tls" + }, + "sidebar.docs.doc.Licenses": { + "message": "Licenças", + "description": "The label for the doc item Licenses in sidebar docs, linking to the doc Admin/licenses" + }, + "sidebar.docs.doc.Data Collection": { + "message": "Recolha de dados", + "description": "The label for the doc item Data Collection in sidebar docs, linking to the doc Admin/data-collect" + }, + "sidebar.docs.doc.Client/Server": { + "message": "Cliente/Servidor", + "description": "The label for the doc item Client/Server in sidebar docs, linking to the doc Desktop/clientServer" + }, + "sidebar.docs.doc.User Settings": { + "message": "Propriedades usuário", + "description": "The label for the doc item User Settings in sidebar docs, linking to the doc Desktop/user-settings" + }, + "sidebar.docs.doc.Build Application": { + "message": "Build application overview", + "description": "The label for the doc item Build Application in sidebar docs, linking to the doc Desktop/building" + }, + "sidebar.docs.doc.Labels": { + "message": "Etiquetas", + "description": "The label for the doc item Labels in sidebar docs, linking to the doc Desktop/labels" + } +} diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index ceeec01850bac0..3f0cc44d806675 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3195,14 +3195,14 @@ A função `.sort()` classifica os elemen Se `.sort()` for chamado sem parâmetros, somente os valores escalares (número, texto, data, booleanos) serão classificados. Os elementos são classificados por defeito em ordem ascendente, de acordo com o seu tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: -``` -|Constant| Type|Value|Comment| -|---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| - -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). -``` + ``` + |Constant| Type|Value|Comment| + |---|---|---|---| + |ck ascending|Integer|0|Elements are ordered in ascending order (default)| + |ck descending|Integer|1|Elements are ordered in descending order| + + This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + ``` Se a coleção conter elementos de tipos diferentes, são primeiro agrupados por tipo e ordenados depois. Se attributePath levar a uma propriedade de objeto que conter valores de diferentes tipos, primeiro se agrupam por tipo e se ordenam depois. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 92eabfaaffa451..7be3d056bba2b9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -221,7 +221,7 @@ A função `.decrypt()` descriptografa A chave deve ser uma chave RSA, o algoritmo é RSA-OAEP (consulte [RFC 3447](https://tools.ietf.org/html/rfc3447)). -##### *options* +##### *opções* | Propriedade | Tipo | Descrição | | ----------------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -311,7 +311,7 @@ O valor devolvido é a chave pública. **.pem** : Text -PEM definition of an encryption key to load. If the key is a private key, the RSA or ECDSA public key will be deduced from it. +Definição PEM de uma chave de cifrado a carregar. Se a chave for uma chave privada, será deduzido dela a chave pública RSA ou ECDSA. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index f4155f42c03ea9..59ef8f0eddf9b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -688,7 +688,7 @@ A função `.getInfo()` retorna um -**.getRemoteCache**() : Object +**.getRemoteCache**() : Objeto @@ -992,18 +992,18 @@ O uso de placeholders em consultas **é recomendado** pelos seguintes motivos: 1. Evita a inserção de código malicioso: se user diretamente variáveis preenchidas com uma string de pesquisa, um usuário poderia modificar as condições de pesquisa entrando argumentos adicionais. Por exemplo, imagine uma string de pesquisa como: -```4d - $vquery:="status = 'público' & nome = "+meunome //usuário entra em seu nome - $result:=$col.query($vquery) -``` + ```4d + $vquery:="status = 'público' & nome = "+meunome //usuário entra em seu nome + $result:=$col.query($vquery) + ``` Essa consulta parece segura, pois os dados não públicos são filtrados. No entanto, se o usuário inserir na área *myname* algo como *"smith OR status='private'*,\* a string de consulta será modificada na etapa de interpretação e poderá retornar dados privados. Ao usar placeholders, não é possível substituir as condições de segurança: -```4d - $result:=$col.query("status='public' & name=:1";myname) -``` + ```4d + $result:=$col.query("status='public' & name=:1";myname) + ``` Neste caso, se o usuário digitar *smith OR status='private'* na área *myname*, isso não será interpretado na string de consulta, mas apenas passado como um valor. A busca por uma pessoa chamada "smith OR status='private'" simplesmente falhará. @@ -1011,10 +1011,10 @@ Neste caso, se o usuário digitar *smith OR status='private'* na área *myname*, 3. Permite o uso de variáveis ou expressões nos argumentos de pesquisa. Exemplos: -```4d -$result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") -$result2:=$col.query("company.name = :1";"John's Pizzas") -``` + ```4d + $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") + $result2:=$col.query("company.name = :1";"John's Pizzas") + ``` ### Pesquisa de valores null @@ -1628,7 +1628,7 @@ ds.VectorTable.query("embedding>:1 and embedding<:2";$vector1Comparison;$vector2 -> **Modo avançado:** essa função é destinada a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, não necessitará de o utilizar. +> **Modo avançado:** Essa função é destinada a desenvolvedores que precisam personalizar os recursos padrão do ORDA para configurações específicas. Na maioria dos casos, não necessitará de o utilizar. #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md index 4052423d222bdb..d9dc92edd090dc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataStoreClass.md @@ -170,7 +170,7 @@ O objeto retornado contém as propriedades abaixo: | | *tableName* | | Object | Tabla encriptada ou cifrada | | | | name | Text | Nombre da tabela | | | | num | Number | Número de tabela | -| | | isEncryptable | Parâmetros | True se a tabela estiver declarada como encriptada no arquivo de estrutura | +| | | isEncryptable | Parâmetros | Verdadero se a tabela estiver declarada como encriptada no arquivo de estrutura | | | | isEncrypted | Parâmetros | True se os registros da tabela estiverem encriptados no arquivo de dados | (\*) a chave de criptografia pode ser fornecida: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md index c687ebffa524ef..76d0dcce533c69 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EmailObjectClass.md @@ -152,10 +152,10 @@ A propriedade `.bodyValues` contém o objeto **.subject** : Text +**.subject** : Texto #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index aaad0983f02499..aa53eca5061903 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -628,7 +628,7 @@ O seguinte código genérico duplica qualquer entidade: -**.getKey**( { *mode* : Integer } ) : any +**.getKey**( { *mode* : Integer } ) : qualquer @@ -986,7 +986,7 @@ O objeto retornado por `.lock()` contém as seguintes propriedades: | --------------------------------- | ----------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | success | | boolean | true se a ação de bloqueio for bem sucedida (ou se a entidade já estiver bloqueada no processo atual), falso caso contrário. | | | | | ***Disponível somente se a opção `dk reload if stamp changed` for usada:*** | -| **wasReloaded** | | boolean | true se a entidade foi recarregada com sucesso, false caso contrário. | +| **wasReloaded** | | boolean | verdadeiro se a entidade foi recarregada com sucesso, falso caso contrário. | | | | | ***Disponível apenas em caso de erro:*** | | status(\*) | | number | Código de erro, ver abaixo | | statusText(\*) | | text | Descrição do erro, ver abaixo | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 88a17bcaefbd35..1a4ce052aa7d03 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -650,7 +650,7 @@ End if #### Descrição -A função `.expunge()` remove todas as mensagens com o sinalizador "deleted" do servidor de e-mail IMAP. O sinalizador "deleted" pode ser definido com os métodos [`.delete()`](#delete) ou [`.addFlags()`](#addflags). +A função `.expunge()` remove todas as mensagens com a bandeira "deletado" do servidor IMAP. O marcador "apagada" pode ser definida com os métodos .delete() ou .addFlags() . **Objeto devolvido** diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md index 3b1cf7b2fdf6fe..c69c6b84993b04 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/IncomingMessageClass.md @@ -319,10 +319,10 @@ Special characters such as simple quotes or carriage returns must be escaped. Exemple: `http://127.0.0.1:8044/syntax/?mdcode=%60%60%604d` -````4d +```4d //urlQuery.mdcode = ```4d $test:=Length($r.urlQuery.mdcode) //5 -```` +``` :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md index 7b6236d31b4667..2dfb11e78e3ccb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md @@ -521,7 +521,7 @@ Essa propriedade é **somente leitura**. ## .timeout -**.timeout** : Integer +**.timeout**: Integer #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index 49c6900a526827..99994c494a1953 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -43,7 +43,7 @@ The `.address` property contains the IP ad ## .data -**data** : Blob +**data**: Blob #### Descrição diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index c642094be0c25b..59177d0eb3c990 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -217,7 +217,7 @@ Valor padrão: 63072000 (2 anos). ## .HTTPCompressionLevel -**.HTTPCompressionLevel** : Integer +**.HTTPCompressionLevel**: Integer O nível de compressão para todas as trocas HTTP comprimidas para o servidor HTTP 4D (solicitações do cliente ou respostas do servidor). Este seletor permite otimizar trocas priorizando a velocidade de execução (menos compactação) ou a quantidade de compressão (menos velocidade) @@ -306,7 +306,7 @@ O padrão = 443 A duração da vida (em minutos) dos processos de sessão legados inativos. No final do timeout, o processo é terminado no servidor, o método de database `On Web Legacy Close Session` é chamado, e então o contexto sessão legado é destruído. -Padrão = 480 minutos +Default = 480 minutos @@ -620,8 +620,8 @@ A função devolve um objecto que descreve o estado de lançamento do servidor W | Propriedade | | Tipo | Descrição | | ----------- | ------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------- | -| success | | Parâmetros | True se o servidor web foi correctamente iniciado, False caso contrário | -| errors | | Collection | Pilha de erros 4D (não devolvidos se o servidor web começou com sucesso) | +| success | | Parâmetros | Verdadeiro se o servidor web foi correctamente iniciado, Falso caso contrário | +| errors | | Collection | pilha de erros 4D (não devolvidos se o servidor web começou com sucesso) | | | \[].errCode | Number | Código de erro 4D | | | \[].message | Text | Descrição do erro 4D | | | \[].componentSignature | Text | Assinatura da componente interna que devolveu o erro | @@ -675,7 +675,7 @@ Se o servidor web foi iniciado, todas as ligações e processos web são fechado #### Exemplo -Para interromper o servidor Web do banco de dados: +Para parar o servidor Web da base de dados: ```4d var $webServer : 4D.WebServer diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md index 5dac6f503c635f..db05d3958f78b8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/WebSocketConnectionClass.md @@ -23,7 +23,7 @@ Para obter uma visão geral e alguns exemplos da implementação do servidor Web Um objeto `WebSocketConnection` é criado automaticamente quando a função de retorno de chamada [`WSHandler.onConnection`](WebSocketServerClass.md#wsshandler-parameter) do objeto [WebSocketServer](WebSocketServerClass.md#4dwebsocketservernew) retorna um objeto [`connectionHandler`](WebSocketServerClass.md#connectionhandler-object). -Os objetos Httprequest fornecem as seguintes propriedades e funções: +Os objectos Httprequest fornecem as seguintes propriedades e funções: | | | ---------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md index e6232dbe652dcd..ce6fd8d5177173 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Backup/log.md @@ -9,7 +9,7 @@ Além disso, 4D trabalha constantemente com dados cache em memória. Todas as mu Por último, 4D possui funções que analisam os conteúdos do arquivo de histórico, tornando possível reverter as operações realizadas sobre os dados do banco de dados. Essas funções estão disponíveis no MSC: consulte a página de [Análise de atividade](MSC/analysis.md) e a página de [Rollback](MSC/rollback.md). -## Como funciona o arquivo de log +## como o arquivo de histórico funciona O arquivo de histórico gerado por 4D contém uma descrição de todas as operações realizadas nos dados das tbelas registradas no diário do banco de dados, as quais são registradas de forma sequencial. Por padrão, todas as tabelas são registradas, ou seja, incluídas no arquivo de log, mas você pode desmarcar tabelas individuais usando a propriedade de tabela **Incluir no arquivo de log**. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index 1fa1aa3c366a34..1354f72e062cca 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -125,16 +125,16 @@ Já que cada bit pode ser igual a 0 ou 1, também se pode pensar num valor Long An expression that uses a bitwise operator returns a Long value, except for the Bit Test operator, where the expression returns a Boolean value. A tabela a seguir lista os operadores bitwise e sua sintaxe: -| Operação | Operador | Sintaxe | Retorna | -| ----------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | -| Bitwise AND | & | Long & Long | Long | -| OU (inclusive) | | | Long | Long | Long | -| Bitwise OR (exclusivo) | ^ | | Long ^ | Long | Long | -| Left Bit Shift | << | Long << Long | Long (ver nota 1) | -| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | -| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | -| Bit Clear | ?- | Long ?- Long | Long (ver nota 2) | -| Bit Test | ?? | Long ?? Long | Boolean (ver nota 2) | +| Operação | Operador | Sintaxe | Retorna | +| ----------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------- | +| Bitwise AND | & | Long & Long | Long | +| OU (inclusive) | | | Long | Long | Long | +| Bitwise OR (exclusivo) | ^ | | Long ^ | Long | Long | +| Left Bit Shift | << | Long << Long | Long (ver nota 1) | +| Right Bit Shift | > > | Long >> Long | Long (ver nota 1) | +| Bit Set | ?+ | Long ?+ Long | Long (ver nota 2) | +| Bit Clear | ?- | Long ?- Long | Long (ver nota 2) | +| Bit Test | ?? | Long ?? Long | Boolean (ver nota 2) | #### Notas diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index 82dd4f3b973714..1d9f92c712095d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -92,7 +92,7 @@ Within the custom error method, you have access to several pieces of information :::info -4D mantém automaticamente um número de variáveis chamadas [**variáveis sistema**](variables.md#system-variables), indo ao encontro de necessidades diferentes. +4D automatically maintains a number of variables called [**system variables**](variables.md#system-variables), meeting different needs. ::: - o comando [`Last errors`](../commands/last-errors.md) que retorna uma coleção da pilha de erros atual que ocorreu na aplicação 4D. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 60899a30365e6f..4bb72185eeaee0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -311,21 +311,21 @@ Esta rota do histórico é retornada pelo comando `Get 4D file`. Para começar esse histórico: -```4d -$server:=New object -... -//SMTP -$server.logFile:="MySMTPAuthLog.txt" -$transporter:=SMTP New transporter($server) - -// POP3 -$server.logFile:="MyPOP3AuthLog.txt" -$transporter:=POP3 New transporter($server) - -//IMAP -$server.logFile:="MyIMAPAuthLog.txt" -$transporter:=IMAP New transporter($server) -``` + ```4d + $server:=New object + ... + //SMTP + $server.logFile:="MySMTPAuthLog.txt" + $transporter:=SMTP New transporter($server) + + // POP3 + $server.logFile:="MyPOP3AuthLog.txt" + $transporter:=POP3 New transporter($server) + + //IMAP + $server.logFile:="MyIMAPAuthLog.txt" + $transporter:=IMAP New transporter($server) + ``` #### Conteúdos diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md index a5d5dbd6fe3f30..6a2307935b94a7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/createStylesheet.md @@ -322,27 +322,27 @@ Durante a execução, 4D prioriza automaticamente as folhas de estilo na seguint - ou uma lista de arquivos por plataforma: -``` -"css": "" -``` + ``` + "css": "" + ``` - um arquivo para ambas plataformas: -``` -"css": [ - "", - "" - ], -``` + ``` + "css": [ + "", + "" + ], + ``` - ou uma lista de arquivos para ambas plataformas: -``` - "css": [ - {"path": "", "media": "mac"}, - {"path": "", "media": "windows"}, - ], -``` + ``` + "css": [ + {"path": "", "media": "mac"}, + {"path": "", "media": "windows"}, + ], + ``` > As rotas dos arquivos pedem ser relativas ou absolutas. > diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index dd14a9df5da264..8b63dbf1737895 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -327,8 +327,8 @@ Todos os botões partilham o mesmo conjunto de propriedades básicas: [Negrito](properties_Text.md#bold) - [Estilo da linha da borda](properties_BackgroundAndBorder.md#border-line-style) - [Fundo](properties_CoordinatesAndSizing.md#bottom) - [Estilo do botão](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Focável](properties_Entry.md#focusable) - [Fonte](properties_Text.md#font) - [Cor da fonte](properties_Text.md#font-color) - [Tamanho da fonte](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Dica de ajuda](properties_Help.md#help-tip) - [Alinhamento horizontal](properties_Text.md#horizontal-alignment) - [Dimensionamento horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Itálico](properties_Text.md#italic) - [Título ajustado à imagem](properties_TextAndPicture.md#image-hugs-title)(1) - [Esquerda](properties_CoordinatesAndSizing.md#left) - [Não renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nome do objeto](properties_Object.md#object-name) - [Nome do caminho da imagem](properties_TextAndPicture.md#picture-pathname)(1) - [Direita](properties_CoordinatesAndSizing.md#right) - [Atalho](properties_Entry.md#shortcut) - [Ação padrão](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posição do título/imagem](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Sublinhado](properties_Text.md#underline) - [Variável ou expressão](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidade](properties_Display.md#visibility) - [Largura](properties_CoordinatesAndSizing.md#width) - [Com menu pop-up](properties_TextAndPicture.md#with-pop-up-menu)(2) -> (1) Não é compatível com o estilo [Help](#help).
        -> (2) Não é compatível com os estilos [Help](#help), [Flat](#flat) e [Regular](#regular). +> (1) Não é compatível com o estilo [Ajuda](#help).
        +> (2) Não suportado pelos estilos [Help](#help), [Flat](#flat) e [Regular](#regular). Outras propriedades específicas estão disponíveis, dependendo do [estilo do botão](#button-styles): diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md index b9bf8480be3854..a65581f1fc62c0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/dropdownList_Overview.md @@ -72,7 +72,7 @@ Uma [array](Concepts/arrays.md) é uma lista de valores na memória que é refer Para inicializar o array associado à lista pendente, pode: -- Insira uma lista de valores padrão nas propriedades do objeto selecionando `\` no tema [Fonte de dados](properties_DataSource.md) da Lista de Propriedades. Os valores padrão são carregados em um array automático. Pode fazer uma referência ao array usando o nome da variável associado com o objeto. +- Insira uma lista de valores padrão nas propriedades do objeto selecionando `\` no tema [Fonte de dados](properties_DataSource.md) da Property List. Os valores padrão são carregados em um array automático. Pode fazer uma referência ao array usando o nome da variável associado com o objeto. - Antes que o objeto seja exibido, execute um código que atribua valores aos elementos do array. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index fe424adf8fa630..7689f55e9a6862 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -1003,9 +1003,9 @@ Esses atributos podem ser usados para controlar o intervalo de valores de entrad O atributo behavior fornece variações para a representação regular de valores. Em 4D v15, uma única variação é proposta: -| Atributo | Valor(es) disponível(eis) | valueType(s) | Descrição | -| -------- | --------------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| behavior | threeStates | integer | Representa um valor numérico como uma caixa de seleção de três estados.
        2=semi-marcado, 1=marcado, 0=desmarcado, -1=invisível, -2=desmarcado desabilitado, -3=marcado desabilitado, -4=semi-marcado desabilitado | +| Atributo | Valor(es) disponível(eis) | valueType(s) | Descrição | +| -------- | --------------------------------------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| behavior | threeStates | integer | Representa um valor numérico como uma caixa de verificação de três estados.
        2=semi-checado, 1=marcada, 0=desmarcada, -1=invisível, -2=desmarcado desabilitado, -3=checado desabilitado, -4=semi-checado desabilitado | ```4d C_OBJECT($ob3) @@ -1106,9 +1106,9 @@ Exemplos: OB SET($ob;"requiredListReference";<>List) ``` -``` -../assets/en/FormObjects/listbox_column_objectArray_cities.png -``` + ``` + ../assets/en/FormObjects/listbox_column_objectArray_cities.png + ``` #### choiceListName e choiceListReference diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md index f0bfe559655e7e..b74dda6f4a5e3e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/compile-project.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descrição -**Compile project** permite que você compile o projeto host atual ou o projeto especificado no parâmetro *projectFile*. Para obter mais informações sobre a compilação, verifique a [página de compilação](../Project/compiler.md). +**Compile project** permite que você compile o projeto host atual ou o projeto especificado no parâmetro *projectFile*. Para obter mais informações sobre compilação, verifique a [página de compilação](../Project/compiler.md). Por padrão, o comando usa as opções do compilador definidas nas Configurações da estrutura. Você pode substituí-los passando um parâmetro *options*. As seguintes sintaxes são suportadas: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md index a481a3bb53561b..6b2e770bf46d5d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/dialog.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -The **DIALOG** command presents the *form* to the user, along with *formData* parameter(s) (optional). +O comando **DIALOG** apresenta o *formulário* ao usuário, juntamente com o(s) parâmetro(s) *formData* (opcional). This command is designed to work with customized and advanced user interfaces based on forms. Você pode usá-lo para exibir informações provenientes do banco de dados ou de outros locais, ou para fornecer recursos de entrada de dados. Ao contrário de [ADD RECORD](../commands-legacy/add-record.md) ou [MODIFY RECORD](../commands-legacy/modify-record.md), **DIALOG** dá a você controle total sobre o formulário, seus conteúdos e botões de navegação e validação. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md index 26b8ff02695b57..4689a694b9a9b1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-edit.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descrição -The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.O comando **FORM EDIT** abre o *formulário* associado a *aTable* no editor do formulário 4D, com opcionalmente *objeto* selecionado. Note que você deve ter acesso ao ambiente de Design, caso contrário o erro -9804 ("Impossível abrir formulário") será gerado. +The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.The **FORM EDIT** command opens the *form* associated to *aTable* in the 4D Form editor, with optionnally *object* selected.O comando **FORM EDIT** abre o *formulário* associado a *aTable* no editor do formulário 4D, com opcionalmente *objeto* selecionado. Note que você deve ter acesso ao ambiente de Design, caso contrário o erro -9804 ("Impossível abrir formulário") será gerado. O comando é assíncrono: ele retorna imediatamente ao método de chamada e não espera que a forma seja aberta. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md index bbb6dd27fa4203..a89e59e8aa3bf7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-event.md @@ -5,7 +5,7 @@ slug: /commands/form-event displayed_sidebar: docs --- -**FORM Event** : Object +**FORM Event** : Objeto @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -**FORM Event** returns an object containing information about the form event that has just occurred.O **FORM Event** retorna um objeto que contém informações sobre o evento de formulário que acabou de ocorrer. Normalmente, você usará **FORM Event** em um método formulário ou objeto. +O **FORM Event** retorna um objeto que contém informações sobre o evento de formulário que acabou de ocorrer. Normalmente, você usará **FORM Event** em um método formulário ou objeto. **Objeto devolvido** diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md index 10a5de836e71dd..d79d137c88e0e1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form-load.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -The **FORM LOAD** command is used to load the *form* in memory in the current process along with *formData* (optional) in order to print its data or parse its contents.O comando **FORM LOAD** é usado para carregar o *form* na memória no processo atual juntamente com *formData* (opcional) para imprimir seus dados ou analisar seu conteúdo. Só pode haver um formulário atual por processo. +O comando **FORM LOAD** é usado para carregar o *form* na memória no processo atual juntamente com *formData* (opcional) para imprimir seus dados ou analisar seu conteúdo. Só pode haver um formulário atual por processo. No parâmetro *form*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md index 54c85e123fba1f..bb24c7cbeb1d54 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descrição -The **Form** command returns the object associated with the current form (instantiated from the *formData* parameter or the user class assigned in the Form editor).O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: +O comando **Form** retorna o objeto associado ao formulário atual (instanciado a partir do parâmetro *formData* ou da classe usuário atribuída no editor de formulários). O 4D associa automaticamente um objeto ao formulário atual nos seguintes casos: - o formulário atual foi carregado por um dos comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md) ou [`FORM LOAD`](form-load.md), - o formulário atual é um subformulário, diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md index 8ed810a2a705a8..72f55ce056d295 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/license-info.md @@ -16,7 +16,7 @@ displayed_sidebar: docs ## Descrição -The **License info** command returns an object providing detailed information about the active license. +O comando **License info** retorna um objeto que fornece informações detalhadas sobre a licença ativa. If the command is executed on a 4D application that does not use locally a license (e.g. 4D remote), the command returns a Null object. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md index f044c5be71860c..eaa0046d2672fe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/new-collection.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -The `New collection` command creates a new empty or prefilled collection and returns its reference. Collections can be handled using properties and functions of the [Collection class API](../API/CollectionClass.md). +O comando `New collection` cria uma nova coleção vazia ou pré-preenchida e retorna sua referência. Coleções podem ser tratadas usando propriedades e funções da [API da classe da coleção](../API/CollectionClass.md). Se não passar nenhum parâmetro, New collection cria uma coleção vazia e retorna sua referência. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md index 5a7b84e56d29c0..06e4be9e27340c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/print-form.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Descrição -The **Print form** command simply prints *form* with the current values of fields and variables of *aTable*.O comando **Print form** simplesmente imprime *form* com os valores atuais dos campos e variáveis de *aTable*. Normalmente é usado para imprimir relatórios muito complexos que exigem controle total sobre o processo de impressão. O **formulário de impressão** não faz nenhum processamento de registros, processamento de quebras ou quebras de página. Essas operações são de sua responsabilidade. **Print form** imprime campos e variáveis em um quadro de tamanho fixo apenas. +O comando **Print form** simplesmente imprime *form* com os valores atuais dos campos e variáveis de *aTable*. Normalmente é usado para imprimir relatórios muito complexos que exigem controle total sobre o processo de impressão. O **formulário de impressão** não faz nenhum processamento de registros, processamento de quebras ou quebras de página. Essas operações são de sua responsabilidade. **Print form** imprime campos e variáveis em um quadro de tamanho fixo apenas. No parâmetro *form*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md index 4e5ccb13a57f90..499d1d70b5de05 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-activity.md @@ -27,7 +27,7 @@ displayed_sidebar: docs ## Descrição -The **Process activity** command returns a snapshot of running processes and/or (4D Server only) connected user sessions at a given time.O comando **Process activity** retorna um snapshot dos processos em execução e/ou (4D Server apenas) sessões usuário conectadas em um dado momento. Este comando retorna todos os processos, incluindo processos internos que não são alcançáveis pelo comando [Informações do processo](process-info.md). +O comando **Process activity** retorna um snapshot dos processos em execução e/ou (4D Server apenas) sessões usuário conectadas em um dado momento. Este comando retorna todos os processos, incluindo processos internos que não são alcançáveis pelo comando [Informações do processo](process-info.md). Por padrão quando usado sem quaisquer parâmetros, a **atividade de processo** retorna um objeto que contém as seguintes propriedades: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 2a05cd4f7ea236..00c5a2e1b49375 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descrição -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameterThe `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Se nenhum processo for encontrado, `Process number` retornará 0. +O comando `Process number` retorna o número do processo cujo *name* ou *id* você passou no primeiro parâmetro. Se nenhum processo for encontrado, `Process number` retornará 0. O parâmetro opcional \* permite que você recupere, de um 4D remoto, o número de um processo executado no servidor. Nesse caso, o valor retornado é negativo. Essa opção é especialmente útil ao usar os comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) e [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md index 84110d26a2835f..81b139597c2ed2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-info.md @@ -4,7 +4,7 @@ title: Session info displayed_sidebar: docs --- -**Session info** ( *sessionId* : Integer ) : Object +**Session info** ( *sessionId* : Integer ): Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md index 1b7f441f07501a..7ca2918c6c26bc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session-storage.md @@ -26,7 +26,7 @@ displayed_sidebar: docs ## Descrição -The **Session storage** command returns the storage object of the session whose unique identifier you passed in the *id* parameter. +O comando **Session storage** retorna o objeto de armazenamento da sessão cujo identificador exclusivo você passou no parâmetro *id*. Em *id*, passe o UUID da sessão para a qual você deseja obter o armazenamento. Ele é atribuído automaticamente pelo 4D (4D Server ou, para sessões autônomas, 4D single-user) e é armazenado na propriedade [**.id**](../API/SessionClass.md#id) do [objeto sessão](../API/SessionClass.md). Se a sessão não existir, o comando retornará **Null**. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md index 497c2e8fcc456c..ac3c72326c2666 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/set-allowed-methods.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descrição -The **SET ALLOWED METHODS** command designates the project methods that can be entered via the application. +O comando **SET ALLOWED METHODS** designa os métodos projeto que podem ser inseridos por meio da aplicação. 4D includes a security mechanism that filters enterable project methods from the following contexts: From 40900750eae8cc431f15cea7ae9b23d323da6352 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 14 Oct 2025 10:21:36 +0200 Subject: [PATCH 076/119] New Crowdin updates (#2965) * New translations code.json (French) * New translations current.json (French) * New translations building.md (French) * New translations updates.md (French) * New translations architecture.md (French) * New translations components.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations client-server.md (French) * New translations client-server.md (Spanish) * New translations client-server.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations version-20-r10.json (French) * New translations updates.md (French) * New translations overview.md (French) * New translations components.md (French) * New translations version-21.json (French) * New translations building.md (French) * New translations client-server.md (French) * New translations client-server.md (Spanish) * New translations client-server.md (Japanese) * New translations client-server.md (Portuguese, Brazilian) * New translations architecture.md (French) * New translations architecture.md (Spanish) * New translations architecture.md (Japanese) * New translations architecture.md (Portuguese, Brazilian) * New translations updates.md (French) * New translations wa-get-context.md (French) * New translations wa-get-context.md (Spanish) * New translations wa-get-context.md (Japanese) * New translations wa-get-context.md (Portuguese, Brazilian) * New translations wa-set-context.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Japanese) * New translations wa-set-context.md (Portuguese, Brazilian) * New translations listbox-get-property.md (French) * New translations listbox-get-property.md (Spanish) * New translations listbox-get-property.md (Japanese) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (French) * New translations listbox-set-property.md (Spanish) * New translations listbox-set-property.md (Japanese) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-get-data-source-formula.md (French) * New translations object-get-data-source-formula.md (Spanish) * New translations object-get-data-source-formula.md (Japanese) * New translations object-get-data-source-formula.md (Portuguese, Brazilian) * New translations object-set-data-source-formula.md (French) * New translations object-set-data-source-formula.md (Spanish) * New translations object-set-data-source-formula.md (Japanese) * New translations object-set-data-source-formula.md (Portuguese, Brazilian) * New translations listbox-get-property.md (French) * New translations listbox-get-property.md (Spanish) * New translations listbox-get-property.md (Japanese) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (French) * New translations listbox-set-property.md (Spanish) * New translations listbox-set-property.md (Japanese) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-set-data-source-formula.md (French) * New translations object-set-data-source-formula.md (Spanish) * New translations object-set-data-source-formula.md (Japanese) * New translations object-set-data-source-formula.md (Portuguese, Brazilian) * New translations wa-get-context.md (French) * New translations wa-get-context.md (Spanish) * New translations wa-get-context.md (Japanese) * New translations wa-get-context.md (Portuguese, Brazilian) * New translations wa-set-context.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Japanese) * New translations wa-set-context.md (Portuguese, Brazilian) * New translations listbox-get-property.md (French) * New translations listbox-get-property.md (Spanish) * New translations listbox-get-property.md (Japanese) * New translations listbox-get-property.md (Portuguese, Brazilian) * New translations listbox-set-property.md (French) * New translations listbox-set-property.md (Spanish) * New translations listbox-set-property.md (Japanese) * New translations listbox-set-property.md (Portuguese, Brazilian) * New translations object-set-data-source-formula.md (French) * New translations object-set-data-source-formula.md (Spanish) * New translations object-set-data-source-formula.md (Japanese) * New translations object-set-data-source-formula.md (Portuguese, Brazilian) * New translations wa-get-context.md (French) * New translations wa-get-context.md (Spanish) * New translations wa-get-context.md (Japanese) * New translations wa-get-context.md (Portuguese, Brazilian) * New translations wa-set-context.md (French) * New translations wa-set-context.md (Spanish) * New translations wa-set-context.md (Japanese) * New translations wa-set-context.md (Portuguese, Brazilian) --- .../current/Notes/updates.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 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 f03e57f73aeef6..ba4527b71b0a59 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -160,29 +160,29 @@ In binary databases, you need to select the required components in the 4D instal #### Developer Preview -[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. +Le [rendu **Fluent UI** pour les formulaires 4D](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) est proposé en Developer Preview pendant le programme de bêta-test. #### Changements de comportement -:::caution Index rebuild +:::caution Reconstruction d'index -4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification. +4D 21 inclut une mise à jour de la bibliothèque ICU ([voir ci-dessous](#library-table)) qui forcera une reconstruction automatique des index de type alpha, texte et objet. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification. ::: -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). -- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- Services web (SOAP) : lorsque les [sessions évolutives](../WebServer/sessions.md#enabling-web-sessions) sont activées, les services web s'exécutent désormais dans des [**process préemptifs**](../Develop/preemptive.md) en mode compilé. Assurez-vous que votre code SOAP est thread-safe. +- Serveur web : la prise en charge des URLs dépréciés `4DSYNC/` et `4DCGI/` est supprimée. Plus aucun traitement spécifique n'est effectué sur ces URLs. +- Les sessions utilisateurs Web sont désormais renvoyées par [`Process activity`](../commands/process-activity.md). +- La commande [`HIGHLIGHT TEXT`](../commands/highlight-text) est maintenant prise en charge dans le contexte des sous-formulaires. +- **Les composants ne sont plus intégrés** : à partir de 4D 21, les composants développés par 4D (4D NetKit, 4D SVG..., voir [cette liste](../Extensions/overview-old.md)) ne sont plus intégrés dans l'application 4D. Lors de la mise à jour d'un projet vers 4D 21 ou supérieur, une boîte de dialogue s'affiche :
        ![alt-text](../assets/en/getStart/convert.png)
        - \- **Import**: import automatically 4D components as dependencies to the project
        - \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        - \- **Ask later**: do not import components and display the dialog at the next project opening. + \- **Import**/**Importer** : importer automatiquement les composants 4D comme dépendances du projet
        + \- **Ignore**/**Ignorer** : ne pas importer les composants et vous laisser [gérer les composants manuellement](../Project/components.md)
        + \- **Ask later**/**Redemander** : ne pas importer les composants et afficher la boîte de dialogue lors de la prochaine ouverture du projet. :::note -In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). +Dans les bases de données binaires, vous devez sélectionner les composants requis dans le programme d'installation de 4D ou les télécharger à partir du [portail de téléchargement des produits 4D](https://product-download.4d.com/?type=components). ::: From 625be3211573827967e8303ee83dcd57601d8d79 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 14 Oct 2025 15:45:34 +0200 Subject: [PATCH 077/119] links to standard actions --- docs/FormObjects/properties_Action.md | 4 ++-- docs/WritePro/user-legacy/defining-a-4d-write-pro-area.md | 2 +- .../version-20-R10/FormObjects/properties_Action.md | 4 ++-- versioned_docs/version-21/FormObjects/properties_Action.md | 4 ++-- .../WritePro/user-legacy/defining-a-4d-write-pro-area.md | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/FormObjects/properties_Action.md b/docs/FormObjects/properties_Action.md index 3b80539ec0b30d..10339f95319519 100644 --- a/docs/FormObjects/properties_Action.md +++ b/docs/FormObjects/properties_Action.md @@ -205,7 +205,7 @@ In other cases (list boxes based on named selections, columns associated with ex --- ## Standard action -Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. +Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). You can assign both a standard action and a project method to an object. In this case, the standard action is usually executed after the method and 4D uses this action to enable/disable the object according to the current context. When an object is deactivated, the associated project method cannot be executed. @@ -214,7 +214,7 @@ You can assign both a standard action and a project method to an object. In this |Name|Data Type|Possible Values| |---|---|---| -|action|string |The name of a [valid standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html).| +|action|string |The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objects Supported diff --git a/docs/WritePro/user-legacy/defining-a-4d-write-pro-area.md b/docs/WritePro/user-legacy/defining-a-4d-write-pro-area.md index c00f2fc291c7e2..360595e057011e 100644 --- a/docs/WritePro/user-legacy/defining-a-4d-write-pro-area.md +++ b/docs/WritePro/user-legacy/defining-a-4d-write-pro-area.md @@ -244,7 +244,7 @@ The following standard actions are available with 4D Write Pro areas. ### Other actions -Several other standard actions are available in 4D forms and can be used in 4D Write Pro areas: +[Several other standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) are available in 4D forms and can be used in 4D Write Pro areas: * *Edit actions*, such as copy/paste actions. * *Font* actions, such as fontBold or fontSize. diff --git a/versioned_docs/version-20-R10/FormObjects/properties_Action.md b/versioned_docs/version-20-R10/FormObjects/properties_Action.md index 3b80539ec0b30d..10339f95319519 100644 --- a/versioned_docs/version-20-R10/FormObjects/properties_Action.md +++ b/versioned_docs/version-20-R10/FormObjects/properties_Action.md @@ -205,7 +205,7 @@ In other cases (list boxes based on named selections, columns associated with ex --- ## Standard action -Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. +Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). You can assign both a standard action and a project method to an object. In this case, the standard action is usually executed after the method and 4D uses this action to enable/disable the object according to the current context. When an object is deactivated, the associated project method cannot be executed. @@ -214,7 +214,7 @@ You can assign both a standard action and a project method to an object. In this |Name|Data Type|Possible Values| |---|---|---| -|action|string |The name of a [valid standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html).| +|action|string |The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objects Supported diff --git a/versioned_docs/version-21/FormObjects/properties_Action.md b/versioned_docs/version-21/FormObjects/properties_Action.md index 3b80539ec0b30d..10339f95319519 100644 --- a/versioned_docs/version-21/FormObjects/properties_Action.md +++ b/versioned_docs/version-21/FormObjects/properties_Action.md @@ -205,7 +205,7 @@ In other cases (list boxes based on named selections, columns associated with ex --- ## Standard action -Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. +Typical activities to be performed by active objects (*e.g.*, letting the user accept, cancel, or delete records, move between records or from page to page in a multi-page form, etc.) have been predefined by 4D as standard actions. They are described in detail in the [Standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) section of the *Design Reference*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). You can assign both a standard action and a project method to an object. In this case, the standard action is usually executed after the method and 4D uses this action to enable/disable the object according to the current context. When an object is deactivated, the associated project method cannot be executed. @@ -214,7 +214,7 @@ You can assign both a standard action and a project method to an object. In this |Name|Data Type|Possible Values| |---|---|---| -|action|string |The name of a [valid standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html).| +|action|string |The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objects Supported diff --git a/versioned_docs/version-21/WritePro/user-legacy/defining-a-4d-write-pro-area.md b/versioned_docs/version-21/WritePro/user-legacy/defining-a-4d-write-pro-area.md index c00f2fc291c7e2..360595e057011e 100644 --- a/versioned_docs/version-21/WritePro/user-legacy/defining-a-4d-write-pro-area.md +++ b/versioned_docs/version-21/WritePro/user-legacy/defining-a-4d-write-pro-area.md @@ -244,7 +244,7 @@ The following standard actions are available with 4D Write Pro areas. ### Other actions -Several other standard actions are available in 4D forms and can be used in 4D Write Pro areas: +[Several other standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) are available in 4D forms and can be used in 4D Write Pro areas: * *Edit actions*, such as copy/paste actions. * *Font* actions, such as fontBold or fontSize. From 55e46c38cc8b3f9bd5a16227bb0fea30ccaaf988 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 14 Oct 2025 18:10:40 +0200 Subject: [PATCH 078/119] fixes in 21 --- docs/API/EntityClass.md | 1 - docs/FormObjects/properties_Action.md | 2 +- docs/WebServer/sessions.md | 4 ++-- versioned_docs/version-20-R10/WebServer/sessions.md | 4 ++-- versioned_docs/version-21/API/EntityClass.md | 1 - versioned_docs/version-21/WebServer/sessions.md | 4 ++-- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/API/EntityClass.md b/docs/API/EntityClass.md index 13cba5842aa523..2b84626000140f 100644 --- a/docs/API/EntityClass.md +++ b/docs/API/EntityClass.md @@ -992,7 +992,6 @@ The object returned by `.lock()` contains the following properties: |---|---|---| |`dk status entity does not exist anymore`| 5 |The entity no longer exists in the data. This error can occur in the following cases:
      1. the entity has been dropped (the stamp has changed and the memory space is now free)
      2. the entity has been dropped and replaced by another one with another primary key (the stamp has changed and a new entity now uses the memory space). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. When using `.lock()`, this error can be returned when `dk reload if stamp changed` option is used

      3. **Associated statusText**: "Entity does not exist anymore"| |`dk status locked`| 3 |The entity is locked by a pessimistic lock.**Associated statusText**: "Already locked" -|`dk status mild validation error`|7|Can be returned by the developer only in validate events and do not require| |`dk status serious error`| 4 |A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error"| |`dk status stamp has changed`|2|The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      4. with `.save()`: error only if the `dk auto merge` option is not used
      5. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      6. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      7. **Associated statusText**: "Stamp has changed"| diff --git a/docs/FormObjects/properties_Action.md b/docs/FormObjects/properties_Action.md index 10339f95319519..5793adcc03fd57 100644 --- a/docs/FormObjects/properties_Action.md +++ b/docs/FormObjects/properties_Action.md @@ -15,7 +15,7 @@ Two drag modes are available: In custom mode, basically the whole drag-and-drop operation is handled by the programmer. This mode lets you implement any interface based upon drag-on-drop, including interfaces that do not necessarily transport data, but can perform any action like opening files or triggering a calculation. This mode is based upon a combination of specific properties, events, and commands from the `Pasteboard` theme. - **Automatic**: In this mode, 4D **copies** text or pictures directly from the form object. It can then be used in the same 4D area, between two 4D areas, or between 4D and another application. For example, automatic drag (and drop) lets you copy a value between two fields without using programming: ![](../assets/en/FormObjects/property_automaticDragDrop.png) -![](../assets/en/FormObjects/property_automaticDragDrop2.png) +![](../assets/en/FormObjects/property_automaticDragDrop2.png)
        In this mode, the `On Begin Drag` form event is NOT generated. If you want to "force" the use of the custom drag while automatic drag is enabled, hold down the **Alt** (Windows) or **Option** (macOS) key during the action. This option is not available for pictures. For more information, refer to [Drag and Drop](https://doc.4d.com/4Dv20/4D/20.6/Drag-and-Drop.300-7487471.en.html) in the *4D Language Reference* manual. diff --git a/docs/WebServer/sessions.md b/docs/WebServer/sessions.md index 44314a3c4fd8da..d0a2bd033577be 100644 --- a/docs/WebServer/sessions.md +++ b/docs/WebServer/sessions.md @@ -209,9 +209,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: diff --git a/versioned_docs/version-20-R10/WebServer/sessions.md b/versioned_docs/version-20-R10/WebServer/sessions.md index 8104420d4d49c1..1bc9097f9490c2 100644 --- a/versioned_docs/version-20-R10/WebServer/sessions.md +++ b/versioned_docs/version-20-R10/WebServer/sessions.md @@ -209,9 +209,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: diff --git a/versioned_docs/version-21/API/EntityClass.md b/versioned_docs/version-21/API/EntityClass.md index 13cba5842aa523..2b84626000140f 100644 --- a/versioned_docs/version-21/API/EntityClass.md +++ b/versioned_docs/version-21/API/EntityClass.md @@ -992,7 +992,6 @@ The object returned by `.lock()` contains the following properties: |---|---|---| |`dk status entity does not exist anymore`| 5 |The entity no longer exists in the data. This error can occur in the following cases:
      8. the entity has been dropped (the stamp has changed and the memory space is now free)
      9. the entity has been dropped and replaced by another one with another primary key (the stamp has changed and a new entity now uses the memory space). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. When using `.lock()`, this error can be returned when `dk reload if stamp changed` option is used

      10. **Associated statusText**: "Entity does not exist anymore"| |`dk status locked`| 3 |The entity is locked by a pessimistic lock.**Associated statusText**: "Already locked" -|`dk status mild validation error`|7|Can be returned by the developer only in validate events and do not require| |`dk status serious error`| 4 |A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error"| |`dk status stamp has changed`|2|The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      11. with `.save()`: error only if the `dk auto merge` option is not used
      12. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      13. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      14. **Associated statusText**: "Stamp has changed"| diff --git a/versioned_docs/version-21/WebServer/sessions.md b/versioned_docs/version-21/WebServer/sessions.md index 44314a3c4fd8da..d0a2bd033577be 100644 --- a/versioned_docs/version-21/WebServer/sessions.md +++ b/versioned_docs/version-21/WebServer/sessions.md @@ -209,9 +209,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: From a330e3b307ba91293ade496d60da835493a160e4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 10:21:24 +0200 Subject: [PATCH 079/119] New Crowdin updates (#2966) * New translations clientserver.md (French) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations new-collection.md (Portuguese, Brazilian) * New translations http-request-handler.md (French) * New translations openaichathelper.md (Japanese) * New translations orda-events.md (French) * New translations collectionclass.md (French) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations sessionclass.md (French) * New translations onafteredit.md (French) * New translations overview.md (French) * New translations http-request-handler.md (French) * New translations preemptiveweb.md (French) * New translations sessions.md (French) * New translations openaichathelper.md (Japanese) * New translations session.md (French) * New translations openaitool.md (Japanese) * New translations http-rules.md (French) * New translations http-rules.md (Spanish) * New translations http-rules.md (Japanese) * New translations http-rules.md (Portuguese, Brazilian) * New translations collectionclass.md (French) * New translations dataclassclass.md (French) * New translations entityclass.md (French) * New translations clientserver.md (French) * New translations onafteredit.md (French) * New translations webarea_overview.md (Japanese) * New translations creating.md (French) * New translations updates.md (French) * New translations updates.md (Spanish) * New translations updates.md (Japanese) * New translations updates.md (Portuguese, Brazilian) * New translations entities.md (French) * New translations entities.md (Spanish) * New translations entities.md (Portuguese, Brazilian) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations methods.md (Spanish) * New translations methods.md (Japanese) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations date-time-formats.md (French) * New translations $filter.md (French) * New translations $method.md (Spanish) * New translations $method.md (Japanese) * New translations $method.md (Portuguese, Brazilian) * New translations classfunctions.md (French) * New translations transformation-tags.md (French) * New translations vp-copy-to-object.md (French) * New translations vp-copy-to-object.md (Spanish) * New translations vp-copy-to-object.md (Japanese) * New translations vp-copy-to-object.md (Portuguese, Brazilian) * New translations vp-export-to-blob.md (French) * New translations vp-export-to-blob.md (Spanish) * New translations vp-export-to-blob.md (Portuguese, Brazilian) * New translations vp-find.md (French) * New translations vp-find.md (Spanish) * New translations vp-find.md (Japanese) * New translations vp-import-document.md (French) * New translations vp-import-document.md (Spanish) * New translations vp-import-document.md (Japanese) * New translations vp-move-cells.md (French) * New translations vp-move-cells.md (Spanish) * New translations vp-move-cells.md (Japanese) * New translations vp-row.md (French) * New translations vp-set-data-context.md (Spanish) * New translations vp-set-data-context.md (Japanese) * New translations vp-set-show-print-lines.md (Japanese) * New translations vp-set-workbook-options.md (French) * New translations vp-set-workbook-options.md (Spanish) * New translations vp-set-workbook-options.md (Japanese) * New translations vp-set-workbook-options.md (Portuguese, Brazilian) * New translations configuring.md (French) * New translations configuring.md (Spanish) * New translations http-request-handler.md (French) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (French) * New translations http-rules.md (Spanish) * New translations http-rules.md (Japanese) * New translations http-rules.md (Portuguese, Brazilian) * New translations preemptiveweb.md (French) * New translations qodly-studio.md (French) * New translations qodly-studio.md (Spanish) * New translations qodly-studio.md (Japanese) * New translations qodly-studio.md (Portuguese, Brazilian) * New translations sessions.md (French) * New translations sessions.md (Spanish) * New translations webserverconfig.md (French) * New translations webserverconfig.md (Spanish) * New translations webserverconfig.md (Japanese) * New translations webserverconfig.md (Portuguese, Brazilian) * New translations wp-add-picture.md (French) * New translations wp-add-picture.md (Japanese) * New translations wp-add-picture.md (Portuguese, Brazilian) * New translations wp-export-document.md (French) * New translations wp-export-document.md (Spanish) * New translations wp-export-document.md (Japanese) * New translations wp-export-document.md (Portuguese, Brazilian) * New translations wp-export-variable.md (French) * New translations wp-export-variable.md (Spanish) * New translations wp-export-variable.md (Japanese) * New translations wp-export-variable.md (Portuguese, Brazilian) * New translations wp-get-attributes.md (French) * New translations wp-get-attributes.md (Spanish) * New translations wp-get-attributes.md (Japanese) * New translations wp-get-attributes.md (Portuguese, Brazilian) * New translations wp-insert-break.md (Portuguese, Brazilian) * New translations wp-insert-formula.md (French) * New translations wp-insert-formula.md (Spanish) * New translations wp-insert-formula.md (Portuguese, Brazilian) * New translations wp-insert-picture.md (French) * New translations wp-insert-picture.md (Japanese) * New translations wp-insert-picture.md (Portuguese, Brazilian) * New translations wp-reset-attributes.md (French) * New translations wp-reset-attributes.md (Spanish) * New translations wp-reset-attributes.md (Japanese) * New translations wp-reset-attributes.md (Portuguese, Brazilian) * New translations wp-set-attributes.md (French) * New translations wp-set-attributes.md (Spanish) * New translations wp-set-attributes.md (Japanese) * New translations wp-set-attributes.md (Portuguese, Brazilian) * New translations managing-formulas.md (French) * New translations managing-formulas.md (Spanish) * New translations managing-formulas.md (Japanese) * New translations managing-formulas.md (Portuguese, Brazilian) * New translations openaichatapi.md (Japanese) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Japanese) * New translations openaitool.md (Spanish) * New translations openaitool.md (Japanese) * New translations collectionclass.md (French) * New translations entityclass.md (French) * New translations entityclass.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Portuguese, Brazilian) * New translations forms.md (Spanish) * New translations properties_action.md (French) * New translations properties_action.md (Spanish) * New translations properties_action.md (Japanese) * New translations properties_action.md (Portuguese, Brazilian) * New translations $filter.md (Spanish) * New translations sessions.md (French) * New translations sessions.md (Spanish) * New translations sessions.md (Japanese) * New translations sessions.md (Portuguese, Brazilian) * New translations http-request-handler.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations openaiimagesapi.md (Spanish) * New translations openaimessage.md (Spanish) * New translations orda-events.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations orda-events.md (Spanish) * New translations vp-copy-to-object.md (Spanish) * New translations vp-move-cells.md (Spanish) * New translations sessions.md (French) * New translations sessions.md (Spanish) * New translations sessions.md (Japanese) * New translations sessions.md (Portuguese, Brazilian) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations openaiimagesapi.md (Spanish) * New translations zip-create-archive.md (Spanish) * New translations openaitool.md (Spanish) * New translations http-rules.md (Spanish) * New translations entityclass.md (French) * New translations dataclassclass.md (Spanish) * New translations entityclass.md (Spanish) * New translations entityclass.md (Japanese) * New translations entityclass.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Spanish) * New translations forms.md (Spanish) * New translations zip-create-archive.md (Spanish) * New translations orda-events.md (Spanish) * New translations $filter.md (Spanish) * New translations vp-copy-to-object.md (Spanish) * New translations vp-move-cells.md (Spanish) * New translations sessions.md (French) * New translations sessions.md (Spanish) * New translations sessions.md (Japanese) * New translations sessions.md (Portuguese, Brazilian) * New translations openaichatcompletionsmessagesapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaiimage.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations openaiimagesapi.md (Spanish) * New translations openaimessage.md (Spanish) --- .../current/API/EntityClass.md | 19 +- .../current/API/TCPEventClass.md | 6 +- .../current/FormEditor/forms.md | 2 +- .../current/FormObjects/properties_Action.md | 16 +- .../current/Notes/updates.md | 2 +- .../current/ORDA/orda-events.md | 40 ++-- .../current/REST/$filter.md | 2 +- .../current/WebServer/http-request-handler.md | 2 +- .../current/WebServer/http-rules.md | 21 ++- .../current/WebServer/sessions.md | 6 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 36 ++-- .../current/aikit/Classes/OpenAIImage.md | 12 +- .../aikit/Classes/OpenAIImageParameters.md | 4 +- .../current/aikit/Classes/OpenAIImagesAPI.md | 2 +- .../current/aikit/Classes/OpenAIMessage.md | 14 +- .../current/aikit/Classes/OpenAITool.md | 4 +- .../version-20-R10/API/TCPEventClass.md | 6 +- .../version-20-R10/ORDA/orda-events.md | 10 +- .../ViewPro/commands/vp-copy-to-object.md | 8 +- .../ViewPro/commands/vp-move-cells.md | 8 +- .../version-20-R10/WebServer/sessions.md | 6 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- .../aikit/Classes/OpenAIImage.md | 12 +- .../aikit/Classes/OpenAIImageParameters.md | 4 +- .../aikit/Classes/OpenAIImagesAPI.md | 2 +- .../commands/zip-create-archive.md | 2 +- .../version-21/API/DataClassClass.md | 10 +- .../version-21/API/EntityClass.md | 19 +- .../version-21/API/TCPEventClass.md | 6 +- .../version-21/FormEditor/forms.md | 2 +- .../version-21/Notes/updates.md | 3 +- .../version-21/ORDA/entities.md | 4 +- .../version-21/ORDA/orda-events.md | 64 +++---- .../version-21/Preferences/methods.md | 8 +- .../version-21/Project/components.md | 2 +- .../version-21/REST/$filter.md | 2 +- .../version-21/REST/$method.md | 3 +- .../ViewPro/commands/vp-copy-to-object.md | 8 +- .../ViewPro/commands/vp-export-to-blob.md | 2 +- .../version-21/ViewPro/commands/vp-find.md | 16 +- .../ViewPro/commands/vp-import-document.md | 54 +++--- .../ViewPro/commands/vp-move-cells.md | 8 +- .../ViewPro/commands/vp-set-data-context.md | 8 +- .../commands/vp-set-workbook-options.md | 120 ++++++------ .../version-21/ViewPro/configuring.md | 20 +- .../WebServer/http-request-handler.md | 2 +- .../version-21/WebServer/http-rules.md | 21 ++- .../version-21/WebServer/qodly-studio.md | 5 +- .../version-21/WebServer/sessions.md | 6 +- .../version-21/WebServer/webServerConfig.md | 8 +- .../WritePro/commands/wp-export-document.md | 38 ++-- .../WritePro/commands/wp-export-variable.md | 44 ++--- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-insert-formula.md | 2 +- .../WritePro/commands/wp-reset-attributes.md | 2 +- .../WritePro/commands/wp-set-attributes.md | 2 +- .../version-21/WritePro/managing-formulas.md | 32 ++-- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 36 ++-- .../version-21/aikit/Classes/OpenAIImage.md | 12 +- .../aikit/Classes/OpenAIImageParameters.md | 4 +- .../aikit/Classes/OpenAIImagesAPI.md | 2 +- .../version-21/aikit/Classes/OpenAIMessage.md | 14 +- .../version-21/aikit/Classes/OpenAITool.md | 4 +- .../version-21/commands/zip-create-archive.md | 2 +- .../current/API/CollectionClass.md | 12 +- .../current/API/EntityClass.md | 79 ++++---- .../current/Desktop/clientServer.md | 2 +- .../current/FormObjects/properties_Action.md | 14 +- .../current/Notes/updates.md | 2 +- .../current/ORDA/orda-events.md | 2 +- .../current/WebServer/http-request-handler.md | 26 +-- .../current/WebServer/http-rules.md | 19 +- .../current/WebServer/preemptiveWeb.md | 2 +- .../current/WebServer/sessions.md | 176 +++++++++--------- .../version-20-R10/API/CollectionClass.md | 12 +- .../version-20-R10/API/DataClassClass.md | 2 +- .../version-20-R10/API/EntityClass.md | 2 +- .../version-20-R10/API/SessionClass.md | 4 +- .../version-20-R10/Events/onAfterEdit.md | 10 +- .../version-20-R10/Extensions/overview.md | 4 +- .../WebServer/http-request-handler.md | 2 +- .../version-20-R10/WebServer/preemptiveWeb.md | 8 +- .../version-20-R10/WebServer/sessions.md | 174 ++++++++--------- .../version-20-R10/commands/session.md | 2 +- .../version-21/API/CollectionClass.md | 12 +- .../version-21/API/DataClassClass.md | 10 +- .../version-21/API/EntityClass.md | 79 ++++---- .../version-21/Desktop/clientServer.md | 2 +- .../version-21/Events/onAfterEdit.md | 10 +- .../version-21/Menus/creating.md | 2 +- .../version-21/Notes/updates.md | 139 +++++++------- .../version-21/ORDA/entities.md | 6 +- .../version-21/ORDA/orda-events.md | 28 +-- .../version-21/Project/components.md | 4 +- .../version-21/Project/date-time-formats.md | 16 +- .../version-21/REST/$filter.md | 10 +- .../version-21/REST/ClassFunctions.md | 2 +- .../version-21/Tags/transformation-tags.md | 2 +- .../ViewPro/commands/vp-copy-to-object.md | 8 +- .../ViewPro/commands/vp-export-to-blob.md | 2 +- .../version-21/ViewPro/commands/vp-find.md | 16 +- .../ViewPro/commands/vp-import-document.md | 54 +++--- .../ViewPro/commands/vp-move-cells.md | 8 +- .../version-21/ViewPro/commands/vp-row.md | 2 +- .../commands/vp-set-workbook-options.md | 120 ++++++------ .../version-21/ViewPro/configuring.md | 20 +- .../WebServer/http-request-handler.md | 26 +-- .../version-21/WebServer/http-rules.md | 19 +- .../version-21/WebServer/preemptiveWeb.md | 2 +- .../version-21/WebServer/qodly-studio.md | 5 +- .../version-21/WebServer/sessions.md | 176 +++++++++--------- .../version-21/WebServer/webServerConfig.md | 6 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../WritePro/commands/wp-export-document.md | 40 ++-- .../WritePro/commands/wp-export-variable.md | 40 ++-- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-insert-formula.md | 2 +- .../WritePro/commands/wp-insert-picture.md | 2 +- .../WritePro/commands/wp-reset-attributes.md | 2 +- .../WritePro/commands/wp-set-attributes.md | 2 +- .../version-21/WritePro/managing-formulas.md | 54 +++--- .../current/API/EntityClass.md | 1 - .../current/FormObjects/properties_Action.md | 14 +- .../current/Notes/updates.md | 2 +- .../current/WebServer/http-rules.md | 13 +- .../current/WebServer/sessions.md | 2 +- .../current/aikit/Classes/OpenAIChatHelper.md | 112 +++++------ .../current/aikit/Classes/OpenAITool.md | 6 +- .../version-20-R10/WebServer/sessions.md | 2 +- .../aikit/Classes/OpenAIChatHelper.md | 2 +- .../version-21/API/EntityClass.md | 1 - .../FormObjects/webArea_overview.md | 2 +- .../version-21/Notes/updates.md | 61 +++--- .../version-21/ORDA/orda-events.md | 26 +-- .../version-21/Preferences/methods.md | 8 +- .../version-21/Project/components.md | 2 +- .../version-21/REST/$method.md | 1 + .../ViewPro/commands/vp-copy-to-object.md | 8 +- .../version-21/ViewPro/commands/vp-find.md | 4 +- .../ViewPro/commands/vp-import-document.md | 54 +++--- .../ViewPro/commands/vp-move-cells.md | 8 +- .../ViewPro/commands/vp-set-data-context.md | 8 +- .../commands/vp-set-show-print-lines.md | 2 +- .../commands/vp-set-workbook-options.md | 120 ++++++------ .../version-21/WebServer/http-rules.md | 13 +- .../version-21/WebServer/qodly-studio.md | 6 +- .../version-21/WebServer/sessions.md | 2 +- .../version-21/WebServer/webServerConfig.md | 3 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../WritePro/commands/wp-export-document.md | 38 ++-- .../WritePro/commands/wp-export-variable.md | 38 ++-- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-insert-picture.md | 2 +- .../WritePro/commands/wp-reset-attributes.md | 2 +- .../WritePro/commands/wp-set-attributes.md | 2 +- .../version-21/WritePro/managing-formulas.md | 32 ++-- .../version-21/aikit/Classes/OpenAIChatAPI.md | 2 +- .../aikit/Classes/OpenAIChatHelper.md | 110 +++++------ .../version-21/aikit/Classes/OpenAITool.md | 6 +- .../current/API/EntityClass.md | 1 - .../current/FormObjects/properties_Action.md | 16 +- .../current/Notes/updates.md | 2 +- .../current/WebServer/http-rules.md | 13 +- .../current/WebServer/sessions.md | 4 +- .../current/commands/new-collection.md | 2 +- .../version-20-R10/WebServer/sessions.md | 4 +- .../version-21/API/EntityClass.md | 1 - .../version-21/Notes/updates.md | 5 +- .../version-21/ORDA/entities.md | 2 +- .../version-21/ORDA/orda-events.md | 26 +-- .../version-21/Project/components.md | 2 +- .../version-21/REST/$method.md | 3 +- .../ViewPro/commands/vp-copy-to-object.md | 8 +- .../ViewPro/commands/vp-export-to-blob.md | 2 +- .../commands/vp-set-workbook-options.md | 2 +- .../version-21/WebServer/http-rules.md | 13 +- .../version-21/WebServer/qodly-studio.md | 5 +- .../version-21/WebServer/sessions.md | 4 +- .../version-21/WebServer/webServerConfig.md | 6 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../WritePro/commands/wp-export-document.md | 38 ++-- .../WritePro/commands/wp-export-variable.md | 38 ++-- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-insert-break.md | 2 +- .../WritePro/commands/wp-insert-formula.md | 20 +- .../WritePro/commands/wp-insert-picture.md | 22 +-- .../WritePro/commands/wp-reset-attributes.md | 2 +- .../WritePro/commands/wp-set-attributes.md | 2 +- .../version-21/WritePro/managing-formulas.md | 32 ++-- 191 files changed, 1689 insertions(+), 1646 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md index 4fbea5520fbe57..ae8faab8fc75f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -338,10 +338,10 @@ vCompareResult1 (se devuelven todas las diferencias):
        Historia -| Lanzamiento | Modificaciones | -| ----------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | -------------------------- | +| 21 | Añadidos los estados 7 y 8 | +| 17 | Añadidos |
        @@ -368,7 +368,7 @@ De lo contrario, puede pasar la opción `dk force drop if stamp changed` en el p **Resultado** -The object returned by `.drop()` contains the following properties: +El objeto devuelto por `.drop()` contiene las siguientes propiedades: | Propiedad | | Tipo | Descripción | | --------------------------------- | ----------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -1019,7 +1019,6 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      15. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      16. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      21. **Associated statusText**: "Stamp has changed" | @@ -1215,10 +1214,10 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades:
        Historia -| Lanzamiento | Modificaciones | -| ----------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | -------------------------- | +| 21 | Añadidos los estados 7 y 8 | +| 17 | Añadidos |
        diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md index 1bd070ea6af91a..20c901bac3061d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md @@ -81,9 +81,9 @@ La propiedad `.type` contiene el tipo del eve - `"connection"`: Indicates that a TCPConnection was successfully established. - `"data"`: indica que los datos han sido recibidos. -- `"error"`: Indicates that an error occurred during the TCPConnection. -- `"close"`: Indicates that the TCPConnection has been properly closed. -- `"terminate"`: Indicates that the TCPConnection is about to be released. +- `"error"`: indica que se ha producido un error durante la TCPConnection. +- `"close"`: indica que la TCPConnection ha sido correctamente cerrada. +- `"terminate"`: indica que el TCPConnection está a punto de ser liberado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index dc0b5a8bdb81ab..778f2c08cd4d61 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -155,7 +155,7 @@ Fluent UI rendering offers modern and attractive controls, support of dark/light When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- El comando `FORM Window theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. - A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index 1e4635722fa0b1..596695ff6e0403 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -13,10 +13,10 @@ Hay dos modos de arrastrar disponibles: - **Personalizado**: en este modo, toda operación de arrastrar realizada en el objeto dispara el evento formulario `On Begin Drag` en el contexto del objeto. A continuación, gestiona la acción arrastrar utilizando un método. En el modo personalizado, básicamente toda la operación de arrastrar y soltar es realizada por el programador. Este modo le permite implementar cualquier interfaz basada en la función de arrastrar y soltar, incluidas las interfaces que no necesariamente transportan datos, sino que pueden realizar cualquier acción como abrir archivos o activar un cálculo. Este modo se basa en una combinación de propiedades, eventos y comandos específicos del tema `Portapapeles`. -- **Automático**: en este modo, 4D **copia** el texto o las imágenes directamente desde el objeto formulario. Puede utilizarse en la misma área 4D, entre dos áreas 4D o entre 4D y otra aplicación. Por ejemplo, arrastrar (y soltar) automáticamente le permite copiar un valor entre dos campos sin usar programación:\ - ![](../assets/en/FormObjects/property_automaticDragDrop.png)\ - ![](../assets/en/FormObjects/property_automaticDragDrop2.png) - En este modo, NO se genera el evento del formulario `On Begin Drag`. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opción no está disponible para las imágenes. +- **Automático**: en este modo, 4D **copia** el texto o las imágenes directamente desde el objeto formulario. Puede utilizarse en la misma área 4D, entre dos áreas 4D o entre 4D y otra aplicación. For example, automatic drag (and drop) lets you copy a value between two fields without using programming: + ![](../assets/en/FormObjects/property_automaticDragDrop.png) + ![](../assets/en/FormObjects/property_automaticDragDrop2.png)
        + In this mode, the `On Begin Drag` form event is NOT generated. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opción no está disponible para las imágenes. Para más información, consulte [Arrastrar y soltar](https://doc.4d.com/4Dv20/4D/20.6/Drag-and-Drop.300-7487471.en.html) en el manual *Lenguaje 4D*. @@ -189,15 +189,15 @@ En otros casos (list box basados en selecciones temporales, columnas asociadas a ## Acción estándar -Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. +Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Puede asignar al mismo tiempo una acción estándar y un método proyecto de un objeto. En este caso, la acción estándar suele ejecutarse después del método y 4D utiliza esta acción para activar/desactivar el objeto según el contexto actual. Cuando se desactiva un objeto, no se puede ejecutar el método proyecto asociado. #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| action | string | El nombre de una [acción estándar válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nombre | Tipos de datos | Valores posibles | +| ------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objetos soportados 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 8631b7c6f90353..6fc55a8744ccc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -44,7 +44,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 086ad86ee9d7d0..f6b897a82a5694 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Eventos ---
        Historia @@ -58,21 +58,21 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests La siguiente tabla lista los eventos ORDA junto con sus reglas. -| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | -| :------------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | -| Atributo tocado | Atributo | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | no | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | no | -| Before saving an entity | Atributo | `validateSave ()` | server | sí | -| | Entity | `validateSave()` | server | sí | -| When saving an entity | Atributo | `saving ()` | server | sí | -| | Entity | `saving()` | server | sí | -| After saving an entity | Entity | `afterSave()` | server | no | -| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | -| | Entity | `validateDrop()` | server | sí | -| When dropping an entity | Atributo | `dropping ()` | server | sí | -| | Entity | `dropping()` | server | sí | -| After dropping an entity | Entity | `afterDrop()` | server | no | +| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | +| :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | +| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | +| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| Before saving an entity | Atributo | `validateSave ()` | server | sí | +| | Entity | `validateSave()` | server | sí | +| When saving an entity | Atributo | `saving ()` | server | sí | +| | Entity | `saving()` | server | sí | +| After saving an entity | Entity | `afterSave()` | server | no | +| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | +| | Entity | `validateDrop()` | server | sí | +| When dropping an entity | Atributo | `dropping ()` | server | sí | +| | Entity | `dropping()` | server | sí | +| After dropping an entity | Entity | `afterDrop()` | server | no | :::note @@ -89,12 +89,12 @@ Event functions accept a single *event* object as parameter. When the function i | "kind" | siempre | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | | *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nombre del atributo (por ejemplo, "nombre") | | | *dataClassName* | siempre | String | Nombre de la Dataclass (*ej.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | +| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | +| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | | "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | | "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | -## Error object +## Objeto de error [Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. @@ -102,7 +102,7 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propiedad | Tipo | Descripción | Set by the developer | +| Propiedad | Tipo | Descripción | Definido por el desarrollador | | ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | | errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | | message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md index 87fad52e60c764..42725545b33289 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -27,7 +27,7 @@ Por ejemplo: `$filter="firstName=john AND salary>20000"` donde `firstName` y `sa ### Utilizar la propiedad params -You can also use 4D's `params` property which is a collection of values. +También puede utilizar la propiedad `params` de 4D, que es una colección de valores. **\{attribute\} {comparator} {placeholder} {AND/OR/EXCEPT} \{attribute\} {comparator} {placeholder}&$params='["{value1}","{value2}"]'** diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index facb115670bf95..e0a480493e6133 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -28,7 +28,7 @@ For security reasons, external access to the datastore can be disallowed in 4D. ::: -## How to set handlers +## Cómo definir los manejadores You can declare HTTP Request handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index e087d1672ba793..e88e079122443e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -1,6 +1,6 @@ --- id: http-rules -title: HTTP Rules +title: Reglas HTTP --- You can define HTTP rules to control HTTP response headers for any requests received by the 4D web server, including REST requests. You can add, modify, or remove HTTP headers, send redirections or set the HTTP status. This feature is useful to implement security policies based upon the handling of headers. @@ -14,7 +14,7 @@ HTTP rules are supported in the following contexts: - [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, - a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). -## How to set rules +## Cómo definir reglas You can declare HTTP response rules: @@ -29,7 +29,7 @@ If both a **HTTPRules.json** file and a call to the [`WEB Server`](../commands/w If the URI of the request does not match any of the RegEx patterns, the web server returns a default response. -## Rules Definition +## Definición de reglas The **HTTPRules.json** file or the [`.rules`](../API/WebServerClass.md#rules) property must contain a collection of **rule objects**. @@ -60,16 +60,21 @@ The following action keywords are supported: | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. If a header to modify does not exist in the response header, it is added. | | `denyAccess` | Boolean | true to deny access to the resource, false to allow access. When the access to a resource is denied, the web server returns a 403 status by default | | `redirect` | Text | Redirection URL. When a redirection is triggered, the web server returns a 302 status by default | -| `status` | Number | HTTP status | +| `status` | Number | Estado HTTP | ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Encabezado | Acción de añadir | Set | Remove | +| ---------------- | ---------------- | ------------- | ------ | +| Fecha | No | No | No | +| Content-Length | No | No | No | +| Content-Encoding | No | No | No | +| Vary | Sí | No | No | +| Set-Cookie | Sí | Añadir cookie | No | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md index b2a3a87835a17c..dfb4e76c1380da 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Entradas de blog relacionadas -Para más ejemplos, por favor consulte la publicación de blog [Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/). +[Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: @@ -477,7 +477,7 @@ Se crea un nuevo usuario y se almacena cierta información en la sesión, especi - Sólo se pueden reutilizar las sesiones de la base de datos local (las sesiones creadas en servidores web de componentes no se pueden restaurar). - Los tokens no son compatibles con las sesiones cliente/servidor ni con las sesiones monousuario. -### Lifespan +### Vida útil Un testigo de sesión tiene una vida útil, y la propia sesión tiene una vida útil. El tiempo de vida útil del token de sesión puede definirse [en la creación de tokens](../API/SessionClass.md#createotp). Por defecto, el tiempo de vida del token es el mismo valor que el valor de [`.idleTimeout`](../API/SessionClass.md#idletimeout). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 9c3c1c18655023..65f84b56f8d1ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -19,6 +19,6 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op | *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | | Resultado | Variant | The retrieved messages associated with the chat completion. | -The `list()` function retrieves messages associated with a specific chat completion ID. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. +La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. https://platform.openai.com/docs/api-reference/chat/getMessages diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index 2d506c2ba0ee11..db1b10b9ec0ee7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -13,26 +13,26 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters ## Propiedades -| Propiedad | Tipo | Valor por defecto | Descripción | -| ----------------------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | ID del modelo a utilizar. | -| `stream` | Boolean | `False` | Si se retransmite el progreso parcial. Si se define, los tokens se enviarán solo como datos. Fórmula de retrollamada necesaria. | -| `stream_options` | Object | `Null` | Property for stream=True. For example: `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | The maximum number of tokens that can be generated in the completion. | -| `n` | Integer | `1` | How many completions to generate for each prompt. | -| `temperature` | Real | `-1` | Qué temperatura de muestreo utilizar, entre 0 y 2. Higher values make the output more random, while lower values make it more focused and deterministic. | -| `store` | Boolean | `False` | Whether or not to store the output of this chat completion request. | -| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Currently supported values are `"low"`, `"medium"`, and `"high"`. | -| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. | -| `herramientas` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. | -| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Can be `"none"`, `"auto"`, `"required"`, or specify a particular tool. | -| `prediction` | Object | `Null` | Static predicted output content, such as the content of a text file that is being regenerated. | +| Propiedad | Tipo | Valor por defecto | Descripción | +| ----------------------- | ---------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | `"gpt-4o-mini"` | ID del modelo a utilizar. | +| `stream` | Boolean | `False` | Si se retransmite el progreso parcial. Si se define, los tokens se enviarán solo como datos. Fórmula de retrollamada necesaria. | +| `stream_options` | Object | `Null` | Property for stream=True. Por ejemplo: `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | The maximum number of tokens that can be generated in the completion. | +| `n` | Integer | `1` | How many completions to generate for each prompt. | +| `temperature` | Real | `-1` | Qué temperatura de muestreo utilizar, entre 0 y 2. Higher values make the output more random, while lower values make it more focused and deterministic. | +| `store` | Boolean | `False` | Whether or not to store the output of this chat completion request. | +| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Los valores soportados actualmente son `"low"`, `"medium"` y `"high"`. | +| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. | +| `herramientas` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. | +| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Puede ser `"none"`, `"auto"`, `"required"`, o especificar una herramienta concreta. | +| `prediction` | Object | `Null` | Static predicted output content, such as the content of a text file that is being regenerated. | ### Propiedades de retrollamada asíncrona -| Propiedad | Tipo | Descripción | -| ------------------------------------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | +| Propiedad | Tipo | Descripción | +| ----------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `onData` (o `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | `onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). @@ -119,7 +119,7 @@ $result := $client.chat.completions.create($messages; $params) When using `json_schema` type, you can specify: -- **`name`**: A name for the schema +- **`name`**: un nombre para el esquema - **`description`**: A description of what the schema represents - **`schema`**: The JSON schema definition - **`strict`**: Whether to enforce strict adherence to the schema diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md index 09e15a20df5e90..9009658de82b79 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md @@ -5,17 +5,17 @@ title: OpenAIImage # OpenAIImage -The `OpenAIImage` class represents an image generated by the OpenAI API. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. +La clase `OpenAIImage` representa una imagen generada por la API OpenAI. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------- | -| `url` | Text | The URL of the generated image, if `response_format` is `url` (default). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | +| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | ## Funciones diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md index 167f8ab9d4ac4b..d50e4af6583cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md @@ -18,8 +18,8 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame | `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | | `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | | `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | The style of the generated images (must be either `vivid` or `natural`). | -| `response_format` | Text | "url" | The format for returned images, can be either `url` or `b64_json`. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesAPI.md index 3797cb01095e30..4ffe3a9911bd80 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesAPI.md @@ -5,7 +5,7 @@ title: OpenAIImagesAPI # OpenAIImagesAPI -The `OpenAIImagesAPI` provides functionalities to generate images using OpenAI's API. +La `OpenAIImagesAPI` ofrece funcionalidades para generar imágenes utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/images diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index f8259807424811..ab4ca22c87ed49 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ The `OpenAIMessage` class represents a structured message containing a role, con ## Propiedades -| Propiedad | Tipo | Descripción | -| -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | -| `user` | Text | An optional property representing the user associated with the message. | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| Propiedad | Tipo | Descripción | +| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | +| `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | +| `user` | Text | An optional property representing the user associated with the message. | +| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | +| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | ## Propiedades calculadas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index 4a2bbe4632aec8..77620f6ef0ac24 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -20,7 +20,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. | `tipo` | Text | `"function"` | El tipo de herramienta. Currently supports `"function"`, `"custom"`, and other built-in types. | | `strict` | Boolean | `False` | Whether to enforce strict schema validation for function parameters. | -### Common Properties +### Propiedades comunes | Propiedad | Tipo | Descripción | | ------------- | ---- | ------------------------------------------------------------------------------ | @@ -46,7 +46,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. Crea una nueva instancia de OpenAITool. The constructor accepts both simplified format and OpenAI API format. -#### Supported formats +#### Formatos soportados **Simplified format:** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md index 1bd070ea6af91a..20c901bac3061d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md @@ -81,9 +81,9 @@ La propiedad `.type` contiene el tipo del eve - `"connection"`: Indicates that a TCPConnection was successfully established. - `"data"`: indica que los datos han sido recibidos. -- `"error"`: Indicates that an error occurred during the TCPConnection. -- `"close"`: Indicates that the TCPConnection has been properly closed. -- `"terminate"`: Indicates that the TCPConnection is about to be released. +- `"error"`: indica que se ha producido un error durante la TCPConnection. +- `"close"`: indica que la TCPConnection ha sido correctamente cerrada. +- `"terminate"`: indica que el TCPConnection está a punto de ser liberado. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 163716adebf666..0e431ff13cc080 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -51,11 +51,11 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests La siguiente tabla lista los eventos ORDA junto con sus reglas. -| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | -| :------------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | -| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | -| Atributo tocado | Atributo | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | +| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | +| :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | +| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | +| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | +| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md index b551849007c39b..7d54ed71a42c0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ En *rangeObj*, pase el rango de celdas con los valores, formato y fórmulas a co Puede pasar un parámetro opcional *options* con las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ----------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | -| copyOptions | Integer | Especifica lo que se copia o mueve. Possible values:

        ValueDescription
        `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
        `vk clipboard options formatting`Copies only the formatting.
        `vk clipboard options formulas`Copies only the formulas.
        `vk clipboard options formulas and formatting`Copies the formulas and formatting.
        `vk clipboard options values`Copies only the values.
        `vk clipboard options value and formatting`Copies the values and formatting.

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

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

        | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md index dd9df040b43600..adfb613719d267 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ En *targetRange*, pase el rango de celdas donde se copiarán o moverán los valo El parámetro *options* tiene varias propiedades: -| Propiedad | Tipo | Descripción | -| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
        • *False* (por defecto) para eliminarlos
        • *True* para mantenerlos
        | -| pasteOptions | Integer | Especifica lo que se pega. Possible values:

        ValueDescription
        `vk clipboard options all` (default)Pastes all data objects, including values, formatting, and formulas.
        `vk clipboard options formatting`Pastes only the formatting.
        `vk clipboard options formulas`Pastes only the formulas.
        `vk clipboard options formulas and formatting`Pastes the formulas and formatting.
        `vk clipboard options values`Pastes only the values.
        `vk clipboard options value and formatting`Pastes the values and formatting.

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

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

        | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md index d55cb1504a87ae..7fe5e2c40f7db0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Entradas de blog relacionadas -Para más ejemplos, por favor consulte la publicación de blog [Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/). +[Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: @@ -471,7 +471,7 @@ Se crea un nuevo usuario y se almacena cierta información en la sesión, especi - Sólo se pueden reutilizar las sesiones de la base de datos local (las sesiones creadas en servidores web de componentes no se pueden restaurar). - Los tokens no son compatibles con las sesiones cliente/servidor ni con las sesiones monousuario. -### Lifespan +### Vida útil Un testigo de sesión tiene una vida útil, y la propia sesión tiene una vida útil. El tiempo de vida útil del token de sesión puede definirse [en la creación de tokens](../API/SessionClass.md#createotp). Por defecto, el tiempo de vida del token es el mismo valor que el valor de [`.idleTimeout`](../API/SessionClass.md#idletimeout). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 9c3c1c18655023..65f84b56f8d1ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -19,6 +19,6 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op | *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | | Resultado | Variant | The retrieved messages associated with the chat completion. | -The `list()` function retrieves messages associated with a specific chat completion ID. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. +La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. https://platform.openai.com/docs/api-reference/chat/getMessages diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md index 09e15a20df5e90..9009658de82b79 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md @@ -5,17 +5,17 @@ title: OpenAIImage # OpenAIImage -The `OpenAIImage` class represents an image generated by the OpenAI API. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. +La clase `OpenAIImage` representa una imagen generada por la API OpenAI. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------- | -| `url` | Text | The URL of the generated image, if `response_format` is `url` (default). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | +| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | ## Funciones diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md index 167f8ab9d4ac4b..d50e4af6583cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md @@ -18,8 +18,8 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame | `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | | `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | | `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | The style of the generated images (must be either `vivid` or `natural`). | -| `response_format` | Text | "url" | The format for returned images, can be either `url` or `b64_json`. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImagesAPI.md index 3797cb01095e30..4ffe3a9911bd80 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImagesAPI.md @@ -5,7 +5,7 @@ title: OpenAIImagesAPI # OpenAIImagesAPI -The `OpenAIImagesAPI` provides functionalities to generate images using OpenAI's API. +La `OpenAIImagesAPI` ofrece funcionalidades para generar imágenes utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/images diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md index 79d2786081e8cb..8d17f8e266c9d6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md @@ -44,7 +44,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
      22. `ZIP Compression standard`: Compresión Deflate (por defecto)
      23. `ZIP Compression LZMA`: Compression LZMA
      24. `ZIP Compresión XZ`: Compression XZ
      25. `ZIP Compresión`: sin compresión
      26. | | level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      27. `ZIP Compression standard`: 6
      28. `ZIP Compression LZMA`: 4
      29. `ZIP Compression XZ`: 4
      30. | -| encryption | Integer | The encryption to use if a password is set:
      31. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      32. `ZIP Encryption AES192`: AES encryption using 192-bit key.
      33. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      34. `ZIP Encryption none`: Data is not encrypted (default if no password is set)
      35. | +| encryption | Integer | The encryption to use if a password is set:
      36. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      37. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      38. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      39. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      40. | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
      41. una colección de objetos `4D.File` o `4D.Folder` o
      42. una colección de objetos con las siguientes propiedades:
      43. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | | retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 53054ee02534df..94c42c36a6ddb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ Si *attributePath* designa un atributo que almacena [**objetos vectores**](../AP En este caso, el parámetro *value* debe ser un **objeto vectorial de comparación** que contenga las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | -| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      44. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      45. `mk dot`: calculates the dot similarity of vectors.
      46. `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | +| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      47. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      48. `mk dot`: calculates the dot similarity of vectors.
      49. `mk euclidean`: calcula la distancia euclidiana entre vectores. | +| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Sólo se admite un subconjunto de símbolos **comparadores**. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 62663527a46221..b9b3e8e9e3a566 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -338,10 +338,10 @@ vCompareResult1 (se devuelven todas las diferencias):
        Historia -| Lanzamiento | Modificaciones | -| ----------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | -------------------------- | +| 21 | Añadidos los estados 7 y 8 | +| 17 | Añadidos |
        @@ -368,7 +368,7 @@ De lo contrario, puede pasar la opción `dk force drop if stamp changed` en el p **Resultado** -The object returned by `.drop()` contains the following properties: +El objeto devuelto por `.drop()` contiene las siguientes propiedades: | Propiedad | | Tipo | Descripción | | --------------------------------- | ----------------------------------- | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -1019,7 +1019,6 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      50. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      51. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

      52. **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      53. with `.save()`: error only if the `dk auto merge` option is not used
      54. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      55. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      56. **Associated statusText**: "Stamp has changed" | @@ -1215,10 +1214,10 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades:
        Historia -| Lanzamiento | Modificaciones | -| ----------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | -------------------------- | +| 21 | Añadidos los estados 7 y 8 | +| 17 | Añadidos |
        diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index 1bd070ea6af91a..20c901bac3061d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -81,9 +81,9 @@ La propiedad `.type` contiene el tipo del eve - `"connection"`: Indicates that a TCPConnection was successfully established. - `"data"`: indica que los datos han sido recibidos. -- `"error"`: Indicates that an error occurred during the TCPConnection. -- `"close"`: Indicates that the TCPConnection has been properly closed. -- `"terminate"`: Indicates that the TCPConnection is about to be released. +- `"error"`: indica que se ha producido un error durante la TCPConnection. +- `"close"`: indica que la TCPConnection ha sido correctamente cerrada. +- `"terminate"`: indica que el TCPConnection está a punto de ser liberado. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index dc0b5a8bdb81ab..778f2c08cd4d61 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -155,7 +155,7 @@ Fluent UI rendering offers modern and attractive controls, support of dark/light When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- El comando `FORM Window theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. - A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). 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 b730b0bbfb1492..8d14d4fd39ce5a 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 @@ -26,6 +26,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - Lenguaje 4D: - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). - Los comandos [`Num`](../commands/num.md) y [`String`](../commands/string.md) han sido actualizados para soportar conversiones en diferentes bases (radix). +- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21): list of all bugs that have been fixed in 4D 21. #### Vista previa para desarrolladores @@ -43,7 +44,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 2ac6f5af37a028..7a2db28e32c11f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -566,9 +566,9 @@ El siguiente diagrama ilustra el bloqueo optimista: 1. Dos procesos cargan la misma entidad.

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

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

        ![](../assets/en/ORDA/optimisticLock2.png) -3. El segundo proceso también modifica la entidad cargada y valida sus cambios. Se llama al método `entity.save( )`. Dado que el valor del sello de la entidad modificada no coincide con el de la entidad almacenada en los datos, no se realiza el guardado y se devuelve un error.

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

        ![](../assets/en/ORDA/optimisticLock3.png) Esto también puede ilustrarse con el siguiente código: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 884af1066d3c9f..f6b897a82a5694 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Eventos ---
        Historia @@ -58,21 +58,21 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests La siguiente tabla lista los eventos ORDA junto con sus reglas. -| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | -| :------------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | -| Atributo tocado | Atributo | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | no | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | no | -| Before saving an entity | Atributo | `validateSave ()` | server | sí | -| | Entity | `validateSave()` | server | sí | -| When saving an entity | Atributo | `saving ()` | server | sí | -| | Entity | `saving()` | server | sí | -| After saving an entity | Entity | `afterSave()` | server | no | -| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | -| | Entity | `validateDrop()` | server | sí | -| When dropping an entity | Atributo | `dropping ()` | server | sí | -| | Entity | `dropping()` | server | sí | -| After dropping an entity | Entity | `afterDrop()` | server | no | +| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | +| :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | +| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | +| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| Before saving an entity | Atributo | `validateSave ()` | server | sí | +| | Entity | `validateSave()` | server | sí | +| When saving an entity | Atributo | `saving ()` | server | sí | +| | Entity | `saving()` | server | sí | +| After saving an entity | Entity | `afterSave()` | server | no | +| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | +| | Entity | `validateDrop()` | server | sí | +| When dropping an entity | Atributo | `dropping ()` | server | sí | +| | Entity | `dropping()` | server | sí | +| After dropping an entity | Entity | `afterDrop()` | server | no | :::note @@ -89,12 +89,12 @@ Event functions accept a single *event* object as parameter. When the function i | "kind" | siempre | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | | *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nombre del atributo (por ejemplo, "nombre") | | | *dataClassName* | siempre | String | Nombre de la Dataclass (*ej.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | +| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | +| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | | "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | | "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | -## Error object +## Objeto de error [Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. @@ -102,19 +102,19 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propiedad | Tipo | Descripción | Set by the developer | -| ------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| extraDescription | Object | Free information to set up | Sí | -| seriousError | Boolean | Used only with validate events (see below). Will insert a specific `status` value in the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) function:
      57. If true: `dk status serious validation error`
      58. If false: `dk status validation failed`
      59. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | No | - -- The errors are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `fatalError` property allows you to insert a specific `status` and its associated `statusText` in the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions: - - If **false**: `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". Such errors do not require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. - - If **true**: `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". Such errors require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. They are raised at the end of the event and reach the client requesting the save/drop action (REST client for example). -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error (`dk status serious error`) whatever the `seriousError` property value. +| Propiedad | Tipo | Descripción | Definido por el desarrollador | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | +| extraDescription | Object | Free information to set up | Sí | +| seriousError | Boolean | Used only with validate events (see below).
      60. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      61. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      62. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | No | + +- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. +- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: + - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). + - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". +- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. ## Event function description diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index 5beaa5f717c17c..6a6eb8c18fccf1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -180,8 +180,8 @@ Si deselecciona esta opción, sólo se mostrará la flecha amarilla. Esta área le permite configurar los mecanismos de autocompletar en el Editor de código para adaptarlo a sus propios hábitos de trabajo. -| | Descripción | -| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Apertura automática de la ventana | Activa la visualización automática de la ventana de sugerencias para:
        • Constantes
        • Variables (locales e interproceso) y atributos del objeto
        • Tablas
        • Prototipos (es decir, funciones de clase)

        Por ejemplo, cuando se selecciona la opción "Variables (locales o interproceso) y atributos del objeto", aparece una lista de sugerencias cuando se escribe el caracter $:

        ![](../assets/en/Preferences/suggestionsAutoOpen.png)

        Puede deshabilitar esta funcionalidad para ciertos elementos del lenguaje deseleccionando su opción correspondiente. | -| Validación de una sugerencia | Establece el contexto de entrada que permite al Editor de Código validar automáticamente la sugerencia actual mostrada en la ventana de autocompletado.
        • **Tabuladores y delimitadores**
          Cuando esta opción está seleccionada, puede validar la selección actual con la tecla Tab o cualquier delimitador relevante para el contexto. Por ejemplo, si introduce "ALE" y luego "(", 4D escribe automáticamente "ALERT(" en el editor. Esta es la lista de delimitadores que se tienen en cuenta:
          ( ; : = < [ {
        • **Sólo tabulador**
          Cuando se selecciona esta opción, sólo se puede utilizar el tabulador para insertar la sugerencia actual. Esto puede utilizarse más concretamente para facilitar la introducción de caracteres delimitadores en los nombres de elementos, como ${1}.**Note**: También puede hacer doble clic en la ventana o presionar la tecla Retorno de carro para validar una sugerencia.
        | +| | Descripción | +| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Apertura automática de la ventana | Activa la visualización automática de la ventana de sugerencias para:
        • Constantes
        • Variables (locales e interproceso) y atributos del objeto
        • Tablas
        • Prototipos (es decir, funciones de clase)

        Por ejemplo, cuando se selecciona la opción "Variables (locales o interproceso) y atributos del objeto", aparece una lista de sugerencias cuando se escribe el caracter $:

        ![](../assets/en/Preferences/suggestionsAutoOpen.png)

        Puede deshabilitar esta funcionalidad para ciertos elementos del lenguaje deseleccionando su opción correspondiente. | +| Validación de una sugerencia | Sets the entry context that allows the Code Editor to validate automatically the current suggestion displayed in the autocomplete window.
        • **Tab and delimiters**
          When this option is selected, you can validate the current selection with the Tab key or any delimiter that is relevant to the context. Por ejemplo, si introduce "ALE" y luego "(", 4D escribe automáticamente "ALERT(" en el editor. Esta es la lista de delimitadores que se tienen en cuenta:
          ( ; : = < [ {
        • **Sólo tabulador**
          Cuando se selecciona esta opción, sólo se puede utilizar el tabulador para insertar la sugerencia actual. Esto puede utilizarse más concretamente para facilitar la introducción de caracteres delimitadores en los nombres de elementos, como ${1}.**Note**: También puede hacer doble clic en la ventana o presionar la tecla Retorno de carro para validar una sugerencia.
        | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 3bb2eb19a0f57e..e7fda44cc53d46 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -349,7 +349,7 @@ Para mostrar el panel Dependencias: - con 4D, seleccione el ítem de menú **Diseño/Dependencias del Proyecto** (entorno de desarrollo),
        ![dependency-menu](../assets/en/Project/dependency-menu.png) -- con 4D Server, seleccione el ítem de menú **Ventana/Dependencias del Proyecto**.
        +- con el servidor 4D, seleccione el elemento de menú **Ventana/Dependencias del proyecto**.
        ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) A continuación, se muestra el panel Dependencias. Las dependencias se ordenan por nombre en orden alfabético: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 87fad52e60c764..42725545b33289 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -27,7 +27,7 @@ Por ejemplo: `$filter="firstName=john AND salary>20000"` donde `firstName` y `sa ### Utilizar la propiedad params -You can also use 4D's `params` property which is a collection of values. +También puede utilizar la propiedad `params` de 4D, que es una colección de valores. **\{attribute\} {comparator} {placeholder} {AND/OR/EXCEPT} \{attribute\} {comparator} {placeholder}&$params='["{value1}","{value2}"]'** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$method.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$method.md index ec63e8eb56445e..706279be3d9811 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$method.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$method.md @@ -196,7 +196,8 @@ Si surge un problema al añadir o modificar una entidad, se le devolverá un err - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Si ha seleccionado la propiedad Fecha únicamente para su atributo Fecha, se eliminará la zona horaria y la hora (hora, minutos y segundos). En este caso, también puede enviar la fecha en el formato que se le devuelve dd!mm!aaaa (por ejemplo, 05!10!2013). - **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- Uploaded files using `$upload` can be applied to an attribute of type Image or BLOB by passing the object returned in the following format `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` + ::: ### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md index a70d5af54aa8d6..7d54ed71a42c0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ En *rangeObj*, pase el rango de celdas con los valores, formato y fórmulas a co Puede pasar un parámetro opcional *options* con las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | -| copyOptions | Integer | Especifica lo que se copia o mueve. Valores posibles:

        ValorDescripción
        `vk clipboard options all` (por defecto)Copia todos los objetos de datos, incluidos los valores, el formato y las fórmulas.
        `vk clipboard options formatting`Copia sólo el formato.
        `vk clipboard options formulas`Copia sólo las fórmulas.
        `vk clipboard options formulas and formatting`Copia las fórmulas y el formato.
        `vk clipboard options values`Copia sólo los valores.
        `vk clipboard options value and formatting`Copia los valores y el formato.

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

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

        | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md index afa59df379020c..19cd648eadc591 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md @@ -16,7 +16,7 @@ title: VP EXPORT TO BLOB ## Descripción -El comando `VP EXPORT TO BLOB` exporta el documento 4D View Pro *vpAreaName* en un 4D.Blob según las opciones *paramObj*. El blob exportado está disponible a través de la retrollamada de exportación. Exportar e importar áreas de 4D View Pro como blogs es rápido y eficiente en memoria. +El comando `VP EXPORT TO BLOB` exporta el documento *vpAreaName* 4D View Pro en un 4D.Blob de acuerdo a las opciones *paramObj*. El blob exportado está disponible a través de la retrollamada de exportación. Exportar e importar áreas de 4D View Pro como blogs es rápido y eficiente en memoria. En *paramObj*, puede pasar varias propiedades: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index e122ecdf423030..4ccd334c12e81f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -27,14 +27,14 @@ El parámetro *searchValue* permite pasar el texto a buscar dentro del *rangeObj Puede pasar el parámetro opcional *searchCondition* para especificar el funcionamiento de la búsqueda. Se soportan las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| afterColumn | Integer | El número de la columna justo antes de la columna inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de columna indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | -| afterRow | Integer | El número de la línea justo antes de la línea inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de línea indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | -| all | Boolean |
      63. True - Se devuelven todas las celdas en *rangeObj* correspondientes a *searchValue*
      64. False - (valor por defecto) Sólo se devuelve la primera celda de *rangeObj* correspondiente a *searchValue*
      65. | -| flags | Integer |
        `vk find flag exact match`El contenido completo de la celda debe coincidir completamente con el valor de búsqueda
        `vk find flag ignore case`Las mayúsculas y minúsculas se consideran iguales. Ej: "a" es igual a "A".
        `vk find flag none`no se consideran banderas de búsqueda (por defecto)
        `vk find flag use wild cards`Caracteres comodín (\*,?) puede utilizarse en la cadena de búsqueda. Los caracteres comodín se pueden utilizar en cualquier comparación de cadenas para coincidir con cualquier número de caracteres:
      66. \* para cero o varios caracteres (por ejemplo, al buscar "bl*" se puede encontrar "bl", "black" o "blob")
      67. ? para un solo carácter (por ejemplo, la búsqueda de "h?t" puede encontrar "hot", o "hit"
      68. Estos indicadores pueden combinarse. Por ejemplo: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
        `vk find order by columns`La búsqueda se realiza por columnas. Cada fila de una columna se busca antes de que la búsqueda continúe a la siguiente columna.
        `vk find order by rows`La búsqueda se realiza por filas. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
        | -| target | Integer |
        `vk find target formula`La búsqueda se realiza en la fórmula de la celda
        `vk find target tag`La búsqueda se realiza en la etiqueta de la celda
        `vk find target text`La búsqueda se realiza en el texto de la celda (predeterminado)

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

        | +| Propiedad | Tipo | Descripción | +| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| afterColumn | Integer | El número de la columna justo antes de la columna inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de columna indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | +| afterRow | Integer | El número de la línea justo antes de la línea inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de línea indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | +| all | Boolean |
      69. True - Se devuelven todas las celdas en *rangeObj* correspondientes a *searchValue*
      70. False - (valor por defecto) Sólo se devuelve la primera celda de *rangeObj* correspondiente a *searchValue*
      71. | +| flags | Integer |
        `vk find flag exact match`El contenido completo de la celda debe coincidir completamente con el valor de búsqueda
        `vk find flag ignore case`Las mayúsculas y minúsculas se consideran iguales. Ej: "a" es lo mismo que "A".
        `vk find flag none`no search flags are considered (default)
        `vk find flag use wild cards`Wildcard characters (\*,?) puede utilizarse en la cadena de búsqueda. Los caracteres comodín se pueden utilizar en cualquier comparación de cadenas para coincidir con cualquier número de caracteres:
      72. \* para cero o varios caracteres (por ejemplo, al buscar "bl*" se puede encontrar "bl", "black" o "blob")
      73. ? para un solo carácter (por ejemplo, la búsqueda de "h?t" puede encontrar "hot", o "hit"
      74. Estos indicadores pueden combinarse. Por ejemplo: $search.flags:=vk find flag use wild cards+vk find flag ignore case | +| order | Integer |
        `vk find order by columns`La búsqueda se realiza por columnas. Each row of a column is searched before the search continues to the next column.
        `vk find order by rows`The search is performed by rows. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
        | +| target | Integer |
        `vk find target formula`La búsqueda se realiza en la fórmula de la celda
        `vk find target tag`La búsqueda se realiza en la etiqueta de la celda
        `vk find target text`La búsqueda se realiza en el texto de la celda (predeterminado)

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

        | En el parámetro opcional *replaceValue*, puede pasar un texto para que ocupe el lugar de toda instancia del texto en el *searchValue* encontrado en *rangeObj*. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5e65abf6ea6b63..ce43ad5c50c92a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -43,33 +43,33 @@ Se devuelve un error si el parámetro `filePath` no es válido, o si el archivo El parámetro opcional *paramObj* permite definir las propiedades del documento importado: -| Parámetros | | Tipo | Descripción | -| ------------ | ------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | -| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | -| csvOptions | | object | opciones de importación csv | -| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | -| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | -| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | -| sjsOptions | | object | opciones para la importación de sjs | -| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | -| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | -| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | -| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | -| | openMode | integer |
      75. 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder en momentos específicos.
      76. 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
      77. 2 (incremental): modo de apertura incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
      78. | -| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | -| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | -| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | -| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | -| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | -| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | -| | contraseña | text | La contraseña para abrir el workbook. | -| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | +| Parámetros | | Tipo | Descripción | +| ------------ | ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | +| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | +| csvOptions | | object | opciones de importación csv | +| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | +| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | +| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | +| sjsOptions | | object | opciones para la importación de sjs | +| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | +| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | +| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | +| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | +| | openMode | integer |
      79. 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. When opening file, UI and UI event could be refreshed and responsive at specific time points.
      80. 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
      81. 2 (incremental): modo abierto incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
      82. | +| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | +| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | +| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | +| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | +| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | +| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | +| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | +| | contraseña | text | La contraseña para abrir el workbook. | +| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | :::note Notas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md index b4ead57aa40468..adfb613719d267 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ En *targetRange*, pase el rango de celdas donde se copiarán o moverán los valo El parámetro *options* tiene varias propiedades: -| Propiedad | Tipo | Descripción | -| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
        • *False* (por defecto) para eliminarlos
        • *True* para mantenerlos
        | -| pasteOptions | Integer | Especifica lo que se pega. Valores posibles:

        ValorDescripción
        `vk clipboard options all` (por defecto)Pega todos los objetos de datos, incluidos los valores, el formato y las fórmulas.
        `vk clipboard options formatting`Pega sólo el formato.
        `vk clipboard options formulas`Pega sólo las fórmulas.
        `vk clipboard options formulas and formatting`Pega las fórmulas y el formato.
        `vk clipboard options values`Pega sólo los valores.
        `vk clipboard options value and formatting`Pega los valores y el formato.

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

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

        | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md index b495dcab799355..8a32e26833bd1a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md @@ -42,10 +42,10 @@ Para pasar un valor de tiempo en *dataObj* o *dataColl*, encapsúlelo en un obje En *options*, puede pasar un objeto que especifique las opciones adicionales. Las propiedades posibles son: -| Propiedad | Tipo | Descripción | -| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| reset | Object | True para restablecer el contenido de la hoja antes de cargar el nuevo contexto, False (por defecto) en caso contrario. | -| autoGenerateColumns | Object | Sólo se utiliza cuando los datos son una colección. True (por defecto) para especificar que las columnas deben generarse automáticamente cuando se vincula el contexto de datos. En este caso, se aplican las siguientes reglas:
        • Si *dataColl* es una colección de objetos, los nombres de los atributos se utilizan como títulos de las columnas (ver el ejemplo 2).
        • Si *dataColl* contiene subcolecciones de valores escalares, cada subcolección define los valores de una fila (ver el ejemplo 3). La primera subcolección determina cuántas columnas se crean.
        | +| Propiedad | Tipo | Descripción | +| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| reset | Object | True para restablecer el contenido de la hoja antes de cargar el nuevo contexto, False (por defecto) en caso contrario. | +| autoGenerateColumns | Object | Sólo se utiliza cuando los datos son una colección. True (por defecto) para especificar que las columnas deben generarse automáticamente cuando se vincula el contexto de datos. In this case, the following rules apply:
        • If *dataColl* is a collection of objects, attribute names are used as column titles (see example 2).
        • If *dataColl* contains subcollections of scalar values, each subcollection defines the values in a row (see example 3). La primera subcolección determina cuántas columnas se crean.
        | En *sheet*, pase el índice de la hoja que recibirá el contexto de datos. Si no se pasa ningún índice, el contexto se aplica a la hoja actual. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index 5fa478c3200126..ecbe60ce95a598 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -29,66 +29,66 @@ Las opciones modificadas del libro de trabajo se guardan con el documento. En la siguiente tabla se listan las opciones de libros de trabajo disponibles: -| Propiedad | Tipo | Descripción | -| ------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowUserDragMerge | boolean | Se permite la operación de fusión por arrastre (seleccionar celdas y arrastrar la selección para fusionar celdas) | -| allowAutoCreateHyperlink | boolean | Permite la creación automática de hipervínculos en la hoja de cálculo. | -| allowContextMenu | boolean | Se puede abrir el menú contextual integrado. | -| allowCopyPasteExcelStyle | boolean | Los estilos de una hoja de cálculo pueden copiarse y pegarse en Excel, y viceversa. | -| allowDynamicArray | boolean | Permite arrays dinámicos en hojas de cálculo | -| allowExtendPasteRange | boolean | Amplía el rango pegado si éste no es suficiente para los datos pegados | -| allowSheetReorder | boolean | Se permite reordenar la hoja | -| allowUndo | boolean | Deshacer ediciones está permitido. | -| allowUserDeselect | boolean | Se permite desmarcar celdas específicas de una selección. | -| allowUserDragDrop | boolean | Se permite arrastrar y soltar los datos del rango | -| allowUserDragFill | boolean | Se permite el relleno por arrastre | -| allowUserEditFormula | boolean | Las fórmulas pueden introducirse en las celdas | -| allowUserResize | boolean | Columnas y filas redimensionables | -| allowUserZoom | boolean | Se permite hacer zoom (ctrl + rueda del ratón) | -| autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
        ConstanteValorDescripción
        vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
        vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
        | -| backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | -| backgroundImage | string / picture / file | Imagen de fondo para el área. | -| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Valores disponibles:
        ConstanteValorDescripción
        vk image layout center 1 En el centro del área.
        vk image layout none 3 En la esquina superior izquierda del área con su tamaño original.
        vk image layout stretch 0 Rellena el área.
        vk image layout zoom 2 Se muestra con su relación de aspecto original.
        | -| calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | -| columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
        ConstanteValorDescripción
        vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
        vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
        | -| copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Valores disponibles:
        ConstanteValorDescripción
        vk copy paste header options all headers3 Incluye los encabezados seleccionados cuando se copian los datos; sobrescribe los encabezados seleccionados cuando se pegan los datos.
        vk copy paste header options column headers 2 Incluye los encabezados de columna seleccionados cuando se copian los datos; sobrescribe los encabezados de columna seleccionados cuando se pegan los datos.
        vk copy paste header options no headers0 No incluye los encabezados de columna y fila al copiar los datos; no sobrescribe los encabezados de columna o fila seleccionadas al pegar los datos.
        vk copy paste header options row headers1 Incluye los encabezados de fila seleccionados cuando se copian los datos; sobrescribe los encabezados de fila seleccionados cuando se pegan los datos.
        | -| customList | collection | La lista para que los usuarios personalicen el relleno de arrastre, dar prioridad a que coincida con esta lista en cada relleno. Cada elemento de colección es una colección de cadenas. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | -| cutCopyIndicatorBorderColor | string | Color del borde del indicador que aparece cuando el usuario corta o copia la selección. | -| cutCopyIndicatorVisible | boolean | Muestra un indicador al copiar o cortar el elemento seleccionado. | -| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
        ConstanteValorDescripción
        vk auto fill type auto 5 Rellena automáticamente las celdas.
        vk auto fill type clear values 4 Borra los valores de las celdas.
        vk auto fill type copycells 0 Rellena las celdas con todos los objetos de datos, incluyendo valores, formato y fórmulas.
        vk auto fill type fill formatting only 2 Rellena las celdas sólo con formato.
        vk auto fill type fill series 1 Rellena las celdas con series.
        vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
        | -| enableAccessibility | boolean | El soporte de accesibilidad está activado en la hoja de cálculo. | -| enableFormulaTextbox | boolean | Se activa la caja de texto de la fórmula. | -| grayAreaBackColor | string | Una cadena color utilizada para representar el color de fondo del área gris, como "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | -| highlightInvalidData | boolean | Los datos inválidos son resaltados. | -| iterativeCalculation | boolean | Activa el cálculo iterativo. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | -| iterativeCalculationMaximumChange | numeric | Cantidad máxima de cambio entre dos valores de cálculo. | -| iterativeCalculationMaximumIterations | numeric | Número de veces que la fórmula debe recalcular. | -| newTabVisible | boolean | Mostrar una pestaña especial para permitir a los usuarios insertar nuevas hojas. | -| numbersFitMode | number | Cambia el modo de visualización cuando el ancho de los datos de fecha/número es mayor que el ancho de la columna. Valores disponibles:
        ConstanteValorDescripción
        vk numbers fit mode mask0 Sustituye el contenido de los datos por "###" y muestra la punta
        vk numbers fit mode overflow 1 Muestra el contenido de los datos como una cadena. Si la siguiente celda está vacía, se desborda el contenido.
        | -| pasteSkipInvisibleRange | boolean | Pegar u omitir el pegado de datos en rangos invisibles:
        • False (por defecto): pegar datos
        • True: omitir el pegado en rangos invisibles
        Ver [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) para más información sobre rangos invisibles. | -| referenceStyle | number | Estilo para referencias de celdas y rangos en fórmulas de celdas. Valores disponibles:
        ConstanteValorDescripción
        vk reference style A1 0 Utiliza el estilo A1.
        vk reference style R1C1 1 Utiliza el estilo R1C1
        | -| resizeZeroIndicator | number | Política de dibujo cuando las líneas o columnas se redimensionan a 0. Valores disponibles:
        ConstanteValorDescripción
        vk resize zero indicator default 0 Utiliza la política de dibujo actual cuando la fila o columna se redimensiona a cero.
        vk resize zero indicator enhanced 1 Dibuja dos líneas cortas cuando la fila o columna se redimensiona a cero.
        | -| rowResizeMode | number | La forma en que se redimensionan las líneas. Los valores disponibles son los mismos qe columnResizeMode | -| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Valores disponibles:
        ConstanteValorDescripción
        vk scrollbar appearance mobile1 Aspecto de la barra de desplazamiento móvil.
        vk scrollbar appearance skin (por defecto)0 Aspecto clásico de la barra de desplazamiento.
        | -| scrollbarMaxAlign | boolean | La barra de desplazamiento se alinea con la última línea y columna de la hoja activa. | -| scrollbarShowMax | boolean | Las barras de desplazamiento mostradas se basan en el número total de columnas y líneas de la hoja. | -| scrollByPixel | boolean | Activar desplazamiento de precisión por píxel. | -| scrollIgnoreHidden | boolean | La barra de desplazamiento ignora líneas o columnas ocultas. | -| scrollPixel | integer | Decide el desplazamiento por ese número de píxeles cuando scrollByPixel es true. Los píxeles finales de desplazamiento son el resultado de `scrolling delta * scrollPixel`. Por ejemplo: delta de desplazamiento es 3, scrollPixel es 5, los píxeles finales de desplazamiento son 15. | -| showDragDropTip | boolean | Mostrar la punta de arrastrar y soltar. | -| showDragFillSmartTag | boolean | Mostrar el diálogo de arrastrar y rellenar. | -| showDragFillTip | boolean | Mostrar la punta de arrastrar y soltar. | -| showHorizontalScrollbar | boolean | Mostrar la barra de desplazamiento horizontal. | -| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Valores disponibles:
        ConstanteValorDescripción
        vk show resize tip both 3 Se muestran los consejos de redimensionamiento horizontal y vertical.
        vk show resize tip column 1 Sólo se muestra el consejo de redimensionamiento horizontal.
        vk show resize tip none 0 No se muestra ningún consejo de redimensionamiento.
        vk show resize tip row 2 Sólo se muestra el consejo de redimensionamiento vertical.
        | -| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Valores disponibles:
        ConstanteValorDescripción
        vk show scroll tip both 3 Se muestran los consejos de desplazamiento horizontal y vertical.
        vk show scroll tip horizontal 1 Sólo se muestra el consejo de desplazamiento horizontal.
        vk show scroll tip none No se muestra ninguna información de desplazamiento.
        vk show scroll tip vertical 2 Sólo se muestra la información de desplazamiento vertical.
        | -| showVerticalScrollbar | boolean | Mostrar la barra de desplazamiento vertical. | -| tabEditable | boolean | La pestaña de la hoja se puede editar. | -| tabNavigationVisible | boolean | Mostrar la navegación por pestañas. | -| tabStripPosition | number | Posición de la barra de pestañas. Valores disponibles:
        ConstanteValorDescripción
        vk tab strip position bottom 0 La posición del tabulador es relativa a la parte inferior del libro.
        vk tab strip position left 2 La posición de la barra es relativa a la izquierda del libro.
        vk tab strip position right 3 La posición de la barra es relativa a la derecha del libro.
        vk tab strip position top 1 La posición de la barra de pestañas es relativa a la parte superior del libro.
        | -| tabStripRatio | number | Valor porcentual (0,x) que especifica qué parte del espacio horizontal se asignará al tabulador. El resto del área horizontal (1 - 0.x) se asignará a la barra de desplazamiento horizontal. | -| tabStripVisible | boolean | Mostrar la barra de pestañas de la hoja. | -| tabStripWidth | number | Ancho de la etiqueta cuando la posición es izquierda o derecha. Por defecto y el mínimo es 80. | -| useTouchLayout | boolean | Si se va a utilizar el diseño táctil para presentar el componente Spread. | +| Propiedad | Tipo | Descripción | +| ------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | Se permite la operación de fusión por arrastre (seleccionar celdas y arrastrar la selección para fusionar celdas) | +| allowAutoCreateHyperlink | boolean | Permite la creación automática de hipervínculos en la hoja de cálculo. | +| allowContextMenu | boolean | Se puede abrir el menú contextual integrado. | +| allowCopyPasteExcelStyle | boolean | Los estilos de una hoja de cálculo pueden copiarse y pegarse en Excel, y viceversa. | +| allowDynamicArray | boolean | Permite arrays dinámicos en hojas de cálculo | +| allowExtendPasteRange | boolean | Amplía el rango pegado si éste no es suficiente para los datos pegados | +| allowSheetReorder | boolean | Se permite reordenar la hoja | +| allowUndo | boolean | Deshacer ediciones está permitido. | +| allowUserDeselect | boolean | Se permite desmarcar celdas específicas de una selección. | +| allowUserDragDrop | boolean | Se permite arrastrar y soltar los datos del rango | +| allowUserDragFill | boolean | Se permite el relleno por arrastre | +| allowUserEditFormula | boolean | Las fórmulas pueden introducirse en las celdas | +| allowUserResize | boolean | Columnas y filas redimensionables | +| allowUserZoom | boolean | Se permite hacer zoom (ctrl + rueda del ratón) | +| autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
        ConstanteValorDescripción
        vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
        vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
        | +| backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | +| backgroundImage | string / picture / file | Imagen de fondo para el área. | +| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
        ConstantValueDescription
        vk image layout center 1 In the center of the area.
        vk image layout none 3 In the upper left corner of the area with its original size.
        vk image layout stretch 0 Fills the area.
        vk image layout zoom 2 Displayed with its original aspect ratio.
        | +| calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | +| columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
        ConstanteValorDescripción
        vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
        vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
        | +| copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
        | +| customList | collection | La lista para que los usuarios personalicen el relleno de arrastre, dar prioridad a que coincida con esta lista en cada relleno. Cada elemento de colección es una colección de cadenas. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | +| cutCopyIndicatorBorderColor | string | Color del borde del indicador que aparece cuando el usuario corta o copia la selección. | +| cutCopyIndicatorVisible | boolean | Muestra un indicador al copiar o cortar el elemento seleccionado. | +| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
        ConstanteValorDescripción
        vk auto fill type auto 5 Rellena automáticamente las celdas.
        vk auto fill type clear values 4 Clears cell values.
        vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
        vk auto fill type fill formatting only 2 Fills cells only with formatting.
        vk auto fill type fill series 1 Fills cells with series.
        vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
        | +| enableAccessibility | boolean | El soporte de accesibilidad está activado en la hoja de cálculo. | +| enableFormulaTextbox | boolean | Se activa la caja de texto de la fórmula. | +| grayAreaBackColor | string | Una cadena color utilizada para representar el color de fondo del área gris, como "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | +| highlightInvalidData | boolean | Los datos inválidos son resaltados. | +| iterativeCalculation | boolean | Activa el cálculo iterativo. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | +| iterativeCalculationMaximumChange | numeric | Cantidad máxima de cambio entre dos valores de cálculo. | +| iterativeCalculationMaximumIterations | numeric | Número de veces que la fórmula debe recalcular. | +| newTabVisible | boolean | Mostrar una pestaña especial para permitir a los usuarios insertar nuevas hojas. | +| numbersFitMode | number | Cambia el modo de visualización cuando el ancho de los datos de fecha/número es mayor que el ancho de la columna. Valores disponibles:
        ConstanteValorDescripción
        vk numbers fit mode mask0 Sustituye el contenido de los datos por "###" y muestra la punta
        vk numbers fit mode overflow 1 Muestra el contenido de los datos como una cadena. Si la siguiente celda está vacía, se desborda el contenido.
        | +| pasteSkipInvisibleRange | boolean | Pegar u omitir el pegado de datos en rangos invisibles:
        • False (por defecto): pegar datos
        • True: omitir el pegado en rangos invisibles
        Ver [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) para más información sobre rangos invisibles. | +| referenceStyle | number | Estilo para referencias de celdas y rangos en fórmulas de celdas. Available values:
        ConstantValueDescription
        vk reference style A1 0 Use A1 style.
        vk reference style R1C1 1 Use R1C1 style
        | +| resizeZeroIndicator | number | Política de dibujo cuando las líneas o columnas se redimensionan a 0. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
        | +| rowResizeMode | number | La forma en que se redimensionan las líneas. Los valores disponibles son los mismos qe columnResizeMode | +| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Available values:
        ConstantValueDescription
        vk scrollbar appearance mobile1 Mobile scrollbar appearance.
        vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
        | +| scrollbarMaxAlign | boolean | La barra de desplazamiento se alinea con la última línea y columna de la hoja activa. | +| scrollbarShowMax | boolean | Las barras de desplazamiento mostradas se basan en el número total de columnas y líneas de la hoja. | +| scrollByPixel | boolean | Activar desplazamiento de precisión por píxel. | +| scrollIgnoreHidden | boolean | La barra de desplazamiento ignora líneas o columnas ocultas. | +| scrollPixel | integer | Decide el desplazamiento por ese número de píxeles cuando scrollByPixel es true. Los píxeles finales de desplazamiento son el resultado de `scrolling delta * scrollPixel`. Por ejemplo: delta de desplazamiento es 3, scrollPixel es 5, los píxeles finales de desplazamiento son 15. | +| showDragDropTip | boolean | Mostrar la punta de arrastrar y soltar. | +| showDragFillSmartTag | boolean | Mostrar el diálogo de arrastrar y rellenar. | +| showDragFillTip | boolean | Mostrar la punta de arrastrar y soltar. | +| showHorizontalScrollbar | boolean | Mostrar la barra de desplazamiento horizontal. | +| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | +| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | +| showVerticalScrollbar | boolean | Mostrar la barra de desplazamiento vertical. | +| tabEditable | boolean | La pestaña de la hoja se puede editar. | +| tabNavigationVisible | boolean | Mostrar la navegación por pestañas. | +| tabStripPosition | number | Posición de la barra de pestañas. Available values:
        ConstantValueDescription
        vk tab strip position bottom 0 Tab strip position is relative to the bottom of the workbook.
        vk tab strip position left 2 Tab strip position is relative to the left of the workbook.
        vk tab strip position right 3 Tab strip position is relative to the right of the workbook.
        vk tab strip position top 1 Tab strip position is relative to the top of the workbook.
        | +| tabStripRatio | number | Valor porcentual (0,x) que especifica qué parte del espacio horizontal se asignará al tabulador. El resto del área horizontal (1 - 0.x) se asignará a la barra de desplazamiento horizontal. | +| tabStripVisible | boolean | Mostrar la barra de pestañas de la hoja. | +| tabStripWidth | number | Ancho de la etiqueta cuando la posición es izquierda o derecha. Por defecto y el mínimo es 80. | +| useTouchLayout | boolean | Si se va a utilizar el diseño táctil para presentar el componente Spread. | ## Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md index 6479ca5a5168dc..7d22996a114d4a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md @@ -332,16 +332,16 @@ Los atributos de orientación se utilizan para especificar la dirección del dis Los atributos página se utilizan para especificar la configuración general de impresión del documento. -| Propiedad | Tipo | Descripción | -| --------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blackAndWhite | boolean | Impresión sólo en blanco y negro.

        Valor por defecto = false

        **Nota**: este atributo no afecta a los archivos PDF. Se mantienen los colores en los PDF.

        | -| centering | entero largo | Como se centran los contenidos en la página impresa. Valores disponibles: `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (por defecto), `vk print centering vertical` | -| firstPageNumber | entero largo | El número de página a imprimir en la primera página. Valor por defecto = 1 | -| pageOrder | entero largo | Las páginas del pedido se imprimen. Valores disponibles: `vk print page order auto` (por defecto), `vk print page order down then over`, `vk print page order over then down`. | -| pageRange | text | El rango de páginas a imprimir | -| qualityFactor | entero largo | El factor de calidad para la impresión (1 - 8). Cuanto mayor sea el factor de calidad, mejor será la calidad de impresión, sin embargo, el rendimiento de impresión puede verse afectado.

        Valor por defecto = 2

        | -| useMax | boolean | Sólo se imprimen columnas y líneas con datos.

        Valor predeterminado = true

        | -| zoomFactor | real | La cantidad para ampliar o reducir la página impresa.

        Valor predeterminado = 1

        | +| Propiedad | Tipo | Descripción | +| --------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| blackAndWhite | boolean | Impresión sólo en blanco y negro.

        Valor por defecto = false

        **Nota**: este atributo no afecta a los archivos PDF. Se mantienen los colores en los PDF.

        | +| centering | entero largo | Como se centran los contenidos en la página impresa. Valores disponibles: `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (por defecto), `vk print centering vertical` | +| firstPageNumber | entero largo | El número de página a imprimir en la primera página. Valor por defecto = 1 | +| pageOrder | entero largo | Las páginas del pedido se imprimen. Valores disponibles: `vk print page order auto` (por defecto), `vk print page order down then over`, `vk print page order over then down`. | +| pageRange | text | El rango de páginas a imprimir | +| qualityFactor | entero largo | El factor de calidad para la impresión (1 - 8). The higher the quality factor, the better the printing quality, however printing performance may be affected.

        Valor por defecto = 2

        | +| useMax | boolean | Sólo se imprimen columnas y líneas con datos.

        Valor por defecto = true

        | +| zoomFactor | real | La cantidad para ampliar o reducir la página impresa.

        Valor por defecto = 1

        | ### Tamaño del papel diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index facb115670bf95..e0a480493e6133 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -28,7 +28,7 @@ For security reasons, external access to the datastore can be disallowed in 4D. ::: -## How to set handlers +## Cómo definir los manejadores You can declare HTTP Request handlers: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index e087d1672ba793..e88e079122443e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -1,6 +1,6 @@ --- id: http-rules -title: HTTP Rules +title: Reglas HTTP --- You can define HTTP rules to control HTTP response headers for any requests received by the 4D web server, including REST requests. You can add, modify, or remove HTTP headers, send redirections or set the HTTP status. This feature is useful to implement security policies based upon the handling of headers. @@ -14,7 +14,7 @@ HTTP rules are supported in the following contexts: - [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, - a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). -## How to set rules +## Cómo definir reglas You can declare HTTP response rules: @@ -29,7 +29,7 @@ If both a **HTTPRules.json** file and a call to the [`WEB Server`](../commands/w If the URI of the request does not match any of the RegEx patterns, the web server returns a default response. -## Rules Definition +## Definición de reglas The **HTTPRules.json** file or the [`.rules`](../API/WebServerClass.md#rules) property must contain a collection of **rule objects**. @@ -60,16 +60,21 @@ The following action keywords are supported: | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. If a header to modify does not exist in the response header, it is added. | | `denyAccess` | Boolean | true to deny access to the resource, false to allow access. When the access to a resource is denied, the web server returns a 403 status by default | | `redirect` | Text | Redirection URL. When a redirection is triggered, the web server returns a 302 status by default | -| `status` | Number | HTTP status | +| `status` | Number | Estado HTTP | ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Encabezado | Acción de añadir | Set | Remove | +| ---------------- | ---------------- | ------------- | ------ | +| Fecha | No | No | No | +| Content-Length | No | No | No | +| Content-Encoding | No | No | No | +| Vary | Sí | No | No | +| Set-Cookie | Sí | Añadir cookie | No | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index cb189885bf97f9..5988064c941307 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -138,7 +138,8 @@ No existe compatibilidad directa entre las aplicaciones implementadas con 4D y l | Depurador | 4D IDE debugger
        *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Qodly Studio debugger | | Roles y privilegios REST/Web | Edición directa de roles.json/Editor de roles y permisos Qodly Studio | Editor de roles y privilegios de Qodly Studio | -Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. (1) The **Model** item is disabled in Qodly Studio.
        +(1) El elemento **Modelo** está desactivado en Qodly Studio.
        +(2) En el servidor 4D, la apertura del código 4D con el editor de código Qodly Studio es soportada **para pruebas y depuración** (ver [este párrafo](#development-and-deployment)). (1) The **Model** item is disabled in Qodly Studio.
        (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). ### Lenguaje @@ -235,7 +236,7 @@ El proyecto debe ejecutarse en modo interpretado para que el elemento de menú * ::: -2. In the Qodly Studio toolbar, click on the **Debug** button.
        +2. En la barra de herramientas de Qodly Studio, haga clic en el botón **Debug**.
        ![qodly-debug](../assets/en/WebServer/qodly-debug.png) Si la sesión de depuración se inicia correctamente, aparecerá una viñeta verde en la etiqueta del botón ![qodly-debug](../assets/en/WebServer/debug2.png) y podrá utilizar el depurador de Qodly Studio. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index b2a3a87835a17c..dfb4e76c1380da 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Entradas de blog relacionadas -Para más ejemplos, por favor consulte la publicación de blog [Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/). +[Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: @@ -477,7 +477,7 @@ Se crea un nuevo usuario y se almacena cierta información en la sesión, especi - Sólo se pueden reutilizar las sesiones de la base de datos local (las sesiones creadas en servidores web de componentes no se pueden restaurar). - Los tokens no son compatibles con las sesiones cliente/servidor ni con las sesiones monousuario. -### Lifespan +### Vida útil Un testigo de sesión tiene una vida útil, y la propia sesión tiene una vida útil. El tiempo de vida útil del token de sesión puede definirse [en la creación de tokens](../API/SessionClass.md#createotp). Por defecto, el tiempo de vida del token es el mismo valor que el valor de [`.idleTimeout`](../API/SessionClass.md#idletimeout). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 22056b4f4e48a2..4a467a5ab602c3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -623,9 +623,9 @@ En algunos casos, se pueden invocar otras funciones internas optimizadas. Las co Dos opciones le permiten definir cómo funcionan las conexiones persistentes: -- **Número de peticiones por conexión**: permite definir el número máximo de peticiones y de respuestas capaces de viajar por una conexión persistente. Limitar el número de peticiones por conexión le permite evitar la inundación del servidor debido a un gran número de peticiones entrantes (una técnica utilizada por los hackers).

        - El valor por defecto (100) puede aumentarse o disminuirse en función de los recursos de la máquina que aloja el Servidor Web 4D.

        +- **Número de peticiones por conexión**: permite definir el número máximo de peticiones y de respuestas capaces de viajar por una conexión persistente. Limiting the number of requests per connection allows you to prevent server flooding due to a large number of incoming requests (a technique used by hackers).

        + The default value (100) can be increased or decreased depending on the resources of the machine hosting the 4D Web Server.

        -- **Tiempo de espera antes de desconexión**: este valor define el periodo máximo de espera (en segundos) durante el cual el servidor web mantiene una conexión TCP abierta sin recibir ninguna petición del navegador web. Una vez transcurrido este periodo, el servidor cierra la conexión.

        - Si el navegador envía una solicitud después de que se haya cerrado la conexión, se crea automáticamente una nueva conexión TCP. Esta operación no es visible para el usuario.

        +- **Tiempo de espera antes de desconexión**: este valor define el periodo máximo de espera (en segundos) durante el cual el servidor web mantiene una conexión TCP abierta sin recibir ninguna petición del navegador web. Una vez finalizado este periodo, el servidor cierra la conexión.

        + Si el navegador web envía una solicitud después de cerrar la conexión, se crea automáticamente una nueva conexión TCP. Esta operación no es visible para el usuario.

        diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md index 5b83c6bb5b8efb..e3ba5688f10b6f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md @@ -52,25 +52,25 @@ Puede omitir el parámetro *format*, en cuyo caso deberá especificar la extensi Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* conteniendo los valores para definir las propiedades del documento exportado. Las siguientes propiedades están disponibles: -| Constante | Valor | Comentario | -| ------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
      83. true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
      84. false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no se incrustan, sino que se hace referencia a ellas en el archivo .svg.
      85. Nota: si la carpeta ya existe, se vacía antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | -| wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](#wk-factur-x-object)). | -| wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
      86. false (por defecto): no se añade ninguna regla de importación de google fonts.
      87. true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
      88. **Nota:** esta propiedad está definida en false de forma predeterminada porque, cuando está activa, las fuentes de Google anulan las fuentes nativas y, por lo general, las fuentes nativas se muestran mejor en el navegador. | -| wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | -| wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | -| wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
      89. `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
      90. `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el formato para la representación en pantalla.
      91. **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (se ignora la opción wk optimized for). | -| wk page index | pageIndex | Sólo para exportación SVG. Índice de la página a exportar a formato svg (por defecto es 1). El índice de páginas comienza en 1 para la primera página del documento. **Nota:** el índice de páginas es independiente de la numeración de páginas. | -| wk pdfa version | pdfaVersion | Exporta PDF conforme a una versión PDF/A. Para más información sobre las propiedades y versiones de PDF/A, consulte la [página PDF/A en Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Valores posibles:
      92. `wk pdfa2`: exporta a la versión "PDF/A-2"
      93. `wk pdfa3`: exporta a la versión "PDF/A-3"
      94. **Nota:** en macOS, `wk pdfa2` puede exportar a PDF/A-2 o PDF/A-3 o superior, dependiendo de la implementación de la plataforma. Además, `wk pdfa3` significa "exporta a *al menos* PDF/A-3". En Windows, el archivo PDF de salida siempre será igual a la conformidad deseada. | -| wk recompute formulas | recomputeFormulas | Define si las fórmulas deben volver a calcularse cuando se exportan. Valores posibles:
      95. true - Valor por defecto. Se vuelven a calcular todas las fórmulas
      96. false - No se vuelven a calcular las fórmulas
      97. | -| wk visible background and anchored elements | visibleBackground | Muestra o exporta imágenes/color de fondo, imágenes ancladas y cuadros de texto (para mostrar, efecto visible sólo en modo de vista Página o Anidado). Valores posibles: True/False | -| wk visible empty images | visibleEmptyImages | Muestra o exporta un rectángulo negro por defecto para las imágenes que no se pueden cargar o calcular (imágenes vacías o imágenes en un formato no compatible). Valores posibles: True/False. Valor por defecto: True Si el valor es False, los elementos de imagen que falten no se mostrarán en absoluto aunque tengan bordes, ancho, alto o fondo; esto puede afectar al diseño de la página para imágenes en línea. | -| wk visible footers | visibleFooters | Muestra o exporta los pies de página (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | -| wk visible headers | visibleHeaders | Muestra o exporta los encabezados (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | -| wk visible references | visibleReferences | Muestra o exporta todas las expresiones 4D insertadas en el documento como referencias. Valores posibles: True/False | -| wk whitespace | whitespace | Define el valor css "white-space" para los formatos de exportación `wk mime html` y `wk web page complete`. El estilo [white-space css](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) se aplica a los párrafos. Valores posibles: "normal", "nowrap", "pre", "pre-wrap" (por defecto), "pre-line", "break-spaces". | +| Constante | Valor | Comentario | +| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
      98. true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
      99. false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. The pictures are not embedded, but referenced in the .svg file.
      100. Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](#wk-factur-x-object)). | +| wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Possible values:
      101. false (default): No google fonts import rule is added.
      102. true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
      103. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | +| wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | +| wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
      104. `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
      105. `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
      106. **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | +| wk page index | pageIndex | Sólo para exportación SVG. Índice de la página a exportar a formato svg (por defecto es 1). El índice de páginas comienza en 1 para la primera página del documento. **Nota:** el índice de páginas es independiente de la numeración de páginas. | +| wk pdfa version | pdfaVersion | Exporta PDF conforme a una versión PDF/A. Para más información sobre las propiedades y versiones de PDF/A, consulte la [página PDF/A en Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Valores posibles:
      107. `wk pdfa2`: exporta a la versión "PDF/A-2"
      108. `wk pdfa3`: exporta a la versión "PDF/A-3"
      109. **Nota:** en macOS, `wk pdfa2` puede exportar a PDF/A-2 o PDF/A-3 o superior, dependiendo de la implementación de la plataforma. Además, `wk pdfa3` significa "exporta a *al menos* PDF/A-3". En Windows, el archivo PDF de salida siempre será igual a la conformidad deseada. | +| wk recompute formulas | recomputeFormulas | Define si las fórmulas deben volver a calcularse cuando se exportan. Valores posibles:
      110. true - Valor por defecto. Se vuelven a calcular todas las fórmulas
      111. false - No se vuelven a calcular las fórmulas
      112. | +| wk visible background and anchored elements | visibleBackground | Muestra o exporta imágenes/color de fondo, imágenes ancladas y cuadros de texto (para mostrar, efecto visible sólo en modo de vista Página o Anidado). Valores posibles: True/False | +| wk visible empty images | visibleEmptyImages | Muestra o exporta un rectángulo negro por defecto para las imágenes que no se pueden cargar o calcular (imágenes vacías o imágenes en un formato no compatible). Valores posibles: True/False. Valor por defecto: True Si el valor es False, los elementos de imagen que falten no se mostrarán en absoluto aunque tengan bordes, ancho, alto o fondo; esto puede afectar al diseño de la página para imágenes en línea. | +| wk visible footers | visibleFooters | Muestra o exporta los pies de página (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | +| wk visible headers | visibleHeaders | Muestra o exporta los encabezados (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | +| wk visible references | visibleReferences | Muestra o exporta todas las expresiones 4D insertadas en el documento como referencias. Valores posibles: True/False | +| wk whitespace | whitespace | Define el valor css "white-space" para los formatos de exportación `wk mime html` y `wk web page complete`. El estilo [white-space css](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) se aplica a los párrafos. Valores posibles: "normal", "nowrap", "pre", "pre-wrap" (por defecto), "pre-line", "break-spaces". | The following table indicates the *option* available per export *format*: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 22cf5a3c10a7c8..76ca0b6b25da13 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descripción -The **WP EXPORT VARIABLE** command exports the *wpDoc* 4D Write Pro object to the 4D *destination* variable in the specified *format*. +El comando **WP EXPORT VARIABLE** exporta el objeto *wpDoc* 4D Write Pro a la variable *destination* 4D en el *format* especificado. En *wpDoc*, pase el objeto 4D Write Pro que desea exportar. @@ -52,27 +52,27 @@ En el parámetro *format*, pase una constante del tema *4D Write Pro Constants* Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* conteniendo los valores para definir las propiedades del documento exportado. Las siguientes propiedades están disponibles: -| Constante | Valor | Comentario | -| ------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
      113. true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
      114. false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no se integran, sino que se hace referencia a ellas en el archivo .svg.
      115. Nota: si la carpeta ya existe, se vacía antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | -| wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | -| wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](./wp-export-document.md#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
      116. false (por defecto): no se añade ninguna regla de importación de google fonts.
      117. true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
      118. **Nota:** esta propiedad está definida en false de forma predeterminada porque, cuando está activa, las fuentes de Google anulan las fuentes nativas y, por lo general, las fuentes nativas se muestran mejor en el navegador. | -| wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | -| wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | -| wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
      119. `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
      120. `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el formato para la representación en pantalla.
      121. **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (se ignora la opción wk optimized for). | -| wk page index | pageIndex | Sólo para exportación SVG. Índice de la página a exportar a formato svg (por defecto es 1). El índice de páginas comienza en 1 para la primera página del documento. **Nota:** el índice de páginas es independiente de la numeración de páginas. | -| wk pdfa version | pdfaVersion | Exporta PDF conforme a una versión PDF/A. Para más información sobre las propiedades y versiones de PDF/A, consulte la [página PDF/A en Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Valores posibles:
      122. `wk pdfa2`: exporta a la versión "PDF/A-2"
      123. `wk pdfa3`: exporta a la versión "PDF/A-3"
      124. **Nota:** en macOS, `wk pdfa2` puede exportar a PDF/A-2 o PDF/A-3 o superior, dependiendo de la implementación de la plataforma. Además, `wk pdfa3` significa "exporta a *al menos* PDF/A-3". En Windows, el archivo PDF de salida siempre será igual a la conformidad deseada. | -| wk recompute formulas | recomputeFormulas | Define si las fórmulas deben volver a calcularse cuando se exportan. Valores posibles:
      125. true - Valor por defecto. Se vuelven a calcular todas las fórmulas
      126. false - No se vuelven a calcular las fórmulas
      127. | -| wk visible background and anchored elements | visibleBackground | Muestra o exporta imágenes/color de fondo, imágenes ancladas y cuadros de texto (para mostrar, efecto visible sólo en modo de vista Página o Anidado). Valores posibles: True/False | -| wk visible empty images | visibleEmptyImages | Muestra o exporta un rectángulo negro por defecto para las imágenes que no se pueden cargar o calcular (imágenes vacías o imágenes en un formato no compatible). Valores posibles: True/False. Valor por defecto: True Si el valor es False, los elementos de imagen que falten no se mostrarán en absoluto aunque tengan bordes, ancho, alto o fondo; esto puede afectar al diseño de la página para imágenes en línea. | -| wk visible footers | visibleFooters | Muestra o exporta los pies de página (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | -| wk visible headers | visibleHeaders | Muestra o exporta los encabezados (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | -| wk visible references | visibleReferences | Muestra o exporta todas las expresiones 4D insertadas en el documento como referencias. Valores posibles: True/False | -| wk whitespace | whitespace | Define el valor css "white-space" para el formato de exportación `wk mime html`. El estilo [white-space css](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) se aplica a los párrafos. Valores posibles: "normal", "nowrap", "pre", "pre-wrap" (por defecto), "pre-line", "break-spaces". | - -La siguiente tabla indica la *option* disponible por cada *format*: +| Constante | Valor | Comentario | +| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
      128. true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
      129. false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. The pictures are not embedded, but referenced in the .svg file.
      130. Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | +| wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](./wp-export-document.md#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Possible values:
      131. false (default): No google fonts import rule is added.
      132. true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
      133. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | +| wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | +| wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
      134. `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
      135. `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
      136. **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | +| wk page index | pageIndex | Sólo para exportación SVG. Índice de la página a exportar a formato svg (por defecto es 1). El índice de páginas comienza en 1 para la primera página del documento. **Nota:** el índice de páginas es independiente de la numeración de páginas. | +| wk pdfa version | pdfaVersion | Exporta PDF conforme a una versión PDF/A. Para más información sobre las propiedades y versiones de PDF/A, consulte la [página PDF/A en Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Valores posibles:
      137. `wk pdfa2`: exporta a la versión "PDF/A-2"
      138. `wk pdfa3`: exporta a la versión "PDF/A-3"
      139. **Nota:** en macOS, `wk pdfa2` puede exportar a PDF/A-2 o PDF/A-3 o superior, dependiendo de la implementación de la plataforma. Además, `wk pdfa3` significa "exporta a *al menos* PDF/A-3". En Windows, el archivo PDF de salida siempre será igual a la conformidad deseada. | +| wk recompute formulas | recomputeFormulas | Define si las fórmulas deben volver a calcularse cuando se exportan. Valores posibles:
      140. true - Valor por defecto. Se vuelven a calcular todas las fórmulas
      141. false - No se vuelven a calcular las fórmulas
      142. | +| wk visible background and anchored elements | visibleBackground | Muestra o exporta imágenes/color de fondo, imágenes ancladas y cuadros de texto (para mostrar, efecto visible sólo en modo de vista Página o Anidado). Valores posibles: True/False | +| wk visible empty images | visibleEmptyImages | Muestra o exporta un rectángulo negro por defecto para las imágenes que no se pueden cargar o calcular (imágenes vacías o imágenes en un formato no compatible). Valores posibles: True/False. Valor por defecto: True Si el valor es False, los elementos de imagen que falten no se mostrarán en absoluto aunque tengan bordes, ancho, alto o fondo; esto puede afectar al diseño de la página para imágenes en línea. | +| wk visible footers | visibleFooters | Muestra o exporta los pies de página (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | +| wk visible headers | visibleHeaders | Muestra o exporta los encabezados (para la visualización, efecto visible sólo en el modo vista Página). Valores posibles: True/False | +| wk visible references | visibleReferences | Muestra o exporta todas las expresiones 4D insertadas en el documento como referencias. Valores posibles: True/False | +| wk whitespace | whitespace | Define el valor css "white-space" para el formato de exportación `wk mime html`. El estilo [white-space css](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) se aplica a los párrafos. Valores posibles: "normal", "nowrap", "pre", "pre-wrap" (por defecto), "pre-line", "break-spaces". | + +The following table indicates the *option* available per export *format*: | | **wk 4wp** | **wk docx** | **wk mime html** | **wk pdf** | **wk web page html 4d** | **wk svg** | | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md index 7daedb273fe4d2..fa6360bcb95c9e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP Get attributes** devuelve el valor de cualquier atributo en un rango 4D Write Pro, encabezado, cuerpo, pie de página, tabla o documento. Este comando le da acceso a cualquier tipo de atributos internos 4D Write Pro: carácter, párrafo, documento, tabla o imagen. +El comando **WP Get attributes** devuelve el valor de todo atributo en un rango 4D Write Pro, encabezado, cuerpo, pie de página, tabla o documento. This command gives you access to any kind of 4D Write Pro internal attributes: character, paragraph, document, table, or image. En *targetObj*, puede pasar: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md index 9d10fa7eb81856..aabd860a7a9bec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md @@ -4,7 +4,7 @@ title: WP Insert formula displayed_sidebar: docs --- -**WP Insert formula** ( *targetObj* ; *formula* ; *mode* {; *rangeUpdate*} ) : Object +**WP Insert formula** ( *targetObj* ; *formula* ; *mode* {; *rangeUpdate*} ): Object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md index 065ee94c6e6f5f..e3c95cabba2413 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. Este comando puede eliminar cualquier tipo de atributo interno 4D Write Pro: carácter, párrafo, documento, tabla o imagen. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. +El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. This command can remove any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. > En el caso de una sección o subsección, el objeto *sectionOrSubsection* puede pasarse solo y todos los atributos se restablecen a la vez. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md index 0d6687e596cd93..997c3cd500b662 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP SET ATTRIBUTES** le permite definir el valor de todo atributo en un rango, elemento, documento. Este comando le da acceso a todo de atributo interno 4D Write Pro: carácter, párrafo, documento, tabla o imagen. +El comando **WP SET ATTRIBUTES** le permite definir el valor de cualquier atributo en un rango, elemento, documento. This command gives you access to any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. En *targetObj*, puede pasar: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 608c443e16e75e..9aef2486715052 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -54,22 +54,22 @@ Desea sustituir la selección en un área de 4D Write Pro por el contenido de un Puede insertar expresiones especiales relacionadas con los atributos del documento en cualquier área del documento (cuerpo, encabezado, pie de página) utilizando el comando [WP Insertar fórmula](commands/wp-insert-formula.md). Dentro de una fórmula, un objeto contextual de la fórmula se expone automáticamente. Puede utilizar las propiedades de este objeto a través de [**This**](../commands/this.md): -| Propiedades | Tipo | Descripción | -| ------------------------------------------------------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [This](../commands/this.md).title | Text | Título definido en el atributo wk title | -| [This](../commands/this.md).author | Text | Autor definido en el atributo wk author | -| [This](../commands/this.md).subject | Text | Asunto definido en el atributo wk subject | -| [This](../commands/this.md).company | Text | Empresa definida en el atributo wk company | -| [This](../commands/this.md).notes | Text | Notas definidas en el atributo wk notes | -| [This](../commands/this.md).dateCreation | Fecha | Fecha de creación definida en el atributo wk date creation | -| [This](../commands/this.md).dateModified | Fecha | Fecha de modificación definida en el atributo wk date modified | -| [This](../commands/this.md).pageNumber (\*) | Number | Número de página tal y como está definido
      143. :- Desde el inicio del documento (por defecto) o
      144. - Desde el inicio de página de sección si está definido por inicio de página de sección.
      145. Esta fórmula es siempre dinámica; no se ve afectada por el comando [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | -| [This](../commands/this.md).pageCount (\*) | Number | Conteo de páginas: recuento total de páginas.
        Esta fórmula es siempre dinámica; no se ve afectada por el comando [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | -| [This](../commands/this.md).document | Object | Documento 4D Write Pro | -| [This](../commands/this.md).data | Object | Contexto de datos del documento 4D Write Pro definido por [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | -| [This](../commands/this.md).sectionIndex | Number | El índice de la sección en el documento 4D Write Pro a partir de 1 | -| [This](../commands/this.md).pageIndex | Number | El número de página real en el documento 4D Write Pro a partir de 1 (independientemente de los números de página de la sección) | -| [This](../commands/this.md).sectionName | String | El nombre que el usuario da a la sección | +| Propiedades | Tipo | Descripción | +| ------------------------------------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [This](../commands/this.md).title | Text | Título definido en el atributo wk title | +| [This](../commands/this.md).author | Text | Autor definido en el atributo wk author | +| [This](../commands/this.md).subject | Text | Asunto definido en el atributo wk subject | +| [This](../commands/this.md).company | Text | Empresa definida en el atributo wk company | +| [This](../commands/this.md).notes | Text | Notas definidas en el atributo wk notes | +| [This](../commands/this.md).dateCreation | Fecha | Fecha de creación definida en el atributo wk date creation | +| [This](../commands/this.md).dateModified | Fecha | Fecha de modificación definida en el atributo wk date modified | +| [This](../commands/this.md).pageNumber (\*) | Number | Page number as it is defined:
      146. - From the document start (default) or
      147. - From the section page start if it is defined by section page start.
      148. Esta fórmula siempre es dinámica; no se ve afectada por el comando [**FORMULAS WP FREEZE**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).pageCount (\*) | Number | Número de páginas: número total de páginas.
        Esta fórmula siempre es dinámica; no se ve afectada por el comando [**FORMULAS WP FREEZE**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).document | Object | Documento 4D Write Pro | +| [This](../commands/this.md).data | Object | Contexto de datos del documento 4D Write Pro definido por [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | +| [This](../commands/this.md).sectionIndex | Number | El índice de la sección en el documento 4D Write Pro a partir de 1 | +| [This](../commands/this.md).pageIndex | Number | El número de página real en el documento 4D Write Pro a partir de 1 (independientemente de los números de página de la sección) | +| [This](../commands/this.md).sectionName | String | El nombre que el usuario da a la sección | :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 9c3c1c18655023..65f84b56f8d1ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -19,6 +19,6 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op | *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | | Resultado | Variant | The retrieved messages associated with the chat completion. | -The `list()` function retrieves messages associated with a specific chat completion ID. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. +La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. https://platform.openai.com/docs/api-reference/chat/getMessages diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index 2d506c2ba0ee11..db1b10b9ec0ee7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -13,26 +13,26 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters ## Propiedades -| Propiedad | Tipo | Valor por defecto | Descripción | -| ----------------------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | ID del modelo a utilizar. | -| `stream` | Boolean | `False` | Si se retransmite el progreso parcial. Si se define, los tokens se enviarán solo como datos. Fórmula de retrollamada necesaria. | -| `stream_options` | Object | `Null` | Property for stream=True. For example: `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | The maximum number of tokens that can be generated in the completion. | -| `n` | Integer | `1` | How many completions to generate for each prompt. | -| `temperature` | Real | `-1` | Qué temperatura de muestreo utilizar, entre 0 y 2. Higher values make the output more random, while lower values make it more focused and deterministic. | -| `store` | Boolean | `False` | Whether or not to store the output of this chat completion request. | -| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Currently supported values are `"low"`, `"medium"`, and `"high"`. | -| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. | -| `herramientas` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. | -| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Can be `"none"`, `"auto"`, `"required"`, or specify a particular tool. | -| `prediction` | Object | `Null` | Static predicted output content, such as the content of a text file that is being regenerated. | +| Propiedad | Tipo | Valor por defecto | Descripción | +| ----------------------- | ---------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | `"gpt-4o-mini"` | ID del modelo a utilizar. | +| `stream` | Boolean | `False` | Si se retransmite el progreso parcial. Si se define, los tokens se enviarán solo como datos. Fórmula de retrollamada necesaria. | +| `stream_options` | Object | `Null` | Property for stream=True. Por ejemplo: `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | The maximum number of tokens that can be generated in the completion. | +| `n` | Integer | `1` | How many completions to generate for each prompt. | +| `temperature` | Real | `-1` | Qué temperatura de muestreo utilizar, entre 0 y 2. Higher values make the output more random, while lower values make it more focused and deterministic. | +| `store` | Boolean | `False` | Whether or not to store the output of this chat completion request. | +| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Los valores soportados actualmente son `"low"`, `"medium"` y `"high"`. | +| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. | +| `herramientas` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. | +| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Puede ser `"none"`, `"auto"`, `"required"`, o especificar una herramienta concreta. | +| `prediction` | Object | `Null` | Static predicted output content, such as the content of a text file that is being regenerated. | ### Propiedades de retrollamada asíncrona -| Propiedad | Tipo | Descripción | -| ------------------------------------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | +| Propiedad | Tipo | Descripción | +| ----------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `onData` (o `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | `onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). @@ -119,7 +119,7 @@ $result := $client.chat.completions.create($messages; $params) When using `json_schema` type, you can specify: -- **`name`**: A name for the schema +- **`name`**: un nombre para el esquema - **`description`**: A description of what the schema represents - **`schema`**: The JSON schema definition - **`strict`**: Whether to enforce strict adherence to the schema diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md index 09e15a20df5e90..9009658de82b79 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md @@ -5,17 +5,17 @@ title: OpenAIImage # OpenAIImage -The `OpenAIImage` class represents an image generated by the OpenAI API. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. +La clase `OpenAIImage` representa una imagen generada por la API OpenAI. It provides properties for accessing the generated image in different formats and methods for converting this image to different types. https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------- | -| `url` | Text | The URL of the generated image, if `response_format` is `url` (default). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | +| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | ## Funciones diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md index 167f8ab9d4ac4b..d50e4af6583cb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md @@ -18,8 +18,8 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame | `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | | `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | | `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | The style of the generated images (must be either `vivid` or `natural`). | -| `response_format` | Text | "url" | The format for returned images, can be either `url` or `b64_json`. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImagesAPI.md index 3797cb01095e30..4ffe3a9911bd80 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImagesAPI.md @@ -5,7 +5,7 @@ title: OpenAIImagesAPI # OpenAIImagesAPI -The `OpenAIImagesAPI` provides functionalities to generate images using OpenAI's API. +La `OpenAIImagesAPI` ofrece funcionalidades para generar imágenes utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/images diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index f8259807424811..ab4ca22c87ed49 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ The `OpenAIMessage` class represents a structured message containing a role, con ## Propiedades -| Propiedad | Tipo | Descripción | -| -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | -| `user` | Text | An optional property representing the user associated with the message. | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| Propiedad | Tipo | Descripción | +| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | +| `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | +| `user` | Text | An optional property representing the user associated with the message. | +| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | +| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | ## Propiedades calculadas diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md index 4a2bbe4632aec8..77620f6ef0ac24 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md @@ -20,7 +20,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. | `tipo` | Text | `"function"` | El tipo de herramienta. Currently supports `"function"`, `"custom"`, and other built-in types. | | `strict` | Boolean | `False` | Whether to enforce strict schema validation for function parameters. | -### Common Properties +### Propiedades comunes | Propiedad | Tipo | Descripción | | ------------- | ---- | ------------------------------------------------------------------------------ | @@ -46,7 +46,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. Crea una nueva instancia de OpenAITool. The constructor accepts both simplified format and OpenAI API format. -#### Supported formats +#### Formatos soportados **Simplified format:** diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 79d2786081e8cb..8d17f8e266c9d6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -44,7 +44,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
      149. `ZIP Compression standard`: Compresión Deflate (por defecto)
      150. `ZIP Compression LZMA`: Compression LZMA
      151. `ZIP Compresión XZ`: Compression XZ
      152. `ZIP Compresión`: sin compresión
      153. | | level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      154. `ZIP Compression standard`: 6
      155. `ZIP Compression LZMA`: 4
      156. `ZIP Compression XZ`: 4
      157. | -| encryption | Integer | The encryption to use if a password is set:
      158. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      159. `ZIP Encryption AES192`: AES encryption using 192-bit key.
      160. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      161. `ZIP Encryption none`: Data is not encrypted (default if no password is set)
      162. | +| encryption | Integer | The encryption to use if a password is set:
      163. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      164. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      165. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      166. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      167. | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
      168. una colección de objetos `4D.File` o `4D.Folder` o
      169. una colección de objetos con las siguientes propiedades:
      170. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | | retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/CollectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/CollectionClass.md index 5dcf2027434be2..d035141d566951 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/CollectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/CollectionClass.md @@ -3216,15 +3216,15 @@ La fonction `.sort()` trie les éléments > Cette fonction modifie la collection d'origine. Si `.sort()` est appelé sans paramètres, seules les valeurs scalaires (nombres, textes, dates, booléens) sont triées. Les éléments sont triés par défaut par ordre croissant, en fonction de leur type. -You can also pass one of the following constants in the *ascOrDesc* parameter: +Vous pouvez également passer une des constantes suivantes dans le paramètre *ascOrDesc* : ``` -|Constant| Type|Value|Comment| -|---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| +|Constante| Type|Valeur|Comment| +|---|---|---| +|ck ascending|Integer|0|Les éléments sont classés par ordre croissant (par défaut)| +|ck descending|Integer|1|Les éléments sont classés par ordre décroissant| -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +Cette syntaxe ordonne uniquement les valeurs scalaires dans la collection (les autres types d'éléments tels que les objets ou les collections sont renvoyés non ordonnés). ``` Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont renvoyés dans l'ordre suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md index 62d40f51d1a21b..3c2165231c46e3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -335,10 +335,10 @@ vCompareResult3 (seules les différences sur les attributs touchés de $e1 sont
        Historique -| Release | Modifications | -| ------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Ajout | +| Release | Modifications | +| ------- | ------------------------ | +| 21 | Ajout des statuts 7 et 8 | +| 17 | Ajout |
        @@ -365,7 +365,7 @@ Sinon, vous pouvez passer l'option `dk force drop if stamp changed` dans le para **Résultat** -The object returned by `.drop()` contains the following properties: +L'objet renvoyé par `.drop()` contient les propriétés suivantes : | Propriété | | Type | Description | | --------------------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -390,15 +390,15 @@ The object returned by `.drop()` contains the following properties: (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      171. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      172. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
      173. **Associated statusText**: "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      174. with `.save()`: error only if the `dk auto merge` option is not used
      175. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      176. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      177. **Associated statusText**: "Stamp has changed"
      178. | -| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      179. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      180. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de entity.drop(), cette erreur peut être renvoyée lorsque l'option dk force drop if stamp changed est utilisée. Lors de l'utilisation de entity.lock(), cette erreur peut être renvoyée lorsque l'option dk reload if stamp changed est utilisée.
      181. **statusText associé** : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | +| `dk status validation failed` | 7 | Erreur non fatale envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Mild Validation Error" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | +| `dk status serious validation error` | 8 | Erreur critique envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | La valeur interne du stamp de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      182. avec `.save()` : erreur seulement si l'option `dk auto merge` n'est pas utilisée
      183. avec `.drop()` : erreur seulement si l'option `dk force drop if stamp changed` n'est pas utilisée
      184. avec `.lock()` : erreur seulement si l'option `dk reload if stamp changed` n'est pas utilisée
      185. **statusText associé** : "Stamp has changed"
      186. | +| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | #### Exemple 1 @@ -512,7 +512,7 @@ La correspondance entre l'objet et l'entité est établie à partir des noms de - Si une propriété de l'objet n'existe pas dans la dataclass, elle est ignorée. - Les types de données doivent être équivalents. S'il existe une différence de type entre l'objet et la dataclass, 4D essaie de convertir les données lorsque cela est possible (voir [`Converting data types`](Concepts/data-types.md#converting-data-types)), sinon l'attribut est laissé intact. -- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. +- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si elle n'existe pas déjà dans la dataclass, l'entité est créée avec la valeur donnée lorsque [.save()](#save) est appelée. Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. *filler* peut contenir une related entity dans les conditions suivantes : @@ -1011,13 +1011,12 @@ L'objet retourné par `.lock()` contient les propriétés suivantes : (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      187. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      188. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      189. **statusText associé** : "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      190. with `.save()`: error only if the `dk auto merge` option is not used
      191. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      192. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      193. **Associated statusText**: "Stamp has changed" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      194. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      195. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option dk force drop if stamp changed est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      196. **statusText associé** : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | +| `dk status stamp has changed` | 2 | La valeur du stamp interne de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      197. avec `.save()` : erreur seulement si l'option `dk auto merge` n'est pas utilisée
      198. avec `.drop()` : erreur seulement si l'option `dk force drop if stamp changed` n'est pas utilisée
      199. avec `.lock()`: erreur seulement si l'option `dk reload if stamp changed` n'est pas utilisée

      200. **statusText associé** : "Stamp has changed" | #### Exemple 1 @@ -1178,10 +1177,10 @@ L'objet retourné par `.reload( )` contient les propriétés suivantes : (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      201. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      202. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      203. ***statusText associé***: "Entity does not exist anymore" | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        ***statusText associé*** : "Other error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      204. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      205. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      206. ***statusText associé***: "Entity does not exist anymore" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        ***statusText associé*** : "Other error" | #### Exemple @@ -1210,10 +1209,10 @@ L'objet retourné par `.reload( )` contient les propriétés suivantes :
        Historique -| Release | Modifications | -| ------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Ajout | +| Release | Modifications | +| ------- | ------------------------ | +| 21 | Ajout des statuts 7 et 8 | +| 17 | Ajout |
        @@ -1273,16 +1272,16 @@ L'objet retourné par `.save()` contient les propriétés suivantes : Les valeurs suivantes peuvent être retournées dans les propriétés `status` et `statusText` de l'objet Résultat en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **Associated statusText**: "Auto merge failed" | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      207. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      208. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      209. **statusText associé** : "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste. **statusText associé** : "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      210. with `.save()`: error only if the `dk auto merge` option is not used
      211. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      212. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      213. **Associated statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status automerge failed` | 6 | (Seulement si l'option `dk auto merge` est utilisée) L'option de fusion automatique a échoué lors de la sauvegarde de l'entité. \*\*statusText associé : "Auto merge failed" | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      214. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      215. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      216. **statusText associé** : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste. **statusText associé** : "Already locked" | +| `dk status validation failed` | 7 | Erreur non fatale envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Mild Validation Error" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc. **statusText associé** : "Other error" | +| `dk status serious validation error` | 8 | Erreur critique envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | La valeur du marqueur interne de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      217. avec `.save()`: erreur uniquement si l'option `dk auto merge` n'est pas utilisée
      218. avec `.drop()`: erreur uniquement si l'option `dk force drop if stamp changed` n'est pas utilisée
      219. avec `.lock()`: erreur uniquement si l'option `dk reload if stamp changed` n'est pas utilisée

      220. **StatusText associé**: "Stamp has changed" | +| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | #### Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index 1217eff7a00779..9ece18d4745892 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -128,7 +128,7 @@ Note that [privileges](../ORDA/privileges.md) should be set in the session befor Shared sessions are handled through [OTP tokens](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [Share your 4D remote client session with web accesses](https://blog.4d.com/share-your-4d-remote-client-session-with-web-accesses) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index 35f9af9007f7a2..d55a8a9d02a490 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -13,10 +13,10 @@ Deux modes de glisser-déposer sont proposés dans 4D : - Un mode **personnalisé**, dans lequel le glisser déclenche l'événement formulaire `Sur début glisser` dans le contexte de l'objet. Custom: In this mode, any drag operation performed on the object triggers the On Begin Drag form event in the context of the object. You then manage the drag action using a method. Ce mode vous permet de mettre en place des interfaces basées sur le glisser-déposer, y compris des interfaces qui ne déplacent pas nécessairement des données mais qui peuvent effectuer tout type d'action, telle que l'ouverture de fichiers ou le lancement d'un calcul. Ce mode est basé sur un ensemble de propriétés, d'événements et de commandes spécifiques à partir du thème `Conteneur de données`. -- Un mode **automatique**, dans lequel 4D **copie** du texte ou des images directement à partir de l'objet formulaire. Il peut alors être utilisé dans la même zone 4D, entre deux zones 4D, ou entre 4D et une autre application. Par exemple, le glisser-déposer automatique vous permet de copier une valeur entre deux champs sans utiliser de programmation : +- Un mode **automatique**, dans lequel 4D **copie** du texte ou des images directement à partir de l'objet formulaire. Il peut alors être utilisé dans la même zone 4D, entre deux zones 4D, ou entre 4D et une autre application. For example, automatic drag (and drop) lets you copy a value between two fields without using programming: ![](../assets/en/FormObjects/property_automaticDragDrop.png) - ![](../assets/en/FormObjects/property_automaticDragDrop2.png) - Dans ce mode, l'événement de formulaire `On Begin Drag` n'est PAS généré. Si vous souhaitez "forcer" l'utilisation du glissement personnalisé alors que le glissement automatique est activé, maintenez la touche **Alt** (Windows) ou **Option** (macOS) enfoncée pendant l'action. Cette option n'est pas disponible pour les images. + ![](../assets/en/FormObjects/property_automaticDragDrop2.png)
        + In this mode, the `On Begin Drag` form event is NOT generated. Si vous souhaitez "forcer" l'utilisation du glissement personnalisé alors que le glissement automatique est activé, maintenez la touche **Alt** (Windows) ou **Option** (macOS) enfoncée pendant l'action. Cette option n'est pas disponible pour les images. Pour plus d'informations, reportez-vous à [Glisser-déposer](https://doc.4d.com/4Dv20/4D/20.6/Drag-and-Drop.300-7487471.en.html) dans le manuel *Langage 4D*. @@ -191,15 +191,15 @@ Dans d'autres cas (list box basées sur des sélections nommées, colonnes assoc ## Action standard -Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. +Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Vous pouvez associer à la fois une action standard et une méthode projet à un objet. Dans ce cas, l'action standard est généralement exécutée après la méthode et 4D utilise cette action pour activer/désactiver l'objet en fonction du contexte courant. Lorsqu’un objet est désactivé, la méthode projet associée ne peut être exécutée. #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| action | string | Le nom d'une [action standard valide](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nom | Type de données | Valeurs possibles | +| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objets pris en charge 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 ba4527b71b0a59..18c1e9996dd119 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -44,7 +44,7 @@ Le [rendu **Fluent UI** pour les formulaires 4D](../FormEditor/forms.md#fluent-u - Serveur web : la prise en charge des URLs dépréciés `4DSYNC/` et `4DCGI/` est supprimée. Plus aucun traitement spécifique n'est effectué sur ces URLs. - Les sessions utilisateurs Web sont désormais renvoyées par [`Process activity`](../commands/process-activity.md). - La commande [`HIGHLIGHT TEXT`](../commands/highlight-text) est maintenant prise en charge dans le contexte des sous-formulaires. -- **Les composants ne sont plus intégrés** : à partir de 4D 21, les composants développés par 4D (4D NetKit, 4D SVG..., voir [cette liste](../Extensions/overview-old.md)) ne sont plus intégrés dans l'application 4D. Lors de la mise à jour d'un projet vers 4D 21 ou supérieur, une boîte de dialogue s'affiche :
        +- **Les composants ne sont plus intégrés** : à partir de 4D 21, les composants développés par 4D (4D NetKit, 4D SVG..., voir [cette liste](../Extensions/overview.md#components-developed-by-4d)) ne sont plus intégrés dans l'application 4D. Lors de la mise à jour d'un projet vers 4D 21 ou supérieur, une boîte de dialogue s'affiche :
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**/**Importer** : importer automatiquement les composants 4D comme dépendances du projet
        \- **Ignore**/**Ignorer** : ne pas importer les composants et vous laisser [gérer les composants manuellement](../Project/components.md)
        diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 1f4e78f6cc9c23..cc75f45301a848 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -16,7 +16,7 @@ ORDA events are functions that are automatically invoked by ORDA each time entit You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index a9e16ab1adf8ea..cc9ddee4b5c362 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -17,35 +17,35 @@ Les gestionnaires de requêtes HTTP personnalisés répondent à divers besoins, ## Conditions requises -Custom HTTP Request handlers are supported in the following context: +Les gestionnaires de requêtes HTTP personnalisés sont pris en charge dans le contexte suivant : -- [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, -- a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). +- les [sessions extensibles](./sessions.md#enabling-web-sessions) ou [pas de sessions](../settings/web.md#no-sessions) sont activées, +- un serveur web exécuté localement par 4D ou 4D Server, y compris ceux [exécutés par des composants](./webServerObject.md). :::warning -For security reasons, external access to the datastore can be disallowed in 4D. Vous devez configurer les [privilèges ORDA](../ORDA/privileges.md) pour autoriser les requêtes HTTP. +Pour des raisons de sécurité, l'accès externe au datastore peut être interdit dans 4D. Vous devez configurer les [privilèges ORDA](../ORDA/privileges.md) pour autoriser les requêtes HTTP. ::: -## How to set handlers +## Comment définir les gestionnaires -You can declare HTTP Request handlers: +Vous pouvez déclarer des gestionnaires de requêtes HTTP : -- in a configuration file named **HTTPHandlers.json** stored in the [`Project/Sources`](../Project/architecture.md#sources) folder of the project. HTTP Request handlers are loaded and applied in the main Web server once it is started. -- using a [`.handlers`](../API/WebServerClass.md#handlers) property set in the *settings* parameter of the [start()](../API/WebServerClass.md#start) function, for any web server object: +- dans un fichier de configuration nommé **HTTPHandlers.json** stocké dans le dossier [`Project/Sources`](../Project/architecture.md#sources) du projet. Les gestionnaires de requêtes HTTP sont chargés et appliqués dans le serveur Web principal une fois qu'il est démarré. +- en utilisant une propriété [`.handlers`](../API/WebServerClass.md#handlers) dans le paramètre *settings* de la fonction [start()](../API/WebServerClass.md#start), pour n'importe quel objet serveur web : ```4d -WEB Server.start($settings.handlers) //set rules at web server startup +WEB Server.start($settings.handlers) //prise en compte au démarrage du server web ``` -If both a **HTTPHandlers.json** file and a call to the [`WEB Server`](../commands/web-server.md) command with a valid `$settings.handlers` are used, the `WEB Server` command has priority. +Si à la fois un fichier **HTTPHandlers.json** et un appel à la commande [`WEB Server`](../commands/web-server.md) avec un `$settings.handlers` valide sont utilisés, la commande `WEB Server` est prioritaire. -The json file (or the object in the *settings* parameter) contains all listened URL patterns, the handled verbs, and the code to be called. +Le fichier json (ou l'objet dans le paramètre *settings*) contient tous les modèles d'URL listés, les verbes traités et le code à appeler. -Handlers are provided as a collection. +Les *handlers* sont fournis sous la forme d'une collection. -Au moment de l'exécution, le premier motif correspondant à l'URL est exécuté, les autres sont ignorés. +Au moment de l'exécution, le premier motif (*pattern*) correspondant à l'URL est exécuté, les autres sont ignorés. Voici un exemple du contenu d'un fichier *HTTPHandlers.json* : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index c5d53afb1f666c..ebc926199d567c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -11,8 +11,8 @@ To define HTTP rules, you just need to write some RegEx to declare the URL patte HTTP rules are supported in the following contexts: -- [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, -- a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). +- les [sessions extensibles](./sessions.md#enabling-web-sessions) ou [pas de sessions](../settings/web.md#no-sessions) sont activées, +- un serveur web exécuté localement par 4D ou 4D Server, y compris ceux [exécutés par des composants](./webServerObject.md). ## How to set rules @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Header | Ajouter | Set | Remove | +| ---------------- | ------- | ---------- | ------ | +| Date | Non | Non | Non | +| Content-Length | Non | Non | Non | +| Content-Encoding | Non | Non | Non | +| Vary | Oui | Non | Non | +| Set-Cookie | Oui | Add cookie | Non | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules @@ -215,7 +220,7 @@ $return:=WEB Server.start($settings) ``` -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [New Way to Control Your HTTP Responses](https://blog.4d.com/new-way-to-control-your-http-responses/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index a61af9ff781cc8..7395ed0a06637b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -44,7 +44,7 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- En principe, tout code traité par la commande [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) dans le contexte du web, par exemple par le biais de pages .shtml - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 3524feb00429dd..20caa69023fa0f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -12,7 +12,7 @@ Les sessions Web permettent de : - stocker et partager des données entre les process d'un client web en utilisant le [.storage](../API/SessionClass.md#storage) de la session, - associer des privilèges à l'utilisateur qui exécute la session. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) @@ -22,7 +22,7 @@ Les sessions Web permettent de : Les sessions Web sont utilisées par : -- [Web applications](gettingStarted.md) sending http requests (including [SOAP Web services](../commands/theme/Web_Services_Server.md) and [/4DACTION](../WebServer/httpRequests.md#4daction) requests), +- les [applications Web](gettingStarted.md) envoyant des requêtes http (y compris les [Web services SOAP](../commands/theme/Web_Services_Server.md) et les requêtes [/4DACTION](../WebServer/httpRequests.md#4daction)), - les appels à l'[API REST](../REST/authUsers.md), qui sont effectués par les [datastores distants](../ORDA/remoteDatastores.md) et les [pages Qodly](qodly-studio.md). ## Activation des sessions web @@ -36,7 +36,7 @@ Cette option est sélectionnée par défaut dans les nouveaux projets. Elle peut - En utilisant la propriété [`.scalableSession`](API/WebServerClass.md#scalablession) de l'objet Web Server (à passer dans le paramètre *settings* de la fonction [`.start()`](API/WebServerClass.md#start) ). Dans ce cas, ce paramètre remplace l'option définie dans la boîte de dialogue Propriétés pour l'objet Web Server (il n'est pas stocké sur disque). -> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. +> La commande [`WEB SET OPTION`](../commands-legacy/web-set-option.md) peut également définir le mode de session du serveur Web principal. Dans tous les cas, ce paramètre est local à la machine ; il peut donc être différent sur le serveur Web 4D Server et les serveurs Web des machines 4D distantes. @@ -44,7 +44,7 @@ Dans tous les cas, ce paramètre est local à la machine ; il peut donc être di ## Implémentation des sessions -When [sessions are enabled](#enabling-web-sessions), automatic mechanisms are implemented, based upon a private cookie set by 4D itself: "4DSID__AppName_", where *AppName* is the name of the application project. Ce cookie référence la session web courante pour l'application. +Lorsque [les sessions sont activées](#enabling-web-sessions), des mécanismes automatiques sont mis en œuvre, sur la base d'un cookie privé défini par 4D lui-même : "4DSID_*AppName*", où *AppName* est le nom du projet d'application. Ce cookie référence la session web courante pour l'application. :::info @@ -73,7 +73,7 @@ L'objet `Session` de la session en cours peut ensuite être manipulé via la com :::info -Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Since a web process can be reused by any session, [process variables](Concepts/variables.md#process-variables) must be cleared by your code at the end of its execution (using [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) for example). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. +Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Comme un process web peut être réutilisé par n'importe quelle session, les [variables process](Concepts/variables.md#process-variables) doivent être effacées par votre code à la fin de son exécution (en utilisant [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) par exemple). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. ::: @@ -90,7 +90,7 @@ Une session web évolutive est fermée lorsque: La durée de vie d'un cookie inactif est de 60 minutes par défaut, ce qui signifie que le serveur Web fermera automatiquement les sessions inactives après 60 minutes. -This timeout can be set using the [`.idleTimeout`](API/SessionClass.md#idletimeout) property of the `Session` object (the timeout cannot be less than 60 minutes) or the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command. +Ce délai peut être défini en utilisant la propriété [`.idleTimeout`](API/SessionClass.md#idletimeout) de l'objet `Session` (le délai ne peut être inférieur à 60 minutes) ou le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md). Lorsqu'une session web est fermée, si la commande [`Session`](commands/session.md) est appelée par la suite : @@ -159,7 +159,7 @@ http://localhost:8044/authenticate.shtml ![alt-text](../assets/en/WebServer/authenticate.png) -3. La méthode de projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : +3. La méthode projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : ```4d var $indexUserId; $indexPassword; $userId : Integer @@ -201,82 +201,82 @@ Else End if ``` -:::note +:::tips Articles de blog sur le sujet -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: -## Session Token (OTP) +## Token de session (OTP) -The 4D web server allows you to generate, share, and use OTP (One-Time Passcode) session tokens. OTP session tokens are used to secure communications with third-party applications or websites. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. +Le serveur web 4D vous permet de générer, de partager et d'utiliser des tokens de session OTP (One-Time Passcode). Les tokens (ou *jetons*) de session OTP sont utilisés pour sécuriser les communications avec des applications ou des sites web tiers. Pour plus d'informations sur OTP, veuillez vous référer à la page [Mot de passe à usage unique](https://en.wikipedia.org/wiki/One-time_password) sur Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Thanks to this architecture, the [session cookie](#session-implementation) is not exposed on the network, which eliminates the risk of man-in-the-middle attack. +Dans 4D, les tokens de session OTP sont utiles pour appeler des URL externes et être rappelé dans un autre navigateur ou appareil (mobile/ordinateur). Généralement, une application tierce envoie un courriel de confirmation contenant un lien de rappel sur lequel l'utilisateur doit cliquer. Le lien de rappel inclut le token OTP, de sorte que la session qui a déclenché le rappel est chargée avec ses données et ses privilèges. Ce principe vous permet de partager la même session sur plusieurs appareils. Grâce à cette architecture, le [cookie de session] (#session-implementation) n'est pas exposé sur le réseau, ce qui élimine le risque d'une attaque de type "man-in-the-middle". :::tips Articles de blog sur le sujet -[Connect Your Web Apps to Third-Party Systems](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) +[Connectez vos applications Web à des systèmes tiers](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) ::: ### Vue d’ensemble -The basic sequence of an OTP session token use in a 4D web application is the following: +La séquence de base de l'utilisaton d'un token de session OTP dans une application web 4D est la suivante : -1. The web user initiates an action that requires a secured third-party connection, for example a validation, from within a specific session. -2. In your 4D code, you create a new OTP for the session using the [`Session.createOTP()`](../API/SessionClass.md#createotp) function. -3. You send a request to the third-party application with the session token included in the callback Uri. Note that the way to provide the callback Uri to a third-party application depends on its API (see below). -4. The third-party application sends back a request to 4D with the pattern you provided in the callback Uri. -5. The request callback is processed in your application. +1. L'utilisateur web initie une action qui nécessite une connexion tierce sécurisée, par exemple une validation, à partir d'une session spécifique. +2. Dans votre code 4D, vous créez un nouvel OTP pour la session à l'aide de la fonction [`Session.createOTP()`](../API/SessionClass.md#createotp). +3. Vous envoyez une requête à l'application tierce avec le token de session inclus dans l'Uri de callback (rappel). Notez que la manière de fournir l'Uri de rappel à une application tierce dépend de son API (voir ci-dessous). +4. L'application tierce renvoie une requête à 4D avec le modèle que vous avez fourni dans l'Uri de rappel. +5. Le rappel de la requête est traité dans votre application. -By definition, an OTP token can only be used once. In this scenario, if a web request is received with a session token as parameter that has already been used, the initial session is not restored. +Par définition, un token OTP ne peut être utilisé qu'une seule fois. Dans ce scénario, si une requête web est reçue avec un token de session comme paramètre qui a déjà été utilisé, la session initiale n'est pas restaurée. -### Processing the OTP in the callback +### Traitement de l'OTP dans le callback -Callbacks from third-party applications that include the OTP token can be processed in different ways in your 4D application, depending on your development and the third-party API. Basically, you have two possibilities to handle the token: through the **`$4DSID`** parameter for an automatic processing, or through a custom parameter that you need to process. +Les callbacks d'applications tierces qui incluent le token OTP peuvent être traités de différentes manières dans votre application 4D, en fonction de votre développement et de l'API tierce. En principe, vous avez deux possibilités pour gérer le token : via le paramètre **`$4DSID`** pour un traitement automatique, ou via un paramètre personnalisé que vous devez traiter. -#### Using `$4DSID` in the URL +#### Utilisation de `$4DSID` dans l'URL -Using the `$4DSID` parameter is the most simple way to process a callback from the third-party application: +L'utilisation du paramètre `$4DSID` est la façon la plus simple de traiter un callback de l'application tierce : -- The OTP token is provided as a parameter directly in the callback url using the standard `?$4DSID=XXXX123` syntax. -- In 4D, you implement a dedicated [HTTP Request handler](http-request-handler.md) in your 4D application using [`IncomingMessage`](../API/IncomingMessageClass.md) and [`OutgoingMessage`](../API/OutgoingMessageClass.md) classes. -- If the `$4DSID` token is valid, the related web user session is **automatically restored** in any web process with its storage and privileges. +- Le token OTP est fourni en tant que paramètre directement dans l'url de callback en utilisant la syntaxe standard `?$4DSID=XXXX123`. +- Dans votre application 4D, vous implémentez un [HTTP Request handler](http-request-handler.md) dédié en utilisant les classes [`IncomingMessage`](../API/IncomingMessageClass.md) et [`OutgoingMessage`](../API/OutgoingMessageClass.md). +- Si le token `$4DSID` est valide, la session de l'utilisateur web concerné est **automatiquement restaurée** dans n'importe quel process web avec son *storage* et ses privilèges. :::note -A [`4DACTION`](./httpRequests.md#4daction) url can also be used on the 4D side. +Une url [`4DACTION`](./httpRequests.md#4daction) peut également être utilisée du côté 4D. ::: -#### Using a custom parameter +#### Utilisation d'un paramètre personnalisé -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. You must use this solution if: +Le token OTP peut également être fourni en tant que paramètre personnalisé que vous devez traiter spécifiquement pour restaurer la session. Vous devez utiliser cette solution si : -- the third-party application does not allow to insert parameters such as a `$4DSID` directly in the redirect Uri, and provides a dedicated API (the implementation depends on the third-party application), -- or, you want to call an ORDA function through REST to process the callback, in which case you need to pass the OTP with the [REST parameter syntax](../REST/ClassFunctions.md#parameters) (e.g. `?$params='["XXX123"]'`). +- l'application tierce ne permet pas d'insérer des paramètres tels que `$4DSID` directement dans l'Uri de redirection, et fournit une API dédiée (l'implémentation dépend de l'application tierce), +- ou bien vous souhaitez appeler une fonction ORDA via REST pour traiter le callback, auquel cas vous devez transmettre l'OTP avec la [syntaxe des paramètres REST](../REST/ClassFunctions.md#parameters) (par exemple `?$params='["XXX123"]'`). -In both cases, you need to extract the token from the custom parameter and to call the [`Session.restore()`](../API/SessionClass.md#restore) function with the token as parameter. +Dans les deux cas, vous devez extraire le token du paramètre personnalisé et appeler la fonction [`Session.restore()`](../API/SessionClass.md#restore) avec le token en paramètre. -#### Processing a invalid OTP +#### Traitement d'un OTP non valide -The OTP token is considered invalid if: +Le token OTP est considéré comme invalide si : - le token de session a déjà été utilisé, - le token de session a expiré, - le token de session n'existe pas, - la session d'origine elle-même a expiré. -In this case, no web user session is restored and the current session (if any) is left unchanged. Usually, you can decide to display a login page or to open a guest session. +Dans ce cas, aucune session d'utilisateur Web n'est restaurée et la session courante (s'il y en a une) reste inchangée. En général, vous pouvez décider d'afficher une page de connexion ou d'ouvrir une session guest. -Verifying if the received OTP token is valid depends on how it was handled: +La vérification de la validité du token OTP reçu dépend de la manière dont il a été géré : -- If you used a `$4DSID`, you can store a custom status property in the [session storage](../API/SessionClass.md#storage) at the moment of the token creation, and check this status once the OTP token was received to see if it is the same value (see example). -- If you used the [`Session.restore()`](../API/SessionClass.md#restore) function, it returns true if the session correctly restored. +- Si vous avez utilisé un `$4DSID`, vous pouvez stocker une propriété d'état personnalisée dans le [storage de la session](../API/SessionClass.md#storage) au moment de la création du token, et vérifier cet état une fois que le token OTP a été reçu pour voir s'il s'agit de la même valeur (voir l'exemple). +- Si vous avez utilisé la fonction [`Session.restore()`](../API/SessionClass.md#restore), elle renvoie true si la session a été correctement restaurée. -### Scenario with $4DSID +### Scénario avec $4DSID -The scenario using the `$4DSID` key is illustrated in the following diagram: +Le scénario utilisant la clé `$4DSID` est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -289,25 +289,25 @@ sequenceDiagram FrontEnd ->>+ 4DServer: ValidateOperation() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() -Note over 4DServer: e.g. OTP is 2E5D0D5xxx + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() +Note over 4DServer: e.g. OTP vaut 2E5D0D5xxx - 4DServer ->>+ ExternalPlatform: Call the external platform, give a callback URL containing a $4DSID parameter (depends on the platform API) + 4DServer ->>+ ExternalPlatform: Appel de la plate-forme tirece, envoi d'un URL de rappel contenant un paramètre $4DSID (dépend de l'API de la plate-forme) Note right of 4DServer: e.g. callback URL: "https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D5xxx" - ExternalPlatform ->>+ ExternalPlatform: Process request -ExternalPlatform ->>+ 4DServer: External platform calls back 4D Server if validation OK + ExternalPlatform ->>+ ExternalPlatform: Traitement de la requête +ExternalPlatform ->>+ 4DServer: Rappel de 4D Server si validation OK Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D57751D471DB29FD110D2DCE253 - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationsHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationsHandler, voir code ci-dessous) - Note over 4DServer: The original session is retrieved thanks to the OTP given in the $4DSID parameter. - Note over 4DServer: Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer: La session d'origine session est restaurée grâce à l'OTP fourni dans le paramètre $4DSID. + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -320,7 +320,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -329,9 +329,9 @@ shared singleton Class constructor() $session:=Session ``` -### Scenario with `restore` function +### Scénario avec la fonction `restore` -The scenario using a custom parameter is illustrated in the following diagram: +Le scénario utilisant un paramètre personnalisé est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -344,29 +344,29 @@ sequenceDiagram FrontEnd ->>+ 4DServer: Validate() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() Note over 4DServer: e.g. OTP is 2E5D0D5xxx - 4DServer ->> ExternalPlatform: Call the external platform giving the OTP, for example as a state parameter (depends on the platform) + 4DServer ->> ExternalPlatform: Appel de la plate-forme externe en donnant l'OTP, par exemple sous forme de paramètre state (dépend de la plate-forme) Note right of 4DServer: e.g. https://thirdPartSystem.com/validate?state=2E5D0D5xxx&redirect_uri=https://acme.com/my4DApp/completeOperation - Note right of 4DServer: The callback URL will be like: https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - ExternalPlatform ->> ExternalPlatform: Process request - ExternalPlatform ->> 4DServer: The state parameter is sent back by the third party system in the callback + Note right of 4DServer: L'URLde rappel sera du type : https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx + ExternalPlatform ->> ExternalPlatform: Traitement de la requête + ExternalPlatform ->> 4DServer: Le paramètre state est renvoyé par le système tiers dans la callback Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationHandler, voir code ci-dessous) 4DServer ->> 4DServer: Session.restore() - Note over 4DServer:The state parameter is got from the received request ($req.urlQuery.state) - Note over 4DServer:The original session is retrieved by calling the restore() function - Note over 4DServer:Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer:Le paramètre state est extrait de la requête reçue ($req.urlQuery.state) + Note over 4DServer:La session originale est restaurée par l'appel à la fonction restore() + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -379,7 +379,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -388,9 +388,9 @@ shared singleton Class constructor() Session.restore($req.urlQuery.state) ``` -### Example of email validation with $4DSID +### Exemple de validation d'email avec $4DSID -1. A user account is created in a *Users* dataclass. A *$info* object is received with the email and password. An OTP corresponding to the current session is generated. An URL is then returned with this OTP given in the $4DSID parameter. +1. Un compte d'utilisateur est créé dans une dataclass *Users*. Un objet *$info* est reçu avec l'email et le mot de passe. Un OTP correspondant à la session courante est généré. Une URL est alors renvoyée avec l'OTP indiqué dans le paramètre $4DSID. ```4d //cs.Users class @@ -401,26 +401,26 @@ var $user : cs.UsersEntity var $status : Object var $token : Text -$user:=This.new() //create a new user +$user:=This.new() //créatoin d'un user $user.fromObject($info) $status:=$user.save() -//Store information in the session -//including user creation status +//Stockage d'information dans la session +//y compris le statut de création de l'utilisateur Use (Session.storage) Session.storage.status:=New shared object("step"; "Waiting for validation email"; / "email"; $user.email; "ID"; $user.ID) End use -//Generate an OTP corresponding to the session +//Génération d'un OTP correspondant à la session $token:=Session.createOTP() -// Return an URL with a $4DSID parameter +// Renvoi d'un URL avec un paramètre $4DSID return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ``` -2. The user is sent this URL as a link in an email. The URL prefix `/validateEmail` is handled by a [custom HTTP request handler](./http-request-handler.md): +2. L'utilisateur reçoit cette URL sous la forme d'un lien dans un courrier électronique. Le préfixe d'URL `/validateEmail` est traité par un [gestionnaire de requête HTTP personnalisé](./http-request-handler.md) : ```json [ @@ -433,7 +433,7 @@ return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ] ``` -The *validateEmail()* function of the RequestHandler singleton: +La fonction *validateEmail()* du singleton RequestHandler : ```4d //validateEmail class @@ -443,12 +443,12 @@ shared singleton Class constructor() Function validateEmail() : 4D.OutgoingMessage var $result:=4D.OutgoingMessage.new() - //The session which generated the OTP is retrieved - //thanks to the $4DSID parameter given in the URL + //La session qui a généré l'OTP est restaurée + //grâce au paramètre $4DSID fourni dans l'URL If (Session.storage.status.step="Waiting for validation email") $user:=ds.Users.get(Session.storage.status.ID) - $user.emailValidated() //set to true + $user.emailValidated() //fixé à vrai $result.setBody("Congratulations
        "\ +"Your email "+Session.storage.status.email+" has been validated") @@ -466,21 +466,21 @@ Function validateEmail() : 4D.OutgoingMessage ``` -Since the `$4DSID` parameter contains a valid OTP corresponding to the original session, the `Session` object refers to the session that created the OTP. +Comme le paramètre `$4DSID` contient un OTP valide correspondant à la session d'origine, l'objet `Session` référence la session qui a créé l'OTP. -A new user is created, and some information is stored in the session, especially the current step of the user account creation process (Waiting for validation email) and the user ID. +Un nouvel utilisateur est créé et des informations sont stockées dans la session, en particulier l'étape courante du processus de création du compte utilisateur (attente du courriel de validation) et l'identifiant de l'utilisateur. -### Supported contexts +### Contextes pris en charge -- Both HTTP and HTTPS schemas are supported. -- Only [scalable sessions](#enabling-web-sessions) can be reused with tokens. -- Only sessions of the host database can be reused (sessions created in component web servers cannot be restored). -- Tokens are not supported with client/server sessions or single-user sessions. +- Les schémas HTTP et HTTPS sont tous deux pris en charge. +- Seules des [sessions évolutives](#enabling-web-sessions) peuvent être réutilisées avec des tokens. +- Seules les sessions de la base de données hôte peuvent être réutilisées (les sessions créées dans les serveurs web des composants ne peuvent pas être restaurées). +- Les tokens ne sont pas pris en charge dans les sessions client/serveur ou les sessions mono-utilisateur. -### Lifespan +### Durée de vie -A session token has a lifespan, and the session itself has a lifespan. The session token lifespan can be set [at the token creation](../API/SessionClass.md#createotp). By default, the token lifespan is the same value as the [`.idleTimeout`](../API/SessionClass.md#idletimeout) value. +Un token de session a une durée de vie, et la session elle-même a une durée de vie. La durée de vie du token de session peut être définie [lors de sa création](../API/SessionClass.md#createotp). Par défaut, la durée de vie du token est la même que la valeur [`.idleTimeout`](../API/SessionClass.md#idletimeout). -A session is only restored by a token if both the session token lifespan and the session lifespan have not expired. In other cases (the session token has expired and/or the session itself has expired), a guest session is created when a web request with a session token is received. +Une session n'est restaurée par un token que si ni la durée de vie du token de session ni celle de la session n'ont expiré. Dans les autres cas (le token de session a expiré et/ou la session elle-même a expiré), une session *guest* est créée lorsqu'une requête web avec un token de session est reçue. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md index 0f3efe19eef728..4988f47bd80d77 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md @@ -3216,15 +3216,15 @@ La fonction `.sort()` trie les éléments > Cette fonction modifie la collection d'origine. Si `.sort()` est appelé sans paramètres, seules les valeurs scalaires (nombres, textes, dates, booléens) sont triées. Les éléments sont triés par défaut par ordre croissant, en fonction de leur type. -You can also pass one of the following constants in the *ascOrDesc* parameter: +Vous pouvez également passer une des constantes suivantes dans le paramètre *ascOrDesc* : ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |Constante| Type|Valeur|Comment| + |---|---|---| + |ck ascending|Integer|0|Les éléments sont classés par ordre croissant (par défaut)| + |ck descending|Integer|1|Les éléments sont classés par ordre décroissant| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + Cette syntaxe ordonne uniquement les valeurs scalaires dans la collection (les autres types d'éléments tels que les objets ou les collections sont renvoyés non ordonnés). ``` Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont renvoyés dans l'ordre suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/DataClassClass.md index 2c280ab9385cac..833e8629f5469a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/DataClassClass.md @@ -1181,7 +1181,7 @@ La formule doit avoir été créée à l'aide de la commande [`Formula`](../comm - *formula* est évaluée pour chaque entité et doit renvoyer vrai ou faux. Lors de l'exécution de la requête, si le résultat de la formule n'est pas un booléen, il est considéré comme faux. - dans *formula*, l'entité est disponible via l'objet `This`. -- if the `Formula` object is **null**, the error 1626 ("Expecting a text or formula") is generated, that you can intercept using a method installed with `ON ERR CALL`. +- si l'objet `Formula` est **null**, l'erreur 1626 ("Expecting a text or formula") est générée, que vous pouvez intercepter en utilisant une méthode installée avec `ON ERR CALL`. > Pour des raisons de sécurité, les appels de formule dans les fonctions `query()` peuvent être interdits. Voir la description du paramètre *querySettings*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md index e7b012bba8b244..1207bd9123c398 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md @@ -509,7 +509,7 @@ La correspondance entre l'objet et l'entité est établie à partir des noms de - Si une propriété de l'objet n'existe pas dans la dataclass, elle est ignorée. - Les types de données doivent être équivalents. S'il existe une différence de type entre l'objet et la dataclass, 4D essaie de convertir les données lorsque cela est possible (voir [`Converting data types`](Concepts/data-types.md#converting-data-types)), sinon l'attribut est laissé intact. -- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. +- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si elle n'existe pas déjà dans la dataclass, l'entité est créée avec la valeur donnée lorsque [.save()](#save) est appelée. Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. *filler* peut contenir une related entity dans les conditions suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 75b05496143148..9c4ff9359a4f01 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -120,7 +120,7 @@ $isGuest:=Session.isGuest() //$isGuest est True | Paramètres | Type | | Description | | ---------- | ------- | :-------------------------: | -------------------------------------------- | | lifespan | Integer | -> | Durée de vie du token de session en secondes | -| Résultat | Text | <- | UUID of the OTP token | +| Résultat | Text | <- | UUID du token OTP | @@ -735,7 +735,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage :::note -Cette fonction ne fait rien et retourne toujours **False** avec les sessions client distants, procédures stockées et autonomes. +Cette fonction ne fait rien et retourne toujours **False** avec les sessions client distantes, procédures stockées et autonomes. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md index 1b7faf45be6041..0850656f6df974 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Events/onAfterEdit.md @@ -62,11 +62,11 @@ En fonction de la valeur de la propriété `action`, l'[objet event](overview.md #### action = DragFillBlock -| Propriété | Type | Description | -| ------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| fillRange | object | Plage utilisée pour le remplissage | -| autoFillType | entier long | Value used for the fill.
      221. 0: Cells are filled with all data (values, formatting, and formulas)
      222. 1: Cells are filled with automatically sequential data
      223. 2: Cells are filled with formatting only
      224. 3: Cells are filled with values but not formatting
      225. 4: Values are removed from the cells
      226. 5: Cells are filled automatically
      227. | -| fillDirection | entier long | Direction of the fill.
      228. 0: The cells to the left are filled
      229. 1: The cells to the right are filled
      230. 2: The cells above are filled
      231. 3: The cells below are filled
      232. | +| Propriété | Type | Description | +| ------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| fillRange | object | Plage utilisée pour le remplissage | +| autoFillType | entier long | Valeur utilisée pour le remplissage.
      233. 0 : Les cellules sont remplies avec toutes les données (valeurs, formatage et formules)
      234. 1 : Les cellules sont remplies avec des données séquentielles automatiques
      235. 2 : Les cellules sont remplies avec la mise en forme uniquement
      236. 3 : Les cellules sont remplies avec les valeurs mais pas la mise en forme
      237. 4 : Les valeurs sont supprimées des cellules
      238. 5 : Les cellules sont remplies automatiquement
      239. | +| fillDirection | entier long | Direction du remplissage.
      240. 0 : Les cellules de gauche sont remplies
      241. 1 : Les cellules de droite sont remplies
      242. 2 : Les cellules du haut sont remplies
      243. 3 : Les cellules du bas sont remplies
      244. | #### action = formulaChanged diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md index 227a3b0ae64922..750da38a611e75 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md @@ -3,11 +3,11 @@ id: overview title: Extension des applications 4D --- -The 4D architecture is open and can be extended in different ways. Si vous avez besoin d'une fonctionnalité qui n'est pas disponible de manière native dans 4D, vous pouvez toujours l'intégrer dans votre application de différentes manières : +L'architecture de 4D est ouverte et peut être étendue de plusieurs façons. Si vous avez besoin d'une fonctionnalité qui n'est pas disponible de manière native dans 4D, vous pouvez toujours l'intégrer dans votre application de différentes manières : - les [**System workers**](../API/SystemWorkerClass.md) permettent au code 4D d'appeler n'importe quel process externe (une commande shell, PHP, un script, etc.) et d'en contrôler l'exécution. - les [**commandes SQL**](../commands/theme/SQL) vous permettent de vous connecter à diverses sources de données SQL et de les utiliser . - Le [**client HTTP intégré**](../API/HTTPRequestClass.md) peut envoyer des requêtes à n'importe quel serveur HTTP et traiter les données. - les [**zones web**](../FormObjects/webArea_overview.md) peuvent donner accès à des pages web ou à divers contenus HTML à l'intérieur de vos formulaires. -- les [**Composants**](Concepts/components.md). Les composants sont faits de code 4D. 4D includes by default [a set of built-in 4D components](../Project/components.md#preinstalled-4d-components). Vous pouvez également [développer vos propres composants 4D](develop-components.md), ou utiliser des composants tiers. De nombreux développeurs de la communauté 4D ont partagé des composants 4D (consultez Github pour obtenir une liste des composants 4D publics rassemblés dans le topic [`4d-component`](https://github.com/topics/4d-component)). +- les [**Composants**](Concepts/components.md). Les composants sont faits de code 4D. 4D inclut par défaut [un ensemble de composants 4D](../Project/components.md#preinstalled-4d-components). Vous pouvez également [développer vos propres composants 4D](develop-components.md), ou utiliser des composants tiers. De nombreux développeurs de la communauté 4D ont partagé des composants 4D (consultez Github pour obtenir une liste des composants 4D publics rassemblés dans le topic [`4d-component`](https://github.com/topics/4d-component)). - les [**Plug-ins**](../Concepts/plug-ins.md). Les plug-ins peuvent être créés dans n'importe quel langage. Les plugins font des choses que 4D ne fait pas nativement (par exemple, une technologie de plateforme spécifique), ou qui seraient très difficiles à écrire en utilisant uniquement 4D. Comme décrit dans [cette page](develop-plug-ins.md), vous pouvez développer vos propres plugins. De nombreuses fonctionnalités sont couvertes par les plug-ins 4D existants. Parcourez GitHub pour obtenir la liste des plugins 4D publics rassemblés sous le topic [`4d-plugin`](https://github.com/topics/4d-plugin). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 61877412ae2d4c..8e30dc8a9b7ecd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -34,7 +34,7 @@ Vous définissez vos gestionnaires de requêtes HTTP personnalisés dans un fich Ce fichier contient tous les motifs d'URL à intercepter, les verbes manipulés et le code à appeler. Les gestionnaires sont fournis sous la forme d'une collection au format JSON. -Au moment de l'exécution, le premier motif correspondant à l'URL est exécuté, les autres sont ignorés. +Au moment de l'exécution, le premier motif (*pattern*) correspondant à l'URL est exécuté, les autres sont ignorés. Voici un exemple du contenu d'un fichier *HTTPHandlers.json* : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md index 1b2b27e26c6d0a..829fa0155037b3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/preemptiveWeb.md @@ -26,10 +26,10 @@ Le tableau suivant indique si l'utilisation du mode préemptif pour les process - Serveur REST : gère les [fonctions de classe du modèle de données ORDA](../REST/ClassFunctions.md) - Serveur Web : gère les [modèles Web](templates.md), [4DACTION et les méthodes base](httpRequests.md) - Serveur de services Web : gère les requêtes SOAP -- ***web setting*** signifie que le mode préemptif dépend d'une valeur de réglage : - - when [**Scalable sessions**](sessions.md#enabling-web-sessions) option is selected, the preemptive mode is automatically used for web processes. +- ***paramètres web*** signifie que le mode préemptif dépend d'une valeur de réglage : + - lorsque l'option [**Sessions évolutives**](sessions.md#enabling-web-sessions) est sélectionnée, le mode préemptif est automatiquement utilisé pour les process web. - sinon, l'option [**Utiliser des process préemptifs**](webServerConfig.md#use-preemptive-processes) est prise en compte. - - en ce qui concerne les process de service Web (serveur ou client), le mode préemptif est pris en charge au niveau de la méthode. You just have to select "Can be run in preemptive processes" property for published SOAP server methods (see [Publishing a Web Service with 4D](https://doc.4d.com/4Dv20/4D/20.2/Publishing-a-Web-Service-with-4D.300-6750334.en.html)) or proxy client methods (see [Subscribing to a Web Service in 4D](https://doc.4d.com/4Dv20/4D/20.2/Subscribing-to-a-Web-Service-in-4D.300-6750336.en.html)) and make sure they are confirmed thread-safe by the compiler. + - en ce qui concerne les process de service Web (serveur ou client), le mode préemptif est pris en charge au niveau de la méthode. Il suffit de sélectionner la propriété "Peut être exécutée dans un process préemptif" pour les méthodes de serveur SOAP publiées (voir [Publier un Service Web avec 4D](https://doc.4d.com/4Dv20/4D/20.2/Publier-un-Service-Web-avec-4D.300-6750334.fe.html)) ou les méthodes de client proxy (voir [Souscrire à un Service Web dans 4D](https://doc.4d.com/4Dv20/4D/20.2/Souscrire-a-un-Service-Web-dans-4D.300-6750336.fe.html)) et de s'assurer qu'elles sont confirmées thread-safe par le compilateur. ## Ecrire du code serveur Web thread-safe @@ -43,7 +43,7 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- En principe, tout code traité par la commande [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) dans le contexte du web, par exemple par le biais de pages .shtml - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md index 222f22401c7e53..4e83fc460e136d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md @@ -12,7 +12,7 @@ Les sessions Web permettent de : - stocker et partager des données entre les process d'un client web en utilisant le [.storage](../API/SessionClass.md#storage) de la session, - associer des privilèges à l'utilisateur qui exécute la session. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) @@ -36,7 +36,7 @@ Cette option est sélectionnée par défaut dans les nouveaux projets. Elle peut - En utilisant la propriété [`.scalableSession`](API/WebServerClass.md#scalablession) de l'objet Web Server (à passer dans le paramètre *settings* de la fonction [`.start()`](API/WebServerClass.md#start) ). Dans ce cas, ce paramètre remplace l'option définie dans la boîte de dialogue Propriétés pour l'objet Web Server (il n'est pas stocké sur disque). -> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. +> La commande [`WEB SET OPTION`](../commands-legacy/web-set-option.md) peut également définir le mode de session du serveur Web principal. Dans tous les cas, ce paramètre est local à la machine ; il peut donc être différent sur le serveur Web 4D Server et les serveurs Web des machines 4D distantes. @@ -44,7 +44,7 @@ Dans tous les cas, ce paramètre est local à la machine ; il peut donc être di ## Implémentation des sessions -When [sessions are enabled](#enabling-web-sessions), automatic mechanisms are implemented, based upon a private cookie set by 4D itself: "4DSID__AppName_", where *AppName* is the name of the application project. Ce cookie référence la session web courante pour l'application. +Lorsque [les sessions sont activées](#enabling-web-sessions), des mécanismes automatiques sont mis en œuvre, sur la base d'un cookie privé défini par 4D lui-même : "4DSID_*AppName*", où *AppName* est le nom du projet d'application. Ce cookie référence la session web courante pour l'application. :::info @@ -73,7 +73,7 @@ L'objet `Session` de la session en cours peut ensuite être manipulé via la com :::info -Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Since a web process can be reused by any session, [process variables](Concepts/variables.md#process-variables) must be cleared by your code at the end of its execution (using [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) for example). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. +Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Comme un process web peut être réutilisé par n'importe quelle session, les [variables process](Concepts/variables.md#process-variables) doivent être effacées par votre code à la fin de son exécution (en utilisant [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) par exemple). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. ::: @@ -90,7 +90,7 @@ Une session web évolutive est fermée lorsque: La durée de vie d'un cookie inactif est de 60 minutes par défaut, ce qui signifie que le serveur Web fermera automatiquement les sessions inactives après 60 minutes. -This timeout can be set using the [`.idleTimeout`](API/SessionClass.md#idletimeout) property of the `Session` object (the timeout cannot be less than 60 minutes) or the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command. +Ce délai peut être défini en utilisant la propriété [`.idleTimeout`](API/SessionClass.md#idletimeout) de l'objet `Session` (le délai ne peut être inférieur à 60 minutes) ou le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md). Lorsqu'une session web est fermée, si la commande [`Session`](commands/session.md) est appelée par la suite : @@ -159,7 +159,7 @@ http://localhost:8044/authenticate.shtml ![alt-text](../assets/en/WebServer/authenticate.png) -3. La méthode de projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : +3. La méthode projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : ```4d var $indexUserId; $indexPassword; $userId : Integer @@ -201,76 +201,76 @@ Else End if ``` -:::note +:::tips Articles de blog sur le sujet -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: -## Session Token (OTP) +## Token de session (OTP) -The 4D web server allows you to generate, share, and use OTP (One-Time Passcode) session tokens. OTP session tokens are used to secure communications with third-party applications or websites. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. +Le serveur web 4D vous permet de générer, de partager et d'utiliser des tokens de session OTP (One-Time Passcode). Les tokens (ou *jetons*) de session OTP sont utilisés pour sécuriser les communications avec des applications ou des sites web tiers. Pour plus d'informations sur OTP, veuillez vous référer à la page [Mot de passe à usage unique](https://en.wikipedia.org/wiki/One-time_password) sur Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Thanks to this architecture, the [session cookie](#session-implementation) is not exposed on the network, which eliminates the risk of man-in-the-middle attack. +Dans 4D, les tokens de session OTP sont utiles pour appeler des URL externes et être rappelé dans un autre navigateur ou appareil (mobile/ordinateur). Généralement, une application tierce envoie un courriel de confirmation contenant un lien de rappel sur lequel l'utilisateur doit cliquer. Le lien de rappel inclut le token OTP, de sorte que la session qui a déclenché le rappel est chargée avec ses données et ses privilèges. Ce principe vous permet de partager la même session sur plusieurs appareils. Grâce à cette architecture, le [cookie de session] (#session-implementation) n'est pas exposé sur le réseau, ce qui élimine le risque d'une attaque de type "man-in-the-middle". ### Vue d’ensemble -The basic sequence of an OTP session token use in a 4D web application is the following: +La séquence de base de l'utilisaton d'un token de session OTP dans une application web 4D est la suivante : -1. The web user initiates an action that requires a secured third-party connection, for example a validation, from within a specific session. -2. In your 4D code, you create a new OTP for the session using the [`Session.createOTP()`](../API/SessionClass.md#createotp) function. -3. You send a request to the third-party application with the session token included in the callback Uri. Note that the way to provide the callback Uri to a third-party application depends on its API (see below). -4. The third-party application sends back a request to 4D with the pattern you provided in the callback Uri. -5. The request callback is processed in your application. +1. L'utilisateur web initie une action qui nécessite une connexion tierce sécurisée, par exemple une validation, à partir d'une session spécifique. +2. Dans votre code 4D, vous créez un nouvel OTP pour la session à l'aide de la fonction [`Session.createOTP()`](../API/SessionClass.md#createotp). +3. Vous envoyez une requête à l'application tierce avec le token de session inclus dans l'Uri de callback (rappel). Notez que la manière de fournir l'Uri de rappel à une application tierce dépend de son API (voir ci-dessous). +4. L'application tierce renvoie une requête à 4D avec le modèle que vous avez fourni dans l'Uri de rappel. +5. Le rappel de la requête est traité dans votre application. -By definition, an OTP token can only be used once. In this scenario, if a web request is received with a session token as parameter that has already been used, the initial session is not restored. +Par définition, un token OTP ne peut être utilisé qu'une seule fois. Dans ce scénario, si une requête web est reçue avec un token de session comme paramètre qui a déjà été utilisé, la session initiale n'est pas restaurée. -### Processing the OTP in the callback +### Traitement de l'OTP dans le callback -Callbacks from third-party applications that include the OTP token can be processed in different ways in your 4D application, depending on your development and the third-party API. Basically, you have two possibilities to handle the token: through the **`$4DSID`** parameter for an automatic processing, or through a custom parameter that you need to process. +Les callbacks d'applications tierces qui incluent le token OTP peuvent être traités de différentes manières dans votre application 4D, en fonction de votre développement et de l'API tierce. En principe, vous avez deux possibilités pour gérer le token : via le paramètre **`$4DSID`** pour un traitement automatique, ou via un paramètre personnalisé que vous devez traiter. -#### Using `$4DSID` in the URL +#### Utilisation de `$4DSID` dans l'URL -Using the `$4DSID` parameter is the most simple way to process a callback from the third-party application: +L'utilisation du paramètre `$4DSID` est la façon la plus simple de traiter un callback de l'application tierce : -- The OTP token is provided as a parameter directly in the callback url using the standard `?$4DSID=XXXX123` syntax. -- In 4D, you implement a dedicated [HTTP Request handler](http-request-handler.md) in your 4D application using [`IncomingMessage`](../API/IncomingMessageClass.md) and [`OutgoingMessage`](../API/OutgoingMessageClass.md) classes. -- If the `$4DSID` token is valid, the related web user session is **automatically restored** in any web process with its storage and privileges. +- Le token OTP est fourni en tant que paramètre directement dans l'url de callback en utilisant la syntaxe standard `?$4DSID=XXXX123`. +- Dans votre application 4D, vous implémentez un [HTTP Request handler](http-request-handler.md) dédié en utilisant les classes [`IncomingMessage`](../API/IncomingMessageClass.md) et [`OutgoingMessage`](../API/OutgoingMessageClass.md). +- Si le token `$4DSID` est valide, la session de l'utilisateur web concerné est **automatiquement restaurée** dans n'importe quel process web avec son *storage* et ses privilèges. :::note -A [`4DACTION`](./httpRequests.md#4daction) url can also be used on the 4D side. +Une url [`4DACTION`](./httpRequests.md#4daction) peut également être utilisée du côté 4D. ::: -#### Using a custom parameter +#### Utilisation d'un paramètre personnalisé -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. You must use this solution if: +Le token OTP peut également être fourni en tant que paramètre personnalisé que vous devez traiter spécifiquement pour restaurer la session. Vous devez utiliser cette solution si : -- the third-party application does not allow to insert parameters such as a `$4DSID` directly in the redirect Uri, and provides a dedicated API (the implementation depends on the third-party application), -- or, you want to call an ORDA function through REST to process the callback, in which case you need to pass the OTP with the [REST parameter syntax](../REST/ClassFunctions.md#parameters) (e.g. `?$params='["XXX123"]'`). +- l'application tierce ne permet pas d'insérer des paramètres tels que `$4DSID` directement dans l'Uri de redirection, et fournit une API dédiée (l'implémentation dépend de l'application tierce), +- ou bien vous souhaitez appeler une fonction ORDA via REST pour traiter le callback, auquel cas vous devez transmettre l'OTP avec la [syntaxe des paramètres REST](../REST/ClassFunctions.md#parameters) (par exemple `?$params='["XXX123"]'`). -In both cases, you need to extract the token from the custom parameter and to call the [`Session.restore()`](../API/SessionClass.md#restore) function with the token as parameter. +Dans les deux cas, vous devez extraire le token du paramètre personnalisé et appeler la fonction [`Session.restore()`](../API/SessionClass.md#restore) avec le token en paramètre. -#### Processing a invalid OTP +#### Traitement d'un OTP non valide -The OTP token is considered invalid if: +Le token OTP est considéré comme invalide si : - le token de session a déjà été utilisé, - le token de session a expiré, - le token de session n'existe pas, - la session d'origine elle-même a expiré. -In this case, no web user session is restored and the current session (if any) is left unchanged. Usually, you can decide to display a login page or to open a guest session. +Dans ce cas, aucune session d'utilisateur Web n'est restaurée et la session courante (s'il y en a une) reste inchangée. En général, vous pouvez décider d'afficher une page de connexion ou d'ouvrir une session guest. -Verifying if the received OTP token is valid depends on how it was handled: +La vérification de la validité du token OTP reçu dépend de la manière dont il a été géré : -- If you used a `$4DSID`, you can store a custom status property in the [session storage](../API/SessionClass.md#storage) at the moment of the token creation, and check this status once the OTP token was received to see if it is the same value (see example). -- If you used the [`Session.restore()`](../API/SessionClass.md#restore) function, it returns true if the session correctly restored. +- Si vous avez utilisé un `$4DSID`, vous pouvez stocker une propriété d'état personnalisée dans le [storage de la session](../API/SessionClass.md#storage) au moment de la création du token, et vérifier cet état une fois que le token OTP a été reçu pour voir s'il s'agit de la même valeur (voir l'exemple). +- Si vous avez utilisé la fonction [`Session.restore()`](../API/SessionClass.md#restore), elle renvoie true si la session a été correctement restaurée. -### Scenario with $4DSID +### Scénario avec $4DSID -The scenario using the `$4DSID` key is illustrated in the following diagram: +Le scénario utilisant la clé `$4DSID` est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -283,25 +283,25 @@ sequenceDiagram FrontEnd ->>+ 4DServer: ValidateOperation() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() -Note over 4DServer: e.g. OTP is 2E5D0D5xxx + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() +Note over 4DServer: e.g. OTP vaut 2E5D0D5xxx - 4DServer ->>+ ExternalPlatform: Call the external platform, give a callback URL containing a $4DSID parameter (depends on the platform API) + 4DServer ->>+ ExternalPlatform: Appel de la plate-forme tirece, envoi d'un URL de rappel contenant un paramètre $4DSID (dépend de l'API de la plate-forme) Note right of 4DServer: e.g. callback URL: "https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D5xxx" - ExternalPlatform ->>+ ExternalPlatform: Process request -ExternalPlatform ->>+ 4DServer: External platform calls back 4D Server if validation OK + ExternalPlatform ->>+ ExternalPlatform: Traitement de la requête +ExternalPlatform ->>+ 4DServer: Rappel de 4D Server si validation OK Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D57751D471DB29FD110D2DCE253 - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationsHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationsHandler, voir code ci-dessous) - Note over 4DServer: The original session is retrieved thanks to the OTP given in the $4DSID parameter. - Note over 4DServer: Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer: La session d'origine session est restaurée grâce à l'OTP fourni dans le paramètre $4DSID. + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -314,7 +314,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -323,9 +323,9 @@ shared singleton Class constructor() $session:=Session ``` -### Scenario with `restore` function +### Scénario avec la fonction `restore` -The scenario using a custom parameter is illustrated in the following diagram: +Le scénario utilisant un paramètre personnalisé est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -338,29 +338,29 @@ sequenceDiagram FrontEnd ->>+ 4DServer: Validate() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() Note over 4DServer: e.g. OTP is 2E5D0D5xxx - 4DServer ->> ExternalPlatform: Call the external platform giving the OTP, for example as a state parameter (depends on the platform) + 4DServer ->> ExternalPlatform: Appel de la plate-forme externe en donnant l'OTP, par exemple sous forme de paramètre state (dépend de la plate-forme) Note right of 4DServer: e.g. https://thirdPartSystem.com/validate?state=2E5D0D5xxx&redirect_uri=https://acme.com/my4DApp/completeOperation - Note right of 4DServer: The callback URL will be like: https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - ExternalPlatform ->> ExternalPlatform: Process request - ExternalPlatform ->> 4DServer: The state parameter is sent back by the third party system in the callback + Note right of 4DServer: L'URLde rappel sera du type : https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx + ExternalPlatform ->> ExternalPlatform: Traitement de la requête + ExternalPlatform ->> 4DServer: Le paramètre state est renvoyé par le système tiers dans la callback Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationHandler, voir code ci-dessous) 4DServer ->> 4DServer: Session.restore() - Note over 4DServer:The state parameter is got from the received request ($req.urlQuery.state) - Note over 4DServer:The original session is retrieved by calling the restore() function - Note over 4DServer:Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer:Le paramètre state est extrait de la requête reçue ($req.urlQuery.state) + Note over 4DServer:La session originale est restaurée par l'appel à la fonction restore() + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -373,7 +373,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -382,9 +382,9 @@ shared singleton Class constructor() Session.restore($req.urlQuery.state) ``` -### Example of email validation with $4DSID +### Exemple de validation d'email avec $4DSID -1. A user account is created in a *Users* dataclass. A *$info* object is received with the email and password. An OTP corresponding to the current session is generated. An URL is then returned with this OTP given in the $4DSID parameter. +1. Un compte d'utilisateur est créé dans une dataclass *Users*. Un objet *$info* est reçu avec l'email et le mot de passe. Un OTP correspondant à la session courante est généré. Une URL est alors renvoyée avec l'OTP indiqué dans le paramètre $4DSID. ```4d //cs.Users class @@ -395,26 +395,26 @@ var $user : cs.UsersEntity var $status : Object var $token : Text -$user:=This.new() //create a new user +$user:=This.new() //créatoin d'un user $user.fromObject($info) $status:=$user.save() -//Store information in the session -//including user creation status +//Stockage d'information dans la session +//y compris le statut de création de l'utilisateur Use (Session.storage) Session.storage.status:=New shared object("step"; "Waiting for validation email"; / "email"; $user.email; "ID"; $user.ID) End use -//Generate an OTP corresponding to the session +//Génération d'un OTP correspondant à la session $token:=Session.createOTP() -// Return an URL with a $4DSID parameter +// Renvoi d'un URL avec un paramètre $4DSID return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ``` -2. The user is sent this URL as a link in an email. The URL prefix `/validateEmail` is handled by a [custom HTTP request handler](./http-request-handler.md): +2. L'utilisateur reçoit cette URL sous la forme d'un lien dans un courrier électronique. Le préfixe d'URL `/validateEmail` est traité par un [gestionnaire de requête HTTP personnalisé](./http-request-handler.md) : ```json [ @@ -427,7 +427,7 @@ return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ] ``` -The *validateEmail()* function of the RequestHandler singleton: +La fonction *validateEmail()* du singleton RequestHandler : ```4d //validateEmail class @@ -437,12 +437,12 @@ shared singleton Class constructor() Function validateEmail() : 4D.OutgoingMessage var $result:=4D.OutgoingMessage.new() - //The session which generated the OTP is retrieved - //thanks to the $4DSID parameter given in the URL + //La session qui a généré l'OTP est restaurée + //grâce au paramètre $4DSID fourni dans l'URL If (Session.storage.status.step="Waiting for validation email") $user:=ds.Users.get(Session.storage.status.ID) - $user.emailValidated() //set to true + $user.emailValidated() //fixé à vrai $result.setBody("Congratulations
        "\ +"Your email "+Session.storage.status.email+" has been validated") @@ -460,25 +460,25 @@ Function validateEmail() : 4D.OutgoingMessage ``` -Since the `$4DSID` parameter contains a valid OTP corresponding to the original session, the `Session` object refers to the session that created the OTP. +Comme le paramètre `$4DSID` contient un OTP valide correspondant à la session d'origine, l'objet `Session` référence la session qui a créé l'OTP. -A new user is created, and some information is stored in the session, especially the current step of the user account creation process (Waiting for validation email) and the user ID. +Un nouvel utilisateur est créé et des informations sont stockées dans la session, en particulier l'étape courante du processus de création du compte utilisateur (attente du courriel de validation) et l'identifiant de l'utilisateur. -### Supported contexts +### Contextes pris en charge -- Both HTTP and HTTPS schemas are supported. -- Only [scalable sessions](#enabling-web-sessions) can be reused with tokens. -- Only sessions of the host database can be reused (sessions created in component web servers cannot be restored). -- Tokens are not supported with client/server sessions or single-user sessions. +- Les schémas HTTP et HTTPS sont tous deux pris en charge. +- Seules des [sessions évolutives](#enabling-web-sessions) peuvent être réutilisées avec des tokens. +- Seules les sessions de la base de données hôte peuvent être réutilisées (les sessions créées dans les serveurs web des composants ne peuvent pas être restaurées). +- Les tokens ne sont pas pris en charge dans les sessions client/serveur ou les sessions mono-utilisateur. -### Lifespan +### Durée de vie -A session token has a lifespan, and the session itself has a lifespan. The session token lifespan can be set [at the token creation](../API/SessionClass.md#createotp). By default, the token lifespan is the same value as the [`.idleTimeout`](../API/SessionClass.md#idletimeout) value. +Un token de session a une durée de vie, et la session elle-même a une durée de vie. La durée de vie du token de session peut être définie [lors de sa création](../API/SessionClass.md#createotp). Par défaut, la durée de vie du token est la même que la valeur [`.idleTimeout`](../API/SessionClass.md#idletimeout). -A session is only restored by a token if both the session token lifespan and the session lifespan have not expired. In other cases (the session token has expired and/or the session itself has expired), a guest session is created when a web request with a session token is received. +Une session n'est restaurée par un token que si ni la durée de vie du token de session ni celle de la session n'ont expiré. Dans les autres cas (le token de session a expiré et/ou la session elle-même a expiré), une session *guest* est créée lorsqu'une requête web avec un token de session est reçue. :::note -For more information, please refer to the [Connect Your Web Apps to Third-Party Systems](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) blog post. +Pour plus d'informations, veuillez consulter l'article de blog [Connecter vos applications Web à des systèmes tiers](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/). ::: \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/session.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/session.md index 523ed759670b5f..27b16127c8ada7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/session.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/commands/session.md @@ -100,7 +100,7 @@ IP:port/4DACTION/action_Session [Session storage](session-storage.md) [Session API](../API/SessionClass.md) -[Web server user sessions](../WebServer/sessions.md) +[Sessions Web](../WebServer/sessions.md) [*Scalable sessions for advanced web applications* (blog post)](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index 0f3efe19eef728..4988f47bd80d77 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3216,15 +3216,15 @@ La fonction `.sort()` trie les éléments > Cette fonction modifie la collection d'origine. Si `.sort()` est appelé sans paramètres, seules les valeurs scalaires (nombres, textes, dates, booléens) sont triées. Les éléments sont triés par défaut par ordre croissant, en fonction de leur type. -You can also pass one of the following constants in the *ascOrDesc* parameter: +Vous pouvez également passer une des constantes suivantes dans le paramètre *ascOrDesc* : ``` - |Constant| Type|Value|Comment| - |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |Constante| Type|Valeur|Comment| + |---|---|---| + |ck ascending|Integer|0|Les éléments sont classés par ordre croissant (par défaut)| + |ck descending|Integer|1|Les éléments sont classés par ordre décroissant| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + Cette syntaxe ordonne uniquement les valeurs scalaires dans la collection (les autres types d'éléments tels que les objets ou les collections sont renvoyés non ordonnés). ``` Si la collection contient des éléments de différents types, ils sont d'abord groupés par type et triés par la suite. Les types sont renvoyés dans l'ordre suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index c6151a92503144..b19e8e8e1e63c4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1181,11 +1181,11 @@ Si *attributePath* désigne un attribut stockant des [**objets vecteurs**](../AP Dans ce cas, le paramètre *value* doit être un **objet vecteur de comparaison** contenant les propriétés suivantes : -| Propriété | Type | Description | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | -| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. You can use one of the following (Text) constants:
      245. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      246. `mk dot`: calculates the dot similarity of vectors.
      247. `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | +| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | +| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Vous pouvez utiliser l'une des constantes (texte) suivantes
      248. :`mk cosine` (par défaut si omis) : calcule la distance cosinus entre les vecteurs.
      249. `mk dot` : calcule la similarité en points des vecteurs.
      250. `mk euclidean` : calcule la distance euclidienne entre les vecteurs. | +| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Seul un sous-ensemble de symboles **comparateurs** est pris en charge. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 2d89f983655f8e..80a165c602664d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -335,10 +335,10 @@ vCompareResult3 (seules les différences sur les attributs touchés de $e1 sont
        Historique -| Release | Modifications | -| ------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Ajout | +| Release | Modifications | +| ------- | ------------------------ | +| 21 | Ajout des statuts 7 et 8 | +| 17 | Ajout |
        @@ -365,7 +365,7 @@ Sinon, vous pouvez passer l'option `dk force drop if stamp changed` dans le para **Résultat** -The object returned by `.drop()` contains the following properties: +L'objet renvoyé par `.drop()` contient les propriétés suivantes : | Propriété | | Type | Description | | --------------------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -390,15 +390,15 @@ The object returned by `.drop()` contains the following properties: (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      251. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      252. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
      253. **Associated statusText**: "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      254. with `.save()`: error only if the `dk auto merge` option is not used
      255. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      256. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      257. **Associated statusText**: "Stamp has changed"
      258. | -| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      259. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      260. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de entity.drop(), cette erreur peut être renvoyée lorsque l'option dk force drop if stamp changed est utilisée. Lors de l'utilisation de entity.lock(), cette erreur peut être renvoyée si l'option dk reload if stamp changed est utilisée.
      261. \*\*statusText associé : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | +| `dk status validation failed` | 7 | Erreur non fatale envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Mild Validation Error" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | +| `dk status serious validation error` | 8 | Erreur critique envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      262. avec `.save()` : erreur seulement si l'option `dk auto merge` n'est pas utilisée
      263. avec `.drop()` : erreur uniquement si l'option `dk force drop if stamp changed` n'est pas utilisée
      264. avec `.lock()` : erreur seulement si l'option `dk reload if stamp changed` n'est pas utilisée
      265. **statusText associé** : "Stamp has chaged"
      266. | +| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | #### Exemple 1 @@ -512,7 +512,7 @@ La correspondance entre l'objet et l'entité est établie à partir des noms de - Si une propriété de l'objet n'existe pas dans la dataclass, elle est ignorée. - Les types de données doivent être équivalents. S'il existe une différence de type entre l'objet et la dataclass, 4D essaie de convertir les données lorsque cela est possible (voir [`Converting data types`](Concepts/data-types.md#converting-data-types)), sinon l'attribut est laissé intact. -- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. +- La clé primaire peut être donnée telle quelle ou avec une propriété "__KEY" (remplie avec la valeur de la clé primaire). Si elle n'existe pas déjà dans la dataclass, l'entité est créée avec la valeur donnée lorsque [.save()](#save) est appelée. Si la clé primaire n'est pas fournie, l'entité est créée et la valeur de la clé primaire est affectée en fonction des règles de la base de données. L'auto-incrémentation n'est calculée que si la clé primaire est nulle. *filler* peut contenir une related entity dans les conditions suivantes : @@ -1011,13 +1011,12 @@ L'objet retourné par `.lock()` contient les propriétés suivantes : (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      267. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      268. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      269. **statusText associé** : "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | -| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      270. with `.save()`: error only if the `dk auto merge` option is not used
      271. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      272. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      273. **Associated statusText**: "Stamp has changed" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      274. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      275. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option dk force drop if stamp changed est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      276. **statusText associé** : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste.
        **statusText associé** : "Already locked" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        **statusText associé** : "Other error" | +| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      277. avec `.save()` : erreur seulement si l'option `dk auto merge` n'est pas utilisée
      278. avec `.drop()` : erreur seulement si l'option `dk force drop if stamp changed` n'est pas utilisée
      279. avec `.lock()` : erreur seulement si l'option `dk reload if stamp changed` n'est pas utilisée

      280. **statusText associé** : "Stamp has changed" | #### Exemple 1 @@ -1178,10 +1177,10 @@ L'objet retourné par `.reload( )` contient les propriétés suivantes : (\*) Les valeurs suivantes peuvent être retournées dans les propriétés *status* et *statusText* de l'objet *Résultat* en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      281. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      282. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      283. ***statusText associé***: "Entity does not exist anymore" | -| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        ***statusText associé*** : "Other error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      284. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      285. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      286. ***statusText associé***: "Entity does not exist anymore" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc.
        ***statusText associé*** : "Other error" | #### Exemple @@ -1210,10 +1209,10 @@ L'objet retourné par `.reload( )` contient les propriétés suivantes :
        Historique -| Release | Modifications | -| ------- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | Ajout | +| Release | Modifications | +| ------- | ------------------------ | +| 21 | Ajout des statuts 7 et 8 | +| 17 | Ajout |
        @@ -1273,16 +1272,16 @@ L'objet retourné par `.save()` contient les propriétés suivantes : Les valeurs suivantes peuvent être retournées dans les propriétés `status` et `statusText` de l'objet Résultat en cas d'erreur : -| Constante | Valeur | Commentaire | -| ----------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **Associated statusText**: "Auto merge failed" | -| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      287. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      288. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      289. **statusText associé** : "Entity does not exist anymore" | -| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste. **statusText associé** : "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      290. with `.save()`: error only if the `dk auto merge` option is not used
      291. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      292. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      293. **Associated statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | +| Constante | Valeur | Commentaire | +| ----------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status automerge failed` | 6 | (Seulement si l'option `dk auto merge` est utilisée) L'option de fusion automatique a échoué lors de la sauvegarde de l'entité. \*\*statusText associé : "Auto merge failed" | +| `dk status entity does not exist anymore` | 5 | L'entité n'existe plus dans les données. Cette erreur peut se produire dans les cas suivants:
      294. l'entité a été supprimée (le marqueur a changé et l'espace mémoire est maintenant libre)
      295. l'entité a été supprimée et remplacée par une autre avec une autre clé primaire (le marqueur a changé et une nouvelle entité utilise maintenant l'espace mémoire). Lors de l'utilisation de `.drop()`, cette erreur peut être retournée lorsque l'option `dk force drop if stamp changed` est utilisée. Lors de l'utilisation de `.lock()`, cette erreur peut être retournée lorsque l'option `dk reload if stamp changed` est utilisée

      296. **statusText associé** : "Entity does not exist anymore" | +| `dk status locked` | 3 | L'entité est verrouillée par un verrou pessimiste. **statusText associé** : "Already locked" | +| `dk status validation failed` | 7 | Erreur non fatale envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Mild Validation Error" | +| `dk status serious error` | 4 | Une erreur critique peut être une erreur de bas niveau de la base de données (ex. clé dupliquée), une erreur matérielle, etc. **statusText associé** : "Other error" | +| `dk status serious validation error` | 8 | Erreur critique envoyée par le développeur pour un [événement de validation](../ORDA/orda-events.md). **statusText associé**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | La valeur du marqueur interne (stamp) de l'entité ne correspond pas à celle de l'entité stockée dans les données (verrouillage optimiste).
      297. avec `.save()` : erreur seulement si l'option `dk auto merge` n'est pas utilisée
      298. avec `.drop()` : erreur seulement si l'option `dk force drop if stamp changed` n'est pas utilisée
      299. avec `.lock()` : erreur seulement si l'option `dk reload if stamp changed` n'est pas utilisée

      300. **Associated statusText** : "Stamp has changed" | +| `dk status wrong permission` | 1 | Les privilèges courants ne permettent pas de supprimer l'entité. **statusText associé** : "Permission error" | #### Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md index 1217eff7a00779..9ece18d4745892 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md @@ -128,7 +128,7 @@ Note that [privileges](../ORDA/privileges.md) should be set in the session befor Shared sessions are handled through [OTP tokens](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [Share your 4D remote client session with web accesses](https://blog.4d.com/share-your-4d-remote-client-session-with-web-accesses) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md index 1b7faf45be6041..0850656f6df974 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/onAfterEdit.md @@ -62,11 +62,11 @@ En fonction de la valeur de la propriété `action`, l'[objet event](overview.md #### action = DragFillBlock -| Propriété | Type | Description | -| ------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| fillRange | object | Plage utilisée pour le remplissage | -| autoFillType | entier long | Value used for the fill.
      301. 0: Cells are filled with all data (values, formatting, and formulas)
      302. 1: Cells are filled with automatically sequential data
      303. 2: Cells are filled with formatting only
      304. 3: Cells are filled with values but not formatting
      305. 4: Values are removed from the cells
      306. 5: Cells are filled automatically
      307. | -| fillDirection | entier long | Direction of the fill.
      308. 0: The cells to the left are filled
      309. 1: The cells to the right are filled
      310. 2: The cells above are filled
      311. 3: The cells below are filled
      312. | +| Propriété | Type | Description | +| ------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| fillRange | object | Plage utilisée pour le remplissage | +| autoFillType | entier long | Valeur utilisée pour le remplissage.
      313. 0 : Les cellules sont remplies avec toutes les données (valeurs, formatage et formules)
      314. 1 : Les cellules sont remplies avec des données séquentielles automatiques
      315. 2 : Les cellules sont remplies avec la mise en forme uniquement
      316. 3 : Les cellules sont remplies avec les valeurs mais pas la mise en forme
      317. 4 : Les valeurs sont supprimées des cellules
      318. 5 : Les cellules sont remplies automatiquement
      319. | +| fillDirection | entier long | Direction du remplissage.
      320. 0 : Les cellules de gauche sont remplies
      321. 1 : Les cellules de droite sont remplies
      322. 2 : Les cellules du haut sont remplies
      323. 3 : Les cellules du bas sont remplies
      324. | #### action = formulaChanged diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/creating.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/creating.md index d79f92455ae1b2..8ebe9c62f66df2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/creating.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Menus/creating.md @@ -33,7 +33,7 @@ Vous pouvez modifier cette barre de menus comme vous le souhaitez ou créer des 1. Sélectionnez l'élément que vous souhaitez créer et cliquez sur le bouton ajouter ![](../assets/en/Menus/PlussNew.png) sous la barre de menu. OU Choisissez la commande **Créer une nouvelle barre de menus** ou **Créer un nouveau menu** dans le menu contextuel de la liste ou dans le menu d’options situé sous la liste. - Si vous avez créé une barre de menus, une nouvelle barre de menus apparaît dans la liste, contenant les menus par défaut (Fichier et Edition). + Si vous avez créé une barre de menu, une nouvelle barre de menus apparaît dans la liste, contenant les menus par défaut (Fichier et Edition). 2. (Facultatif) Effectuez un double-clic sur le nom du menu/de la barre de menus afin de le rendre éditable et saisissez un nom personnalisé. OU Saisissez le nom personnalisé dans la zone “Titre”. 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 efc6f3254a2bd7..41d9e35ed7eddf 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 @@ -9,49 +9,50 @@ Lisez [**Les nouveautés de 4D 21**](https://blog.4d.com/fe-whats-new-in-4d-v21/ #### Points forts -- Support of AI Vector Searches in the [`query()`](../API/DataClassClass.md#query-by-vector-similarity) function and in the [`$filter`](../REST/$filter.md#vector-similarity) REST API. -- Support of TLS encryption for the [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew) class. -- Serveur Web: - - new [HTTP rules](../WebServer/http-rules.md) to customize HTTP response headers, - - ability to set [HTTP request handlers](../WebServer/http-request-handler.md) using a `handlers` property in the *settings* parameter of the Web server [`start()`](../API/WebServerClass.md#start) function, - - the Web server object contains new [`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) properties. -- New [ORDA events on data](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. -- New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes. -- Client/server: - - You can display Qodly pages in Web areas and [share the remote client session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). - - The [QUIC network layer](../settings/client-server.md#network-layer) has been enhanced to handle network interface changes transparently, for example when you travel with your laptop. See [this blog post](https://blog.4d.com/work-and-move-with-quic-and-network-switching). -- You can now [create components directly from the host project](../Extensions/develop-components.md#creating-components) and [edit their code from a dedicated tab](../Extensions/develop-components.md#editing-all-component-code) in the 4D Explorer without leaving or restarting the project. -- The 4D product activation step has been simplified and automated during [sign-in](../GettingStarted/Installation.md#sign-in). -- 4D AIKit component: new features to [invoke a specific tool automatically](../aikit/Classes/OpenAIChatHelper.md#registertool) and [specify a response format](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). -- Langage 4D: - - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). - - [`Num`](../commands/num.md) and [`String`](../commands/string.md) commands have been updated to support conversions in different bases (radix). +- Prise en charge des recherches vectorielles d'IA dans la fonction [`query()`](../API/DataClassClass.md#query-by-vector-similarity) et dans l'API REST [`$filter`](../REST/$filter.md#vector-similarity). +- Prise en charge du cryptage TLS pour la classe [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew). +- Serveur Web : + - nouvelles [*HTTP rules*](../WebServer/http-rules.md) pour personnaliser les en-têtes de réponse HTTP, + - possibilité de définir des [gestionnaires de requêtes HTTP](../WebServer/http-request-handler.md) en utilisant une propriété `handlers` dans le paramètre *settings* de la fonction [`start()`](../API/WebServerClass.md#start) du serveur Web, + - l'objet serveur Web contient de nouvelles propriétés [`rules`](../API/WebServerClass.md#rules) et [`handlers`](../API/WebServerClass.md#handlers). +- Nouveaux [événements ORDA sur les données](../ORDA/orda-events.md) : validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Nouvelle option permettant d'utiliser les certificats du Windows Certificate Store au lieu d'un dossier de certificats locaux dans les classes [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) et [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew). +- Client/serveur : + - Vous pouvez afficher des pages Qodly dans des zones Web et [partager la session du client distant](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). + - La [couche réseau QUIC](../settings/client-server.md#network-layer) a été renforcée pour gérer les changements d'interface réseau de manière transparente, par exemple lorsque vous voyagez avec votre ordinateur portable. Plus d'informations dans [cet article de blog](https://blog.4d.com/work-and-move-with-quic-and-network-switching). +- Vous pouvez désormais [créer des composants directement à partir du projet hôte](../Extensions/develop-components.md#creating-components) et [éditer leur code à partir d'un onglet dédié](../Extensions/develop-components.md#editing-all-component-code) dans l'explorateur 4D sans quitter ou redémarrer le projet. +- L'étape d'activation du produit 4D a été simplifiée et automatisée lors de la [connexion](../GettingStarted/Installation.md#sign-in). +- Composant 4D AIKit : nouvelles fonctionnalités pour [invoquer un outil spécifique automatiquement](../aikit/Classes/OpenAIChatHelper.md#registertool) et [spécifier un format de réponse](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). +- Langage 4D : + - Nouvelles commandes "trim" pour supprimer les espaces de début et de fin d'une chaîne : [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), et [`Trim end`](../commands/trim-end.md). + - Les commandes [`Num`](../commands/num.md) et [`String`](../commands/string.md) ont été mises à jour pour prendre en charge des conversions dans différentes bases (radix). +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21) : liste de tous les bugs qui ont été corrigés dans 4D 21. #### Developer Preview -[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. +Le [rendu **Fluent UI** pour les formulaires 4D](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) est proposé en Developer Preview pendant le programme de bêta-test. #### Changements de comportement -:::caution Index rebuild +:::caution Reconstruction d'index -4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification. +4D 21 inclut une mise à jour de la bibliothèque ICU ([voir ci-dessous](#library-table)) qui forcera une reconstruction automatique des index de type alpha, texte et objet. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification. ::: -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). -- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- Services web (SOAP) : lorsque les [sessions évolutives](../WebServer/sessions.md#enabling-web-sessions) sont activées, les services web s'exécutent désormais dans des [**process préemptifs**](../Develop/preemptive.md) en mode compilé. Assurez-vous que votre code SOAP est thread-safe. +- Serveur web : la prise en charge des URLs dépréciés `4DSYNC/` et `4DCGI/` est supprimée. Plus aucun traitement spécifique n'est effectué sur ces URLs. +- Les sessions utilisateurs Web sont désormais renvoyées par [`Process activity`](../commands/process-activity.md). +- La commande [`HIGHLIGHT TEXT`](../commands/highlight-text) est maintenant prise en charge dans le contexte des sous-formulaires. +- **Les composants ne sont plus intégrés** : à partir de 4D 21, les composants développés par 4D (4D NetKit, 4D SVG..., voir [cette liste](../Extensions/overview.md#components-developed-by-4d)) ne sont plus intégrés dans l'application 4D. Lors de la mise à jour d'un projet vers 4D 21 ou supérieur, une boîte de dialogue s'affiche :
        ![alt-text](../assets/en/getStart/convert.png)
        - \- **Import**: import automatically 4D components as dependencies to the project
        - \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        - \- **Ask later**: do not import components and display the dialog at the next project opening. + \- **Import**/**Importer** : importer automatiquement les composants 4D comme dépendances du projet
        + \- **Ignore**/**Ignorer** : ne pas importer les composants et vous laisser [gérer les composants manuellement](../Project/components.md)
        + \- **Ask later**/**Redemander** : ne pas importer les composants et afficher la boîte de dialogue lors de la prochaine ouverture du projet. :::note -In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). +Dans les bases de données binaires, vous devez sélectionner les composants requis dans le programme d'installation de 4D ou les télécharger à partir du [portail de téléchargement des produits 4D](https://product-download.4d.com/?type=components). ::: @@ -61,30 +62,30 @@ Lisez [**Les nouveautés de 4D 20 R10**](https://blog.4d.com/fe-whats-new-in-4d- #### Points forts -- Handling of [ORDA events on data](../ORDA/orda-events.md). +- Gestion des [événements ORDA sur les données](../ORDA/orda-events.md). - Nouvelle option `connectionTimeout` dans le paramètre [`options`](../API/TCPConnectionClass.md#options-parameter) de la fonction [`4D.TCPConnection.new()`](../API/TCPConnectionClass.md#4dtcpconnectionnew). -- New [`4D.Vector`](../API/VectorClass.md) class to process and compare vectors, usually calculated by AIs. -- New options to generate UUIDs in **version 7** for [4D automatic fields](../settings/database.md#auto-uuid-version) and [`Generate UUID`](../commands/generate-uuid) command. -- New [`UDPSocket`](../API/UDPSocketClass.md) and [`UDPEvent`](../API/UDPEventClass.md) classes to send data using UDP sockets. Support of detailed logging for UDP events in the [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) log file (renamed from `4DTCPLog.txt`). -- New [`.promote()`](../API/SessionClass.md#promote) and [`.demote()`](../API/SessionClass.md#demote) functions in the [Session class](../API/SessionClass.md) to dynamically add/remove privileges in a web process. -- [Automatic selection of licenses to embed](../Desktop/building.md#application-automatically-embedding-available-licenses) in the Build application dialog box, modified [`Create deployment license`](../commands/create-deployment-license.md) command, new [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html) BuildApplication xml key. -- Enhanced security for formula copy/paste in [4D Write Pro](../WritePro/managing-formulas.md) and [styled text areas](../FormObjects/input_overview.md): formulas copied from outside the current 4D application are now always pasted as values only. -- 4D AIKit component: new [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) to create embeddings using OpenAI's API. -- You can now [associate a class](../Develop/field-properties.md) to an object field in the structure editor. -- Automatic handling of [recursive dependencies](../Project/components.md#automatic-dependency-resolution). -- Langage 4D: +- Nouvelle classe [`4D.Vector`](../API/VectorClass.md) pour traiter et comparer des vecteurs, généralement calculés par des IA. +- Nouvelles options pour générer des UUIDs en **version 7** pour les [champs 4D automatiques](../settings/database.md#auto-uuid-version) et la commande [`Generate UUID`](../commands/generate-uuid). +- Nouvelles classes [`UDPSocket`](../API/UDPSocketClass.md) et [`UDPEvent`](../API/UDPEventClass.md) pour envoyer des données en utilisant des sockets UDP. Prise en charge de la journalisation détaillée des événements UDP dans le fichier journal [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) (anciennement nommé `4DTCPLog.txt`). +- Nouvelles fonctions [`.promote()`](../API/SessionClass.md#promote) et [`.demote()`](../API/SessionClass.md#demote) dans la [classe Session](../API/SessionClass.md) pour ajouter/supprimer dynamiquement des privilèges dans un process web. +- [Sélection automatique des licences à intégrer](../Desktop/building.md#application-automatically-embedding-available-licenses) dans la boîte de dialogue du Générateur d'application, modification de la commande [`Create deployment license`](../commands/create-deployment-license.md), nouvelle clé xml BuildApplication [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html). +- Sécurité renforcée pour le copier/coller de formules dans [4D Write Pro](../WritePro/managing-formulas.md) et les [zones de texte stylées](../FormObjects/input_overview.md) : les formules copiées depuis l'extérieur de l'application 4D en cours sont désormais toujours collées en tant que valeurs uniquement. +- Composant 4D AIKit : nouvelle classe [OpenAIEmbeddingsAPI](../aikit/Classes/OpenAIEmbeddingsAPI.md) pour créer des embeddings à l'aide de l'API OpenAI. +- Vous pouvez [associer une classe](../Develop/field-properties.md) à un champ objet dans l'éditeur de structure. +- Gestion automatique des [dépendances récursives](../Project/components.md#automatic-dependency-resolution). +- Langage 4D : - Pour des raisons de cohérence, les commandes [`Create entity selection`](../commands/create-entity-selection.md) et [`USE ENTITY SELECTION`](../commands/use-entity-selection.md) ont été déplacées du thème ["4D Environnement"](../commands/theme/4D_Environment.md) vers le thème ["Sélections"](../commands/theme/Selection.md). - Nouvelles commandes [`OBJET SET DATA SOURCE FORMULA`](../commands/object-set-data-source-formula.md) et [`OBJECT Get data source formula`](../commands/object-get-data-source-formula.md) pour assigner et lire les objets `Formula` comme sources de données pour les objets de formulaire. - [`LISTBOX SET PROPERTY`](../commands/listbox-set-property.md) et [`LISTBOX Get property`](../commands/listbox-get-property.md) prennent en charge trois nouvelles constantes : `lk current item`, `lk current item position`, et `lk selected items expression`. -- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R10): list of all bugs that have been fixed in 4D 20 R10. +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R10) : liste de tous les bugs qui ont été corrigés dans 4D 20 R10. #### Changements de comportement - Sous Windows, les polices d'imprimante courantes destinées uniquement à l'impression (c'est-à-dire non utilisables à l'écran) ne sont plus chargées par 4D au démarrage. -- The *MeCab* library has been removed. This change only affects the processing of Japanese text. -- When an object variable or parameter is declared with a ["cs" class](../Concepts/classes.md#cs) type, assigning it with an object instance of a different class now generates a syntax error. -- [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) returns True for promoted privileges in the web process. -- The [`Time`](../commands/time) command now returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will return **-01:02:03**. In previous releases, the negative sign was ignored. +- La bibliothèque *MeCab* a été supprimée. Cette modification n'affecte que le traitement du texte japonais. +- Lorsqu'une variable objet ou un paramètre objet est déclaré(e) avec un type ["cs" class](../Concepts/classes.md#cs), son affectation à une instance d'objet d'une classe différente génère désormais une erreur de syntaxe. +- [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) renvoie True pour les privilèges promus dans le process web. +- La commande [`Time`](../commands/time) renvoie désormais une expression temporelle négative lorsque le paramètre *timeValue* est négatif. Par exemple, `Time("-01:02:03")` renverra **-01:02:03**. Dans les versions précédentes, le signe moins était ignoré. ## 4D 20 R9 @@ -95,7 +96,7 @@ Lisez [**Les nouveautés de 4D 20 R9**](https://blog.4d.com/fe-whats-new-in-4d-2 - La bibliothèque [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) est désormais obsolète et sera supprimée dans la prochaine version. - Prise en charge des [tokens de session](../WebServer/sessions.md#session-token-otp) gérés avec les nouvelles fonctions [`Session.createOTP()`](../API/SessionClass.md#createotp) et [`Session.restore()`](../API/SessionClass.md#restore). - L'assistant d'étiquettes utilise maintenant l'éditeur de formules pour ajouter ou éditer des formules dans la [zone de construction du modèle](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Nouvelle classe [`TCPListener`](../API/TCPListenerClass.md) pour créer des connexions à un serveur TCP ; nouvelles propriétés dans les classes associées : `address`, `listener` et `port` dans la classe [`TCPConnection`](../API/TCPConnectionClass.md), `address` et `port` dans la classe [`TCPEvent`](../API/TCPEventClass.md). - Les commandes et constantes obsolètes génèrent maintenant des warnings spécifiques dans le [live checker et le compilateur](../code-editor/write-class-method.md#warnings-and-errors). Vous pouvez savoir si une commande est obsolète en utilisant la commande [`Command name`](../commands/command-name.md). - Nouvelles commandes [WA SET CONTEXT](../commands/wa-set-context.md) et [WA Get context](../commands/wa-get-context.md) pour contrôler le contenu de [$4d](../FormObjects/webArea_overview.md#4d-object) dans les zones web. - Nouveau paramètre de base de données [`RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) pour optimiser par exemple le presse-papiers partagé lors de l'utilisation du protocole de bureau distant avec 4D. @@ -127,7 +128,7 @@ Lisez [**Les nouveautés de 4D 20 R8**](https://blog.4d.com/fe-whats-new-in-4d-2 - Les commandes suivantes acceptent maintenant des paramètres tels que des objets ou des collections : [WP SET ATTRIBUTES](../WritePro/commands/wp-set-attributes.md), [WP Get Attributes](../WritePro/commands/wp-get-attributes.md), [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md), [WP Table append row](../WritePro/commands/wp-table-append-row.md), [WP Import document](../WritePro/commands/wp-import-document.md), [WP EXPORT DOCUMENT](../WritePro/commands/wp-export-document.md), [WP Add picture](../WritePro/commands/wp-add-picture.md), et [WP Insert picture] (../WritePro/commands/wp-insert-picture.md). - [WP Insert formula](../WritePro/commands/wp-insert-formula.md), [WP Insert document body](../WritePro/commands/wp-insert-document-body.md), et [WP Insert break](../WritePro/commands/wp-insert-break.md), sont maintenant des fonctions qui retournent des plages. - Nouvelles expressions liées aux attributs de documents : [This.sectionIndex](../WritePro/managing-formulas.md), [This.sectionName](../WritePro/managing-formulas.md) et [This.pageIndex](../WritePro/managing-formulas.md). -- Langage 4D: +- Langage 4D : - Commande modifiée : [`FORM EDIT`](../commands/form-edit.md) - Les fonctions [`.sign()`](../API/CryptoKeyClass.md#sign) et [`.verify()`](../API/CryptoKeyClass.md#verify) de la [classe 4D.CryptoKey](../API/CryptoKeyClass.md) prennent en charge des Blobs dans le paramètre *message*. - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R8) : liste de tous les bugs qui ont été corrigés dans 4D 20 R8. @@ -153,10 +154,10 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 - Qodly Studio : Vous pouvez maintenant [attacher le débogueur Qodly à 4D Server](../WebServer/qodly-studio.md#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: +- Langage 4D : - Nouvelles commandes : [Process info](../commands/process-info.md), [Session info](../commands/session-info.md), [SET WINDOW DOCUMENT ICON](../commands/set-window-document-icon.md) - Commandes modifiées : [Process activity](../commands/process-activity.md), [Process number](../commands/process-number.md) - - Deprecated commands (replacement): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) and [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) declarations). Deprecated commands are prefixed with "\*o\*". + - Commandes obsolètes (remplacement) : `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) et [#DECLARE/déclarations Function](../Concepts/parameters.md#declaring-parameters) ). Les commandes obsolètes sont précédées du préfixe "\*o\*". - 4D Write Pro : - Nouvelle commande : [WP DELETE SECTION](../WritePro/commands/wp-delete-section.md) - Commandes modifiées : [WP DELETE SUBSECTION](../WritePro/commands/wp-delete-subsection.md), [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md) @@ -291,23 +292,23 @@ Voir [**Release Notes pour 4D 20.x LTS**](../../version-20/Notes/updates.md). ## Tableau des bibliothèques -| Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire | -| ------------ | -------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| BoringSSL | fa47b1d | **21** | Utilisé pour QUIC | -| CEF | 7258 | **21** | Chromium 139 | -| Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro | -| ICU | 77.1 | **21** | This upgrade forces an automatic rebuild of alphanumeric, text and object indexes. | -| libldap | 2.6.10 | **21** | | -| libsasl | 2.1.28 | 20 | | -| Liblsquic | 4.2.0 | 20 R10 | Utilisé pour QUIC | -| Libuv | 1.51.0 | **21** | Utilisé pour QUIC | -| libZip | 1.11.4 | **21** | Utilisé par les classes zip, 4D Write Pro, les composants svg et serverNet | -| LZMA | 5.8.1 | **21** | | -| ngtcp2 | 1.16.0 | **21** | Utilisé pour QUIC | -| OpenSSL | 3.5.2 | **21** | | -| PDFWriter | 4.7.0 | **21** | Used for [`WP Export document`](../WritePro/commands/wp-export-document.md) and [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | -| PHP | 8.2.4 | 20 | | -| SpreadJS | 17.1.0 | 20 R7 | Voir [ce blog post](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) pour un aperçu des nouvelles fonctionnalités. | -| webKit | WKWebView | 19 | | -| Xerces | 3.3.0 | **21** | Used for XML commands | -| Zlib | 1.3.1 | **21** | | +| Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire | +| ------------ | -------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| BoringSSL | fa47b1d | **21** | Utilisé pour QUIC | +| CEF | 7258 | **21** | Chromium 139 | +| Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro | +| ICU | 77.1 | **21** | Cette mise à jour entraîne une reconstruction automatique des index alphanumériques, textes et objets. | +| libldap | 2.6.10 | **21** | | +| libsasl | 2.1.28 | 20 | | +| Liblsquic | 4.2.0 | 20 R10 | Utilisé pour QUIC | +| Libuv | 1.51.0 | **21** | Utilisé pour QUIC | +| libZip | 1.11.4 | **21** | Utilisé par les classes zip, 4D Write Pro, les composants svg et serverNet | +| LZMA | 5.8.1 | **21** | | +| ngtcp2 | 1.16.0 | **21** | Utilisé pour QUIC | +| OpenSSL | 3.5.2 | **21** | | +| PDFWriter | 4.7.0 | **21** | Utilisé pour [`WP Export document`](../WritePro/commands/wp-export-document.md) et [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | +| PHP | 8.2.4 | 20 | | +| SpreadJS | 17.1.0 | 20 R7 | Voir [ce blog post](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) pour un aperçu des nouvelles fonctionnalités. | +| webKit | WKWebView | 19 | | +| Xerces | 3.3.0 | **21** | Utilisé pour les commandes XML | +| Zlib | 1.3.1 | **21** | | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 0be4eacb122866..50d4730852d6fa 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -564,11 +564,11 @@ Ce mécanisme automatique est basé sur le concept de "verrouillage optimiste" q Le diagramme suivant illustre le verrouillage optimiste : -1. Deux process chargent la même entité.

        ![](../assets/en/ORDA/optimisticLock1.png) +1. Two processes load the same entity.

        ![](../assets/en/ORDA/optimisticLock1.png) -2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Étant donné qu'ils correspondent, l'entité est enregistrée et sa valeur de marqueur est incrémentée.

        ![](../assets/en/ORDA/optimisticLock2.png) +2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Since they match, the entity is saved and its stamp value is incremented.

        ![](../assets/en/ORDA/optimisticLock2.png) -3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Comme la valeur du marqueur de l'entité modifiée ne correspond pas à celle de l'entité stockée dans les données, la sauvegarde n'est pas effectuée et une erreur est renvoyée.

        ![](../assets/en/ORDA/optimisticLock3.png) +3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Since the stamp value of the modified entity does not match the one of the entity stored in the data, the save is not performed and an error is returned.

        ![](../assets/en/ORDA/optimisticLock3.png) Cela peut également être illustré par le code suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 6be733d4b7838d..cc75f45301a848 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -16,7 +16,7 @@ ORDA events are functions that are automatically invoked by ORDA each time entit You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) @@ -102,19 +102,19 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propriété | Type | Description | Set by the developer | -| ------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| extraDescription | Object | Free information to set up | Oui | -| seriousError | Boolean | Used only with validate events (see below). Will insert a specific `status` value in the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) function:
      325. If true: `dk status serious validation error`
      326. If false: `dk status validation failed`
      327. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Non | - -- The errors are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `fatalError` property allows you to insert a specific `status` and its associated `statusText` in the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions: - - If **false**: `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". Such errors do not require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. - - If **true**: `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". Such errors require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. They are raised at the end of the event and reach the client requesting the save/drop action (REST client for example). -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error (`dk status serious error`) whatever the `seriousError` property value. +| Propriété | Type | Description | Set by the developer | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | +| extraDescription | Object | Free information to set up | Oui | +| seriousError | Boolean | Used only with validate events (see below).
      328. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      329. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      330. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | Non | + +- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. +- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: + - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). + - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". +- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. ## Event function description diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index f2548492d1ada3..463fc86bd23e53 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -1,6 +1,6 @@ --- id: components -title: Dependencies +title: Dépendances --- [L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). @@ -350,7 +350,7 @@ Pour afficher la fenêtre Dépendances : ![dependency-menu](../assets/en/Project/dependency-menu.png) - avec 4D Server, sélectionnez la ligne de menu **Fenêtre/Dépendances du projet**.
        - ![menu-dépendances-serveur](../assets/en/Project/dependency-menu-server.png) + ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) La fenêtre Dépendances s'affiche alors. Les dépendances sont classées par nom par ordre alphabétique : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/date-time-formats.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/date-time-formats.md index 13aa1b691806b2..86aa3e539a0877 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/date-time-formats.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/date-time-formats.md @@ -51,18 +51,18 @@ Le tableau suivant répertorie tous les motifs pris en charge pour les formats d | D | jour de l'année | D | 189 | | E | jour de la semaine | E, EE, ou EEE | Tue | | | | EEEE | Tuesday | -| | | EEEEE | M | +| | | EEEEE | T | | | | EEEEEE | ma | | e | jour local de la semaine | e | 2 | | | | ee | 02 | -| | | eee | mar. | -| | | eeee | Mardi | +| | | eee | Tue | +| | | eeee | Tuesday | | | | eeeee | T | | | | eeeeee | ma | | c | jour local de la semaine seul | c ou cc | 2 | -| | | ccc | mar. | -| | | cccc | mardi | -| | | ccccc | M | +| | | ccc | Tue | +| | | cccc | Tuesday | +| | | ccccc | T | | | | cccccc | ma | | a | AM ou PM | a, aa, ou aaa | PM [abbrev] | | | | aaaa | PM [complet] | @@ -98,8 +98,8 @@ Le tableau suivant répertorie tous les motifs pris en charge pour les formats d | O | Time Zone: short localized UTC | O | UTC-8 | | | Time Zone: long localized UTC (=ZZZZ) | OOOO | UTC-08:00 | | z | Time Zone: specific non-location | z, zz, ou zzz | UTC+1 | -| | | zzzz | heure normale d'Europe centrale | -| | | zzzzz | heure normale d'Europe centrale | +| | | zzzz | UTC-08:00 | +| | | zzzzz | -08:00, -07:52:58, Z | | | | | | | ' | échappement pour le texte | ' | ' | | ' ' | deux guillemets simples en produisent un | ' ' | ' ' | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 225bb92db1df45..34fb6f7e9a251a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propriété | Type | Description | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Collection d'objets) | Obligatoire. A collection that represents the vector to compare | | -| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Supported values:
      331. "cosine" (default if omitted): calculates the cosine distance between vectors.
      332. "dot": calculates the dot similarity of vectors.
      333. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | | +| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection d'objets) | Obligatoire. A collection that represents the vector to compare | | +| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Valeurs prises en charge :
      334. "cosine" (valeur par défaut si omis) : calcule la distance cosinus entre les vecteurs.
      335. "dot" : calcule la similarité de points des vecteurs.
      336. "euclidean" : calcule la distance euclidienne entre les vecteurs. | | +| | [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Only a subset of **comparator** symbols are supported with vector comparisons. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md index 5740fc0d6c2ff1..76d5a6bbd7b1f0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/ClassFunctions.md @@ -120,7 +120,7 @@ Par exemple, avec une fonction de la dataclass `getCities()` recevant des param `/rest/City/getCities?$params='["Aguada","Paris"]'` -### Paramètres des entités +### Paramètre d'entité Les entités passées en paramètres sont référencées sur le serveur via leur clé (c'est-à-dire la propriété __KEY). Si le paramètre clé est omis dans une requête, une nouvelle entité est chargée en mémoire sur le serveur. Vous pouvez également transmettre des valeurs pour tous les attributs de l'entité. Ces valeurs seront automatiquement utilisées pour l'entité traitée sur le serveur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Tags/transformation-tags.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Tags/transformation-tags.md index 1c69170a4f0670..8bea0677e610e2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Tags/transformation-tags.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Tags/transformation-tags.md @@ -160,7 +160,7 @@ Voici les caractéristiques de la balise 4DCODE : - La commande `TRACE` est prise en charge et active le débogueur 4D, vous permettant ainsi de déboguer votre code de template. - Toute erreur affichera le dialogue d'erreur standard qui permet à l'utilisateur d'arrêter l'exécution du code ou d'entrer en mode débogage. - Le texte compris entre `` est divisé en lignes acceptant n'importe quelle convention de fin de ligne (cr, lf, ou crlf). -- Le texte est tokenisé dans le contexte de la base de données qui a appelé `PROCESS 4D TAGS`. C'est important pour la reconnaissance des méthodes projet par exemple. La propriété de méthode [Disponible via les balises et les URL 4D (4DACTION...)](WebServer/allowProject.md) n'est pas prise en compte. +- Le texte est tokenisé dans le contexte de la base de données qui a appelé `PROCESS 4D TAGS`. Ceci est important pour la reconnaissance des méthodes de projet par exemple. La propriété de méthode [Disponible via les balises et les URL 4D (4DACTION...)](WebServer/allowProject.md) n'est pas prise en compte. - Même si le texte utilise toujours l'anglais-US, il est recommandé d'utiliser la syntaxe token (:Cxxx) pour les noms de commandes et de constantes afin de se prémunir contre d'éventuels problèmes dus à des commandes ou des constantes renommées d'une version de 4D à une autre. > Le fait que les balises 4DCODE puissent appeler n'importe quelle commande du langage 4D ou méthode du projet pourrait être considéré comme un problème de sécurité, en particulier lorsque la base de données est disponible via HTTP. Toutefois, étant donné qu'elle exécute du code côté serveur appelé à partir de vos propres fichiers de modèle, la balise elle-même ne représente pas un problème de sécurité. Dans ce contexte, comme pour tout serveur Web, la sécurité est principalement gérée au niveau des accès distants aux fichiers du serveur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md index 28a83e40f5d3ef..01d52a237e1f4e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ Dans *rangeObj*, passez la plage de cellules contenant les valeurs, formatages e Vous pouvez passer un paramètre facultatif *options* contenant les propriétés suivantes : -| Propriété | Type | Description | -| ----------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *Vrai* (par défaut) pour conserver les valeurs copiées, le formatage et les formules après l'exécution de la commande. *Faux* pour les supprimer. | -| copyOptions | Integer | Spécifie ce qui est copié ou déplacé. Valeurs possibles :

        ValeurDescription
        `vk clipboard options all` (par défaut)Copie tous les objets de données, y compris les valeurs, le formatage et les formules.
        `vk clipboard options formatting`Copie uniquement le formatage.
        `vk clipboard options formulas`Copie uniquement les formules.
        `vk clipboard options formulas and formatting`Copie les formules et le formatage.
        `vk clipboard options values`Copie uniquement les valeurs.
        `vk clipboard options value and formatting`Copie les valeurs et le formatage.

        | +| Propriété | Type | Description | +| ----------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | *Vrai* (par défaut) pour conserver les valeurs copiées, le formatage et les formules après l'exécution de la commande. *Faux* pour les supprimer. | +| copyOptions | Integer | Spécifie ce qui est copié ou déplacé. Valeurs possibles :

        ValeurDescription
        `vk clipboard options all` (par défaut)Copie tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        `vk clipboard options formatting` (options du presse-papier)Copie uniquement la mise en forme.
        `vk clipboard options formulas`Copie uniquement les formules.
        `vk clipboard options formulas and formatting`Copie les formules et la mise en forme.
        `vk clipboard options values`Copie uniquement les valeurs.
        `vk clipboard options value and formatting` Copie les valeurs et la mise en forme.

        | Les options de collage définies dans [workbook options](vp-set-workbook-options.md) sont prises en compte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md index af326cb69945f7..1ea98812df74fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md @@ -16,7 +16,7 @@ title: VP EXPORT TO BLOB ## Description -La commande `VP EXPORT TO BLOB` exporte le document 4D View Pro *vpAreaName* dans un 4D.Blob en fonction des options *paramObj*. Le blob exporté est disponible par le callback export. L'exportation et l'importation des zones 4D View Pro sous forme de blobs est rapide et économe en mémoire. +La commande `VP EXPORT TO BLOB` exporte le document 4D View Pro *vpAreaName* dans un 4D.Blob selon les options *paramObj*. Le blob exporté est disponible via la méthode de rappel de l'export. L'exportation et l'importation des zones 4D View Pro sous forme de blobs est rapide et économe en mémoire. Dans *paramObj*, vous pouvez passer plusieurs propriétés : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 072da0f1050400..f7acf77abdbe77 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -27,14 +27,14 @@ Le paramètre *searchValue* vous permet de passer le texte à rechercher dans *r Vous pouvez passer le paramètre optionnel *searchCondition* pour préciser la manière dont la recherche est effectuée. Les propriétés suivantes sont prises en charge : -| Propriété | Type | Description | -| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| afterColumn | Integer | Le numéro de la colonne située juste avant la colonne de départ de la recherche. If the *rangeObj* is a combined range, the column number given must be from the first range. Default value: -1 (beginning of the *rangeObj*) | -| afterRow | Integer | Le numéro de la colonne située juste avant la colonne de départ de la recherche. Le numéro de la colonne située juste avant la colonne de départ de la recherche. Default value: -1 (beginning of the *rangeObj*) | -| all | Boolean |
      337. True - All cells in *rangeObj* corresponding to *searchValue* are returned
      338. False - (default value) Only the first cell in *rangeObj* corresponding to *searchValue* is returned
      339. | -| flags | Integer |
        `vk find flag exact match`The entire content of the cell must completely match the search value
        `vk find flag ignore case`Capital and lower-case letters are considered the same. Ex: "a" is the same as "A".
        `vk find flag none`no search flags are considered (default)
        `vk find flag use wild cards`Wildcard characters (\*,?) can be used in the search string. Wildcard characters can be used in any string comparison to match any number of characters:
      340. \* for zero or multiple characters (for example, searching for "bl*" can find "bl", "black", or "blob")
      341. ? for a single character (for example, searching for "h?t" can find "hot", or "hit"
      342. These flags can be combined. For example: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
        `vk find order by columns`The search is performed by columns. Each row of a column is searched before the search continues to the next column.
        `vk find order by rows`The search is performed by rows. Each column of a row is searched before the search continues to the next row (default)
        | -| target | Integer |
        `vk find target formula`The search is performed in the cell formula
        `vk find target tag`The search is performed in the cell tag
        `vk find target text`The search is performed in the cell text (default)

        These flags can be combined. For example:$search.target:=vk find target formula+vk find target text

        | +| Propriété | Type | Description | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| afterColumn | Integer | Le numéro de la colonne située juste avant la colonne de départ de la recherche. If the *rangeObj* is a combined range, the column number given must be from the first range. Default value: -1 (beginning of the *rangeObj*) | +| afterRow | Integer | Le numéro de la colonne située juste avant la colonne de départ de la recherche. Le numéro de la colonne située juste avant la colonne de départ de la recherche. Default value: -1 (beginning of the *rangeObj*) | +| all | Boolean |
      343. True - All cells in *rangeObj* corresponding to *searchValue* are returned
      344. False - (default value) Only the first cell in *rangeObj* corresponding to *searchValue* is returned
      345. | +| flags | Integer |
        `vk find flag exact match`The entire content of the cell must completely match the search value
        `vk find flag ignore case`Capital and lower-case letters are considered the same. Ex : "a" est la même chose que "A".
        `vk find flag none`aucun drapeau de recherche n'est pris en compte (par défaut)
        `vk find flag use wild cards`Caractères génériques (\*, ?) can be used in the search string. Wildcard characters can be used in any string comparison to match any number of characters:
      346. \* for zero or multiple characters (for example, searching for "bl*" can find "bl", "black", or "blob")
      347. ? for a single character (for example, searching for "h?t" can find "hot", or "hit"
      348. These flags can be combined. For example: $search.flags:=vk find flag use wild cards+vk find flag ignore case | +| order | Integer |
        `vk find order by columns`The search is performed by columns. Chaque ligne d'une colonne est recherchée avant que la recherche ne passe à la colonne suivante.
        `vk find order by rows`La recherche est effectuée par lignes. Each column of a row is searched before the search continues to the next row (default)
        | +| target | Integer |
        `vk find target formula`The search is performed in the cell formula
        `vk find target tag`The search is performed in the cell tag
        `vk find target text`The search is performed in the cell text (default)

        These flags can be combined. For example:$search.target:=vk find target formula+vk find target text

        | Dans le paramètre optionnel *replaceValue*, vous pouvez passer du texte pour remplacer toute instance du texte dans la *searchValue* trouvée dans *rangeObj*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 9a7e1a0cf81fdb..9e4d78895e35dc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -43,33 +43,33 @@ Une erreur est retournée si le paramètre `filePath` est invalide, ou si le fic Le paramètre optionnel *paramObj* vous permet de définir les propriétés du document importé: -| Paramètres | | Type | Description | -| ------------ | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | Une méthode callback à lancer lorsque l'import est terminé. Vous devez utiliser une formule retournée par la commande [`Formula`](../../commands/formula.md). See [Passing a callback method (formula)](vp-export-document.md#passing-a-callback-method-formula). | -| password | | text | Microsoft Excel uniquement (optionnel) - Mot de passe utilisé pour protéger un document Microsoft Excel. | -| csvOptions | | object | options d'import csv | -| | range | object | Plage de cellules contenant la première cellule dans laquelle les données seront saisies. Si la plage spécifiée n'est pas une plage de cellules, seule la première cellule de la plage est utilisée. | -| | rowDelimiter | text | Délimiteur de ligne. S'il n'est pas défini, le délimiteur est automatiquement déterminé par 4D. | -| | columnDelimiter | text | Délimiteur de colonne. Par défaut : "," | -| sjsOptions | | object | options d'import sjs | -| | calcOnDemand | boolean | Indique si les formules doivent être calculées uniquement lorsqu'elles sont demandées, la valeur par défaut est faux. | -| | dynamicReferences | boolean | Indique si les fonctions doivent être calculées avec des références dynamiques, la valeur par défaut est vrai. | -| | fullRecalc | boolean | Indique si le calcul doit être effectué après le chargement des données json, la valeur par défaut est faux. | -| | includeFormulas | boolean | Whether to include the formulas when loading, default is true. | -| | includeStyles | boolean | Whether to include the styles when loading, default is true. | -| | includeUnusedStyles | boolean | Whether to include the unused name styles when converting excel xml to the json, default is true. | -| | openMode | integer |
      349. 0 (normal): normal open mode, without lazy and incremental. When opening file, UI and UI event could be refreshed and responsive at specific time points.
      350. 1 (lazy): lazy open mode. When opening file, only the active sheet will be loaded directly. Other sheets will be loaded only when they are be used.
      351. 2 (incremental): incremental open mode. When opening file, UI and UI event could be refreshed and responsive directly.
      352. | -| excelOptions | | object | Excel only (optional) - Options for Excel export | -| | includeStyles | boolean | Whether to include the style when importing, default true. | -| | includeFormulas | boolean | Whether to include the formula when importing, default true. | -| | frozenColumnsAsRowHeaders | boolean | Whether to treat the frozen columns as row headers when importing, default false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | -| | fullRecalc | boolean | Indique si le calcul doit être effectué après le chargement des données json, la valeur par défaut est faux. | -| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | -| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | -| | includeUnusedStyles | boolean | Whether to include the unused name style when converting excel xml to the json, default true. | -| | password | text | The password to open the workbook. | -| | openMode | text | The open mode of normal, lazy and incremental. By default is normal. | +| Paramètres | | Type | Description | +| ------------ | ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | | 4D.Function | Une méthode callback à lancer lorsque l'import est terminé. Vous devez utiliser une formule retournée par la commande [`Formula`](../../commands/formula.md). See [Passing a callback method (formula)](vp-export-document.md#passing-a-callback-method-formula). | +| password | | text | Microsoft Excel uniquement (optionnel) - Mot de passe utilisé pour protéger un document Microsoft Excel. | +| csvOptions | | object | options d'import csv | +| | range | object | Plage de cellules contenant la première cellule dans laquelle les données seront saisies. Si la plage spécifiée n'est pas une plage de cellules, seule la première cellule de la plage est utilisée. | +| | rowDelimiter | text | Délimiteur de ligne. S'il n'est pas défini, le délimiteur est automatiquement déterminé par 4D. | +| | columnDelimiter | text | Délimiteur de colonne. Par défaut : "," | +| sjsOptions | | object | options d'import sjs | +| | calcOnDemand | boolean | Indique si les formules doivent être calculées uniquement lorsqu'elles sont demandées, la valeur par défaut est faux. | +| | dynamicReferences | boolean | Indique si les fonctions doivent être calculées avec des références dynamiques, la valeur par défaut est vrai. | +| | fullRecalc | boolean | Indique si le calcul doit être effectué après le chargement des données json, la valeur par défaut est faux. | +| | includeFormulas | boolean | Whether to include the formulas when loading, default is true. | +| | includeStyles | boolean | Whether to include the styles when loading, default is true. | +| | includeUnusedStyles | boolean | Whether to include the unused name styles when converting excel xml to the json, default is true. | +| | openMode | integer |
      353. 0 (normal): normal open mode, without lazy and incremental. Lors de l'ouverture d'un fichier, l'interface utilisateur et l'événement d'interface utilisateur peuvent être actualisés et réactifs à des moments précis.
      354. 1 (lazy) : mode d'ouverture lazy. When opening file, only the active sheet will be loaded directly. Les autres feuilles ne seront chargées que lorsqu'elles seront utilisées.
      355. 2 (incrémental): mode d'ouverture incrémental. When opening file, UI and UI event could be refreshed and responsive directly.
      356. | +| excelOptions | | object | Excel only (optional) - Options for Excel export | +| | includeStyles | boolean | Whether to include the style when importing, default true. | +| | includeFormulas | boolean | Whether to include the formula when importing, default true. | +| | frozenColumnsAsRowHeaders | boolean | Whether to treat the frozen columns as row headers when importing, default false. | +| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | +| | fullRecalc | boolean | Indique si le calcul doit être effectué après le chargement des données json, la valeur par défaut est faux. | +| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | +| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | +| | includeUnusedStyles | boolean | Whether to include the unused name style when converting excel xml to the json, default true. | +| | password | text | The password to open the workbook. | +| | openMode | text | The open mode of normal, lazy and incremental. By default is normal. | :::note Notes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md index 06c23b842ecbd4..825e1a99be63eb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ Dans *targetRange*, passez la plage de cellules où les valeurs, le style et les Le paramètre *options* a plusieurs propriétés : -| Propriété | Type | Description | -| ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | Détermine si les valeurs, la mise en forme et les formules des cellules de *originRange* sont supprimés après l'exécution de la commande :
        • *False* (par défaut) pour les supprimer
        • *True* pour les conserver
        | -| pasteOptions | Integer | Spécifie ce qui est collé. Valeurs possibles :

        ValeurDescription
        `vk clipboard options all` (default)Colle tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        `vk clipboard options formatting`Colle uniquement la mise en forme.
        `vk clipboard options formulas`Colle uniquement les formules.
        `vk clipboard options formulas and formatting`Colle les formules et la mise en forme.
        `vk clipboard options values`Colle uniquement les valeurs.
        `vk clipboard options value and formatting`Colle les valeurs et la mise en forme

        | +| Propriété | Type | Description | +| ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | Détermine si les valeurs, la mise en forme et les formules des cellules de *originRange* sont supprimés après l'exécution de la commande :
        • *False* (par défaut) pour les supprimer
        • *True* pour les conserver
        | +| pasteOptions | Integer | Spécifie ce qui est collé. Valeurs possibles :

        ValeurDescription
        `vk clipboard options all` (par défaut)Colle tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        `vk clipboard options formatting`Ne colle que la mise en forme..
        `vk clipboard options formulas`Ne colle que les formules.
        `vk clipboard options formulas and formatting`Colle les formules et la mise en forme.
        `vk clipboard options values`Ne colle que les valeurs.
        `vk clipboard options value and formatting`Colle les valeurs et la mise en forme.

        | Les options de collage définies dans [workbook options](vp-set-workbook-options.md) sont prises en compte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-row.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-row.md index 2213cd4df3bfb5..b7b51cdbcc4c1a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-row.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-row.md @@ -33,7 +33,7 @@ Dans le paramètre optionnel *sheet*, vous pouvez désigner une feuille spécifi ## Exemple -Vous souhaitez définir une plage pour la ligne ci-dessous (dans la feuille de calcul courante) : +Vous souhaitez définir une plage pour la ligne ci-dessous (dans la feuille courante) : ![](../../assets/en/ViewPro/cmd_vpRow.PNG) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index 2999513fe85d7c..7407f3c7a4eb04 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -29,66 +29,66 @@ Les options modifiées du classeur sont enregistrées avec le document. Le tableau suivant répertorie les options de classeur disponibles : -| Propriété | Type | Description | -| ------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | -| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | -| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | -| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | -| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | -| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | -| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | -| allowUndo | boolean | L'annulation des modifications est autorisée. | -| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | -| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | -| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | -| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | -| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | -| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | -| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | -| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | -| backgroundImage | string / picture / file | Image de fond de la zone. | -| backgroundImageLayout | number | Comment l'image de fond s'affiche. Valeurs disponibles :
        ConstanteValeurDescription
        vk image layout center 1 Au centre de la zone.
        vk image layout none 3 Dans le coin supérieur gauche de la zone avec sa taille originale.
        vk image layout stretch 0 Remplit la zone.
        vk image layout zoom 2 S'affiche avec son ratio d'aspect d'origine.
        | -| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | -| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | -| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Valeurs disponibles :
        ConstanteValeurDescription
        vk copy paste header options all headers3 Inclut les en-têtes sélectionnés lorsque les données sont copiées ; écrase les en-têtes sélectionnés lorsque les données sont collées.
        vk copy paste header options column headers 2 Inclut les en-têtes de colonnes sélectionnées lorsque les données sont copiées ; écrase les en-têtes de colonnes sélectionnées lorsque les données sont collées.
        vk copy paste header options no headers0 Les en-têtes de colonne et de ligne ne sont pas inclus lorsque les données sont copiées ; les en-têtes de colonne ou de ligne sélectionnés ne sont pas écrasés lorsque les données sont collées.
        vk copy paste header options row headers1 Inclut les en-têtes de ligne sélectionnés lorsque les données sont copiées ; écrase les en-têtes de ligne sélectionnés lorsque les données sont collées.
        | -| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | -| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | -| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | -| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Efface les valeurs des cellules.
        vk auto fill type copycells 0 Remplit les cellules avec tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        vk auto fill type fill formatting only 2 Remplit les cellules uniquement avec la mise en forme.
        vk auto fill type fill series 1 Remplit les cellules avec des séries.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | -| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | -| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | -| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | -| highlightInvalidData | boolean | Les données non valides sont surlignées. | -| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | -| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | -| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | -| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | -| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | -| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | -| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Valeurs disponibles :
        ConstanteValeur Description
        vk reference style A1 0 Utiliser le style A1.
        vk reference style R1C1 1 Utiliser le style R1C1
        | -| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize zero indicator default 0 Utilise la politique de dessin actuelle lorsque la ligne ou la colonne est redimensionnée à zéro.
        vk resize zero indicator enhanced 1 Dessine deux lignes courtes lorsque la ligne ou la colonne est redimensionnée à zéro.
        | -| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | -| scrollbarAppearance | number | Apparence de la barre de défilement. Valeurs disponibles :
        ConstanteValeurDescription
        vk scrollbar appearance mobile1 Apparence de la barre de défilement mobile.
        vk scrollbar appearance skin (par défaut)0 Apparence de la barre de défilement classique de type Excel.
        | -| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | -| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | -| scrollByPixel | boolean | Activer le défilement de précision par pixel. | -| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | -| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | -| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | -| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | -| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | -| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | -| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Valeurs disponibles :
        ConstanteValeurDescription
        vk show resize tip both 3 Des astuces de redimensionnement horizontaux et verticaux sont affichés.
        vk show resize tip column 1 Seule l'astuce de redimensionnement horizontal est affiché.
        vk show resize tip none 0 Aucune astuce de redimensionnement n'est affiché.
        vk show resize tip row 2 Seule l'astuce de redimensionnement vertical est affiché.
        | -| showScrollTip | number | Comment afficher les info-bulles de défilement. Valeurs disponibles :
        ConstanteValeurDescription
        vk show scroll tip both 3 Des astuces de défilement horizontales et verticales sont affichées.
        vk show scroll tip horizontal 1 Seule l'astuce de défilement horizontale est affichée.
        vk show scroll tip none Aucune astuce de défilement n'est affichée.
        vk show scroll tip vertical 2 Seule l'astuce de défilement verticale est affichée.
        | -| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | -| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | -| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | -| tabStripPosition | number | Position de la barre d'onglets. Valeurs disponibles :
        ConstanteValeurDescription
        vk tab strip position bottom 0 La position de la barre de tabulation est relative au bas du classeur.
        vk tab strip position left 2 La position de la barre de tabulation est relative à la gauche du classeur.
        vk tab strip position right 3 La position de la barre de tabulation est relative à la droite du classeur.
        vk tab strip position top 1 La position de la barre de tabulation est relative au haut du classeur.
        | -| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | -| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | -| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | -| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | +| Propriété | Type | Description | +| ------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | +| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | +| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | +| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | +| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | +| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | +| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | +| allowUndo | boolean | L'annulation des modifications est autorisée. | +| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | +| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | +| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | +| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | +| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | +| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | +| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | +| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | +| backgroundImage | string / picture / file | Image de fond de la zone. | +| backgroundImageLayout | number | Comment l'image de fond s'affiche. Available values:
        ConstantValueDescription
        vk image layout center 1 In the center of the area.
        vk image layout none 3 In the upper left corner of the area with its original size.
        vk image layout stretch 0 Fills the area.
        vk image layout zoom 2 Displayed with its original aspect ratio.
        | +| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | +| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | +| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
        | +| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | +| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | +| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | +| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Clears cell values.
        vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
        vk auto fill type fill formatting only 2 Fills cells only with formatting.
        vk auto fill type fill series 1 Fills cells with series.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | +| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | +| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | +| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | +| highlightInvalidData | boolean | Les données non valides sont surlignées. | +| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | +| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | +| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | +| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | +| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | +| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | +| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Available values:
        ConstantValueDescription
        vk reference style A1 0 Use A1 style.
        vk reference style R1C1 1 Use R1C1 style
        | +| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
        | +| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | +| scrollbarAppearance | number | Apparence de la barre de défilement. Available values:
        ConstantValueDescription
        vk scrollbar appearance mobile1 Mobile scrollbar appearance.
        vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
        | +| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | +| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | +| scrollByPixel | boolean | Activer le défilement de précision par pixel. | +| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | +| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | +| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | +| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | +| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | +| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | +| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | +| showScrollTip | number | Comment afficher les info-bulles de défilement. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | +| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | +| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | +| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | +| tabStripPosition | number | Position de la barre d'onglets. Available values:
        ConstantValueDescription
        vk tab strip position bottom 0 Tab strip position is relative to the bottom of the workbook.
        vk tab strip position left 2 Tab strip position is relative to the left of the workbook.
        vk tab strip position right 3 Tab strip position is relative to the right of the workbook.
        vk tab strip position top 1 Tab strip position is relative to the top of the workbook.
        | +| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | +| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | +| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | +| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md index 6da02526026bd4..5cdbaa95105016 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md @@ -332,16 +332,16 @@ Les attributs d'orientation sont utilisés pour spécifier la direction de la mi Les attributs de page sont utilisés pour spécifier les paramètres généraux d'impression du document. -| Propriété | Type | Description | -| --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | -| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | -| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | -| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | -| pageRange | text | La plage de pages pour l'impression | -| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). Plus le facteur de qualité est élevé, meilleure est la qualité d'impression, cependant les performances d'impression peuvent être affectées.

        Valeur par défaut = 2

        | -| useMax | boolean | Seules les colonnes et les lignes avec des données sont imprimées.

        Valeur par défaut = true

        | -| zoomFactor | réel | Le montant de l'agrandissement ou de la réduction de la page imprimée.

        Valeur par défaut = 1

        | +| Propriété | Type | Description | +| --------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | +| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | +| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | +| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | +| pageRange | text | La plage de pages pour l'impression | +| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). The higher the quality factor, the better the printing quality, however printing performance may be affected.

        Default value = 2

        | +| useMax | boolean | Only columns and rows with data are printed.

        Default value = true

        | +| zoomFactor | réel | The amount to enlarge or reduce the printed page.

        Default value = 1

        | ### Taille du papier diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index a9e16ab1adf8ea..cc9ddee4b5c362 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -17,35 +17,35 @@ Les gestionnaires de requêtes HTTP personnalisés répondent à divers besoins, ## Conditions requises -Custom HTTP Request handlers are supported in the following context: +Les gestionnaires de requêtes HTTP personnalisés sont pris en charge dans le contexte suivant : -- [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, -- a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). +- les [sessions extensibles](./sessions.md#enabling-web-sessions) ou [pas de sessions](../settings/web.md#no-sessions) sont activées, +- un serveur web exécuté localement par 4D ou 4D Server, y compris ceux [exécutés par des composants](./webServerObject.md). :::warning -For security reasons, external access to the datastore can be disallowed in 4D. Vous devez configurer les [privilèges ORDA](../ORDA/privileges.md) pour autoriser les requêtes HTTP. +Pour des raisons de sécurité, l'accès externe au datastore peut être interdit dans 4D. Vous devez configurer les [privilèges ORDA](../ORDA/privileges.md) pour autoriser les requêtes HTTP. ::: -## How to set handlers +## Comment définir les gestionnaires -You can declare HTTP Request handlers: +Vous pouvez déclarer des gestionnaires de requêtes HTTP : -- in a configuration file named **HTTPHandlers.json** stored in the [`Project/Sources`](../Project/architecture.md#sources) folder of the project. HTTP Request handlers are loaded and applied in the main Web server once it is started. -- using a [`.handlers`](../API/WebServerClass.md#handlers) property set in the *settings* parameter of the [start()](../API/WebServerClass.md#start) function, for any web server object: +- dans un fichier de configuration nommé **HTTPHandlers.json** stocké dans le dossier [`Project/Sources`](../Project/architecture.md#sources) du projet. Les gestionnaires de requêtes HTTP sont chargés et appliqués dans le serveur Web principal une fois qu'il est démarré. +- en utilisant une propriété [`.handlers`](../API/WebServerClass.md#handlers) dans le paramètre *settings* de la fonction [start()](../API/WebServerClass.md#start), pour n'importe quel objet serveur web : ```4d -WEB Server.start($settings.handlers) //set rules at web server startup +WEB Server.start($settings.handlers) //prise en compte au démarrage du server web ``` -If both a **HTTPHandlers.json** file and a call to the [`WEB Server`](../commands/web-server.md) command with a valid `$settings.handlers` are used, the `WEB Server` command has priority. +Si à la fois un fichier **HTTPHandlers.json** et un appel à la commande [`WEB Server`](../commands/web-server.md) avec un `$settings.handlers` valide sont utilisés, la commande `WEB Server` est prioritaire. -The json file (or the object in the *settings* parameter) contains all listened URL patterns, the handled verbs, and the code to be called. +Le fichier json (ou l'objet dans le paramètre *settings*) contient tous les modèles d'URL listés, les verbes traités et le code à appeler. -Handlers are provided as a collection. +Les *handlers* sont fournis sous la forme d'une collection. -Au moment de l'exécution, le premier motif correspondant à l'URL est exécuté, les autres sont ignorés. +Au moment de l'exécution, le premier motif (*pattern*) correspondant à l'URL est exécuté, les autres sont ignorés. Voici un exemple du contenu d'un fichier *HTTPHandlers.json* : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index c5d53afb1f666c..ebc926199d567c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -11,8 +11,8 @@ To define HTTP rules, you just need to write some RegEx to declare the URL patte HTTP rules are supported in the following contexts: -- [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, -- a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). +- les [sessions extensibles](./sessions.md#enabling-web-sessions) ou [pas de sessions](../settings/web.md#no-sessions) sont activées, +- un serveur web exécuté localement par 4D ou 4D Server, y compris ceux [exécutés par des composants](./webServerObject.md). ## How to set rules @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Header | Ajouter | Set | Remove | +| ---------------- | ------- | ---------- | ------ | +| Date | Non | Non | Non | +| Content-Length | Non | Non | Non | +| Content-Encoding | Non | Non | Non | +| Vary | Oui | Non | Non | +| Set-Cookie | Oui | Add cookie | Non | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules @@ -215,7 +220,7 @@ $return:=WEB Server.start($settings) ``` -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [New Way to Control Your HTTP Responses](https://blog.4d.com/new-way-to-control-your-http-responses/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index a61af9ff781cc8..7395ed0a06637b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -44,7 +44,7 @@ Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souh - La méthode projet `compiler_web` (indépendamment de sa propriété "Mode d'exécution") ; -- Basically any code processed by the [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) command in the web context, for example through .shtml pages +- En principe, tout code traité par la commande [`PROCESS 4D TAGS`](../commands-legacy/process-4d-tags.md) dans le contexte du web, par exemple par le biais de pages .shtml - Toute méthode projet comportant l'attribut "Available through 4D tags and URLS (`4DACTION`, etc.)" diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index daf11db9f41587..a2d1f2e0c7862c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -138,7 +138,8 @@ Il n'y a pas de compatibilité directe entre les applications implémentées ave | Débogueur | 4D IDE debugger
        *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Débogueur Qodly Studio | | Rôles et privilèges REST/Web | Edition directe roles.json / Éditeur de rôles et privilèges de Qodly Studio | Éditeur de rôles et privilèges de Qodly Studio | -Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code de Qodly Studio, la coloration syntaxique n'est pas disponible et un avertissement "Lsp not loaded" est affiché. Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code de Qodly Studio, la coloration syntaxique n'est pas disponible et un avertissement "Lsp not loaded" est affiché. +(1) L'élément **Modèle** est désactivé dans Qodly Studio.
        +(2) Dans 4D Server, l'ouverture du code 4D avec l'éditeur de code Qodly Studio est prise en charge **à des fins de test et de débogage** (voir [ce paragraphe](#development-and-deployment)). Notez que dans 4D monoposte, si vous ouvrez du code 4D avec l'éditeur de code de Qodly Studio, la coloration syntaxique n'est pas disponible et un avertissement "Lsp not loaded" est affiché. ### Langage @@ -234,7 +235,7 @@ The project must be running in interpreted mode so that **Qodly Studio** menu it ::: -2. In the Qodly Studio toolbar, click on the **Debug** button.
        +2. Dans la barre d'outils de Qodly Studio, cliquez sur le bouton **Debug**.
        ![qodly-debug](../assets/en/WebServer/qodly-debug.png) If the debug session starts successfully, a green bullet appears on the button label ![qodly-debug](../assets/en/WebServer/debug2.png) and you can use the Qodly Studio debugger. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index 3524feb00429dd..20caa69023fa0f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -12,7 +12,7 @@ Les sessions Web permettent de : - stocker et partager des données entre les process d'un client web en utilisant le [.storage](../API/SessionClass.md#storage) de la session, - associer des privilèges à l'utilisateur qui exécute la session. -:::tip Related blog post +:::tip Article(s) de blog sur le sujet [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) @@ -22,7 +22,7 @@ Les sessions Web permettent de : Les sessions Web sont utilisées par : -- [Web applications](gettingStarted.md) sending http requests (including [SOAP Web services](../commands/theme/Web_Services_Server.md) and [/4DACTION](../WebServer/httpRequests.md#4daction) requests), +- les [applications Web](gettingStarted.md) envoyant des requêtes http (y compris les [Web services SOAP](../commands/theme/Web_Services_Server.md) et les requêtes [/4DACTION](../WebServer/httpRequests.md#4daction)), - les appels à l'[API REST](../REST/authUsers.md), qui sont effectués par les [datastores distants](../ORDA/remoteDatastores.md) et les [pages Qodly](qodly-studio.md). ## Activation des sessions web @@ -36,7 +36,7 @@ Cette option est sélectionnée par défaut dans les nouveaux projets. Elle peut - En utilisant la propriété [`.scalableSession`](API/WebServerClass.md#scalablession) de l'objet Web Server (à passer dans le paramètre *settings* de la fonction [`.start()`](API/WebServerClass.md#start) ). Dans ce cas, ce paramètre remplace l'option définie dans la boîte de dialogue Propriétés pour l'objet Web Server (il n'est pas stocké sur disque). -> The [`WEB SET OPTION`](../commands-legacy/web-set-option.md) command can also set the session mode for the main Web server. +> La commande [`WEB SET OPTION`](../commands-legacy/web-set-option.md) peut également définir le mode de session du serveur Web principal. Dans tous les cas, ce paramètre est local à la machine ; il peut donc être différent sur le serveur Web 4D Server et les serveurs Web des machines 4D distantes. @@ -44,7 +44,7 @@ Dans tous les cas, ce paramètre est local à la machine ; il peut donc être di ## Implémentation des sessions -When [sessions are enabled](#enabling-web-sessions), automatic mechanisms are implemented, based upon a private cookie set by 4D itself: "4DSID__AppName_", where *AppName* is the name of the application project. Ce cookie référence la session web courante pour l'application. +Lorsque [les sessions sont activées](#enabling-web-sessions), des mécanismes automatiques sont mis en œuvre, sur la base d'un cookie privé défini par 4D lui-même : "4DSID_*AppName*", où *AppName* est le nom du projet d'application. Ce cookie référence la session web courante pour l'application. :::info @@ -73,7 +73,7 @@ L'objet `Session` de la session en cours peut ensuite être manipulé via la com :::info -Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Since a web process can be reused by any session, [process variables](Concepts/variables.md#process-variables) must be cleared by your code at the end of its execution (using [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) for example). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. +Les process Web ne se terminent généralement pas, ils sont recyclés dans un pool pour des raisons d'optimisation. Lorsqu'un process termine l'exécution d'une requête, il est replacé dans le pool et rendu disponible pour la requête suivante. Comme un process web peut être réutilisé par n'importe quelle session, les [variables process](Concepts/variables.md#process-variables) doivent être effacées par votre code à la fin de son exécution (en utilisant [`CLEAR VARIABLE`](../commands-legacy/clear-variable.md) par exemple). Ce nettoyage est nécessaire pour toute information liée au process, comme une référence à un fichier ouvert. C'est la raison pour laquelle **il est recommandé** d'utiliser l'objet [Session](API/SessionClass.md) lorsque vous souhaitez conserver les informations relatives à la session. ::: @@ -90,7 +90,7 @@ Une session web évolutive est fermée lorsque: La durée de vie d'un cookie inactif est de 60 minutes par défaut, ce qui signifie que le serveur Web fermera automatiquement les sessions inactives après 60 minutes. -This timeout can be set using the [`.idleTimeout`](API/SessionClass.md#idletimeout) property of the `Session` object (the timeout cannot be less than 60 minutes) or the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore.md) command. +Ce délai peut être défini en utilisant la propriété [`.idleTimeout`](API/SessionClass.md#idletimeout) de l'objet `Session` (le délai ne peut être inférieur à 60 minutes) ou le paramètre *connectionInfo* de la commande [`Open datastore`](../commands/open-datastore.md). Lorsqu'une session web est fermée, si la commande [`Session`](commands/session.md) est appelée par la suite : @@ -159,7 +159,7 @@ http://localhost:8044/authenticate.shtml ![alt-text](../assets/en/WebServer/authenticate.png) -3. La méthode de projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : +3. La méthode projet d'authentification recherche la personne *userID* et valide le mot de passe par rapport à la valeur hachée déjà stockée dans la table *SalesPersons* : ```4d var $indexUserId; $indexPassword; $userId : Integer @@ -201,82 +201,82 @@ Else End if ``` -:::note +:::tips Articles de blog sur le sujet -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: -## Session Token (OTP) +## Token de session (OTP) -The 4D web server allows you to generate, share, and use OTP (One-Time Passcode) session tokens. OTP session tokens are used to secure communications with third-party applications or websites. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. +Le serveur web 4D vous permet de générer, de partager et d'utiliser des tokens de session OTP (One-Time Passcode). Les tokens (ou *jetons*) de session OTP sont utilisés pour sécuriser les communications avec des applications ou des sites web tiers. Pour plus d'informations sur OTP, veuillez vous référer à la page [Mot de passe à usage unique](https://en.wikipedia.org/wiki/One-time_password) sur Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Thanks to this architecture, the [session cookie](#session-implementation) is not exposed on the network, which eliminates the risk of man-in-the-middle attack. +Dans 4D, les tokens de session OTP sont utiles pour appeler des URL externes et être rappelé dans un autre navigateur ou appareil (mobile/ordinateur). Généralement, une application tierce envoie un courriel de confirmation contenant un lien de rappel sur lequel l'utilisateur doit cliquer. Le lien de rappel inclut le token OTP, de sorte que la session qui a déclenché le rappel est chargée avec ses données et ses privilèges. Ce principe vous permet de partager la même session sur plusieurs appareils. Grâce à cette architecture, le [cookie de session] (#session-implementation) n'est pas exposé sur le réseau, ce qui élimine le risque d'une attaque de type "man-in-the-middle". :::tips Articles de blog sur le sujet -[Connect Your Web Apps to Third-Party Systems](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) +[Connectez vos applications Web à des systèmes tiers](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/) ::: ### Vue d’ensemble -The basic sequence of an OTP session token use in a 4D web application is the following: +La séquence de base de l'utilisaton d'un token de session OTP dans une application web 4D est la suivante : -1. The web user initiates an action that requires a secured third-party connection, for example a validation, from within a specific session. -2. In your 4D code, you create a new OTP for the session using the [`Session.createOTP()`](../API/SessionClass.md#createotp) function. -3. You send a request to the third-party application with the session token included in the callback Uri. Note that the way to provide the callback Uri to a third-party application depends on its API (see below). -4. The third-party application sends back a request to 4D with the pattern you provided in the callback Uri. -5. The request callback is processed in your application. +1. L'utilisateur web initie une action qui nécessite une connexion tierce sécurisée, par exemple une validation, à partir d'une session spécifique. +2. Dans votre code 4D, vous créez un nouvel OTP pour la session à l'aide de la fonction [`Session.createOTP()`](../API/SessionClass.md#createotp). +3. Vous envoyez une requête à l'application tierce avec le token de session inclus dans l'Uri de callback (rappel). Notez que la manière de fournir l'Uri de rappel à une application tierce dépend de son API (voir ci-dessous). +4. L'application tierce renvoie une requête à 4D avec le modèle que vous avez fourni dans l'Uri de rappel. +5. Le rappel de la requête est traité dans votre application. -By definition, an OTP token can only be used once. In this scenario, if a web request is received with a session token as parameter that has already been used, the initial session is not restored. +Par définition, un token OTP ne peut être utilisé qu'une seule fois. Dans ce scénario, si une requête web est reçue avec un token de session comme paramètre qui a déjà été utilisé, la session initiale n'est pas restaurée. -### Processing the OTP in the callback +### Traitement de l'OTP dans le callback -Callbacks from third-party applications that include the OTP token can be processed in different ways in your 4D application, depending on your development and the third-party API. Basically, you have two possibilities to handle the token: through the **`$4DSID`** parameter for an automatic processing, or through a custom parameter that you need to process. +Les callbacks d'applications tierces qui incluent le token OTP peuvent être traités de différentes manières dans votre application 4D, en fonction de votre développement et de l'API tierce. En principe, vous avez deux possibilités pour gérer le token : via le paramètre **`$4DSID`** pour un traitement automatique, ou via un paramètre personnalisé que vous devez traiter. -#### Using `$4DSID` in the URL +#### Utilisation de `$4DSID` dans l'URL -Using the `$4DSID` parameter is the most simple way to process a callback from the third-party application: +L'utilisation du paramètre `$4DSID` est la façon la plus simple de traiter un callback de l'application tierce : -- The OTP token is provided as a parameter directly in the callback url using the standard `?$4DSID=XXXX123` syntax. -- In 4D, you implement a dedicated [HTTP Request handler](http-request-handler.md) in your 4D application using [`IncomingMessage`](../API/IncomingMessageClass.md) and [`OutgoingMessage`](../API/OutgoingMessageClass.md) classes. -- If the `$4DSID` token is valid, the related web user session is **automatically restored** in any web process with its storage and privileges. +- Le token OTP est fourni en tant que paramètre directement dans l'url de callback en utilisant la syntaxe standard `?$4DSID=XXXX123`. +- Dans votre application 4D, vous implémentez un [HTTP Request handler](http-request-handler.md) dédié en utilisant les classes [`IncomingMessage`](../API/IncomingMessageClass.md) et [`OutgoingMessage`](../API/OutgoingMessageClass.md). +- Si le token `$4DSID` est valide, la session de l'utilisateur web concerné est **automatiquement restaurée** dans n'importe quel process web avec son *storage* et ses privilèges. :::note -A [`4DACTION`](./httpRequests.md#4daction) url can also be used on the 4D side. +Une url [`4DACTION`](./httpRequests.md#4daction) peut également être utilisée du côté 4D. ::: -#### Using a custom parameter +#### Utilisation d'un paramètre personnalisé -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. You must use this solution if: +Le token OTP peut également être fourni en tant que paramètre personnalisé que vous devez traiter spécifiquement pour restaurer la session. Vous devez utiliser cette solution si : -- the third-party application does not allow to insert parameters such as a `$4DSID` directly in the redirect Uri, and provides a dedicated API (the implementation depends on the third-party application), -- or, you want to call an ORDA function through REST to process the callback, in which case you need to pass the OTP with the [REST parameter syntax](../REST/ClassFunctions.md#parameters) (e.g. `?$params='["XXX123"]'`). +- l'application tierce ne permet pas d'insérer des paramètres tels que `$4DSID` directement dans l'Uri de redirection, et fournit une API dédiée (l'implémentation dépend de l'application tierce), +- ou bien vous souhaitez appeler une fonction ORDA via REST pour traiter le callback, auquel cas vous devez transmettre l'OTP avec la [syntaxe des paramètres REST](../REST/ClassFunctions.md#parameters) (par exemple `?$params='["XXX123"]'`). -In both cases, you need to extract the token from the custom parameter and to call the [`Session.restore()`](../API/SessionClass.md#restore) function with the token as parameter. +Dans les deux cas, vous devez extraire le token du paramètre personnalisé et appeler la fonction [`Session.restore()`](../API/SessionClass.md#restore) avec le token en paramètre. -#### Processing a invalid OTP +#### Traitement d'un OTP non valide -The OTP token is considered invalid if: +Le token OTP est considéré comme invalide si : - le token de session a déjà été utilisé, - le token de session a expiré, - le token de session n'existe pas, - la session d'origine elle-même a expiré. -In this case, no web user session is restored and the current session (if any) is left unchanged. Usually, you can decide to display a login page or to open a guest session. +Dans ce cas, aucune session d'utilisateur Web n'est restaurée et la session courante (s'il y en a une) reste inchangée. En général, vous pouvez décider d'afficher une page de connexion ou d'ouvrir une session guest. -Verifying if the received OTP token is valid depends on how it was handled: +La vérification de la validité du token OTP reçu dépend de la manière dont il a été géré : -- If you used a `$4DSID`, you can store a custom status property in the [session storage](../API/SessionClass.md#storage) at the moment of the token creation, and check this status once the OTP token was received to see if it is the same value (see example). -- If you used the [`Session.restore()`](../API/SessionClass.md#restore) function, it returns true if the session correctly restored. +- Si vous avez utilisé un `$4DSID`, vous pouvez stocker une propriété d'état personnalisée dans le [storage de la session](../API/SessionClass.md#storage) au moment de la création du token, et vérifier cet état une fois que le token OTP a été reçu pour voir s'il s'agit de la même valeur (voir l'exemple). +- Si vous avez utilisé la fonction [`Session.restore()`](../API/SessionClass.md#restore), elle renvoie true si la session a été correctement restaurée. -### Scenario with $4DSID +### Scénario avec $4DSID -The scenario using the `$4DSID` key is illustrated in the following diagram: +Le scénario utilisant la clé `$4DSID` est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -289,25 +289,25 @@ sequenceDiagram FrontEnd ->>+ 4DServer: ValidateOperation() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() -Note over 4DServer: e.g. OTP is 2E5D0D5xxx + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() +Note over 4DServer: e.g. OTP vaut 2E5D0D5xxx - 4DServer ->>+ ExternalPlatform: Call the external platform, give a callback URL containing a $4DSID parameter (depends on the platform API) + 4DServer ->>+ ExternalPlatform: Appel de la plate-forme tirece, envoi d'un URL de rappel contenant un paramètre $4DSID (dépend de l'API de la plate-forme) Note right of 4DServer: e.g. callback URL: "https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D5xxx" - ExternalPlatform ->>+ ExternalPlatform: Process request -ExternalPlatform ->>+ 4DServer: External platform calls back 4D Server if validation OK + ExternalPlatform ->>+ ExternalPlatform: Traitement de la requête +ExternalPlatform ->>+ 4DServer: Rappel de 4D Server si validation OK Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?$4DSID=2E5D0D57751D471DB29FD110D2DCE253 - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationsHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationsHandler, voir code ci-dessous) - Note over 4DServer: The original session is retrieved thanks to the OTP given in the $4DSID parameter. - Note over 4DServer: Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer: La session d'origine session est restaurée grâce à l'OTP fourni dans le paramètre $4DSID. + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -320,7 +320,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -329,9 +329,9 @@ shared singleton Class constructor() $session:=Session ``` -### Scenario with `restore` function +### Scénario avec la fonction `restore` -The scenario using a custom parameter is illustrated in the following diagram: +Le scénario utilisant un paramètre personnalisé est illustré dans le diagramme suivant : ```mermaid sequenceDiagram @@ -344,29 +344,29 @@ sequenceDiagram FrontEnd ->>+ 4DServer: Validate() - 4DServer ->> 4DServer: Generate OTP with session.createOTP() + 4DServer ->> 4DServer: Créer OTP avec session.createOTP() Note over 4DServer: e.g. OTP is 2E5D0D5xxx - 4DServer ->> ExternalPlatform: Call the external platform giving the OTP, for example as a state parameter (depends on the platform) + 4DServer ->> ExternalPlatform: Appel de la plate-forme externe en donnant l'OTP, par exemple sous forme de paramètre state (dépend de la plate-forme) Note right of 4DServer: e.g. https://thirdPartSystem.com/validate?state=2E5D0D5xxx&redirect_uri=https://acme.com/my4DApp/completeOperation - Note right of 4DServer: The callback URL will be like: https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - ExternalPlatform ->> ExternalPlatform: Process request - ExternalPlatform ->> 4DServer: The state parameter is sent back by the third party system in the callback + Note right of 4DServer: L'URLde rappel sera du type : https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx + ExternalPlatform ->> ExternalPlatform: Traitement de la requête + ExternalPlatform ->> 4DServer: Le paramètre state est renvoyé par le système tiers dans la callback Note right of 4DServer: e.g. https://acme.com/my4DApp/completeOperation?state=2E5D0D5xxx - 4DServer ->> 4DServer: An HTTP request handler processes the URL pattern "/my4DApp/completeOperation"
        (e.g. handleOperation() function of the OperationHandler singleton, see code below) + 4DServer ->> 4DServer: Un HTTP request handler traite le motif d'URL "/my4DApp/completeOperation"
        (e.g. fonction handleOperation() du singleton OperationHandler, voir code ci-dessous) 4DServer ->> 4DServer: Session.restore() - Note over 4DServer:The state parameter is got from the received request ($req.urlQuery.state) - Note over 4DServer:The original session is retrieved by calling the restore() function - Note over 4DServer:Session object refers to the session which generated the OTP - 4DServer ->>+ FrontEnd: Restore session + Note over 4DServer:Le paramètre state est extrait de la requête reçue ($req.urlQuery.state) + Note over 4DServer:La session originale est restaurée par l'appel à la fonction restore() + Note over 4DServer: L'objet Session référence la session qui a généré l'OTP + 4DServer ->>+ FrontEnd: Restauration de la session ``` -The 4D HTTP request handler definition: +La définition du gestionnaire de requêtes HTTP 4D : ```json [ @@ -379,7 +379,7 @@ The 4D HTTP request handler definition: ] ``` -The singleton class: +La classe du singleton : ```4d //Class OperationsHandler @@ -388,9 +388,9 @@ shared singleton Class constructor() Session.restore($req.urlQuery.state) ``` -### Example of email validation with $4DSID +### Exemple de validation d'email avec $4DSID -1. A user account is created in a *Users* dataclass. A *$info* object is received with the email and password. An OTP corresponding to the current session is generated. An URL is then returned with this OTP given in the $4DSID parameter. +1. Un compte d'utilisateur est créé dans une dataclass *Users*. Un objet *$info* est reçu avec l'email et le mot de passe. Un OTP correspondant à la session courante est généré. Une URL est alors renvoyée avec l'OTP indiqué dans le paramètre $4DSID. ```4d //cs.Users class @@ -401,26 +401,26 @@ var $user : cs.UsersEntity var $status : Object var $token : Text -$user:=This.new() //create a new user +$user:=This.new() //créatoin d'un user $user.fromObject($info) $status:=$user.save() -//Store information in the session -//including user creation status +//Stockage d'information dans la session +//y compris le statut de création de l'utilisateur Use (Session.storage) Session.storage.status:=New shared object("step"; "Waiting for validation email"; / "email"; $user.email; "ID"; $user.ID) End use -//Generate an OTP corresponding to the session +//Génération d'un OTP correspondant à la session $token:=Session.createOTP() -// Return an URL with a $4DSID parameter +// Renvoi d'un URL avec un paramètre $4DSID return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ``` -2. The user is sent this URL as a link in an email. The URL prefix `/validateEmail` is handled by a [custom HTTP request handler](./http-request-handler.md): +2. L'utilisateur reçoit cette URL sous la forme d'un lien dans un courrier électronique. Le préfixe d'URL `/validateEmail` est traité par un [gestionnaire de requête HTTP personnalisé](./http-request-handler.md) : ```json [ @@ -433,7 +433,7 @@ return "https://my.server.com/tools/validateEmail?$4DSID="+$token` ] ``` -The *validateEmail()* function of the RequestHandler singleton: +La fonction *validateEmail()* du singleton RequestHandler : ```4d //validateEmail class @@ -443,12 +443,12 @@ shared singleton Class constructor() Function validateEmail() : 4D.OutgoingMessage var $result:=4D.OutgoingMessage.new() - //The session which generated the OTP is retrieved - //thanks to the $4DSID parameter given in the URL + //La session qui a généré l'OTP est restaurée + //grâce au paramètre $4DSID fourni dans l'URL If (Session.storage.status.step="Waiting for validation email") $user:=ds.Users.get(Session.storage.status.ID) - $user.emailValidated() //set to true + $user.emailValidated() //fixé à vrai $result.setBody("Congratulations
        "\ +"Your email "+Session.storage.status.email+" has been validated") @@ -466,21 +466,21 @@ Function validateEmail() : 4D.OutgoingMessage ``` -Since the `$4DSID` parameter contains a valid OTP corresponding to the original session, the `Session` object refers to the session that created the OTP. +Comme le paramètre `$4DSID` contient un OTP valide correspondant à la session d'origine, l'objet `Session` référence la session qui a créé l'OTP. -A new user is created, and some information is stored in the session, especially the current step of the user account creation process (Waiting for validation email) and the user ID. +Un nouvel utilisateur est créé et des informations sont stockées dans la session, en particulier l'étape courante du processus de création du compte utilisateur (attente du courriel de validation) et l'identifiant de l'utilisateur. -### Supported contexts +### Contextes pris en charge -- Both HTTP and HTTPS schemas are supported. -- Only [scalable sessions](#enabling-web-sessions) can be reused with tokens. -- Only sessions of the host database can be reused (sessions created in component web servers cannot be restored). -- Tokens are not supported with client/server sessions or single-user sessions. +- Les schémas HTTP et HTTPS sont tous deux pris en charge. +- Seules des [sessions évolutives](#enabling-web-sessions) peuvent être réutilisées avec des tokens. +- Seules les sessions de la base de données hôte peuvent être réutilisées (les sessions créées dans les serveurs web des composants ne peuvent pas être restaurées). +- Les tokens ne sont pas pris en charge dans les sessions client/serveur ou les sessions mono-utilisateur. -### Lifespan +### Durée de vie -A session token has a lifespan, and the session itself has a lifespan. The session token lifespan can be set [at the token creation](../API/SessionClass.md#createotp). By default, the token lifespan is the same value as the [`.idleTimeout`](../API/SessionClass.md#idletimeout) value. +Un token de session a une durée de vie, et la session elle-même a une durée de vie. La durée de vie du token de session peut être définie [lors de sa création](../API/SessionClass.md#createotp). Par défaut, la durée de vie du token est la même que la valeur [`.idleTimeout`](../API/SessionClass.md#idletimeout). -A session is only restored by a token if both the session token lifespan and the session lifespan have not expired. In other cases (the session token has expired and/or the session itself has expired), a guest session is created when a web request with a session token is received. +Une session n'est restaurée par un token que si ni la durée de vie du token de session ni celle de la session n'ont expiré. Dans les autres cas (le token de session a expiré et/ou la session elle-même a expiré), une session *guest* est créée lorsqu'une requête web avec un token de session est reçue. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 6cddcc5504bfd3..5d9e19398db534 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -626,9 +626,9 @@ Dans certains cas, d'autres fonctions internes optimisées peuvent être appelé Deux options permettent de définir le mode de fonctionnement des connexions persistantes : -- **Nombre de requêtes par connexion** : Permet de définir le nombre maximal de requêtes et de réponses capables d'être transmises lors d'une connexion persistante. Limiter le nombre de demandes par connexion permet d'éviter le server flooding, provoqué par un trop grand nombre de requêtes entrantes (technique utilisée par les pirates informatiques).

        - La valeur par défaut (100) peut être augmentée ou diminuée en fonction des ressources de la machine hébergeant le Serveur Web 4D.

        +- **Nombre de requêtes par connexion** : Permet de définir le nombre maximal de requêtes et de réponses capables d'être transmises lors d'une connexion persistante. Limiter le nombre de requêtes par connexion permet d'éviter la saturation du serveur, provoquée par un trop grand nombre de requêtes entrantes (technique utilisée par les pirates informatiques).

        + La valeur par défaut (100) peut être augmentée ou diminuée en fonction des ressources de la machine hébergeant le serveur Web 4D.

        -- **Délai avant déconnexion** : Cette valeur définit l'attente maximale (en secondes) pour le maintien d'une connexion TCP sans réception d'une requête de la part du navigateur web. Une fois cette période terminée, le serveur ferme la connexion.

        +- **Délai avant déconnexion** : Cette valeur définit l'attente maximale (en secondes) pour le maintien d'une connexion TCP sans réception d'une requête de la part du navigateur web. Une fois ce délai écoulé, le serveur ferme la connexion.

        Si le navigateur Web envoie une requête après la fermeture de la connexion, une nouvelle connexion TCP est automatiquement créée. Cette opération est invisible pour l'utilisateur.

        diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md index 60400e7ab9ec95..747b9690292e4c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Description -La commande **WP Add picture** ancre l'image passée en paramètre à un emplacement fixe dans le *wpDoc* spécifié et retourne sa référence. La référence retournée peut alors être passée à la commande [WP SET ATTRIBUTES](wp-set-attributes.md) pour déplacer l'image à n'importe quel emplacement dans le *wpDoc* (page, section, en-tête, pied de page, etc.) avec une couche définie, taille, etc. +La commande **WP Add picture** ancre l'image passée en paramètre à un emplacement fixe dans le *wpDoc* spécifié et renvoie sa référence. La référence renvoyée peut ensuite être transmise à la commande [WP SET ATTRIBUTES](wp-set-attributes.md) pour placer l'image à n'importe quel endroit du *wpDoc* (page, section, en-tête, pied de page, etc.) avec une couche définie, taille, etc. Dans *wpDoc*, passez le nom d'un objet document 4D Write Pro. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md index 64310fd825d0f8..69d289c7bf10eb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md @@ -52,25 +52,25 @@ Vous pouvez omettre le paramètre *format*, auquel cas vous devez spécifier l'e Pass an [object](# "Data structured as a native 4D object") in *option* containing the values to define the properties of the exported document. Les propriétés suivantes sont disponibles : -| Constante | Valeur | Commentaire | -| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponible uniquement lorsque le format `wk mime html` est utilisé. | -| wk embedded pictures | embeddedPictures | For SVG Export only. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      357. true (default): Pictures are embedded in the exported .svg file
      358. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      359. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | For PDF export only. Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](#wk-factur-x-object)). | -| wk files | Historique | For PDF export only. Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](#wk-files-collection)). For PDF export only. In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | -| wk google fonts tag | googleFontsTag | For SVG export only. Sets the import rule for google fonts in the exported SVG. Possible values:
      360. false (default): No google fonts import rule is added.
      361. true: Adds the @import rule to the exported file. Useful if you want to use fonts that are not available by default on Windows or macOS.
      362. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | -| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | -| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      363. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 300 (Windows only). If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      364. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). If a picture contains more than one format, the format for screen rendering is used.
      365. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | For SVG export only. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Note:** Page index is independent from page numbering. | -| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      366. `wk pdfa2`: Exports to version "PDF/A-2"
      367. `wk pdfa3`: Exports to version "PDF/A-3"
      368. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Aussi, `wk pdfa3` signifie "exporte vers *au moins* PDF/A-3". Possible values:
      369. `wk pdfa2`: Exports to version "PDF/A-2"
      370. `wk pdfa3`: Exports to version "PDF/A-3"
      371. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. | -| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valeurs possibles :
      372. true - Valeur par défaut. Toutes les formules sont recalculées
      373. false - Ne pas recalculer les formules
      374. | -| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Possible values: True/False | -| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | -| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Possible values: True/False | -| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Possible values: True/False | -| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Possible values: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Valeurs possibles : "normal", "nowrap", "pre", "pre-wrap" (par défaut), "pre-line", "break-spaces". | +| Constante | Valeur | Commentaire | +| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponible uniquement lorsque le format `wk mime html` est utilisé. | +| wk embedded pictures | embeddedPictures | For SVG Export only. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      375. true (default): Pictures are embedded in the exported .svg file
      376. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. Les images ne sont pas intégrées, mais sont référencées dans le fichier .svg.
      377. Note : Si le dossier existe déjà, il est vidé avant l'exportation du fichier. If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | For PDF export only. Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](#wk-factur-x-object)). | +| wk files | Historique | For PDF export only. Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](#wk-files-collection)). For PDF export only. In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | +| wk google fonts tag | googleFontsTag | For SVG export only. Sets the import rule for google fonts in the exported SVG. Valeurs possibles :
      378. false (par défaut) : Aucune règle d'importation des polices de Google n'est ajoutée.
      379. true : Ajoute la règle @import au fichier exporté. Utile si vous voulez utiliser des polices qui ne sont pas disponibles par défaut sur Windows ou macOS.
      380. **Note:** Cette propriété est définie sur false par défaut car, lorsqu'elle est activée, les polices Google ont la priorité sur les polices natives, et ces dernières sont généralement mieux rendues dans le navigateur. | +| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | +| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | +| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      381. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 300 (Windows only). If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      382. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). Si une image contient plus d'un format, le format de rendu d'écran est utilisé.
      383. **Note:** Les documents exportés au format `wk docx` sont toujours optimisés pour wk print (l'option wk optimized for est ignorée). | +| wk page index | pageIndex | For SVG export only. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Note:** Page index is independent from page numbering. | +| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      384. `wk pdfa2`: Exports to version "PDF/A-2"
      385. `wk pdfa3`: Exports to version "PDF/A-3"
      386. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Aussi, `wk pdfa3` signifie "exporte vers *au moins* PDF/A-3". Possible values:
      387. `wk pdfa2`: Exports to version "PDF/A-2"
      388. `wk pdfa3`: Exports to version "PDF/A-3"
      389. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. | +| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valeurs possibles :
      390. true - Valeur par défaut. Toutes les formules sont recalculées
      391. false - Ne pas recalculer les formules
      392. | +| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Possible values: True/False | +| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | +| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Possible values: True/False | +| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Possible values: True/False | +| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Possible values: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Valeurs possibles : "normal", "nowrap", "pre", "pre-wrap" (par défaut), "pre-line", "break-spaces". | Le tableau suivant indique l'*option* disponible par *format* d'export : @@ -89,7 +89,7 @@ Le tableau suivant indique l'*option* disponible par *format* d'export : | wk recompute formulas | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | | wk visible background and anchored elements | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | toujours true | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | | wk visible empty images | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | -| wk visible footers | \- | toujours true | toujours false | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (default: true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | +| wk visible footers | \- | toujours true | toujours false | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | | wk visible headers | \- | toujours true | toujours false | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : true) | | wk visible references | \- | \- | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : false) | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : false) | | wk whitespace | \- | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : "pre-wrap") | \- | ![](../../assets/en/WritePro/commands/pict5058606.en.png) (par défaut : "pre-wrap") | \- | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 8ab471cf8de5d3..4aa00fc3ebab01 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Description -The **WP EXPORT VARIABLE** command exports the *wpDoc* 4D Write Pro object to the 4D *destination* variable in the specified *format*. +La commande **WP EXPORT VARIABLE** exporte l'objet *wpDoc* 4D Write Pro vers la variable 4D *destination* dans le *format* spécifié. Dans *wpDoc*, passez l'objet 4D Write Pro que vous souhaitez exporter. @@ -52,25 +52,25 @@ Dans le paramètre *format*, passez une constante du thème *4D Write Pro Consta Pass an [object](# "Data structured as a native 4D object") in *option* containing the values to define the properties of the exported document. Les propriétés suivantes sont disponibles : -| Constante | Valeur | Commentaire | -| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponible uniquement lorsque le format `wk mime html` est utilisé. | -| wk embedded pictures | embeddedPictures | For SVG Export only. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      393. true (default): Pictures are embedded in the exported .svg file
      394. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      395. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | For PDF export only. Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | -| wk files | Historique | For PDF export only. Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](./wp-export-document.md#wk-files-collection)). For PDF export only. In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | -| wk google fonts tag | googleFontsTag | For SVG export only. Sets the import rule for google fonts in the exported SVG. Possible values:
      396. false (default): No google fonts import rule is added.
      397. true: Adds the @import rule to the exported file. Useful if you want to use fonts that are not available by default on Windows or macOS.
      398. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | -| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | -| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      399. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 300 (Windows only). If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      400. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). If a picture contains more than one format, the format for screen rendering is used.
      401. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | For SVG export only. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Note:** Page index is independent from page numbering. | -| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      402. `wk pdfa2`: Exports to version "PDF/A-2"
      403. `wk pdfa3`: Exports to version "PDF/A-3"
      404. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Aussi, `wk pdfa3` signifie "exporte vers *au moins* PDF/A-3". Possible values:
      405. `wk pdfa2`: Exports to version "PDF/A-2"
      406. `wk pdfa3`: Exports to version "PDF/A-3"
      407. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. | -| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valeurs possibles :
      408. true - Valeur par défaut. Toutes les formules sont recalculées
      409. false - Ne pas recalculer les formules
      410. | -| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Possible values: True/False | -| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | -| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Possible values: True/False | -| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Possible values: True/False | -| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Possible values: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Valeurs possibles : "normal", "nowrap", "pre", "pre-wrap" (par défaut), "pre-line", "break-spaces". | +| Constante | Valeur | Commentaire | +| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponible uniquement lorsque le format `wk mime html` est utilisé. | +| wk embedded pictures | embeddedPictures | For SVG Export only. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      411. true (default): Pictures are embedded in the exported .svg file
      412. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. Les images ne sont pas intégrées, mais sont référencées dans le fichier .svg.
      413. Note : Si le dossier existe déjà, il est vidé avant l'exportation du fichier. If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | For PDF export only. Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | +| wk files | Historique | For PDF export only. Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](./wp-export-document.md#wk-files-collection)). For PDF export only. In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | +| wk google fonts tag | googleFontsTag | For SVG export only. Sets the import rule for google fonts in the exported SVG. Valeurs possibles :
      414. false (par défaut) : Aucune règle d'importation des polices de Google n'est ajoutée.
      415. true : Ajoute la règle @import au fichier exporté. Utile si vous voulez utiliser des polices qui ne sont pas disponibles par défaut sur Windows ou macOS.
      416. **Note:** Cette propriété est définie sur false par défaut car, lorsqu'elle est activée, les polices Google ont la priorité sur les polices natives, et ces dernières sont généralement mieux rendues dans le navigateur. | +| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | +| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | +| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      417. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 300 (Windows only). If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      418. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). Si une image contient plus d'un format, le format de rendu d'écran est utilisé.
      419. **Note:** Les documents exportés au format `wk docx` sont toujours optimisés pour wk print (l'option wk optimized for est ignorée). | +| wk page index | pageIndex | For SVG export only. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Note:** Page index is independent from page numbering. | +| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      420. `wk pdfa2`: Exports to version "PDF/A-2"
      421. `wk pdfa3`: Exports to version "PDF/A-3"
      422. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Aussi, `wk pdfa3` signifie "exporte vers *au moins* PDF/A-3". Possible values:
      423. `wk pdfa2`: Exports to version "PDF/A-2"
      424. `wk pdfa3`: Exports to version "PDF/A-3"
      425. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. | +| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valeurs possibles :
      426. true - Valeur par défaut. Toutes les formules sont recalculées
      427. false - Ne pas recalculer les formules
      428. | +| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Possible values: True/False | +| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | +| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Possible values: True/False | +| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Possible values: True/False | +| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Possible values: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Valeurs possibles : "normal", "nowrap", "pre", "pre-wrap" (par défaut), "pre-line", "break-spaces". | Le tableau suivant indique l'*option* disponible par *format* d'export : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md index 3541af254aa8e2..6dc3b884b3c359 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Description -The **WP Get attributes** command returns the value of any attribute in a 4D Write Pro range, header, body, footer, table, or document. This command gives you access to any kind of 4D Write Pro internal attributes: character, paragraph, document, table, or image. +La commande **WP Get attributes** renvoie la valeur de n'importe quel attribut de plage, en-tête, corps, pied de page, tableau ou document de 4D Write Pro. Cette commande vous donne accès à tout type d'attribut interne 4D Write Pro : caractère, paragraphe, document, tableau ou image. In *targetObj*, you can pass: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md index 9ee8c596329611..2452c695e5db35 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md @@ -26,7 +26,7 @@ Dans le paramètre *targetObj*, vous pouvez passer : - une plage, ou - un élément (tableau / ligne / cellule(s) / paragraphe / corps / en-tête / pied de page / section / / sous-section / image en ligne), ou -- un document 4D Write Pro. +- a 4D Write Pro document. Dans le paramètre *formule*, passez la formule 4D à évaluer. Vous pouvez passer : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md index d0d90de82a5262..55a80c8ca85900 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## Description -La commande **WP Insert picture** insère *picture* ou *pictureFileObj* dans le *targetObj* spécifié en fonction des paramètres *mode* d'insertion et *rangeUpdate*, et retourne une référence à l'élément picture. L'image sera insérée comme un caractère dans le *targetObj*. +La commande **WP Insert picture** insère *picture* ou *pictureFileObj* dans le *targetObj* spécifié en fonction des paramètres *mode* d'insertion et *rangeUpdate*, et renvoie une référence à l'élément image. L'image sera insérée en tant que caractère dans *targetObj*. In *targetObj*, you can pass: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md index 22f732e3cd6d70..0edc96ed790d78 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -La commande **WP RESET ATTRIBUTES** permet de réinitialiser la valeur d'un ou plusieurs attributs dans la plage, l'élément ou le document passé en paramètre. Cette commande permet de supprimer tout type d'attribut interne à 4D Write Pro : caractère, paragraphe, document, tableau ou image. Vous pouvez passer le nom de l'attribut à réinitialiser dans *attribName* ou vous pouvez passer une collection d'attributs dans *attribColl* pour réinitialiser plusieurs attributs à la fois. +La commande **WP RESET ATTRIBUTES** permet de réinitialiser la valeur d'un ou plusieurs attributs dans la plage, l'élément ou le document passé en paramètre. Cette commande permet de supprimer tout type d'attribut interne de 4D Write Pro : caractère, paragraphe, document, tableau ou image. Vous pouvez passer le nom de l'attribut à réinitialiser dans *attribName* ou vous pouvez passer une collection d'attributs dans *attribColl* pour réinitialiser plusieurs attributs à la fois. > Dans le cas d'une section ou d'une sous-section, l'objet *sectionOrSubsection* peut être transmis seul et tous les attributs sont réinitialisés en une seule fois. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md index 43b92d746dfcbe..8c4efbe25e2be8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Description -La commande **WP SET ATTRIBUTES** permet de définir la valeur de n'importe quel attribut d'une plage, d'un élément, d'un document. Cette commande permet d'accéder à n'importe quel type d'attribut interne à 4D Write Pro : caractère, paragraphe, document, tableau ou image. +La commande **WP SET ATTRIBUTES** vous permet de définir la valeur d'un attribut de plage, élément ou document. Cette commande vous donne accès à tout type d'attribut interne 4D Write Pro : caractère, paragraphe, document, tableau ou image. Dans *targetObj*, vous pouvez passer : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index b86e2a3322962d..a92367ea1b8081 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -54,22 +54,22 @@ Vous souhaitez remplacer la sélection d'une zone de 4D Write Pro par le contenu You can insert special expressions related to document attributes in any document area (body, header, footer) using the [WP Insert formula](commands/wp-insert-formula.md) command. Within a formula, a formula context object is automatically exposed. You can use the properties of this object through [**This**](../commands/this.md): -| Propriétés | Type | Description | -| ------------------------------------------------------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [This](../commands/this.md).title | Text | Titre défini dans l'attribut wk title | -| [This](../commands/this.md).author | Text | Auteur défini dans l'attribut wk author | -| [This](../commands/this.md).subject | Text | Subject defined in wk subject attribute | -| [This](../commands/this.md).company | Text | Company defined in wk company attribute | -| [This](../commands/this.md).notes | Text | Notes defined in wk notes attribute | -| [This](../commands/this.md).dateCreation | Date | Date creation defined in wk date creation attribute | -| [This](../commands/this.md).dateModified | Date | Date modified defined in wk date modified attribute | -| [This](../commands/this.md).pageNumber (\*) | Number | Page number as it is defined:
      429. - From the document start (default) or
      430. - From the section page start if it is defined by section page start.
      431. This formula is always dynamic; it is not affected by the [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) command. | -| [This](../commands/this.md).pageCount (\*) | Number | Page count: total count of pages.
        This formula is always dynamic; it is not affected by the [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) command. | -| [This](../commands/this.md).document | Object | Document 4D Write Pro | -| [This](../commands/this.md).data | Object | Data context of the 4D Write Pro document set by [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | -| [This](../commands/this.md).sectionIndex | Number | The Index of the section in the 4D Write Pro document starting from 1 | -| [This](../commands/this.md).pageIndex | Number | The actual page number in the 4D Write Pro document starting from 1 (regardless of the section page numbers) | -| [This](../commands/this.md).sectionName | String | The name that the user gives to the section | +| Propriétés | Type | Description | +| ------------------------------------------------------------------------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [This](../commands/this.md).title | Text | Titre défini dans l'attribut wk title | +| [This](../commands/this.md).author | Text | Auteur défini dans l'attribut wk author | +| [This](../commands/this.md).subject | Text | Subject defined in wk subject attribute | +| [This](../commands/this.md).company | Text | Company defined in wk company attribute | +| [This](../commands/this.md).notes | Text | Notes defined in wk notes attribute | +| [This](../commands/this.md).dateCreation | Date | Date creation defined in wk date creation attribute | +| [This](../commands/this.md).dateModified | Date | Date modified defined in wk date modified attribute | +| [This](../commands/this.md).pageNumber (\*) | Number | Numéro de page tel qu'il est défini
      432. : - à partir du début du document (par défaut) ou
      433. - à partir du début de la page de la section s'il est défini par début de page de section.
      434. Cette formule est toujours dynamique ; elle n'est pas affectée par la commande [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).pageCount (\*) | Number | Nombre de pages : nombre total de pages.
        Cette formule est toujours dynamique ; elle n'est pas affectée par la commande [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).document | Object | Document 4D Write Pro | +| [This](../commands/this.md).data | Object | Data context of the 4D Write Pro document set by [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | +| [This](../commands/this.md).sectionIndex | Number | The Index of the section in the 4D Write Pro document starting from 1 | +| [This](../commands/this.md).pageIndex | Number | The actual page number in the 4D Write Pro document starting from 1 (regardless of the section page numbers) | +| [This](../commands/this.md).sectionName | String | The name that the user gives to the section | :::note @@ -95,17 +95,17 @@ Par exemple, pour insérer le numéro de page dans la zone de pied de page : When used in a formula within the table, the **This** keyword gives access to different data according to the context: -| **Context** | **Expression** | **Type** | **Returns** | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Anywhere | [This](../commands/this.md).table | Object | Current table | -| | [This](../commands/this.md).row | Object | Current table row element | -| | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | -| When a datasource has been defined for the table | [This](../commands/this.md).table.dataSource | Objet (formula) | Datasource as a formula | -| | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | Evaluated table.dataSource | -| In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Tous | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | -| | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | -| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection or Entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
        This expression returns the same type of value as the **This.tableData** expression. | -| In a break row | [This](../commands/this.md).breakItems | Collection or Entity selection | Items of the collection or entity selection displayed in the rows between:
        • the current break row and the previous break row of the same level (or the start of the table) if the break row(s) are displayed after the data row.
        • the current break and the next break row of the same level (or the end of the table) if the break row(s) are displayed before the data row.
        | +| **Context** | **Expression** | **Type** | **Returns** | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Anywhere | [This](../commands/this.md).table | Object | Current table | +| | [This](../commands/this.md).row | Object | Current table row element | +| | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | +| When a datasource has been defined for the table | [This](../commands/this.md).table.dataSource | Objet (formula) | Datasource as a formula | +| | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | Evaluated table.dataSource | +| In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Tous | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | +| | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | +| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection or Entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
        This expression returns the same type of value as the **This.tableData** expression. | +| In a break row | [This](../commands/this.md).breakItems | Collection or Entity selection | Éléments de la collection ou de l'entity selection affichés dans les lignes entre :
        • la ligne de rupture actuelle et la ligne de rupture précédente du même niveau (ou le début du tableau) si la ou les ligne(s) de rupture sont affichées après la ligne de données.
        • la ligne de rupture courante et la suivante du même niveau (ou la fin du tableau) si la ou les ligne(s) de rupture sont affichées avant la ligne de données.
        | In any other contexts, these expressions will return *undefined*. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md index 805fe2f6a0adad..ee2f4b82093a42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -1020,7 +1020,6 @@ $info:=$address.getRemoteContextAttributes() | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      435. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      436. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      437. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      438. with `.save()`: error only if the `dk auto merge` option is not used
      439. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      440. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      441. **Associated statusText**: "Stamp has changed" | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index aad5530955644b..1a9b9c4c22932b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -13,10 +13,10 @@ title: 動作 - **カスタム**: このモードでは、オブジェクトに対しておこなわれたドラッグ操作は、当該オブジェクトのコンテキストにおいて `On Begin Drag` フォームイベントを発生させます。 これを利用して、開発者はメソッドを用いてドラッグアクションを管理しなければなりません。 つまり、カスタムモードにおいては、ドラッグ&ドロップ操作のすべてが開発者により管理されます。 このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。 このモードは専用のプロパティ、イベント、`ペーストボード` テーマのコマンド等の組み合わせに基づいています。 -- **自動**: このモードでは、ドラッグ元のフォームオブジェクトからテキストやピクチャーが 4D によって **コピー** されます。 このコピーは、同じ 4Dエリア内、2つの 4Dエリア間、4D と他のアプリケーション間で使用できます。 たとえば、自動ドラッグ (&ドロップ) を使用して、プログラムを使用せず、2つのフィールド間で値をコピーできます: +- **自動**: このモードでは、ドラッグ元のフォームオブジェクトからテキストやピクチャーが 4D によって **コピー** されます。 このコピーは、同じ 4Dエリア内、2つの 4Dエリア間、4D と他のアプリケーション間で使用できます。 For example, automatic drag (and drop) lets you copy a value between two fields without using programming: ![](../assets/en/FormObjects/property_automaticDragDrop.png) - ![](../assets/en/FormObjects/property_automaticDragDrop2.png) - このモードでは、`On Begin Drag` フォームイベントは生成されません。 自動ドラッグが有効のときに標準のドラッグを "強制" したい場合、アクションの間 **Alt** (Windows) または **Option** (macOS) キーを押しながら操作します。 このオプションはピクチャーでは利用できません。 + ![](../assets/en/FormObjects/property_automaticDragDrop2.png)
        + In this mode, the `On Begin Drag` form event is NOT generated. 自動ドラッグが有効のときに標準のドラッグを "強制" したい場合、アクションの間 **Alt** (Windows) または **Option** (macOS) キーを押しながら操作します。 このオプションはピクチャーでは利用できません。 詳細については *4Dランゲージリファレンス* マニュアルの [ドラッグ&ドロップ](https://doc.4d.com/4Dv20/4D/20.6/Drag-and-Drop.300-7487471.ja.html) を参照してください。 @@ -212,15 +212,15 @@ title: 動作 ## 標準アクション -アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 +アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). フォームオブジェクトには、標準アクションとメソッドの両方を割り当てることができます。 この場合、標準アクションは通常、メソッドの後に実行されます。また、4D はこのアクションを使用して、カレントコンテキストに応じてオブジェクトを有効化/無効化します。 フォームオブジェクトが無効化されていた場合、関連づけられたメソッドは実行されません。 #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------ | ------ | ------------------------------------------------------------------------------------ | -| action | string | 有効な [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) | +| 名称 | データタイプ | とりうる値 | +| ------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### 対象オブジェクト 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 178d4be2d6c911..e67cd47f8a1496 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -44,7 +44,7 @@ title: リリースノート - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index d857bb23d70623..6f6e8aacb4e491 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "日付", -- "Content-Length" +| Header | 追加 | Set | Reduce | +| ---------------- | -- | ---------- | ------ | +| Date | × | × | × | +| Content-Length | × | × | × | +| Content-Encoding | × | × | × | +| Vary | ◯ | × | × | +| Set-Cookie | ◯ | Add cookie | × | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md index aef3a4ae864205..aec14fa9fb346b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -201,7 +201,7 @@ Else End if ``` -:::note +:::tips 関連したblog 記事 [高度な Webアプリケーションに対応したスケーラブルセッション](https://blog.4d.com/ja/scalable-sessions-for-advanced-web-applications/) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md index 57c10348740857..567211cdf9f8ba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md @@ -9,26 +9,26 @@ title: OpenAIChatHelper ## プロパティ -| プロパティ名 | 型 | デフォルト値 | 説明 | -| --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- | -| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | Open AI との通信で使用されるチャットAPI インスタンス。 | -| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | チャットアシスタントのレスポンスをガイドするためのシステムプロンプトメッセージ。 | -| `numberOfMessages` | Integer | 15 | チャット履歴に保持するメッセージの最大数。 | -| `引数` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | -| `messages` | [OpenAIMessage](OpenAIMessage.md) のコレクション | [] | そのチャットセッション内でやりとりされたメッセージのコレクション。 | -| `ツール` | Collection of [OpenAITool](OpenAITool.md) | [] | List of registered OpenAI tools for function calling. | -| `autoHandleToolCalls` | Boolean | true | Boolean indicating whether tool calls are handled automatically using registered tools. | -| `lastErrors` | Collection | - | Collection containing the last errors encountered during chat operations. | +| プロパティ名 | 型 | デフォルト値 | 説明 | +| --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------- | +| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | Open AI との通信で使用されるチャットAPI インスタンス。 | +| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | チャットアシスタントのレスポンスをガイドするためのシステムプロンプトメッセージ。 | +| `numberOfMessages` | Integer | 15 | チャット履歴に保持するメッセージの最大数。 | +| `parameters` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | +| `messages` | [OpenAIMessage](OpenAIMessage.md) のコレクション | [] | そのチャットセッション内でやりとりされたメッセージのコレクション。 | +| `tools` | [OpenAITool](OpenAITool.md) のコレクション | [] | 関数呼び出し用に登録されたOpenAI ツールの一覧。 | +| `autoHandleToolCalls` | Boolean | true | 登録されたツールを使用してツール呼び出しを自動的に管理するかどうかをあらわすブール値。 | +| `lastErrors` | Collection | - | チャット操作中に発生した最後のエラーを格納したコレクション。 | -## Constructor +## コンストラクター -To create a new `OpenAIChatHelper` instance, it's best to use the `create()` method from the [OpenAI client's chat API](OpenAIChatAPI.md): +新しい `OpenAIChatHelper` インスタンスを作成するためには、[OpenAI クライアントのチャットAPI](OpenAIChatAPI.md)の `create()` メソッドを使用するのが最適です: ```4D var $chatHelper:=$client.chat.create("You are a helpful assistant.") ``` -This method creates a new chat helper with the specified system prompt and initializes it with default parameters. The system prompt defines the assistant's role and behavior throughout the conversation. +このメソッドは指定されたシステムプロンプトで新しいチャットヘルパーを作成し、デフォルトの引数で初期化します。 このシステムプロンプトが会話の間全体の、アシスタントの役割と振る舞いを定義します。 ## 関数 @@ -54,52 +54,52 @@ $result:=$chatHelper.prompt("Why 42?") **reset**() -Resets the chat context by clearing all messages and unregistering all tools. This effectively starts a fresh conversation while keeping the system prompt and parameters intact. +全てのメッセージを消去し、全てのツールの登録を解除することで、チャットコンテキストをリセットします。 これにより、システムのプロンプトとパラメータをそのままにしながら、効果的に新しい会話を始めることができます。 -#### Reset Example +#### リセットの例 ```4D $chatHelper.prompt("Hello!") -$chatHelper.reset() // Clear all previous messages and tools +$chatHelper.reset() // 以前のメッセージとツールを全て消去 ``` ### registerTool() **registerTool**(*tool* : Object; *handler* : Object) -| 引数 | 型 | 説明 | -| --------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| *tool* | Object | The tool definition object (or [OpenAITool](OpenAITool.md) instance) | -| *handler* | Object | The function to handle tool calls ([4D.Function](../../API/FunctionClass.md) or Object), optional if defined inside *tool* as *handler* property | +| 引数 | 型 | 説明 | +| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| *tool* | Object | ツール定義オブジェクト(あるいは[OpenAITool](OpenAITool.md) インスタンス) | +| *handler* | Object | ツール呼び出しを管理する関数([4D.Function](../../API/FunctionClass.md) またはオブジェクト)、*tool* 内の *handler* プロパティで定義されている場合にはオプション。 | -Registers a tool with its handler function for automatic tool call handling. +自動ツール呼び出し関数のために、ツールとそのハンドラ関数を登録します。 -The *handler* parameter can be: +*handler* 引数には以下のものを渡すことができます: -- A **4D.Function**: Direct handler function -- An **Object**: An object containing a `formula` property matching the tool function name +- **4D.Function**: 直接ハンドラ関数 +- **オブジェクト**: ツール関数名と一致する `formula` プロパティを格納しているオブジェクト -The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. +ハンドラー関数はOpenAI ツール呼び出しから渡された引数を格納しているオブジェクトを受け取ります。 オブジェクトは、ツールのスキーマで定義されたパラメーター名とキーが一致するキーと、AI モデルから提供された実際の引数である値との、キーと値のペアを格納しています。 -#### Register Tool Example +#### ツールを登録する例題 ```4D -// Example 1: Simple registration with direct handler +// Example 1: 直接ハンドラを使用したシンプルな登録 var $tool:={type: "function"; function: {name: "get_weather"; description: "Get current weather"; parameters: {type: "object"; properties: {location: {type: "string"; description: "City name"}}}}} var $handler:=Formula(return "Sunny, 25°C in "+$1.location) $chatHelper.registerTool($tool; $handler) -// Example 2: Tool with handler property (no second parameter needed) +// Example 2: プロパティを持つtool オブジェクトを使用(この場合第2に引数は不要です) var $tool:={name: "calculate"; description: "Perform calculations"; handler: Formula(return String(Num($1.expression)))} $chatHelper.registerTool($tool) -// Example 3: Using object notation +// Example 3: オブジェクト記法を使用する $chatHelper.registerTool({tool: $tool; handler: $handler}) -// Example 4: Handler as object with formula matching tool name +// Example 4: ツール名と合致するフォーミュラを持ったオブジェクトとしてのハンドラ var $tool:={name: "getTime"; description: "Get current time"} -var $handlerObj:=cs.MyTimeTool.new() // class with a getTime function +var $handlerObj:=cs.MyTimeTool.new() // getTime 関数を持つクラス $chatHelper.registerTool($tool; $handlerObj) ``` @@ -107,19 +107,19 @@ $chatHelper.registerTool($tool; $handlerObj) **registerTools**(*toolsWithHandlers* : Variant) -| 引数 | 型 | 説明 | -| ------------------- | ------- | -------------------------------------------------------- | -| *toolsWithHandlers* | Variant | Object or Collection containing tools and their handlers | +| 引数 | 型 | 説明 | +| ------------------- | ------- | ------------------------------- | +| *toolsWithHandlers* | Variant | ツールとのそのハンドラを格納したオブジェクトまたはコレクション | -Registers multiple tools at once. The parameter can be: +複数のツールを一度に登録します。 引数には以下のものを渡すことができます: -- **Collection**: Array of tool objects (with handlers embedded or separate) -- **Object**: Object with function names as keys mapping to tool definitions -- **Object with `tools` attribute**: Object containing a `tools` collection and formula properties matching tool names +- **コレクション**: (ハンドラが埋め込んである、あるいは分離してある)ツールオブジェクトのコレクション +- **オブジェクト**: 関数名がツール定義にマッピングされているキーとするオブジェクト +- **`tools` 属性を持つオブジェクト**: `tools` コレクションと、ツール名に合致するフォーミュラプロパティを格納しているオブジェクト -#### Register Multiple Tools Example +#### 複数のツールを登録する例題 -##### Example 1: Collection format with handlers in tools +##### 例 1: ツール内のハンドルを使用したコレクションフォーマット ```4D var $weatherTool:={name: "getWeather"; description: "Get current weather"; handler: Formula(return "Sunny, 25°C in "+$1.location)} @@ -128,7 +128,7 @@ var $calculatorTool:={name: "calculate"; description: "Perform calculations"; ha $chatHelper.registerTools([$weatherTool; $calculatorTool]) ``` -##### Example 2: Object format with separate tool and handler +##### 例 2: 別個のツールとハンドラを使用したオブジェクトフォーマット ```4D var $toolsWithSeparateHandlers:={} @@ -138,15 +138,15 @@ $toolsWithSeparateHandlers.calculate:={tool: $calculatorToolDefinition; handler: $chatHelper.registerTools($toolsWithSeparateHandlers) ``` -##### Example 3: Object with tools collection attribute and formula properties +##### 例 3: tools コレクション属性とformula プロパティを持ったオブジェクト -MyTools class: +MyTools クラス: ```4D Class constructor this.tools:=[{name: "getWeather"; description: "Get current weather"}; \ - {name: "getTime"; description: "Get current time"}] // Collection of tool definitions + {name: "getTime"; description: "Get current time"}] // ツール定義のコレクション Function getWeather($parameters: Object) return "Sunny, 25°C" @@ -159,12 +159,12 @@ Function getTime($parameters: Object) $chatHelper.registerTools(cs.MyTools.new()) ``` -##### Example 4: Simple object format with tools as properties +##### 例 4: ツールをプロパティにもつシンプルなオブジェクトフォーマット ```4D var $tools:={} -$tools.getWeather:=$weatherTool // Tool with handler property -$tools.calculate:=$calculatorTool // Tool with handler property +$tools.getWeather:=$weatherTool // handler プロパティを持つTool +$tools.calculate:=$calculatorTool // handler プロパティを持つTool $chatHelper.registerTools($tools) ``` @@ -173,28 +173,28 @@ $chatHelper.registerTools($tools) **unregisterTool**(*functionName* : Text) -| 引数 | 型 | 説明 | -| -------------- | ---- | ------------------------------------------- | -| *functionName* | Text | The name of the function tool to unregister | +| 引数 | 型 | 説明 | +| -------------- | ---- | --------------- | +| *functionName* | Text | 登録を解除したいツールの関数名 | -Unregisters a specific tool by its function name. This removes the tool from the registered tools collection, clears its handler, and removes it from the parameters. +特定のツールをその関数名で指定して登録解除します。 これによってツールは登録されたツールのコレクションから削除され、ハンドラも消去され、引数からも削除されます。 -#### Unregister Tool Example +#### ツールを登録解除する例 ```4D $chatHelper.registerTool($weatherTool; $weatherHandler) -$chatHelper.unregisterTool("get_weather") // Remove the weather tool +$chatHelper.unregisterTool("get_weather") // weather ツールを削除 ``` ### unregisterTools() **unregisterTools**() -Unregisters all tools at once. This clears all tool handlers, empties the tools collection, and removes all tools from the parameters. +全てのツールを一度に登録解除します。 これはすべてのツールハンドラを消去し、tools コレクションをからにし、そして引数からも全てのツールを削除します。 -#### Unregister All Tools Example +#### 全てのツールを登録解除する例 ```4D $chatHelper.registerTools($multipleTools) -$chatHelper.unregisterTools() // Remove all tools +$chatHelper.unregisterTools() // 全てのツールを削除 ``` \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index bc638180ea1b72..c6d1be78b53a00 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -29,9 +29,9 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. ### Function-specific Properties -| プロパティ | 型 | 説明 | -| ----- | ------ | -------------------------------------------------------------------------------- | -| `引数` | Object | Parameters definition for the function using JSON schema format. | +| プロパティ | 型 | 説明 | +| ------------ | ------ | -------------------------------------------------------------------------------- | +| `parameters` | Object | Parameters definition for the function using JSON schema format. | ## Constructor diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md index bc02e94eaca792..d2391813312363 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md @@ -201,7 +201,7 @@ Else End if ``` -:::note +:::tips 関連したblog 記事 [高度な Webアプリケーションに対応したスケーラブルセッション](https://blog.4d.com/ja/scalable-sessions-for-advanced-web-applications/) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatHelper.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatHelper.md index d72fcbf4b6e596..2668ad7f7d862a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatHelper.md @@ -14,7 +14,7 @@ title: OpenAIChatHelper | `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | Open AI との通信で使用されるチャットAPI インスタンス。 | | `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | チャットアシスタントのレスポンスをガイドするためのシステムプロンプトメッセージ。 | | `numberOfMessages` | Integer | 5 | チャット履歴に保持するメッセージの最大数。 | -| `引数` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | +| `parameters` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | | `messages` | [OpenAIMessage](OpenAIMessage.md) のコレクション | [] | そのチャットセッション内でやりとりされたメッセージのコレクション。 | ## 関数 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index ea05954febe964..4897fd58447bba 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -1020,7 +1020,6 @@ $info:=$address.getRemoteContextAttributes() | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      442. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      443. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      444. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      445. with `.save()`: error only if the `dk auto merge` option is not used
      446. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      447. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      448. **Associated statusText**: "Stamp has changed" | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md index f75f96f240a10d..f9f51797c37684 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md @@ -206,7 +206,7 @@ Windows においては、Webエリアから、同じ 4Dアプリケーション ### プロトコルの挿入 (macOS) -macOS 上の Webエリアで、プログラムにより処理される URL は、プロトコルで開始されていなければなりません。 つまり、"www.mysite.com" ではなく、"http://www.mysite.com" 文字列を渡さなければならないということです。 +macOS 上の Webエリアで、プログラムにより処理される URL は、プロトコルで開始されていなければなりません。 つまり、"www.mysite.com" ではな、"http://www.mysite.com" 文字列を渡さなければならないということです。 ## Webインスペクターへのアクセス 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 eb435eba5b6f23..2a1c5bf455b87a 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 @@ -5,27 +5,28 @@ title: リリースノート ## 4D 21 -Read [**What’s new in 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), the blog post that lists all new features and enhancements in 4D 21. +[**4D 21 での新機能**](https://blog.4d.com/en-whats-new-in-4d-21/): 4D 21 の新機能と拡張機能をすべてリストアップしたブログ記事です。 #### ハイライト -- Support of AI Vector Searches in the [`query()`](../API/DataClassClass.md#query-by-vector-similarity) function and in the [`$filter`](../REST/$filter.md#vector-similarity) REST API. -- Support of TLS encryption for the [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew) class. +- [`query()`](../API/DataClassClass.md#ベクトル類似度でのクエリ) 関数と、[`$filter`](../REST/$filter.md#vector-similarity) REST API 内でのAI ベクトル検索のサポート。 +- [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew) クラスにおけるTLS 暗号化のサポート。 - Web サーバー: - - new [HTTP rules](../WebServer/http-rules.md) to customize HTTP response headers, - - ability to set [HTTP request handlers](../WebServer/http-request-handler.md) using a `handlers` property in the *settings* parameter of the Web server [`start()`](../API/WebServerClass.md#start) function, - - the Web server object contains new [`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) properties. -- New [ORDA events on data](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. -- New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes. -- Client/server: - - You can display Qodly pages in Web areas and [share the remote client session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). - - The [QUIC network layer](../settings/client-server.md#network-layer) has been enhanced to handle network interface changes transparently, for example when you travel with your laptop. See [this blog post](https://blog.4d.com/work-and-move-with-quic-and-network-switching). -- You can now [create components directly from the host project](../Extensions/develop-components.md#creating-components) and [edit their code from a dedicated tab](../Extensions/develop-components.md#editing-all-component-code) in the 4D Explorer without leaving or restarting the project. -- The 4D product activation step has been simplified and automated during [sign-in](../GettingStarted/Installation.md#sign-in). -- 4D AIKit component: new features to [invoke a specific tool automatically](../aikit/Classes/OpenAIChatHelper.md#registertool) and [specify a response format](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). + - 新しい [HTTP ルール](../WebServer/http-rules.md) を使用することでHTTP レスポンスヘッダーをカスタマイズすることができます。 + - Web サーバーの[`start()`](../API/WebServerClass.md#start) 関数の*settings* 引数内の`handlers` プロパティを使用することで、[HTTP リクエストハンドラー](../WebServer/http-request-handler.md) を設定することができます。 + - Web サーバーオブジェクトには新しい[`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) プロパティが含まれます。 +- 新しい[データに対するORDA イベント](../ORDA/orda-events.md): validateSave、saving、afterSave、validateDrop、dropping、afterDrop +- [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) および [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) クラスにおいて、ローカルの証明書フォルダの代わりにWindows 証明書ストアからの証明書を使用することを許可する新しいオプション。 +- クライアント/サーバー: + - Web エリア内でQodly ページを表示し、[リモートクライアントセッションを共有](../Desktop/clientServer.md#web-エリア内のqodly-ページでセッションを共有する)することができるようになりました。 + - [QUIC ネットワークレイヤー](../settings/client-server.md#ネットワークレイヤー) はネットワークインターフェースの変更(例えばラップトップを持って良好するような場合)を透過的に管理できるように改善されました。 [こちらの blog 記事](https://blog.4d.com/work-and-move-with-quic-and-network-switching) をご覧ください。 +- プロジェクトを閉じたり再起動したりすることなく、4D エクスプローラーから[ホストプロジェクトから直接コンポーネントを作成](../Extensions/develop-components.md#コンポーネントの作成)したり、あるいは[専用のタブからコンポーネントのコードを編集する](../Extensions/develop-components.md#全てのコンポーネントコードを編集) ことができるようになりました。 +- 4D プロダクトのアクティベーションステップが、簡略化されて[サインイン](../GettingStarted/Installation.md#sign-in) 中に自動化されました。 +- 4D AIKit コンポーネント: [特定のツールを自動的に呼び出す](../aikit/Classes/OpenAIChatHelper.md#registertool) ことと [レスポンスフォーマットを指定する](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format) 新機能。 - 4Dランゲージ: - - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). - - [`Num`](../commands/num.md) and [`String`](../commands/string.md) commands have been updated to support conversions in different bases (radix). + - 文字列から先頭と末尾のスペースを削除する新しい "trim" 系コマンド: [`Trim`](../commands/trim.md)、[`Trim start`](../commands/trim-start.md)、および[`Trim end`](../commands/trim-end.md)。 + - [`Num`](../commands/num.md) および [`String`](../commands/string.md) コマンドは、異なる基数での変換をサポートするようにアップデートされました。 +- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21): list of all bugs that have been fixed in 4D 21. #### デベロッパー・プレビュー @@ -43,7 +44,7 @@ Read [**What’s new in 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), th - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        @@ -65,26 +66,26 @@ In binary databases, you need to select the required components in the 4D instal - [`4D.TCPConnection.new()`](../API/TCPConnectionClass.md#4dtcpconnectionnew) 関数の[`options`](../API/TCPConnectionClass.md#options-parameter) 引数に新しい`connectionTimeout` オプションが追加されました。 - 新しい[`4D.Vector`](../API/VectorClass.md) クラス。これを使用して、一般的にAI で計算されたベクトルを処理して比較することができます。 - [4D 自動フィールド](../settings/database.md#自動uuidバージョン) および [`Generate UUID`](../commands/generate-uuid) コマンドに対して、**バージョン 7**のUUID を生成するための新しいオプション。 -- New [`UDPSocket`](../API/UDPSocketClass.md) and [`UDPEvent`](../API/UDPEventClass.md) classes to send data using UDP sockets. Support of detailed logging for UDP events in the [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) log file (renamed from `4DTCPLog.txt`). -- New [`.promote()`](../API/SessionClass.md#promote) and [`.demote()`](../API/SessionClass.md#demote) functions in the [Session class](../API/SessionClass.md) to dynamically add/remove privileges in a web process. -- [Automatic selection of licenses to embed](../Desktop/building.md#application-automatically-embedding-available-licenses) in the Build application dialog box, modified [`Create deployment license`](../commands/create-deployment-license.md) command, new [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html) BuildApplication xml key. -- Enhanced security for formula copy/paste in [4D Write Pro](../WritePro/managing-formulas.md) and [styled text areas](../FormObjects/input_overview.md): formulas copied from outside the current 4D application are now always pasted as values only. -- 4D AIKit component: new [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) to create embeddings using OpenAI's API. -- You can now [associate a class](../Develop/field-properties.md) to an object field in the structure editor. -- Automatic handling of [recursive dependencies](../Project/components.md#automatic-dependency-resolution). +- 新しい[`UDPSocket`](../API/UDPSocketClass.md) および [`UDPEvent`](../API/UDPEventClass.md) クラスを使用することでUDP ソケットを使用してデータを送信することができます。 [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) ログファイル(`4DTCPLog.txt` から改名)内でのUDP イベントの詳細なログのサポート。 +- [Session class](../API/SessionClass.md) 内の[`.promote()`](../API/SessionClass.md#promote) および[`.demote()`](../API/SessionClass.md#demote) 関数を使用することでWeb プロセスの権限を動的に追加/削除することができます。 +- ビルドアプリケーションのダイアログボックスで[埋め込むライセンスの自動選択](../Desktop/building.md#アプリケーションの利用可能なライセンスの自動埋め込み)、 更新された[`Create deployment license`](../commands/create-deployment-license.md) コマンド、新しい[`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.ja.html) ビルドアプリケーションXML キー。 +- [4D Write Pro](../WritePro/managing-formulas.md) および [スタイル付きテキストエリア](../FormObjects/input_overview.md)におけるフォーミュラのコピー/ペースト時のセキュリティの改善: カレントの4D アプリケーションの外部からコピーされたフォーミュラは、今後は常に値のみがペーストされます。 +- 4D AIKit コンポーネント: 新しい [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) を使用することで、OpenAI のAPI を使用して埋め込みを作成できます。 +- ストラクチャーエディターにおいて、オブジェクト型フィールドに対して[クラスを割り当てる](../Develop/field-properties.md) ことができます。 +- [再起的な依存関係](../Project/components.md#自動依存関係解決) の自動管理。 - 4Dランゲージ: - 統一性のため、[`Create entity selection`](../commands/create-entity-selection.md) コマンドおよび [`USE ENTITY SELECTION`](../commands/use-entity-selection.md) コマンドは、["4D 環境"](../commands/theme/4D_Environment.md) テーマから ["Selection"](../commands/theme/Selection.md) テーマへと移動しました。 - 新しい [`OBJECT SET DATA SOURCE FORMULA`](../commands/object-set-data-source-formula.md) および [`OBJECT Get data source formula`](../commands/object-get-data-source-formula.md) コマンドを使用して、フォームオブジェクトに対して`Formula` オブジェクトを割り当て、または読み出しができるようになります。 - [`LISTBOX SET PROPERTY`](../commands/listbox-set-property.md) および [`LISTBOX Get property`](../commands/listbox-get-property.md) は3つの新しい定数をサポートするようになりました: `lk current item`、`lk current item position`、および `lk selected items expression` です。 -- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=20_R10): list of all bugs that have been fixed in 4D 20 R10. +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R10): 4D 20 R10 で修正されたバグのリストです(日本語版は[こちら](https://4d-jp.github.io/2025/188/release-note-version-20r10/))。 #### 動作の変更 - Windows 上では、印刷しか想定していない(つまりスクリーン上で使用不可能な)カレントプリンターフォントは、4D の起動時にはロードされないようになりました。 -- The *MeCab* library has been removed. This change only affects the processing of Japanese text. -- When an object variable or parameter is declared with a ["cs" class](../Concepts/classes.md#cs) type, assigning it with an object instance of a different class now generates a syntax error. -- [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) returns True for promoted privileges in the web process. -- The [`Time`](../commands/time) command now returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will return **-01:02:03**. In previous releases, the negative sign was ignored. +- *MeCab* ライブラリーは削除されました。 この変更は、日本語テキストの処理のみに影響します。 +- ["cs" クラス](../Concepts/classes.md#cs) タイプを使用して宣言されたオブジェクト型変数またはオブジェクト型引数に、異なるクラスのオブジェクトインスタンスを代入した場合にはシンタックスエラーを生成するようになりました。 +- [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) 関数は、Web プロセス内において昇格された権限に対してはTrue を返すようになりました。 +- [`Time`](../commands/time) コマンドは、*timeValue* 引数が負の値の場合には、負の時間式を返すようになりました。 例えば、`Time("-01:02:03")` は **-01:02:03** を返します。 過去のリリースにおいては、負の符号は無視されていました。 ## 4D 20 R9 @@ -176,7 +177,7 @@ In binary databases, you need to select the required components in the 4D instal #### ハイライト - [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.md#コレクション演算子) を対象とした比較演算子をサポート。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 -- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs) を介して、ホストプロジェクトに読み込まれているすべてのコンポーネント間で自動的に共有されるようになりました。 +- [宣言された名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) をコンポーネントが持つ場合、そのクラスは [`cs.`](../Concepts/classes.md#cs). - コンポーネントマネージャー: [GitHub に保存されたコンポーネント](../Project/components.md#github-に保存されたコンポーネント) のサポート。 - 新しい [`entitySelection.clean()`](../API/EntitySelectionClass.md#clean) 関数と [`$clean`](../REST/$clean.md) REST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 - セッションの権限を確認し、デバッグを容易にするための新しい [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) 関数と [`$info/privileges`](../REST/$info.md) REST API が追加されました。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index cbf92c9aad387b..33bc7539dc0b38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -102,19 +102,19 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| プロパティ | 型 | 説明 | Set by the developer | -| ------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| extraDescription | Object | Free information to set up | ◯ | -| seriousError | Boolean | Used only with validate events (see below). Will insert a specific `status` value in the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) function:
      449. If true: `dk status serious validation error`
      450. If false: `dk status validation failed`
      451. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | × | - -- The errors are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `fatalError` property allows you to insert a specific `status` and its associated `statusText` in the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions: - - If **false**: `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". Such errors do not require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. - - If **true**: `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". Such errors require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. They are raised at the end of the event and reach the client requesting the save/drop action (REST client for example). -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error (`dk status serious error`) whatever the `seriousError` property value. +| プロパティ | 型 | 説明 | Set by the developer | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| extraDescription | Object | Free information to set up | ◯ | +| seriousError | Boolean | Used only with validate events (see below).
      452. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      453. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      454. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | × | + +- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. +- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: + - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). + - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". +- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. ## Event function description diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md index e0d5eb69a426f8..e1e76859c3dc67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Preferences/methods.md @@ -179,8 +179,8 @@ The corresponding [clipboard shorcuts](../code-editor/write-class-method.md#clip このエリアでは、コードエディターの自動補完メカニズムを設定して、作業習慣に合わせることができます。 -| | 説明 | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ウィンドウを自動で開く | 次の要素に関する提案ウィンドウを自動で開くかを指定します:
        • 定数
        • 変数(ローカルまたはインタープロセス)あるいはオブジェクト属性
        • テーブル
        • プロトタイプ (例: クラス関数)

        たとえば、"変数(ローカルまたはインタープロセス)あるいはオブジェクト属性" オプションがチェックされている場合、$ 文字を入力すると提案されるローカル変数のリストが表示されます:

        ![](../assets/en/Preferences/suggestionsAutoOpen.png)

        対応するオプションのチェックを外すことで、要素ごとにこの機能を無効にできます。 | -| 提案の決定 | コードエディターで、自動補完ウィンドウに表示されたカレントの提案を受け入れるための、入力コンテキストを設定します。
        • **タブと区切り文字**
          このオプションが選択されていると、タブキーまたは現在のコンテキストに関連する区切り文字で、現在選択されている提案を決定することができます。 たとえば "ALE" と入力して "(" を入力すると、4Dは自動で "ALERT(" とエディターに書き込みます。 区切り文字は以下の通りです:
          ( ; : = < [ {
        • **タブのみ**
          このオプションが選択されていると、現在の提案はタブキーを押したときにのみ受け入れられます。 これは特に ${1} のように、要素名に区切り文字を入力することを容易にします。**注記**: ウィンドウ内をダブルクリックするか、改行キーを押すことで提案を受け入れることもできます。
        | +| | 説明 | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ウィンドウを自動で開く | 次の要素に関する提案ウィンドウを自動で開くかを指定します:
        • 定数
        • 変数(ローカルまたはインタープロセス)あるいはオブジェクト属性
        • テーブル
        • プロトタイプ (例: クラス関数)

        たとえば、"変数(ローカルまたはインタープロセス)あるいはオブジェクト属性" オプションがチェックされている場合、$ 文字を入力すると提案されるローカル変数のリストが表示されます:

        ![](../assets/en/Preferences/suggestionsAutoOpen.png)

        対応するオプションのチェックを外すことで、要素ごとにこの機能を無効にできます。 | +| 提案の決定 | コードエディターで、自動補完ウィンドウに表示されたカレントの提案を受け入れるための、入力コンテキストを設定します。
        • **タブと区切り文字**
          このオプションが選択されていると、タブキーまたは現在のコンテキストに関連する区切り文字で、現在選択されている提案を決定することができます。 たとえば "ALE" と入力して "(" を入力すると、4Dは自動で "ALERT(" とエディターに書き込みます。 区切り文字は以下の通りです:
          ( ; : = < [ {
        • **タブのみ**
          このオプションが選択されていると、現在の提案はタブキーを押したときにのみ受け入れられます。 これは特に ${1} のように、要素名に区切り文字を入力することを容易にします。**注記**: ウィンドウ内をダブルクリックするか、改行キーを押すことで提案を受け入れることもできます。
        | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 5979f2a6997c4c..9ec1cc2e38ce55 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -349,7 +349,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ - 4D では、**デザイン/プロジェクト依存関係** メニューアイテムを選択します (開発環境)。
        ![dependency-menu](../assets/en/Project/dependency-menu.png) -- 4D Server では、**ウインドウ/プロジェクト依存関係** メニューアイテムを選択します。
        +- 4D Server では、**ウィンドウ/プロジェクト依存関係** メニュー項目を選択します。
        ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) 依存関係パネルが表示されます。 依存関係は ABC順にソートされます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$method.md index 722858ec7053d5..df2bee8b228d9b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$method.md @@ -197,6 +197,7 @@ RESTリクエストで定義されたリレートエンティティのコレク - **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 - **ブール** は true または false です。 - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 + ::: ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md index 183cb255ecf2df..749f7fa9d1acad 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ title: VP Copy to object 任意の *options* 引数として、以下のプロパティを渡すことができます。 -| プロパティ | 型 | 説明 | -| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | コマンド実行後もコピーされた値、書式、数式が保持するには *true* (デフォルト)。 削除するには *false*。 | -| copyOptions | Integer | コピーまたは移動する内容を指定します。 とりうる値:

        説明
        `vk clipboard options all` (デフォルト)値、フォーマット、フォーミュラを含むすべてのデータオブジェクトをコピーします。
        `vk clipboard options formatting`フォーマットだけをコピーします。
        `vk clipboard options formulas`フォーミュラだけをコピーします。
        `vk clipboard options formulas and formatting`フォーミュラとフォーマットをコピーします。
        `vk clipboard options values`値だけをコピーします。
        `vk clipboard options value and formatting`値とフォーマットをコピーします。

        | +| プロパティ | 型 | 説明 | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | コマンド実行後もコピーされた値、書式、数式が保持するには *true* (デフォルト)。 削除するには *false*。 | +| copyOptions | Integer | コピーまたは移動する内容を指定します。 取り得る値:

        詳細
        `vk clipboard options all` (デフォルト)値、書式、数式を含め、全てのデータオブジェクトをコピーします。
        `vk clipboard options formatting`書式のみをコピーします。
        `vk clipboard options formulas`数式のみをコピーします。
        `vk clipboard options formulas and formatting`数式と書式をコピーします。
        `vk clipboard options values`値のみをコピーします。
        `vk clipboard options value and formatting`値と書式をコピーします。

        | [ワークブックオプション](vp-set-workbook-options.md) で定義されている貼り付けオプションが考慮されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 70ceccbf7b40d6..c394508d9bed5b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -32,8 +32,8 @@ title: VP Find | afterColumn | Integer | 検索を開始するカラムの直前のカラムの番号。 *rangeObj* 引数が統合されたレンジの場合、渡されるカラムの番号は最初のレンジのものでなければなりません。 デフォルト値: -1 (*rangeObj* の最初) | | afterRow | Integer | 検索を開始する行の直前の行番号。 *rangeObj* 引数が統合されたレンジの場合、渡される行番号は最初のレンジのものでなければなりません。 デフォルト値: -1 (*rangeObj* の最初) | | all | Boolean |
      455. true - *rangeObj* 内で *searchValue* の値に合致するセルはすべて返されます。
      456. false - (デフォルト値) *rangeObj* 内で *searchValue* の値に合致する最初のセルのみが返されます。
      457. | -| flags | Integer |
        `vk find flag exact match`セルの中身全体が検索値と完全に一致する必要があります
        `vk find flag ignore case`文字の大小は区別されません。 例: "a" と "A" は同じとみなされます。
        `vk find flag none`検索フラグは指定されていません (デフォルト)。
        `vk find flag use wild cards`検索文字列においてワイルドカード文字 (\*,?) を使用できます。 ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません:
      458. \* は 0 から複数文字に使用可能です (例: "bl*" を検索した場合、"bl"、"black"、"blob" などが合致します)。
      459. ? は単一文字に使用可能です (例: "h?t" を検索した場合、"hot"、"hit" などが合致します)。
      460. フラグは組み合わせることができます。 例: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
        `vk find order by columns`検索がカラムごとに実行されます。 カラムの各行が検索されたあとに次のカラムへと移動します。
        `vk find order by rows`検索が行ごとに実行されます。 行の各カラムが検索されたあとに次の行へと移動します (デフォルト)。
        | +| flags | Integer |
        `vk find flag exact match`セルの中身全体が検索値と完全に一致する必要があります
        `vk find flag ignore case`文字の大小は区別されません。 例: "a" と "A" は同じとみなされます。
        `vk find flag none`検索フラグは指定されていません(デフォルト)
        `vk find flag use wild cards`検索文字列においてワイルドカード文字(\*,?)を使用 を使用できます。 ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません:
      461. \* は 0 から複数文字に使用可能です (例: "bl*" を検索した場合、"bl"、"black"、"blob" などが合致します)。
      462. ? は単一文字に使用可能です (例: "h?t" を検索した場合、"hot"、"hit" などが合致します)。
      463. フラグは組み合わせることができます。 例: $search.flags:=vk find flag use wild cards+vk find flag ignore case | +| order | Integer |
        `vk find order by columns`検索がカラムごとに実行されます。 カラムの各行が検索されたあとに次のカラムへと移動します。
        `vk find order by rows`検索は行ごとに実行されます。 行の各カラムが検索されたあとに次の行へと移動します (デフォルト)。
        | | target | Integer |
        `vk find target formula`セルフォーミュラ内で検索がおこなわれます。
        `vk find target tag`セルタグ内で検索がおこなわれます。
        `vk find target text`セルテキスト内で検索がおこなわれます (デフォルト)。

        フラグは組み合わせることができます。 例:$search.target:=vk find target formula+vk find target text

        | 任意の *replaceValue* 引数として、*rangeObj* 内で見つかった *searchValue* の値のテキストを置換するテキストを渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index 5d069870ab5a4e..d2178137e0151b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -43,33 +43,33 @@ title: VP IMPORT DOCUMENT 任意の *paramObj* 引数を渡すことで、読み込まれるドキュメントのプロパティを定義することができます: -| 引数 | | 型 | 説明 | -| ------------ | ------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。 [`Formula`](../../commands/formula.md) コマンドの戻り値フォーミュラを使用する必要があります。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | -| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されているパスワード。 | -| csvOptions | | object | CSV読み込みのオプション | -| | range | object | 書き出されるデータの、最初のセルを格納しているセルレンジ。 指定されたレンジがセルレンジではない場合、レンジの最初のセルが使用されます。 | -| | rowDelimiter | text | 行の区切り文字。 渡されなかった場合、区切り文字は 4D によって自動的に定義されます。 | -| | columnDelimiter | text | カラムの区切り文字。 デフォルト: "," | -| sjsOptions | | object | sjs 読み込みのオプション | -| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | -| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | -| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | -| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | -| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | -| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| | openMode | integer |
      464. 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。 ファイルを開くと、特定の時点で UI と UIイベントが更新され、応答します。
      465. 1 (lazy): レイジー (遅延) オープンモード。 ファイルを開くと、アクティブなシートだけが直接読み込まれます。 ファイルを開くと、アクティブなシートだけが直接読み込まれます。 他のシートは使用された場合にのみ読み込まれます。
      466. 2 (incremental): インクリメンタル (増分) オープンモード。 ファイルを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。
      467. | -| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | -| | includeStyles | boolean | Whether to include the style when importing, default true. | -| | includeFormulas | boolean | Whether to include the formula when importing, default true. | -| | frozenColumnsAsRowHeaders | boolean | Whether to treat the frozen columns as row headers when importing, default false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | -| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | -| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | -| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | -| | includeUnusedStyles | boolean | Whether to include the unused name style when converting excel xml to the json, default true. | -| | password | text | The password to open the workbook. | -| | openMode | text | The open mode of normal, lazy and incremental. By default is normal. | +| 引数 | | 型 | 説明 | +| ------------ | ------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。 [`Formula`](../../commands/formula.md) コマンドの戻り値フォーミュラを使用する必要があります。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されているパスワード。 | +| csvOptions | | object | CSV読み込みのオプション | +| | range | object | 書き出されるデータの、最初のセルを格納しているセルレンジ。 指定されたレンジがセルレンジではない場合、レンジの最初のセルが使用されます。 | +| | rowDelimiter | text | 行の区切り文字。 渡されなかった場合、区切り文字は 4D によって自動的に定義されます。 | +| | columnDelimiter | text | カラムの区切り文字。 デフォルト: "," | +| sjsOptions | | object | sjs 読み込みのオプション | +| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | +| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | +| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | +| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | +| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | +| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| | openMode | integer |
      468. 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。 ファイルを開くと、特定の時点で UI と UIイベントが更新され、応答します。
      469. 1 (lazy): レイジー (遅延) オープンモード。 ファイルを開くと、アクティブなシートだけが直接読み込まれます。 他のシートは使用された場合にのみ読み込まれます。
      470. 2 (incremental): インクリメンタル (増分) オープンモード。 ファイルを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。
      471. | +| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | +| | includeStyles | boolean | Whether to include the style when importing, default true. | +| | includeFormulas | boolean | Whether to include the formula when importing, default true. | +| | frozenColumnsAsRowHeaders | boolean | Whether to treat the frozen columns as row headers when importing, default false. | +| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | +| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | +| | dynamicReferences | boolean | Whether to calculate functions with dynamic reference, default true. | +| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | +| | includeUnusedStyles | boolean | Whether to include the unused name style when converting excel xml to the json, default true. | +| | password | text | The password to open the workbook. | +| | openMode | text | The open mode of normal, lazy and incremental. By default is normal. | :::note 注記 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md index b60aa5046e33ff..731d78f1d33f84 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ title: VP MOVE CELLS *options* は、複数のプロパティを持ちます: -| プロパティ | 型 | 説明 | -| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *originRange* のセルの値・書式・フォーミュラをコマンド実行後に削除するかどうかを指定します:
        • 削除するには *false* (デフォルト)。
        • 保持するには *true*。
        | -| pasteOptions | Integer | ペーストする内容を指定します。 とりうる値:

        説明
        `vk clipboard options all` (デフォルト)値・フォーマット・フォーミュラを含むすべてのデータオブジェクトをペーストします。
        `vk clipboard options formatting`フォーマットだけをペーストします。
        `vk clipboard options formulas`フォーミュラだけをペーストします。
        `vk clipboard options formulas and formatting`フォーミュラとフォーマットをペーストします。
        `vk clipboard options values`値だけをペーストします。
        `vk clipboard options value and formatting`値とフォーマットをペーストします。

        | +| プロパティ | 型 | 説明 | +| ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | *originRange* のセルの値・書式・フォーミュラをコマンド実行後に削除するかどうかを指定します:
        • 削除するには *false* (デフォルト)。
        • 保持するには *true*。
        | +| pasteOptions | Integer | ペーストする内容を指定します。 取り得る値:

        詳細
        `vk clipboard options all` (デフォルト)値、書式、数式を含め、全てのデータオブジェクトをペーストします。
        `vk clipboard options formatting`書式のみをペーストします。
        `vk clipboard options formulas`数式のみをペーストします。
        `vk clipboard options formulas and formatting`数式と書式をコピーします。
        `vk clipboard options values`値のみをペーストします。
        `vk clipboard options value and formatting`値と書式をペーストします。

        | [ワークブックオプション](vp-set-workbook-options.md) で定義されている貼り付けオプションが考慮されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md index 36566919d9dbcf..a0a7967066cd84 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-data-context.md @@ -42,10 +42,10 @@ title: VP SET DATA CONTEXT *options* には、追加のオプションを格納したオブジェクトを渡せます。 利用可能なプロパティは次のとおりです: -| プロパティ | 型 | 説明 | -| ------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| reset | Object | 新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト) | -| autoGenerateColumns | Object | コレクション型のデータの場合にのみ使用します。 データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。 この場合、次のルールが適用されます:
        • *dataColl* がオブジェクトのコレクションの場合、属性名はカラムのタイトルとして使用されます (例題 2 参照)。
        • *dataColl* がスカラー値のサブコレクションを含む場合、各サブコレクションは一つの行の値を定義します (例題 3 参照)。 最初のサブコレクションにより、生成されるカラム数が決定します。
        | +| プロパティ | 型 | 説明 | +| ------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| reset | Object | 新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト) | +| autoGenerateColumns | Object | コレクション型のデータの場合にのみ使用します。 データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。 この場合、以下のルールが適用されます:
        • If *dataColl* がオブジェクトのコレクションである場合、属性名がカラムのタイトルとして使用されます(例題2 を参照)。
        • *dataColl* がスカラー値のサブコレクションを格納している場合、各サブコレクションは一つの行の値を定義します (例題3 参照)。 最初のサブコレクションにより、生成されるカラム数が決定します。
        | *sheet* には、データコンテキストを受け取るシートのインデックスを渡します。 インデックスを渡さなかった場合、コンテキストはカレントシートに対して適用されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-show-print-lines.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-show-print-lines.md index 39fe5f6b0ff3cd..2657e9dbfee53e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-show-print-lines.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-show-print-lines.md @@ -17,7 +17,7 @@ title: VP SET SHOW PRINT LINES ## 説明 -`VP SET SHOW PRINT LINES` コマンドは、 スプレッドシート内で印刷プレビュー線を表示するかどうかを設定します。 +`VP SET SHOW PRINT LINES` コマンドは、スプレッドシート内で印刷プレビュー線を表示するかどうかを設定します。。 *vpAreaName* には、4D View Pro エリアの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index a8d88482966a5d..4ee5c786941f9d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -28,66 +28,66 @@ title: VP SET WORKBOOK OPTIONS 次の表は、利用可能なワークブックオプションの一覧です: -| プロパティ | 型 | 説明 | -| ------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowUserDragMerge | boolean | ドラッグ&マージオプションを許可します (複数セルを選択し、選択をドラッグしてセルを結合します) | -| allowAutoCreateHyperlink | boolean | スプレッドシート内でハイパーリンクの自動作成を有効にします。 | -| allowContextMenu | boolean | ビルトインのコンテキストメニューの使用を許可します。 | -| allowCopyPasteExcelStyle | boolean | スプレッドシートのスタイルを Excel にコピー&ペーストすることを許可します (逆も可)。 | -| allowDynamicArray | boolean | ワークシート内で動的配列を有効にします。 | -| allowExtendPasteRange | boolean | 貼り付けデータが貼り付け先の範囲に収まりきらない場合に、貼り付け先の範囲を拡張します。 | -| allowSheetReorder | boolean | シートの順序変更を許可します。 | -| allowUndo | boolean | 編集を元に戻す操作を許可します。 | -| allowUserDeselect | boolean | 選択範囲から特定のセルを除外することを許可します。 | -| allowUserDragDrop | boolean | レンジデータのドラッグ&ドロップを許可します。 | -| allowUserDragFill | boolean | ドラッグ&フィルを許可します。 | -| allowUserEditFormula | boolean | セルへのフォーミュラの入力を許可します。 | -| allowUserResize | boolean | カラムと行のリサイズを許可します。 | -| allowUserZoom | boolean | ズームを許可します (Ctrl + マウスホイール)。 | -| autoFitType | number | セル内やヘッダー内に収まるよう、内容をフォーマットします。 使用可能な値:
        定数説明
        vk auto fit type cell 0 内容をセル内に収めます。
        vk auto fit type cell with header 1 内容をセル内・ヘッダー内に収めます。
        | -| backColor | string | エリアの背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 backgroundImage を設定している場合、背景色は非表示になります。 | -| backgroundImage | string / picture / file | エリアの背景画像。 | -| backgroundImageLayout | number | 背景画像のレイアウト。 使用可能な値:
        定数説明
        vk image layout center 1 エリアの中央に表示。
        vk image layout none 3 エリアの左上に元のサイズで表示。
        vk image layout stretch 0 エリアを埋めるように拡大表示。
        vk image layout zoom 2 アスペクト比を維持して表示。
        | -| calcOnDemand | boolean | 要求されたときのみフォーミュラを計算します。 | -| columnResizeMode | number | カラムのリサイズモード。 使用可能な値:
        定数説明
        vk resize mode normal 0 通常のリサイズモード (残りのカラムに影響します)
        vk resize mode split 1 split モード (残りのカラムに影響しません)
        | -| copyPasteHeaderOptions | number | データのコピー/ペースト時に含めるヘッダーについて指定します。 使用可能な値:
        定数説明
        vk copy paste header options all headers3 データのコピー時: 選択ヘッダーを含めます。データのペースト時: 選択ヘッダーを上書きします。
        vk copy paste header options column headers 2 データのコピー時: 選択されたカラムヘッダーを含めます。データのペースト時: 選択されたカラムヘッダーを上書きします。
        vk copy paste header options no headers0 データのコピー時: ヘッダーを含めません。データのペースト時: ヘッダーを上書きしません。
        vk copy paste header options row headers1 データのコピー時: 選択された行ヘッダーを含めます。データのペースト時: 選択された行ヘッダーを上書きします。
        | -| customList | collection | ドラッグ&フィルをカスタマイズするためのリストです。フィルの際には、このリストに合致する値が入力されます。 各コレクション要素は、文字列のコレクションです。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists) 参照。 | -| cutCopyIndicatorBorderColor | string | ユーザーが選択をカットまたはコピーしたときの領域の境界色。 | -| cutCopyIndicatorVisible | boolean | コピーまたはカットされた際の領域を表示します。 | -| defaultDragFillType | number | デフォルトのドラッグ&フィルタイプ。 使用可能な値 :
        定数説明
        vk auto fill type auto 5 自動でセルをフィルします。
        vk auto fill type clear values 4 セルの値をクリアします。
        vk auto fill type copycells 0 値・フォーマット・フォーミュラを含むすべてのデータオブジェクトでセルをフィルします。
        vk auto fill type fill formatting only 2 フォーマットのみでセルをフィルします。
        vk auto fill type fill series 1 連続データでフィルします。
        vk auto fill type fill without formatting 3 値のみでセルをフィルします (フォーマットは除外)。
        | -| enableAccessibility | boolean | スプレッドシートにおけるアクセシビリティのサポートを有効にします。 | -| enableFormulaTextbox | boolean | フォーミュラテキストボックスを有効化します。 | -| grayAreaBackColor | string | グレー領域の背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 | -| highlightInvalidData | boolean | 無効なデータをハイライト表示します。 | -| iterativeCalculation | boolean | 反復計算を有効にします。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative) 参照。 | -| iterativeCalculationMaximumChange | numeric | 2つの計算値の最大差。 | -| iterativeCalculationMaximumIterations | numeric | フォーミュラが反復計算される最大回数。 | -| newTabVisible | boolean | 新規シートを挿入するための特別なタブを表示します。 | -| numbersFitMode | number | 日付/数値データがカラム幅を超える場合の表示モード。 使用可能な値:
        定数説明
        vk numbers fit mode mask0 データの中身を "###" で置き換え、Tipを表示します。
        vk numbers fit mode overflow 1 データの中身を文字列として表示します。 隣のセルが空であれば、はみ出して表示します。
        | -| pasteSkipInvisibleRange | boolean | 非表示のレンジへの貼り付けについて指定します。
        • False (デフォルト): データを貼り付けます。
        • True: 非表示のレンジはスキップします。
        非表示のレンジについての詳細は [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) を参照ください。 | -| referenceStyle | number | セルフォーミュラにおける、セルやレンジ参照のスタイル。 使用可能な値:
        定数説明
        vk reference style A1 0 A1 スタイルを使用します。
        vk reference style R1C1 1 R1C1 スタイルを使用します。
        | -| resizeZeroIndicator | number | 行やカラムのサイズが 0 に変更されたときの描画ポリシー。 使用可能な値:
        定数説明
        vk resize zero indicator default 0 行やカラムのサイズが 0 に変更されたときに、現在の描画ポリシーを使用します。
        vk resize zero indicator enhanced 1 行やカラムのサイズが 0 に変更されたときに、2本の短い線を描画します。
        | -| rowResizeMode | number | 行のリサイズモード。 使用可能な値は columnResizeMode と同じです。 | -| scrollbarAppearance | number | スクロールバーの見た目。 使用可能な値:
        定数説明
        vk scrollbar appearance mobile1 モバイル風のスクロールバー。
        vk scrollbar appearance skin (デフォルト)0 Excel風のクラシックなスクロールバー。
        | -| scrollbarMaxAlign | boolean | スクロールバーをアクティブシートの最後の行およびカラムに揃えます。 | -| scrollbarShowMax | boolean | シートのカラムと行の総数に基づいてスクロールバーを表示します。 | -| scrollByPixel | boolean | ピクセル単位のスクロールを有効にします。 | -| scrollIgnoreHidden | boolean | スクロールバーは非表示の行やカラムを無視します。 | -| scrollPixel | integer | scrollByPixel が true の場合、スクロール毎のピクセル数を指定します。 最終的にスクロールするピクセル数は `scrolling delta (スクロールの相対変化値) * scrollPixel` によって算出されます。 例: scrolling delta が 3、scrollPixel が 5 の場合、最終的なスクロールピクセル数は 15 です。 | -| showDragDropTip | boolean | ドラッグ&ドロップの Tip を表示します。 | -| showDragFillSmartTag | boolean | ドラッグ&フィルダイアログを表示します。 | -| showDragFillTip | boolean | ドラッグ&フィルの Tip を表示します。 | -| showHorizontalScrollbar | boolean | 横スクロールバーを表示します。 | -| showResizeTip | number | リサイズ Tip の表示を指定します。 使用可能な値:
        定数説明
        vk show resize tip both 3 縦と横のリサイズ Tip が表示されます。
        vk show resize tip column 1 横のリサイズ Tip のみ表示されます。
        vk show resize tip none 0 リサイズ Tip は表示されません。
        vk show resize tip row 2 縦のリサイズ Tip のみ表示されます。
        | -| showScrollTip | number | スクロール Tip の表示を指定します。 使用可能な値:
        定数説明
        vk show scroll tip both 3 縦と横のスクロール Tip が表示されます。
        vk show scroll tip horizontal 1 横のスクロール Tip のみ表示されます。
        vk show scroll tip none スクロール Tip は表示されません。
        vk show scroll tip vertical 2 縦のスクロール Tip のみ表示されます。
        | -| showVerticalScrollbar | boolean | 縦スクロールバーを表示します。 | -| tabEditable | boolean | タブストリップの編集を有効にします。 | -| tabNavigationVisible | boolean | タブナビゲーションを表示します。 | -| tabStripPosition | number | タブストリップの位置を指定します。 使用可能な値:
        定数説明
        vk tab strip position bottom 0 タブストリップはワークブックの下側に位置します。
        vk tab strip position left 2 タブストリップはワークブックの左側に位置します。
        vk tab strip position right 3 タブストリップはワークブックの右側に位置します。
        vk tab strip position top 1 タブストリップはワークブックの上側に位置します。
        | -| tabStripRatio | number | スプレッドシートエリアの幅において、タブストリップが占める割合を指定します (0.x)。 残るスペース (1 - 0.x) には横スクロールバーが表示されます。 | -| tabStripVisible | boolean | タブストリップを表示します。 | -| tabStripWidth | number | タブストリップの位置が左側/右側の場合に、その幅を指定します。 デフォルト値は最小値の 80 です。 | -| useTouchLayout | boolean | Spreadコンポーネントを提示するのにタッチレイアウトを使用するかどうかを指定します。 | +| プロパティ | 型 | 説明 | +| ------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | ドラッグ&マージオプションを許可します (複数セルを選択し、選択をドラッグしてセルを結合します) | +| allowAutoCreateHyperlink | boolean | スプレッドシート内でハイパーリンクの自動作成を有効にします。 | +| allowContextMenu | boolean | ビルトインのコンテキストメニューの使用を許可します。 | +| allowCopyPasteExcelStyle | boolean | スプレッドシートのスタイルを Excel にコピー&ペーストすることを許可します (逆も可)。 | +| allowDynamicArray | boolean | ワークシート内で動的配列を有効にします。 | +| allowExtendPasteRange | boolean | 貼り付けデータが貼り付け先の範囲に収まりきらない場合に、貼り付け先の範囲を拡張します。 | +| allowSheetReorder | boolean | シートの順序変更を許可します。 | +| allowUndo | boolean | 編集を元に戻す操作を許可します。 | +| allowUserDeselect | boolean | 選択範囲から特定のセルを除外することを許可します。 | +| allowUserDragDrop | boolean | レンジデータのドラッグ&ドロップを許可します。 | +| allowUserDragFill | boolean | ドラッグ&フィルを許可します。 | +| allowUserEditFormula | boolean | セルへのフォーミュラの入力を許可します。 | +| allowUserResize | boolean | カラムと行のリサイズを許可します。 | +| allowUserZoom | boolean | ズームを許可します (Ctrl + マウスホイール)。 | +| autoFitType | number | セル内やヘッダー内に収まるよう、内容をフォーマットします。 使用可能な値:
        定数説明
        vk auto fit type cell 0 内容をセル内に収めます。
        vk auto fit type cell with header 1 内容をセル内・ヘッダー内に収めます。
        | +| backColor | string | エリアの背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 backgroundImage を設定している場合、背景色は非表示になります。 | +| backgroundImage | string / picture / file | エリアの背景画像。 | +| backgroundImageLayout | number | 背景画像のレイアウト。 利用可能な値:
        定数詳細
        vk image layout center 1エリアの中心に配置。
        vk image layout none 3エリアの左上端にオリジナルのサイズで配置。
        vk image layout stretch 0エリアを埋めるように配置。
        vk image layout zoom 2元々のアスペクト比で表示。
        | +| calcOnDemand | boolean | 要求されたときのみフォーミュラを計算します。 | +| columnResizeMode | number | カラムのリサイズモード。 使用可能な値:
        定数説明
        vk resize mode normal 0 通常のリサイズモード (残りのカラムに影響します)
        vk resize mode split 1 split モード (残りのカラムに影響しません)
        | +| copyPasteHeaderOptions | number | データのコピー/ペースト時に含めるヘッダーについて指定します。 利用可能な値:
        定数詳細
        vk copy paste header options all headers3データがコピーされる際に選択されたヘッダーを含み、データがペーストされるときに選択されたヘッダーを上書きする。
        vk copy paste header options column headers 2データがコピーされる際に選択されたカラムヘッダーを含み、データがペーストされるときに選択されたカラムヘッダを上書きする。
        vk copy paste header options no headers0データがコピーされる際にカラム及び行ヘッダーは含まれず、データがペーストされるときにカラムおよび行ヘッダーは上書きされません。
        vk copy paste header options row headers1データがコピーされる際に選択された行ヘッダーを含み、データがペーストされる際に選択された行ヘッダーを上書きします。
        | +| customList | collection | ドラッグ&フィルをカスタマイズするためのリストです。フィルの際には、このリストに合致する値が入力されます。 各コレクション要素は、文字列のコレクションです。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists) 参照。 | +| cutCopyIndicatorBorderColor | string | ユーザーが選択をカットまたはコピーしたときの領域の境界色。 | +| cutCopyIndicatorVisible | boolean | コピーまたはカットされた際の領域を表示します。 | +| defaultDragFillType | number | デフォルトのドラッグ&フィルタイプ。 使用可能な値 :
        定数説明
        vk auto fill type auto 5 自動でセルをフィルします。
        vk auto fill type clear values 4セルの値をクリアします。
        vk auto fill type copycells 0値、書式、数式を含め、全てのデータオブジェクトでセルを埋めます。
        vk auto fill type fill formatting only 2書式のみをセルにフィルします。
        vk auto fill type fill series 1 セルを系列で埋めます。
        vk auto fill type fill without formatting 3 値のみでセルをフィルします (フォーマットは除外)。
        | +| enableAccessibility | boolean | スプレッドシートにおけるアクセシビリティのサポートを有効にします。 | +| enableFormulaTextbox | boolean | フォーミュラテキストボックスを有効化します。 | +| grayAreaBackColor | string | グレー領域の背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 | +| highlightInvalidData | boolean | 無効なデータをハイライト表示します。 | +| iterativeCalculation | boolean | 反復計算を有効にします。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative) 参照。 | +| iterativeCalculationMaximumChange | numeric | 2つの計算値の最大差。 | +| iterativeCalculationMaximumIterations | numeric | フォーミュラが反復計算される最大回数。 | +| newTabVisible | boolean | 新規シートを挿入するための特別なタブを表示します。 | +| numbersFitMode | number | 日付/数値データがカラム幅を超える場合の表示モード。 使用可能な値:
        定数説明
        vk numbers fit mode mask0 データの中身を "###" で置き換え、Tipを表示します。
        vk numbers fit mode overflow 1 データの中身を文字列として表示します。 隣のセルが空であれば、はみ出して表示します。
        | +| pasteSkipInvisibleRange | boolean | 非表示のレンジへの貼り付けについて指定します。
        • False (デフォルト): データを貼り付けます。
        • True: 非表示のレンジはスキップします。
        非表示のレンジについての詳細は [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) を参照ください。 | +| referenceStyle | number | セルフォーミュラにおける、セルやレンジ参照のスタイル。 利用可能な値:
        定数詳細
        vk reference style A1 0A1 スタイルを使用。
        vk reference style R1C1 1R1C1 スタイルを使用。
        | +| resizeZeroIndicator | number | 行やカラムのサイズが 0 に変更されたときの描画ポリシー。 利用可能な値:
        定数詳細
        vk resize zero indicator default 0行またはカラムがゼロにリサイズされた際には現在の描画ポリシーを使用します。
        vk resize zero indicator enhanced 1行またはカラムがゼロにリサイズされた際には2本の短い線を描画します。
        | +| rowResizeMode | number | 行のリサイズモード。 使用可能な値は columnResizeMode と同じです。 | +| scrollbarAppearance | number | スクロールバーの見た目。 利用可能な値:
        定数詳細
        vk scrollbar appearance mobile1 モバイルのスクロールバーの見た目。
        vk scrollbar appearance skin (デフォルト)0Excel 風のクラシックなスクロールバーの見た目。
        | +| scrollbarMaxAlign | boolean | スクロールバーをアクティブシートの最後の行およびカラムに揃えます。 | +| scrollbarShowMax | boolean | シートのカラムと行の総数に基づいてスクロールバーを表示します。 | +| scrollByPixel | boolean | ピクセル単位のスクロールを有効にします。 | +| scrollIgnoreHidden | boolean | スクロールバーは非表示の行やカラムを無視します。 | +| scrollPixel | integer | scrollByPixel が true の場合、スクロール毎のピクセル数を指定します。 最終的にスクロールするピクセル数は `scrolling delta (スクロールの相対変化値) * scrollPixel` によって算出されます。 例: scrolling delta が 3、scrollPixel が 5 の場合、最終的なスクロールピクセル数は 15 です。 | +| showDragDropTip | boolean | ドラッグ&ドロップの Tip を表示します。 | +| showDragFillSmartTag | boolean | ドラッグ&フィルダイアログを表示します。 | +| showDragFillTip | boolean | ドラッグ&フィルの Tip を表示します。 | +| showHorizontalScrollbar | boolean | 横スクロールバーを表示します。 | +| showResizeTip | number | リサイズ Tip の表示を指定します。 利用可能な値:
        定数詳細
        vk show resize tip both 3水平方向と垂直方向のリサイズTips が表示されます。
        vk show resize tip column 1水平方向のリサイズ Tips のみ表示されます。
        vk show resize tip none 0リサイズTips は表示されません。
        vk show resize tip row 2垂直方向のリサイズTips のみ表示されます。
        | +| showScrollTip | number | スクロール Tip の表示を指定します。 利用可能な値:
        定数詳細
        vk show scroll tip both 3水平方向と垂直方向のスクロールTips が表示されます。
        vk show scroll tip horizontal 1水平方向のスクロールTips のみが表示されます。
        vk show scroll tip none スクロールTips は表示されません。
        vk show scroll tip vertical 2垂直方向のスクロールTips のみが表示されます。
        | +| showVerticalScrollbar | boolean | 縦スクロールバーを表示します。 | +| tabEditable | boolean | タブストリップの編集を有効にします。 | +| tabNavigationVisible | boolean | タブナビゲーションを表示します。 | +| tabStripPosition | number | タブストリップの位置を指定します。 利用可能な値:
        定数詳細
        vk tab strip position bottom 0タブストリップの位置は、ワークブックの下に対しての相対位置となります。
        vk tab strip position left 2タブストリップの位置は、ワークブックの左に対しての相対位置となります。
        vk tab strip position right 3タブストリップの位置は、ワークブックの右に対しての相対位置となります。
        vk tab strip position top 1タブストリップの一は、ワークブックの上に対しての相対位置となります。
        | +| tabStripRatio | number | スプレッドシートエリアの幅において、タブストリップが占める割合を指定します (0.x)。 残るスペース (1 - 0.x) には横スクロールバーが表示されます。 | +| tabStripVisible | boolean | タブストリップを表示します。 | +| tabStripWidth | number | タブストリップの位置が左側/右側の場合に、その幅を指定します。 デフォルト値は最小値の 80 です。 | +| useTouchLayout | boolean | Spreadコンポーネントを提示するのにタッチレイアウトを使用するかどうかを指定します。 | ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index d857bb23d70623..6f6e8aacb4e491 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "日付", -- "Content-Length" +| Header | 追加 | Set | Reduce | +| ---------------- | -- | ---------- | ------ | +| Date | × | × | × | +| Content-Length | × | × | × | +| Content-Encoding | × | × | × | +| Vary | ◯ | × | × | +| Set-Cookie | ◯ | Add cookie | × | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 17c2d431301349..858d01afba03f5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -138,8 +138,8 @@ Qodlyページを利用した Webアプリケーションを開発するには | デバッガー | 4D IDE デバッガー
        *4D Serverのみ*: Qodly Studio デバッガー ([この段落](#4d-server-で-qodlyデバッガーを使用する) を参照ください) | Qodly Studio デバッガー | | REST/Web ロールとアクセス権 | roles.json の直接編集 / Qodly Studio ロールとアクセス権エディター | Qodly Studio ロールとアクセス権エディター | -(1) Qodly Studioでは **Model** 項目は無効化されています。
        -(2) 4D Serverでは、Qodly Studio のコードエディターで 4Dコードを開くことができます (**テストおよびデバッグ目的のみ**。[この段落](#開発と運用) を参照ください) 4Dシングルユーザーの場合、Qodly Studio で 4Dコードを開くと、シンタックスの配色がサポートされておらず、"Lsp not loaded" という警告が表示されます。 +(1) **Model** の項目はQodly Studio では無効化されています。
        +(2) 4D Server では、Qodly Studio で4D コードを開くことは、**テストおよびデバッグ目的のため** にサポートされています([こちらの段落](#開発と運用) をご覧ください)。 4Dシングルユーザーの場合、Qodly Studio で 4Dコードを開くと、シンタックスの配色がサポートされておらず、"Lsp not loaded" という警告が表示されます。 ### ランゲージ @@ -235,7 +235,7 @@ Qodly Studio デバッガーを実行中の 4D Server アプリケーション ::: -2. Qodly Studio のツールバーで、**Debug** ボタンをクリックします。
        +2. Qoldy Studio ツールバー内において、**Debug** ボタンをクリックします。
        ![qodly-debug](../assets/en/WebServer/qodly-debug.png) デバッグセッションが正常に開始されると、ボタンラベルに緑色の丸が表示され ![qodly-debug](../assets/en/WebServer/debug2.png) 、Qodly Studio デバッガーを使用できるようになります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index aef3a4ae864205..aec14fa9fb346b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -201,7 +201,7 @@ Else End if ``` -:::note +:::tips 関連したblog 記事 [高度な Webアプリケーションに対応したスケーラブルセッション](https://blog.4d.com/ja/scalable-sessions-for-advanced-web-applications/) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index 020a8dc923f782..ab699f1c9596ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -629,7 +629,8 @@ This option allows you to designate a user, previously defined in the [4D passwo Keep-Alive接続を設定する 2つのオプションがあります: -- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

        4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

        +- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

        + 4D Webサーバーをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。

        - **タイムアウト**: この値を使用して、Webブラウザーからリクエストがおこなわれない状態で、Webサーバーが開かれた接続を保守する最大の待ち秒数を設定します。 この秒数が経過すると、サーバーは接続を閉じます。

        接続が閉じられた後に Webブラウザーがリクエストを送信すると、新しい TCP接続が作成されます。 この動作はユーザーからは見えません。

        diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md index e25a76d713e869..2f1e46a91dbe29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## 説明 -**WP Add picture** コマンドは、 引数として渡されたピクチャーを*wpDoc* 引数で指定したドキュメント内での固定された場所にアンカーし、その参照を返します。 返された参照は、 [WP SET ATTRIBUTES](wp-set-attributes.md) コマンドへと渡すことで*wpDoc* 引数で指定したドキュメント内の(ページ、セクション、ヘッダー、フッター等の)任意の位置へと移動させることができます。 レイヤーやサイズなども指定可能です。 +**WP Add picture** コマンドは、引数として渡されたピクチャーを、*wpDoc* 引数で指定されたドキュメント内の固定された位置にアンカーし、その参照を返します。 その返された参照は、[WP SET ATTRIBUTES](wp-set-attributes.md) コマンドに渡すことによって *wpDoc* (ページ、セクション、ヘッダー、フッター、他)引数内の任意の位置にピクチャーを移動させることができます。 レイヤーやサイズなども指定可能です。 *wpDoc* 引数には、4D Write Pro ドキュメントオブジェクトを渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md index fd9e6d6d78da8e..53188bb1383cf8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md @@ -52,25 +52,25 @@ displayed_sidebar: docs *option* 引数には、書き出されるドキュメントのプロパティを定義する値を格納している[オブジェクト](# "ネイティブな4D オブジェクトとして構築されたデータ") を渡します。 次のプロパティを利用することができます: 次のプロパティを利用することができます: 次のプロパティを利用することができます: -| 定数 | 値 | 説明 | -| ------------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 wk mime html フォーマットが使用されている際にのみ使用可能です。 Available only when the `wk mime html` format is used. | -| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 Available values:
      472. true (default): Pictures are embedded in the exported .svg file
      473. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      474. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | PDF 書き出しのみ。 Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](#wk-factur-x-object)). | -| wk files | files | PDF 書き出しのみ。 Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](#wk-files-collection)). This feature is only supported in PDF/A-3 documents: when the `wk files` attribute is used, the "PDF/A-3" version is automatically set (the `wk pdfa version` attribute is ignored). Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | -| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
      475. false (デフォルト): google フォントの読み込みルールは何も追加されていません。
      476. true: @import ルールを下記出されたファイルに追加します。 Useful if you want to use fonts that are not available by default on Windows or macOS.
      477. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | -| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | -| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
      478. `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      479. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). If a picture contains more than one format, the format for screen rendering is used.
      480. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | SVG書き出し専用。 SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | -| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 Possible values:
      481. `wk pdfa2`: Exports to version "PDF/A-2"
      482. `wk pdfa3`: Exports to version "PDF/A-3"
      483. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | -| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 Possible values:
      484. true - Default value. All formulas are recomputed
      485. false - Do not recompute formulas
      486. | -| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | -| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False. 取り得る値: True/False. デフォルト値: True 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | -| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False | -| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | -| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | +| 定数 | 値 | 説明 | +| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 wk mime html フォーマットが使用されている際にのみ使用可能です。 Available only when the `wk mime html` format is used. | +| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 Available values:
      487. true (default): Pictures are embedded in the exported .svg file
      488. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. ピクチャーは埋め込まれませんが、.svg ファイルから参照されます。
      489. 注意: フォルダが既に存在する場合、ファイルが書き出される前にそのフォルダは空にされます。 If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | PDF 書き出しのみ。 Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](#wk-factur-x-object)). | +| wk files | files | PDF 書き出しのみ。 Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](#wk-files-collection)). This feature is only supported in PDF/A-3 documents: when the `wk files` attribute is used, the "PDF/A-3" version is automatically set (the `wk pdfa version` attribute is ignored). Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | +| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
      490. false (デフォルト): Google フォントの読み込みルールは何も追加されません。
      491. true: 書き出されたファイルに@import ルールを追加します。 Windows またはmacOS において利用できないフォントを使用したい場合に有用です。
      492. **注意:** このプロパティはデフォルトではFalse に設定されています。なぜなら読み込まれたGoogle フォントはネイティブのフォントを上書きしますが、一般的にはネイティブのフォントはブラウザ上で綺麗にレンダリングされるからです。 | +| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | +| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | +| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
      493. `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      494. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). 画像に複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
      495. **注意:** `wk docx` フォーマットで書き出されたドキュメントは、常にwk print 用に最適化されています(wk optimized for オプションは無視されます)。 | +| wk page index | pageIndex | SVG書き出し専用。 SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | +| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 Possible values:
      496. `wk pdfa2`: Exports to version "PDF/A-2"
      497. `wk pdfa3`: Exports to version "PDF/A-3"
      498. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | +| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 Possible values:
      499. true - Default value. All formulas are recomputed
      500. false - Do not recompute formulas
      501. | +| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | +| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False. 取り得る値: True/False. デフォルト値: True 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | +| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False | +| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | +| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | 以下の表は*format* 引数の各フォーマットごとに利用可能な*option* 引数のオプションをあらわしています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 4817ba6934cdb2..0832de95bfc83d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -52,25 +52,25 @@ In the *format* parameter, pass a constant from the *4D Write Pro Constants* the *option* 引数には、書き出されるドキュメントのプロパティを定義する値を格納している[オブジェクト](# "ネイティブな4D オブジェクトとして構築されたデータ") を渡します。 次のプロパティを利用することができます: 次のプロパティを利用することができます: 次のプロパティを利用することができます: -| 定数 | 値 | 説明 | -| ------------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 wk mime html フォーマットが使用されている際にのみ使用可能です。 Available only when the `wk mime html` format is used. | -| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 Available values:
      502. true (default): Pictures are embedded in the exported .svg file
      503. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      504. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | PDF 書き出しのみ。 Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | -| wk files | files | PDF 書き出しのみ。 Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](./wp-export-document.md#wk-files-collection)). This feature is only supported in PDF/A-3 documents: when the `wk files` attribute is used, the "PDF/A-3" version is automatically set (the `wk pdfa version` attribute is ignored). Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | -| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
      505. false (デフォルト): google フォントの読み込みルールは何も追加されていません。
      506. true: @import ルールを下記出されたファイルに追加します。 Useful if you want to use fonts that are not available by default on Windows or macOS.
      507. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | -| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | -| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
      508. `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      509. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). If a picture contains more than one format, the format for screen rendering is used.
      510. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | SVG書き出し専用。 SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | -| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 Possible values:
      511. `wk pdfa2`: Exports to version "PDF/A-2"
      512. `wk pdfa3`: Exports to version "PDF/A-3"
      513. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | -| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 Possible values:
      514. true - Default value. All formulas are recomputed
      515. false - Do not recompute formulas
      516. | -| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | -| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False. 取り得る値: True/False. デフォルト値: True 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | -| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False | -| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | -| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | +| 定数 | 値 | 説明 | +| ------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 wk mime html フォーマットが使用されている際にのみ使用可能です。 Available only when the `wk mime html` format is used. | +| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 Available values:
      517. true (default): Pictures are embedded in the exported .svg file
      518. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. ピクチャーは埋め込まれませんが、.svg ファイルから参照されます。
      519. 注意: フォルダが既に存在する場合、ファイルが書き出される前にそのフォルダは空にされます。 If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | PDF 書き出しのみ。 Value: object configuring a "Factur-X (ZUGFeRD)" PDF export (see [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | +| wk files | files | PDF 書き出しのみ。 Value: collection of objects, each of them describing a file to be embedded in the final document (see [wk files collection](./wp-export-document.md#wk-files-collection)). This feature is only supported in PDF/A-3 documents: when the `wk files` attribute is used, the "PDF/A-3" version is automatically set (the `wk pdfa version` attribute is ignored). Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | +| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
      520. false (デフォルト): Google フォントの読み込みルールは何も追加されません。
      521. true: 書き出されたファイルに@import ルールを追加します。 Windows またはmacOS において利用できないフォントを使用したい場合に有用です。
      522. **注意:** このプロパティはデフォルトではFalse に設定されています。なぜなら読み込まれたGoogle フォントはネイティブのフォントを上書きしますが、一般的にはネイティブのフォントはブラウザ上で綺麗にレンダリングされるからです。 | +| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | +| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | +| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
      523. `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 If a picture contains more than one format, the best format for printing is used (*e.g.*, .tiff instead or .jpg)
      524. `wk screen` (default value for `wk web page complete` and `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Vectorial pictures are converted to PNG using the DPI defined by `wk max picture DPI` or 192 (Windows only). 画像に複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
      525. **注意:** `wk docx` フォーマットで書き出されたドキュメントは、常にwk print 用に最適化されています(wk optimized for オプションは無視されます)。 | +| wk page index | pageIndex | SVG書き出し専用。 SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | +| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 Possible values:
      526. `wk pdfa2`: Exports to version "PDF/A-2"
      527. `wk pdfa3`: Exports to version "PDF/A-3"
      528. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | +| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 Possible values:
      529. true - Default value. All formulas are recomputed
      530. false - Do not recompute formulas
      531. | +| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | +| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False. 取り得る値: True/False. デフォルト値: True 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | +| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False | +| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False 取り得る値: True/False 取り得る値: True/False | +| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | 以下の表は*format* 引数の各フォーマットごとに利用可能な*option* 引数のオプションをあらわしています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md index 00127fc47458f2..b7637d2c7a8b8b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## 説明 -**WP Get attributes** コマンドは、4D Write Proレンジ、ヘッダー/フッター/本文/表、あるいはドキュメント内のあらゆる属性の値を返します。 このコマンドを使用すると4D Write Proのどのような内部属性(文字、段落、ドキュメント、表組み、画像など)にもアクセスすることができます。 +**WP Get attributes** コマンドは、4D Write Pro レンジ、ヘッダー、本文、フッター、表、あるいはドキュメント内の、任意の属性の値を返します。 このコマンドを使用することで、4D Write Pro の次のようなあらゆる内部属性にアクセスすることができます: 文字、段落、ドキュメント、表、画像。 *targetObj* 引数には、以下のいずれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md index 87612c74082c6b..602782c26b45ce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md @@ -21,7 +21,7 @@ displayed_sidebar: docs ## 説明 -**WP Insert picture** コマンドは、指定した挿入モード*mode* とレンジ更新モード*rangeUpdate* に従って、*picture* または*pictureFileObj* のピクチャーを*targetObj* で指定したレンジに挿入し、ピクチャー要素への参照を返します。ピクチャーは文字として*targetObj* に挿入されます。 +**WP Insert picture** コマンドは、指定した挿入モード*mode* とレンジ更新モード*rangeUpdate* に従って、*picture* または*pictureFileObj* のピクチャーを*targetObj* で指定したレンジに挿入し、ピクチャー要素への参照を返します。 ピクチャーは文字として*targetObj* に挿入されます。 *targetObj* 引数には、以下のいずれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md index 368b1df0e0f68d..a12ae76803aa41 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -**WP RESET ATTRIBUTES** コマンドは引数として渡されたレンジ、要素、またはドキュメントの1つ以上の値をリセットすることができます。このコマンドは任意の4D Write Pro 内部属性(文字、段落、ドキュメント、表または画像)を削除することができます。 リセットしたい属性の名前を*attribName* 引数に渡すか、あるいは*attribColl* 引数に属性名のコレクションを渡すことで、複数の属性を一度にリセットすることもできます。 +**WP RESET ATTRIBUTES** コマンドは、 引数として渡されたレンジ、要素、ドキュメント内の一つ以上の属性の値をリセットすることができます。 このコマンドを使用することで、4D Write Pro の次のようなあらゆる内部属性を削除することができます: 文字、段落、ドキュメント、表、画像。 リセットしたい属性の名前を*attribName* 引数に渡すか、あるいは*attribColl* 引数に属性名のコレクションを渡すことで、複数の属性を一度にリセットすることもできます。 > セクションかサブセクションの場合、*sectionOrSubsection* 引数単体を渡すだけで、すべての属性は一度にリセットされます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md index 70c4e79cbb1085..c4458458422cee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## 説明 -**WP SET ATTRIBUTES** コマンドを使うとレンジ、要素、あるいはドキュメントのあらゆる属性の値を設定することができます。このコマンドを使ってあらゆる4D Write Pro内部の属性(文字、段落、ドキュメント、表組、またはピクチャー)にアクセスすることができます。 +**WP SET ATTRIBUTES** コマンドは、引数として渡されたレンジ、要素、ドキュメント内の一つ以上の属性の値を設定することができます。 このコマンドを使用することで、4D Write Pro の次のようなあらゆる内部属性にアクセスすることができます: 文字、段落、ドキュメント、表、画像。 *targetObj* 引数には、以下のいずれかを渡すことができます : diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index e4b0ae78508d88..76d36cac48e48f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -54,22 +54,22 @@ For security reasons, when formulas are pasted from a different 4D application o [WP Insert formula](commands/wp-insert-formula.md) コマンドを使用することで、あらゆるドキュメントエリア(本文、ヘッダー、フッター) にドキュメント属性に関連した特殊な式を挿入することができます。 フォーミュラ内ではフォーミュラコンテキストオブジェクトが自動的に公開されます。 [**This**](../commands/this.md) を通してこのオブジェクトのプロパティを使用することができます: -| プロパティ | 型 | 説明 | -| ------------------------------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [This](../commands/this.md).title | Text | wk title 属性で定義されているタイトル | -| [This](../commands/this.md).author | Text | wk author 属性で定義されている作者 | -| [This](../commands/this.md).subject | Text | wk subject 属性で定義されている主題 | -| [This](../commands/this.md).company | Text | wk company 属性で定義されている会社 | -| [This](../commands/this.md).notes | Text | wk notes 属性で定義されている注記 | -| [This](../commands/this.md).dateCreation | Date | wk date creation 属性で定義されている作成日 | -| [This](../commands/this.md).dateModified | Date | wk date modified 属性で定義されている変更日 | -| [This](../commands/this.md).pageNumber (\*) | Number | 以下の場所から定義されているページ番号:
      532. - ドキュメントの開始からのページ番号(デフォルト)
      533. - セクションの開始から定義されている場合には、セクションの開始からのページ番号
      534. このフォーミュラは常に動的です。つまり[**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) コマンドの影響を受けません。 | -| [This](../commands/this.md).pageCount (\*) | Number | ページ数: 総合のページ数。
        このフォーミュラは常に動的です。つまり[**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) コマンドの影響を受けません。 | -| [This](../commands/this.md).document | Object | 4D Write Pro ドキュメント | -| [This](../commands/this.md).data | Object | [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) コマンドで設定された4D Write Pro ドキュメントのデータコンテキスト | -| [This](../commands/this.md).sectionIndex | Number | 4D Write Pro ドキュメント内のセクションのインデックス(1から開始) | -| [This](../commands/this.md).pageIndex | Number | 4D Write Pro ドキュメント内の実際のページ番号(1から開始、セクションのページ番号とは無関係) | -| [This](../commands/this.md).sectionName | 文字列 | ユーザーが与えたセクションの名前 | +| プロパティ | 型 | 説明 | +| ------------------------------------------------------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [This](../commands/this.md).title | Text | wk title 属性で定義されているタイトル | +| [This](../commands/this.md).author | Text | wk author 属性で定義されている作者 | +| [This](../commands/this.md).subject | Text | wk subject 属性で定義されている主題 | +| [This](../commands/this.md).company | Text | wk company 属性で定義されている会社 | +| [This](../commands/this.md).notes | Text | wk notes 属性で定義されている注記 | +| [This](../commands/this.md).dateCreation | Date | wk date creation 属性で定義されている作成日 | +| [This](../commands/this.md).dateModified | Date | wk date modified 属性で定義されている変更日 | +| [This](../commands/this.md).pageNumber (\*) | Number | 定義されているページ番号:
      535. - ドキュメントの開始からのページ番号(デフォルト) あるいは
      536. - セクションの開始ページから定義されている場合にはセクションの開始ページからのページ番号。
      537. このフォーミュラは常にダイナミックであり、[**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) コマンドの影響をうけません。 | +| [This](../commands/this.md).pageCount (\*) | Number | ページカウント: 合計のページ数。
        このフォーミュラは常にダイナミックであり、[**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) コマンドの影響をうけません。 | +| [This](../commands/this.md).document | Object | 4D Write Pro ドキュメント | +| [This](../commands/this.md).data | Object | [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) コマンドで設定された4D Write Pro ドキュメントのデータコンテキスト | +| [This](../commands/this.md).sectionIndex | Number | 4D Write Pro ドキュメント内のセクションのインデックス(1から開始) | +| [This](../commands/this.md).pageIndex | Number | 4D Write Pro ドキュメント内の実際のページ番号(1から開始、セクションのページ番号とは無関係) | +| [This](../commands/this.md).sectionName | 文字列 | ユーザーが与えたセクションの名前 | :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md index c5a5e4be2c6c42..5bd0113af4ccbb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md @@ -14,7 +14,7 @@ title: OpenAIChatAPI | `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | チャット補完リクエストを管理するインスタンス。 | | `vision` | [OpenAIVision](OpenAIVision.md) | ビジョン関連のリクエストを管理するヘルパーインスタンス。 | -## 関数 +## Function ### create() diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md index 57c10348740857..bbba82dc0590c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md @@ -9,26 +9,26 @@ title: OpenAIChatHelper ## プロパティ -| プロパティ名 | 型 | デフォルト値 | 説明 | -| --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- | -| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | Open AI との通信で使用されるチャットAPI インスタンス。 | -| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | チャットアシスタントのレスポンスをガイドするためのシステムプロンプトメッセージ。 | -| `numberOfMessages` | Integer | 15 | チャット履歴に保持するメッセージの最大数。 | -| `引数` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | -| `messages` | [OpenAIMessage](OpenAIMessage.md) のコレクション | [] | そのチャットセッション内でやりとりされたメッセージのコレクション。 | -| `ツール` | Collection of [OpenAITool](OpenAITool.md) | [] | List of registered OpenAI tools for function calling. | -| `autoHandleToolCalls` | Boolean | true | Boolean indicating whether tool calls are handled automatically using registered tools. | -| `lastErrors` | Collection | - | Collection containing the last errors encountered during chat operations. | +| プロパティ名 | 型 | デフォルト値 | 説明 | +| --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------- | +| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | Open AI との通信で使用されるチャットAPI インスタンス。 | +| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | チャットアシスタントのレスポンスをガイドするためのシステムプロンプトメッセージ。 | +| `numberOfMessages` | Integer | 15 | チャット履歴に保持するメッセージの最大数。 | +| `parameters` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | OpenAI チャット補完リクエスト用のパラメーター。 | +| `messages` | [OpenAIMessage](OpenAIMessage.md) のコレクション | [] | そのチャットセッション内でやりとりされたメッセージのコレクション。 | +| `ツール` | [OpenAITool](OpenAITool.md) のコレクション | [] | 関数呼び出し用に登録されたOpenAI ツールの一覧。 | +| `autoHandleToolCalls` | Boolean | true | 登録されたツールを使用してツール呼び出しを自動的に管理するかどうかをあらわすブール値。 | +| `lastErrors` | Collection | - | チャット操作中に発生した最後のエラーを格納したコレクション。 | ## Constructor -To create a new `OpenAIChatHelper` instance, it's best to use the `create()` method from the [OpenAI client's chat API](OpenAIChatAPI.md): +新しい `OpenAIChatHelper` インスタンスを作成するためには、[OpenAI クライアントのチャットAPI](OpenAIChatAPI.md)の `create()` メソッドを使用するのが最適です: ```4D var $chatHelper:=$client.chat.create("You are a helpful assistant.") ``` -This method creates a new chat helper with the specified system prompt and initializes it with default parameters. The system prompt defines the assistant's role and behavior throughout the conversation. +このメソッドは指定されたシステムプロンプトで新しいチャットヘルパーを作成し、デフォルトの引数で初期化します。 このシステムプロンプトが会話の間全体の、アシスタントの役割と振る舞いを定義します。 ## 関数 @@ -54,52 +54,52 @@ $result:=$chatHelper.prompt("Why 42?") **reset**() -Resets the chat context by clearing all messages and unregistering all tools. This effectively starts a fresh conversation while keeping the system prompt and parameters intact. +全てのメッセージを消去し、全てのツールの登録を解除することで、チャットコンテキストをリセットします。 これにより、システムのプロンプトとパラメータをそのままにしながら、効果的に新しい会話を始めることができます。 -#### Reset Example +#### リセットの例 ```4D $chatHelper.prompt("Hello!") -$chatHelper.reset() // Clear all previous messages and tools +$chatHelper.reset() // 以前のメッセージとツールを全て消去 ``` ### registerTool() **registerTool**(*tool* : Object; *handler* : Object) -| 引数 | 型 | 説明 | -| --------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| *tool* | Object | The tool definition object (or [OpenAITool](OpenAITool.md) instance) | -| *handler* | Object | The function to handle tool calls ([4D.Function](../../API/FunctionClass.md) or Object), optional if defined inside *tool* as *handler* property | +| 引数 | 型 | 説明 | +| --------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| *tool* | Object | ツール定義オブジェクト(あるいは[OpenAITool](OpenAITool.md) インスタンス) | +| *handler* | Object | ツール呼び出しを管理する関数([4D.Function](../../API/FunctionClass.md) またはオブジェクト)、*tool* 内の *handler* プロパティで定義されている場合にはオプション。 | -Registers a tool with its handler function for automatic tool call handling. +自動ツール呼び出し関数のために、ツールとそのハンドラ関数を登録します。 -The *handler* parameter can be: +*handler* 引数には以下のものを渡すことができます: -- A **4D.Function**: Direct handler function -- An **Object**: An object containing a `formula` property matching the tool function name +- **4D.Function**: 直接ハンドラ関数 +- **オブジェクト**: ツール関数名と一致する `formula` プロパティを格納しているオブジェクト -The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. +ハンドラー関数はOpenAI ツール呼び出しから渡された引数を格納しているオブジェクトを受け取ります。 オブジェクトは、ツールのスキーマで定義されたパラメーター名とキーが一致するキーと、AI モデルから提供された実際の引数である値との、キーと値のペアを格納しています。 -#### Register Tool Example +#### ツールを登録する例題 ```4D -// Example 1: Simple registration with direct handler +// Example 1: 直接ハンドラを使用したシンプルな登録 var $tool:={type: "function"; function: {name: "get_weather"; description: "Get current weather"; parameters: {type: "object"; properties: {location: {type: "string"; description: "City name"}}}}} var $handler:=Formula(return "Sunny, 25°C in "+$1.location) $chatHelper.registerTool($tool; $handler) -// Example 2: Tool with handler property (no second parameter needed) +// Example 2: プロパティを持つtool オブジェクトを使用(この場合第2に引数は不要です) var $tool:={name: "calculate"; description: "Perform calculations"; handler: Formula(return String(Num($1.expression)))} $chatHelper.registerTool($tool) -// Example 3: Using object notation +// Example 3: オブジェクト記法を使用する $chatHelper.registerTool({tool: $tool; handler: $handler}) -// Example 4: Handler as object with formula matching tool name +// Example 4: ツール名と合致するフォーミュラを持ったオブジェクトとしてのハンドラ var $tool:={name: "getTime"; description: "Get current time"} -var $handlerObj:=cs.MyTimeTool.new() // class with a getTime function +var $handlerObj:=cs.MyTimeTool.new() // getTime 関数を持つクラス $chatHelper.registerTool($tool; $handlerObj) ``` @@ -107,19 +107,19 @@ $chatHelper.registerTool($tool; $handlerObj) **registerTools**(*toolsWithHandlers* : Variant) -| 引数 | 型 | 説明 | -| ------------------- | ------- | -------------------------------------------------------- | -| *toolsWithHandlers* | Variant | Object or Collection containing tools and their handlers | +| 引数 | 型 | 説明 | +| ------------------- | ------- | ------------------------------- | +| *toolsWithHandlers* | Variant | ツールとのそのハンドラを格納したオブジェクトまたはコレクション | -Registers multiple tools at once. The parameter can be: +複数のツールを一度に登録します。 引数には以下のものを渡すことができます: -- **Collection**: Array of tool objects (with handlers embedded or separate) -- **Object**: Object with function names as keys mapping to tool definitions -- **Object with `tools` attribute**: Object containing a `tools` collection and formula properties matching tool names +- **コレクション**: (ハンドラが埋め込んである、あるいは分離してある)ツールオブジェクトのコレクション +- **オブジェクト**: 関数名がツール定義にマッピングされているキーとするオブジェクト +- **`tools` 属性を持つオブジェクト**: `tools` コレクションと、ツール名に合致するフォーミュラプロパティを格納しているオブジェクト -#### Register Multiple Tools Example +#### 複数のツールを登録する例題 -##### Example 1: Collection format with handlers in tools +##### 例 1: ツール内のハンドルを使用したコレクションフォーマット ```4D var $weatherTool:={name: "getWeather"; description: "Get current weather"; handler: Formula(return "Sunny, 25°C in "+$1.location)} @@ -128,7 +128,7 @@ var $calculatorTool:={name: "calculate"; description: "Perform calculations"; ha $chatHelper.registerTools([$weatherTool; $calculatorTool]) ``` -##### Example 2: Object format with separate tool and handler +##### 例 2: 別個のツールとハンドラを使用したオブジェクトフォーマット ```4D var $toolsWithSeparateHandlers:={} @@ -138,15 +138,15 @@ $toolsWithSeparateHandlers.calculate:={tool: $calculatorToolDefinition; handler: $chatHelper.registerTools($toolsWithSeparateHandlers) ``` -##### Example 3: Object with tools collection attribute and formula properties +##### 例 3: tools コレクション属性とformula プロパティを持ったオブジェクト -MyTools class: +MyTools クラス: ```4D Class constructor this.tools:=[{name: "getWeather"; description: "Get current weather"}; \ - {name: "getTime"; description: "Get current time"}] // Collection of tool definitions + {name: "getTime"; description: "Get current time"}] // ツール定義のコレクション Function getWeather($parameters: Object) return "Sunny, 25°C" @@ -159,12 +159,12 @@ Function getTime($parameters: Object) $chatHelper.registerTools(cs.MyTools.new()) ``` -##### Example 4: Simple object format with tools as properties +##### 例 4: ツールをプロパティにもつシンプルなオブジェクトフォーマット ```4D var $tools:={} -$tools.getWeather:=$weatherTool // Tool with handler property -$tools.calculate:=$calculatorTool // Tool with handler property +$tools.getWeather:=$weatherTool // handler プロパティを持つTool +$tools.calculate:=$calculatorTool // handler プロパティを持つTool $chatHelper.registerTools($tools) ``` @@ -173,28 +173,28 @@ $chatHelper.registerTools($tools) **unregisterTool**(*functionName* : Text) -| 引数 | 型 | 説明 | -| -------------- | ---- | ------------------------------------------- | -| *functionName* | Text | The name of the function tool to unregister | +| 引数 | 型 | 説明 | +| -------------- | ---- | --------------- | +| *functionName* | Text | 登録を解除したいツールの関数名 | -Unregisters a specific tool by its function name. This removes the tool from the registered tools collection, clears its handler, and removes it from the parameters. +特定のツールをその関数名で指定して登録解除します。 これによってツールは登録されたツールのコレクションから削除され、ハンドラも消去され、引数からも削除されます。 -#### Unregister Tool Example +#### ツールを登録解除する例 ```4D $chatHelper.registerTool($weatherTool; $weatherHandler) -$chatHelper.unregisterTool("get_weather") // Remove the weather tool +$chatHelper.unregisterTool("get_weather") // weather ツールを削除 ``` ### unregisterTools() **unregisterTools**() -Unregisters all tools at once. This clears all tool handlers, empties the tools collection, and removes all tools from the parameters. +全てのツールを一度に登録解除します。 これはすべてのツールハンドラを消去し、tools コレクションをからにし、そして引数からも全てのツールを削除します。 -#### Unregister All Tools Example +#### 全てのツールを登録解除する例 ```4D $chatHelper.registerTools($multipleTools) -$chatHelper.unregisterTools() // Remove all tools +$chatHelper.unregisterTools() // 全てのツールを削除 ``` \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md index bc638180ea1b72..c6d1be78b53a00 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md @@ -29,9 +29,9 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. ### Function-specific Properties -| プロパティ | 型 | 説明 | -| ----- | ------ | -------------------------------------------------------------------------------- | -| `引数` | Object | Parameters definition for the function using JSON schema format. | +| プロパティ | 型 | 説明 | +| ------------ | ------ | -------------------------------------------------------------------------------- | +| `parameters` | Object | Parameters definition for the function using JSON schema format. | ## Constructor diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md index b503f0a3d13253..715fbb94159c98 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -1017,7 +1017,6 @@ O objeto retornado por `.lock()` contém as seguintes propriedades: | ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | A entidade não existe mais nos dados. Esse erro pode ocorrer nos seguintes casos
      538. :a entidade foi descartada (o carimbo foi alterado e o espaço de memória agora está livre)
      539. a entidade foi descartada e substituída por outra com outra chave primária (o carimbo foi alterado e uma nova entidade agora usa o espaço de memória). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Quando usando `. ock()`, este erro pode ser retornado quando a opção `dk reload se o carimbo mudar` é usada

      540. **Associado statusText**: "Entidade não existe mais" | | `dk status locked` | 3 | A entidade está bloqueada por um bloqueio pessimista.**statusText associado**: "Already locked" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | | `dk status serious error` | 4 | Um erro grave é um erro de banco de dados de baixo nível (por exemplo, chave duplicada), um erro de hardware, etc.
        \*\*statusText associado \*\*: "Other error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      541. with `.save()`: error only if the `dk auto merge` option is not used
      542. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      543. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      544. **Associated statusText**: "Stamp has changed" | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index cbf8415a3b5a49..39960a6164d24c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -13,10 +13,10 @@ Estão disponíveis dois modos de arrastamento: - **Personalizado**: nesse modo, qualquer operação de arrastar executada no objeto aciona o evento de formulário `On Begin Drag` no contexto do objeto. Em seguida, a ação de arrastamento é gerida através de um método. No modo personalizado, basicamente toda a operação de arrastar e soltar é tratada pelo programador. Esse modo permite que você implemente qualquer interface baseada em arrastar e soltar, incluindo interfaces que não necessariamente transportam dados, mas podem executar qualquer ação, como abrir arquivos ou acionar um cálculo. Esse modo é baseado em uma combinação de propriedades, eventos e comandos específicos do tema `Pasteboard`. -- **Automático**: nesse modo, 4D **cópia** o texto ou as imagens diretamente do objeto formulário. Poderá então ser utilizado na mesma área de 4D, entre duas áreas 4D ou entre 4D e outra aplicação. Por exemplo, o arrastar (e soltar) automático permite que você copie um valor entre dois campos sem usar programação:\ - ![](../assets/en/FormObjects/property_automaticDragDrop.png)\ - ![](../assets/en/FormObjects/property_automaticDragDrop2.png) - Nesse modo, o evento de formulário `On Begin Drag` NÃO é gerado. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opção não está disponível para as imagens. +- **Automático**: nesse modo, 4D **cópia** o texto ou as imagens diretamente do objeto formulário. Poderá então ser utilizado na mesma área de 4D, entre duas áreas 4D ou entre 4D e outra aplicação. For example, automatic drag (and drop) lets you copy a value between two fields without using programming: + ![](../assets/en/FormObjects/property_automaticDragDrop.png) + ![](../assets/en/FormObjects/property_automaticDragDrop2.png)
        + In this mode, the `On Begin Drag` form event is NOT generated. Si quiere "forzar" el uso del arrastre personalizado mientras está activado el arrastre automático, mantenga presionada la tecla **Alt** (Windows) o **Opción** (macOS) durante la acción. Esta opção não está disponível para as imagens. Para más información, consulte [Arrastrar y soltar](https://doc.4d.com/4Dv20/4D/20.6/Drag-and-Drop.300-7487471.en.html) en el manual *Lenguaje 4D*. @@ -191,15 +191,15 @@ Em outros casos (list box baseados em seleções nomeadas, colunas associadas co ## Ação padrão -Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. +Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Você pode atribuir uma ação padrão e um método projeto de um objeto. Neste caso, a ação padrão é geralmente executada depois que o método e o 4D usa esta ação para ativar/desativar o objeto conforme o contexto atual. Quando um objeto é desativado, o método projeto associado não pode ser executado. #### Gramática JSON -| Nome | Tipo de dados | Valores possíveis | -| ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------- | -| action | string | O nome de uma [ação padrão válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nome | Tipo de dados | Valores possíveis | +| ------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objectos suportados 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 43dfdd3934ef18..199d034334829a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -44,7 +44,7 @@ Leia [**O que há de novo no 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/ - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index a8c220ccb23587..2d09d0687cbba6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Header | Add | Set | Remove | +| ---------------- | --- | ---------- | ------ | +| Date | Não | Não | Não | +| Content-Length | Não | Não | Não | +| Content-Encoding | Não | Não | Não | +| Vary | Sim | Não | Não | +| Set-Cookie | Sim | Add cookie | Não | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 2471ddb6831c51..1a02e189b920b6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md index 62e06ed6627541..f044c5be71860c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md @@ -1,6 +1,6 @@ --- id: new-collection -title: New collection +title: Nova coleção displayed_sidebar: docs --- diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md index c1f821ac13c915..1dbedd8c5da236 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index aa53eca5061903..5b354dc41f420e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -1017,7 +1017,6 @@ O objeto retornado por `.lock()` contém as seguintes propriedades: | ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | A entidade não existe mais nos dados. Esse erro pode ocorrer nos seguintes casos
      545. :a entidade foi descartada (o carimbo foi alterado e o espaço de memória agora está livre)
      546. a entidade foi descartada e substituída por outra com outra chave primária (o carimbo foi alterado e uma nova entidade agora usa o espaço de memória). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Quando usando `. ock()`, este erro pode ser retornado quando a opção `dk reload se o carimbo mudar` é usada

      547. **Associado statusText**: "Entidade não existe mais" | | `dk status locked` | 3 | A entidade está bloqueada por um bloqueio pessimista.**statusText associado**: "Already locked" | -| `dk status mild validation error` | 7 | Can be returned by the developer only in validate events and do not require | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      548. with `.save()`: error only if the `dk auto merge` option is not used
      549. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      550. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      551. **Associated statusText**: "Stamp has changed" | 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 2ddb2e25800354..3bbe0bf92d5a73 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 @@ -26,6 +26,7 @@ Leia [**O que há de novo no 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/ - Línguagem 4D: - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). - [`Num`](../commands/num.md) and [`String`](../commands/string.md) commands have been updated to support conversions in different bases (radix). +- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21): list of all bugs that have been fixed in 4D 21. #### Prévia do desenvolvedor @@ -43,7 +44,7 @@ Leia [**O que há de novo no 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/ - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore. - Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        \- **Import**: import automatically 4D components as dependencies to the project
        \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        @@ -175,7 +176,7 @@ Leia [**O que há de novo no 4D 20 R6**](https://blog.4d.com/en-whats-new-in-4d- #### Destaques - Operadores de comparação nas [referências a objetos](../Concepts/dt_object.md#object-operators) e nas [referências a coleções](../Concepts/dt_collection.md#collection-operators). [`collection.query()`](../API/CollectionClass.md#query) now supports [object and collection references as query values](../API/CollectionClass.md#object-or-collection-reference-as-value). -- When a component has a [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), its classes are now automatically shared between all loaded components in the host project via [`cs.`](../Concepts/classes.md#cs). +- Quando um componente tiver um [declared namespace](../Extensions/develop-components.md#declaring-the-component-namespace), suas classes agora são automaticamente compartilhadas entre todos os componentes carregados no projeto host por meio de [`cs.`](../Concepts/classes.md#cs). - Gerenciador de componentes: suporte de [componentes armazenados no GitHub](../Project/components.md#components-stored-on-github). - Novo [`entitySeletion. lean()`](../API/EntitySelectionClass.md#clean) função e [`$clean`](../REST/$clean.md) REST API para obter uma nova seleção de entidade baseada na seleção da entidade original, mas sem as entidades excluídas. - Nova função [`session.getPrivileges()`](../API/SessionClass.md#getprivileges) e [`$info/privileges`](../REST/$info.md) API REST para inspecionar os privilégios de sessão para uma depuração mais fácil. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 647fe5f0082093..0ab195287b1363 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -565,7 +565,7 @@ Esse mecanismo automático baseia-se no conceito de "bloqueio otimista", sendo p O diagrama seguinte ilustra o bloqueio otimista: -1. Dois processos carregam a mesma entidade.

        ![](../assets/en/ORDA/optimisticLock1.png) +1. Two processes load the same entity.

        ![](../assets/en/ORDA/optimisticLock1.png) 2. O primeiro processo modifica a entidade e valida a alteração. Se llama al método `entity.save( )`. O mecanismo 4D compara automaticamente o valor do carimbo interno da entidade modificada com o da entidade armazenada nos dados. Since they match, the entity is saved and its stamp value is incremented.

        ![](../assets/en/ORDA/optimisticLock2.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index dcd8c2c2b70e98..2d483010e8a237 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -102,19 +102,19 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propriedade | Tipo | Descrição | Set by the developer | -| ------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| extraDescription | Object | Free information to set up | Sim | -| seriousError | Parâmetros | Used only with validate events (see below). Will insert a specific `status` value in the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) function:
      552. If true: `dk status serious validation error`
      553. If false: `dk status validation failed`
      554. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Não | - -- The errors are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `fatalError` property allows you to insert a specific `status` and its associated `statusText` in the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions: - - If **false**: `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". Such errors do not require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. - - If **true**: `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". Such errors require a [try catch](../Concepts/error-handling.md#trycatchend-try) and are not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. They are raised at the end of the event and reach the client requesting the save/drop action (REST client for example). -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error (`dk status serious error`) whatever the `seriousError` property value. +| Propriedade | Tipo | Descrição | Set by the developer | +| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| extraDescription | Object | Free information to set up | Sim | +| seriousError | Parâmetros | Used only with validate events (see below).
      555. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      556. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      557. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | Não | + +- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. +- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: + - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). + - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". +- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. ## Event function description diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index b6c05fefa599fc..4c8dfc2ede1a2e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -349,7 +349,7 @@ Para exibir o painel Dependências: - Com 4D, selecione o item de menu **Design/Project Dependencies** (ambiente de desenvolvimento),
        ![dependency-menu](../assets/en/Project/dependency-menu.png) -- com o servidor 4D, selecione o item de menu **dependência do Window/Projeto**.
        +- com 4D Server, selecione o item de menu **Janela/Dependências do projeto**.
        ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) O painel de Dependências é exibido em seguida. Dependências são classificadas por nome em ordem alfabética: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$method.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$method.md index d21437b56a1f5a..8338676845ead1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$method.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$method.md @@ -195,7 +195,8 @@ Se surgir um problema ao adicionar ou modificar uma entidade, ser-lhe-á enviado - **Las fechas** deben expresarse en formato JS: YYYY-MM-DDTHH:MM:SSZ (por ejemplo, "2010-10-05T23:00:00Z"). Se tiver selecionado a propriedade Apenas data para o seu atributo Data, o fuso horário e a hora (hora, minutos e segundos) serão removidos. Neste caso, também pode enviar a data no formato que lhe é devolvido dd!mm!yyyy (por exemplo, 05!10!2013). - **Booleanos** son true o false. -- Los archivos subidos mediante `$upload` pueden aplicarse a un atributo de tipo Imagen o BLOB pasando el objeto devuelto en el siguiente formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}`::: +- Arquivos carregados usando `$upload` podem ser aplicados a um atributo do tipo Imagem ou BLOB passando o objeto retornado no seguinte formato `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` + ::: ### Exemplo diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md index e16223fade7d46..ad799b3abf413b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ Em *rangeObj*, passe o intervalo de células com os valores, a formatação e as Você pode passar um parâmetro *options* opcional com as seguintes propriedades: -| Propriedade | Tipo | Descrição | -| ----------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Parâmetros | *Verdadeiro* (padrão) para manter os valores copiados, a formatação e as fórmulas após a execução do comando. *Falso* para removê-los. | -| copyOptions | Integer | Especifica o que é copiado ou movido. Valores possíveis:

        ValorDescrição
        `vk clipboard options all` (padrão)Copia todos os objetos de dados, incluindo valores, formatação e fórmulas.
        `vk clipboard options formatting`Copia somente a formatação.
        `vk clipboard options formulas`Copia somente as fórmulas.
        `vk clipboard options formulas and formatting`Copia as fórmulas e a formatação.
        `vk clipboard options values`Copia apenas os valores.
        `vk clipboard options value and formatting`Copia os valores e a formatação.

        | +| Propriedade | Tipo | Descrição | +| ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| copy | Parâmetros | *Verdadeiro* (padrão) para manter os valores copiados, a formatação e as fórmulas após a execução do comando. *Falso* para removê-los. | +| copyOptions | Integer | Especifica o que é copiado ou movido. Possible values:

        ValueDescription
        `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
        `vk clipboard options formatting`Copies only the formatting.
        `vk clipboard options formulas`Copies only the formulas.
        `vk clipboard options formulas and formatting`Copies the formulas and formatting.
        `vk clipboard options values`Copies only the values.
        `vk clipboard options value and formatting`Copies the values and formatting.

        | As opções de colagem definidas nas [opções de workbook](#vp-set-workbook-options) são tomadas em conta. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md index 1d1a768c2882b6..141ba019a958c3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-to-blob.md @@ -16,7 +16,7 @@ title: VP EXPORT TO BLOB ## Descrição -The `VP EXPORT TO BLOB` command exports the *vpAreaName* 4D View Pro document in a 4D.Blob according to the *paramObj* options. The exported blob is available through the export callback. A exportação e importação de áreas do 4D View Pro como blobs é rápida e eficiente em termos de memória. +O comando `VP EXPORT TO BLOB` exporta o documento *vpAreaName* 4D View Pro em um 4D.Blob de acordo com as opções *paramObj*. O blob exportado está disponível por meio da chamada de retorno de exportação. A exportação e importação de áreas do 4D View Pro como blobs é rápida e eficiente em termos de memória. Em *paramObj*, você pode passar várias propriedades: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index 65c8d2a7a3aa81..11f9f624e61105 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -66,7 +66,7 @@ A tabela seguinte lista as opções de libro disponíveis: | newTabVisible | boolean | Apresentar um separador especial para permitir que os usuários insiram novas folhas. | | numbersFitMode | number | Muda o modo de exibição quando a largura de dados/data é maior que a largura da coluna. Available values:
        ConstantValueDescription
        vk numbers fit mode mask0 Replace data content with "###" and shows tip
        vk numbers fit mode overflow 1 Display data content as a string. If next cell is empty, overflow the content.
        | | pasteSkipInvisibleRange | boolean | Paste or skip pasting data in invisible ranges:
        • False (default): paste data
        • True: Skip pasting in invisible ranges
        See [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) for more information on invisible ranges. | -| referenceStyle | number | Estilo para referências de células e intervalos em fórmulas de células. Valores disponíveis:
        ConstanteValorDescrição
        vk reference style A1 0Usar o estilo A1.
        vk reference style R1C1 1Usar o estilo R1C1
        | +| referenceStyle | number | Estilo para referências de células e intervalos em fórmulas de células. Available values:
        ConstantValueDescription
        vk reference style A1 0 Use A1 style.
        vk reference style R1C1 1 Use R1C1 style
        | | resizeZeroIndicator | number | Política de desenho quando a linha ou coluna é redimensionada para zero. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
        | | rowResizeMode | number | A forma como as linhas são redimensionadas. Os valores disponíveis são os mesmos que columnResizeMode | | scrollbarAppearance | number | Aspeto da barra de deslocação. Available values:
        ConstantValueDescription
        vk scrollbar appearance mobile1 Mobile scrollbar appearance.
        vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
        | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index a8c220ccb23587..2d09d0687cbba6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -64,12 +64,17 @@ The following action keywords are supported: ### Non-modifiable headers -The following headers could not be modified by the `removeHeaders`, `setHeaders`, or `addHeaders` actions: +Some headers could not be added, modified or removed: -- "Date", -- "Content-Length" +| Header | Add | Set | Remove | +| ---------------- | --- | ---------- | ------ | +| Date | Não | Não | Não | +| Content-Length | Não | Não | Não | +| Content-Encoding | Não | Não | Não | +| Vary | Sim | Não | Não | +| Set-Cookie | Sim | Add cookie | Não | -Modifying these headers do not generate errors, however modifications will be ignored. +Unauthorized changes on these headers do not generate errors, however modifications will be ignored. ### Current rules diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 146662cec4481d..d1108f678dd9b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -138,7 +138,8 @@ There is no direct compatibility between apps implemented with 4D and apps imple | Depurador | 4D IDE debugger
        *4D Server only*: Qodly Studio debugger (see [this paragraph](#using-qodly-debugger-on-4d-server)) | Depurador Qodly Studio | | Funções e privilégios REST/Web | roles.json direct edit/Qodly Studio roles and privileges editor | Qodly Studio role and privileges editor | -Note that in 4D single-user, if you open some 4D code with the Qodly Studio code editor, syntax coloring is not available and a "Lsp not loaded" warning is displayed. (1) The **Model** item is disabled in Qodly Studio.
        +(1) O item **Modelo** está desativado no Qodly Studio.
        +(2) No servidor 4D, a abertura de código 4D com o editor de código Qodly Studio é suportada **para fins de teste e depuração** (veja [esse parágrafo](#development-and-deployment)). (1) The **Model** item is disabled in Qodly Studio.
        (2) In 4D Server, opening 4D code with the Qodly Studio code editor is supported **for testing and debugging purposes** (see [this paragraph](#development-and-deployment)). ### Línguagem @@ -235,7 +236,7 @@ O projeto deve estar sendo executado no modo interpretado para que o item de men ::: -2. Na barra de ferramentas do Qodly Studio, clique no botão **Debug**.
        +2. Na barra de ferramentas Qodly Studio, clique no botão **Debug**.
        ![qodly-debug](../assets/en/WebServer/qodly-debug.png) If the debug session starts successfully, a green bullet appears on the button label ![qodly-debug](../assets/en/WebServer/debug2.png) and you can use the Qodly Studio debugger. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index 2471ddb6831c51..1a02e189b920b6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -201,9 +201,9 @@ Else End if ``` -:::note +:::tips Related blog posts -For more examples, please refer to the [Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) bog post. +[Scalable sessions for advanced web applications](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md index e6222856a3d812..ea0060dd3c63c8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WebServer/webServerConfig.md @@ -625,9 +625,9 @@ Em alguns casos, outras funções internas otimizadas podem ser invocadas. As li Duas opções permitem que você defina como funcionam as conexões persistentes: -- **Number of requests by connection**: Allows you to set the maximum number of requests and responses able to travel over a connection keep alive. Limiting the number of requests per connection allows you to prevent server flooding due to a large number of incoming requests (a technique used by hackers).

        +- **Number of requests by connection**: Allows you to set the maximum number of requests and responses able to travel over a connection keep alive. Limitar o número de solicitações por conexão permite que você evite a inundação do servidor devido a um grande número de solicitações recebidas (uma técnica usada por hackers).

        The default value (100) can be increased or decreased depending on the resources of the machine hosting the 4D Web Server.

        -- **Timeout**: This value defines the maximum wait period (in seconds) during which the web server maintains an open TCP connection without receiving any requests from the web browser. Once this period is over, the server closes the connection.

        - If the web browser sends a request after the connection is closed, a new TCP connection is automatically created. Esta operação não é visível para o usuário.

        +- **Timeout**: This value defines the maximum wait period (in seconds) during which the web server maintains an open TCP connection without receiving any requests from the web browser. Quando este período acabar, o servidor fecha a conexão.

        + Se o navegador da web enviar um pedido depois que a conexão for fechada, uma nova conexão TCP será criada automaticamente. Esta operação não é visível para o usuário.

        diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md index 124392c8b62474..988c667a79fcaf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descrição -The **WP Add picture** command anchors the picture passed as parameter at a fixed location within the specified *wpDoc* and returns its reference. The returned reference can then be passed to the [WP SET ATTRIBUTES](wp-set-attributes.md) command to move the picture to any location in *wpDoc* (page, section, header, footer, etc.) with a defined layer, size, etc. +O comando **WP Adicionar imagem** ancora a imagem passada como parâmetro em um local fixo dentro do *wpDoc* especificado e retorna sua referência. A referência retornada pode ser passada para o comando [WP SET ATTRIBUTES](wp-set-attributes.md) para mover a imagem para qualquer local em *wpDoc* (página, seção, cabeçalho, rodapé, etc.) with a defined layer, size, etc. Em *wpDoc*, passe o nome de um objeto documento 4D Write Pro. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md index 20e7d6838d5ae9..f38e886e2ec987 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md @@ -52,25 +52,25 @@ Você pode omitir o parâmetro *format*, neste caso você precisa especificar a Pass an [object](# "Data structured as a native 4D object") in *option* containing the values to define the properties of the exported document. As seguintes propriedades estão disponíveis: -| Parâmetros | Valor | Comentário | -| ------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponível somente quando o formato `wk mime html` é usado. | -| wk embedded pictures | embeddedPictures | Somente para exportação SVG. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      558. true (default): Pictures are embedded in the exported .svg file
      559. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      560. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | Somente para exportação em PDF. Valor: objeto que configura uma exportação de PDF "Factur-X (ZUGFeRD)" (consulte [wk factur x object](#wk-factur-x-object)). | -| wk files | files | Somente para exportação em PDF. Valor: coleção de objetos, cada um deles descrevendo um arquivo a ser incorporado no documento final (consulte [wk files collection](#wk-files-collection)). Este recurso só é suportado em documentos PDF/A-3: quando o atributo `wk files` é usado, a versão "PDF/A-3" é definida automaticamente (o atributo `wk pdfa version` é ignorado). In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | -| wk google fonts tag | googleFontsTag | Somente para exportação SVG. Sets the import rule for google fonts in the exported SVG. Possible values:
      561. false (default): No google fonts import rule is added.
      562. true: Adds the @import rule to the exported file. Useful if you want to use fonts that are not available by default on Windows or macOS.
      563. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | -| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | -| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      564. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 300 (apenas Windows). Se uma imagem contiver mais de um formato, será usado o melhor formato para impressão (*por exemplo*, .tiff em vez de .jpg)
      565. `wk screen` (valor padrão para `wk web page complete` e `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 192 (apenas Windows). If a picture contains more than one format, the format for screen rendering is used.
      566. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | Somente para exportação SVG. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Nota:** o índice de páginas é independente da numeração de páginas. | -| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      567. `wk pdfa2`: Exports to version "PDF/A-2"
      568. `wk pdfa3`: Exports to version "PDF/A-3"
      569. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". On Windows, the output PDF file will always be equal to the desired conformance. | -| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valores possíveis:
      570. true - Valor padrão. All formulas are recomputed
      571. false - Do not recompute formulas
      572. | -| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Valores possíveis: True/False | -| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | -| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Valores possíveis: True/False | -| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Valores possíveis: True/False | -| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Valores possíveis: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | +| Parâmetros | Valor | Comentário | +| ------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponível somente quando o formato `wk mime html` é usado. | +| wk embedded pictures | embeddedPictures | Somente para exportação SVG. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      573. true (default): Pictures are embedded in the exported .svg file
      574. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      575. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | Somente para exportação em PDF. Valor: objeto que configura uma exportação de PDF "Factur-X (ZUGFeRD)" (consulte [wk factur x object](#wk-factur-x-object)). | +| wk files | files | Somente para exportação em PDF. Valor: coleção de objetos, cada um deles descrevendo um arquivo a ser incorporado no documento final (consulte [wk files collection](#wk-files-collection)). Este recurso só é suportado em documentos PDF/A-3: quando o atributo `wk files` é usado, a versão "PDF/A-3" é definida automaticamente (o atributo `wk pdfa version` é ignorado). In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | +| wk google fonts tag | googleFontsTag | Somente para exportação SVG. Sets the import rule for google fonts in the exported SVG. Possible values:
      576. false (default): No google fonts import rule is added.
      577. true: Adds the @import rule to the exported file. Útil se você quiser usar fontes que não estão disponíveis por padrão no Windows ou macOS.
      578. **Nota:** Essa propriedade é definida como falso por padrão porque quando habilitada As fontes do Google substituem fontes nativas, e as fontes nativas são geralmente melhor renderizadas no navegador. | +| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | +| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | +| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      579. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 300 (apenas Windows). Se uma imagem contiver mais de um formato, será usado o melhor formato para impressão (*por exemplo*, .tiff em vez de .jpg)
      580. `wk screen` (valor padrão para `wk web page complete` e `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 192 (apenas Windows). Se uma imagem contiver mais de um formato, será utilizado o formato para a renderização de tela. U
      581. **Nota:** Documentos exportados em formato `wk docx` são sempre otimizados para impressão wk (wk otimizado para opção é ignorado). | +| wk page index | pageIndex | Somente para exportação SVG. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Nota:** o índice de páginas é independente da numeração de páginas. | +| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      582. `wk pdfa2`: Exports to version "PDF/A-2"
      583. `wk pdfa3`: Exports to version "PDF/A-3"
      584. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". On Windows, the output PDF file will always be equal to the desired conformance. | +| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valores possíveis:
      585. true - Valor padrão. All formulas are recomputed
      586. false - Do not recompute formulas
      587. | +| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Valores possíveis: True/False | +| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | +| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Valores possíveis: True/False | +| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Valores possíveis: True/False | +| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Valores possíveis: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` and `wk web page complete` export formats. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | A tabela a seguir indica a *option* disponível por *format* de exportação: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 90eb441c3f302c..db8472c40d9d5e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -52,25 +52,25 @@ In the *format* parameter, pass a constant from the *4D Write Pro Constants* the Pass an [object](# "Data structured as a native 4D object") in *option* containing the values to define the properties of the exported document. As seguintes propriedades estão disponíveis: -| Parâmetros | Valor | Comentário | -| ------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponível somente quando o formato `wk mime html` é usado. | -| wk embedded pictures | embeddedPictures | Somente para exportação SVG. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      588. true (default): Pictures are embedded in the exported .svg file
      589. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      590. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | -| wk factur x | facturX | Somente para exportação em PDF. Valor: objeto que configura uma exportação de PDF "Factur-X (ZUGFeRD)" (consulte [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | -| wk files | files | Somente para exportação em PDF. Valor: coleção de objetos, cada um deles descrevendo um arquivo a ser incorporado no documento final (consulte [wk files collection](./wp-export-document.md#wk-files-collection)). Este recurso só é suportado em documentos PDF/A-3: quando o atributo `wk files` é usado, a versão "PDF/A-3" é definida automaticamente (o atributo `wk pdfa version` é ignorado). In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | -| wk google fonts tag | googleFontsTag | Somente para exportação SVG. Sets the import rule for google fonts in the exported SVG. Possible values:
      591. false (default): No google fonts import rule is added.
      592. true: Adds the @import rule to the exported file. Useful if you want to use fonts that are not available by default on Windows or macOS.
      593. **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | -| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | -| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | -| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      594. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 300 (apenas Windows). Se uma imagem contiver mais de um formato, será usado o melhor formato para impressão (*por exemplo*, .tiff em vez de .jpg)
      595. `wk screen` (valor padrão para `wk web page complete` e `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 192 (apenas Windows). If a picture contains more than one format, the format for screen rendering is used.
      596. **Note:** Documents exported in `wk docx` format are always optimized for wk print (wk optimized for option is ignored). | -| wk page index | pageIndex | Somente para exportação SVG. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Nota:** o índice de páginas é independente da numeração de páginas. | -| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      597. `wk pdfa2`: Exports to version "PDF/A-2"
      598. `wk pdfa3`: Exports to version "PDF/A-3"
      599. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". On Windows, the output PDF file will always be equal to the desired conformance. | -| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valores possíveis:
      600. true - Valor padrão. All formulas are recomputed
      601. false - Do not recompute formulas
      602. | -| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Valores possíveis: True/False | -| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | -| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Valores possíveis: True/False | -| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Valores possíveis: True/False | -| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Valores possíveis: True/False | -| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | +| Parâmetros | Valor | Comentário | +| ------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID host domain name: host domain that will be added to generated CID URLs including an '@' as separator. Disponível somente quando o formato `wk mime html` é usado. | +| wk embedded pictures | embeddedPictures | Somente para exportação SVG. Sets whether pictures are embedded in the exported .svg file when you call [WP EXPORT DOCUMENT](wp-export-document.md). Available values:
      603. true (default): Pictures are embedded in the exported .svg file
      604. false: Pictures are exported in a folder called "filename\_images" at the level of the exported .svg file, "filename" being the name passed to the command for the file, without the extension. The pictures are not embedded, but referenced in the .svg file.
      605. Note: If the folder already exists, it is emptied before the file is exported. If there is no image on the exported page, the folder is deleted | +| wk factur x | facturX | Somente para exportação em PDF. Valor: objeto que configura uma exportação de PDF "Factur-X (ZUGFeRD)" (consulte [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | +| wk files | files | Somente para exportação em PDF. Valor: coleção de objetos, cada um deles descrevendo um arquivo a ser incorporado no documento final (consulte [wk files collection](./wp-export-document.md#wk-files-collection)). Este recurso só é suportado em documentos PDF/A-3: quando o atributo `wk files` é usado, a versão "PDF/A-3" é definida automaticamente (o atributo `wk pdfa version` é ignorado). In case of a Factur-X PDF export (see below), the first object of the collection must contain the Factur-X xml file. | +| wk google fonts tag | googleFontsTag | Somente para exportação SVG. Sets the import rule for google fonts in the exported SVG. Possible values:
      606. false (default): No google fonts import rule is added.
      607. true: Adds the @import rule to the exported file. Útil se você quiser usar fontes que não estão disponíveis por padrão no Windows ou macOS.
      608. **Nota:** Essa propriedade é definida como falso por padrão porque quando habilitada As fontes do Google substituem fontes nativas, e as fontes nativas são geralmente melhor renderizadas no navegador. | +| wk HTML pretty print | htmlPrettyPrint | HTML code is formatted to be easier to read. | +| wk max picture DPI | maxPictureDPI | Used for resampling (reducing) images to preferred resolution. For SVG images in Windows, used for rasterization. Default values: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Maximum possible value: 1440 | +| wk optimized for | optimizedFor | Defines how an exported document is optimized based on its intended medium. Possible values:
      609. `wk print` (default value for `wk pdf` and `wk svg`) Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 300 (default value) and may be converted to PNG if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 300 (apenas Windows). Se uma imagem contiver mais de um formato, será usado o melhor formato para impressão (*por exemplo*, .tiff em vez de .jpg)
      610. `wk screen` (valor padrão para `wk web page complete` e `wk mime html`). Bitmap pictures may be downscaled using the DPI defined by `wk max picture DPI` or 192 (default value) and may be converted to JPEG (opaque images) or PNG (transparent images) if codec is not supported for the export type. Imagens vetoriais são convertidas para PNG usando o DPI definido por `wk max image DPI` ou 192 (apenas Windows). Se uma imagem contiver mais de um formato, será utilizado o formato para a renderização de tela. U
      611. **Nota:** Documentos exportados em formato `wk docx` são sempre otimizados para impressão wk (wk otimizado para opção é ignorado). | +| wk page index | pageIndex | Somente para exportação SVG. Index of the page to export to svg format (default is 1). Page index starts at 1 for the first page of the document. **Nota:** o índice de páginas é independente da numeração de páginas. | +| wk pdfa version | pdfaVersion | Exports PDF with conformance to a PDF/A version. For more information on PDF/A properties and versions, please refer to the [PDF/A page on Wikipedia](https://en.wikipedia.org/wiki/PDF/A). Possible values:
      612. `wk pdfa2`: Exports to version "PDF/A-2"
      613. `wk pdfa3`: Exports to version "PDF/A-3"
      614. **Note:** On macOS, `wk pdfa2` may export to PDF/A-2 or PDF/A-3 or higher, depending on platform implementation. Also, `wk pdfa3` means "exports to *at least* PDF/A-3". On Windows, the output PDF file will always be equal to the desired conformance. | +| wk recompute formulas | recomputeFormulas | Defines if formulas must be recomputed when exported. Valores possíveis:
      615. true - Valor padrão. All formulas are recomputed
      616. false - Do not recompute formulas
      617. | +| wk visible background and anchored elements | visibleBackground | Displays or exports background images/color, anchored images and text boxes (for display, visible effect in Page or Embedded view mode only). Valores possíveis: True/False | +| wk visible empty images | visibleEmptyImages | Displays or exports a default black rectangle for images that cannot be loaded or computed (empty images or images in an unsupported format). Possible values: True/False. Default value: True If value is False, missing image elements will not be displayed at all even if they have borders, width, height, or background; this may impact the page layout for inline images. | +| wk visible footers | visibleFooters | Displays or exports the footers (for display, visible effect in Page view mode only). Valores possíveis: True/False | +| wk visible headers | visibleHeaders | Displays or exports the headers (for display, visible effect in Page view mode only). Valores possíveis: True/False | +| wk visible references | visibleReferences | Displays or exports all 4D expressions inserted in the document as references. Valores possíveis: True/False | +| wk whitespace | whitespace | Sets the "white-space" css value for `wk mime html` export format. The [white-space css style](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) is applied to paragraphs. Possible values: "normal", "nowrap", "pre", "pre-wrap" (default), "pre-line", "break-spaces". | A tabela a seguir indica a *option* disponível por *format* de exportação: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md index 76cc6d196ac60f..e1394446138fd5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-get-attributes.md @@ -20,7 +20,7 @@ displayed_sidebar: docs ## Descrição -The **WP Get attributes** command returns the value of any attribute in a 4D Write Pro range, header, body, footer, table, or document. This command gives you access to any kind of 4D Write Pro internal attributes: character, paragraph, document, table, or image. +O comando **WP Get attributes** retorna o valor de qualquer atributo em um intervalo 4D de escrita Pro, cabeçalho, corpo, rodapé, tabela ou documento. Este comando lhe dá acesso a qualquer tipo de atributo interno da 4D Write Pro: caractere, parágrafo, tabela ou imagem. Em *targetObj*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md index ae118bb3c8a11f..8279b68a3320eb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-break.md @@ -4,7 +4,7 @@ title: WP Insert break displayed_sidebar: docs --- -**WP Insert break** ( *targetObj* ; *breakType* ; *mode* {; *rangeUpdate*} ) : Object +**WP Insert break** ( *targetObj* ; *breakType* ; *mode* {; *rangeUpdate*} ): Object diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md index 9457bea1279a66..0ad5602bcedabb 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-formula.md @@ -10,7 +10,7 @@ displayed_sidebar: docs | Parâmetro | Tipo | | Descrição | | ----------- | ------ | --------------------------- | ------------------------------------------------------------------ | -| targetObj | Object | → | Intervalo ou elemento ou documento 4D Write Pro | +| targetObj | Object | → | Range or element or 4D Write Pro document | | formula | Object | → | Objeto de fórmula OU Objeto com propriedades de fórmula e nome | | mode | Number | → | Modo de inserção | | rangeUpdate | Number | → | Inclui ou exclui o conteúdo inserido dentro do intervalo | @@ -42,18 +42,18 @@ Quando você usa um objeto com uma fórmula *name*, esse nome é exibido no docu No parâmetro *mode*, passe uma das seguintes constantes para indicar o modo de inserção a ser usado: -| Parâmetros | Tipo | Valor | Comentário | -| ---------- | ------- | ----- | ---------------------------------- | -| wk append | Integer | 2 | Inserir conteúdo no final do alvo | -| wk prepend | Integer | 1 | Inserir conteúdo no início do alvo | -| wk replace | Integer | 0 | Substituir o conteúdo de destino | +| Parâmetros | Tipo | Valor | Comentário | +| ---------- | ------- | ----- | -------------------------------------- | +| wk append | Integer | 2 | Insert contents at end of target | +| wk prepend | Integer | 1 | Insert contents at beginning of target | +| wk replace | Integer | 0 | Replace target contents | - Se *targetObj* for um intervalo, você poderá usar o parâmetro opcional *rangeUpdate* para passar uma das seguintes constantes e especificar se a *fórmula* inserida está ou não incluída no intervalo resultante: -| Parâmetros | Tipo | Valor | Comentário | -| --------------------- | ------- | ----- | ------------------------------------------------------------------------------ | -| wk exclude from range | Integer | 1 | Conteúdos inseridos não incluídos no intervalo atualizado | -| wk include in range | Integer | 0 | Conteúdo inserido incluído no intervalo atualizado (padrão) | +| Parâmetros | Tipo | Valor | Comentário | +| --------------------- | ------- | ----- | ------------------------------------------------------------------------ | +| wk exclude from range | Integer | 1 | Inserted contents not included in updated range | +| wk include in range | Integer | 0 | Inserted contents included in updated range (default) | Se você não passar um parâmetro *rangeUpdate*, por padrão a *fórmula* inserida será incluída no intervalo resultante. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md index 45485c2be0396f..bfd49a82779419 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-insert-picture.md @@ -10,20 +10,20 @@ displayed_sidebar: docs | Parâmetro | Tipo | | Descrição | | -------------- | ------------------------ | --------------------------- | ------------------------------------------------------------------------- | -| targetObj | Object | → | Intervalo ou elemento ou documento 4D Write Pro | +| targetObj | Object | → | Range or element or 4D Write Pro document | | picture | Imagem | → | Campo de imagem ou variável, ou caminho para o arquivo de imagem no disco | | pictureFileObj | 4D. File | → | Um objeto de arquivo representando um arquivo de imagem. | | mode | Integer | → | Modo de inserção | | rangeUpdate | Integer | → | Modo de atualização de intervalo | -| Resultado | Object | ← | Objeto referenciando a imagem | +| Resultado | Object | ← | Object referencing the picture | ## Descrição -O comando **WP Insert picture** insere uma *imagem* ou um *pictureFileObj* no *targetObj* especificado de acordo com os parâmetros *modo* de inserção passada e *rangeUpdate*, e retorna uma referência ao elemento imagem. A imagem será inserida como um caractere no *targetObj*. +O comando **WP Insert picture** insere uma *picture* ou um *pictureFileObj* no *targetObj* de acordo com os parâmetros *mode* e *rangeUpdate* , e retorna uma referência ao elemento imagem. A imagem será inserida como um caractere no *targetObj*. -Em *targetObj*, pode-se passar: +Em *targetObj*, você pode passar: - Um intervalo - Um elemento (tabela / linha / parágrafo / corpo / cabeçalho / rodapé / imagem em linha / seção / subseção) @@ -34,18 +34,18 @@ Para o segundo parâmetro, você também pode passar: - Em *picture*: - Um campo de imagem ou variável - Uma string que contém um caminho para um arquivo de imagem armazenado no disco, na sintaxe do sistema. - Se você usar uma string, você poderá passar um nome completo ou um nome de caminho relativo ao arquivo de estrutura do banco de dados. Você também pode passar um nome de arquivo, neste caso o arquivo deve estar localizado ao lado do arquivo de estrutura de banco de dados. Se você passar um nome de arquivo, você deve indicar a extensão do arquivo. + Se você usar uma string, você poderá passar um nome completo ou um nome de caminho relativo ao arquivo de estrutura do banco de dados. You can also pass a file name, in which case the file must be located next to the database structure file. Se você passar um nome de arquivo, você deve indicar a extensão do arquivo. - Em *pictureFileObj*: um objeto `File` que representa um arquivo imagem. -Qualquer formato imagem [suportado por 4D](../../FormEditor/pictures.md#native-formats-supported) pode ser usado. Você pode obter a lista de formatos de imagens disponíveis usando o comando [PICTURE CODEC LIST](../../commands-legacy/picture-codec-list.md). Se a imagem encapsular vários formatos (codecs), 4D Write Pro apenas mantém um formato para exibição e um formato para impressão (se diferente) no documento; os "melhores" formatos são selecionados automaticamente. +Qualquer formato imagem [suportado por 4D](../../FormEditor/pictures.md#native-formats-supported) pode ser usado. Você pode obter a lista de formatos de imagens disponíveis usando o comando [PICTURE CODEC LIST](../../commands-legacy/picture-codec-list.md). If the picture encapsulates several formats (codecs), 4D Write Pro only keeps one format for display and one format for printing (if different) in the document; the "best" formats are automatically selected. No parâmetro *modo*, passe uma das seguintes constantes para indicar o modo de inserção a ser usado na imagem no documento: -| Parâmetros | Tipo | Valor | Comentário | -| ---------- | ------- | ----- | ---------------------------------- | -| wk append | Integer | 2 | Inserir conteúdo no final do alvo | -| wk prepend | Integer | 1 | Inserir conteúdo no início do alvo | -| wk replace | Integer | 0 | Replace target contents | +| Parâmetros | Tipo | Valor | Comentário | +| ---------- | ------- | ----- | -------------------------------------- | +| wk append | Integer | 2 | Insert contents at end of target | +| wk prepend | Integer | 1 | Insert contents at beginning of target | +| wk replace | Integer | 0 | Replace target contents | Se *targetObj* for um intervalo, você poderá usar opcionalmente o parâmetro *rangeUpdate* para passar uma das seguintes constantes para especificar se a imagem inserida está ou não incluída no intervalo resultante: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md index 708890267fbbd2..641433ba6ee148 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -The **WP RESET ATTRIBUTES** command allows you to reset the value of one or more attributes in the range, element, or document passed as parameter. This command can remove any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. You can pass the attribute name to be reset in *attribName* or you can pass a collection of attributes in *attribColl* to reset multiple attributes at once. +O comando **WP RESET ATTRIBUTES** permite que você reinicie o valor de um ou mais atributos no intervalo, elemento ou documento passado como parâmetro. Este comando pode remover qualquer tipo de atributo interno 4D Write Pro: caractere, parágrafo, tabela ou imagem. You can pass the attribute name to be reset in *attribName* or you can pass a collection of attributes in *attribColl* to reset multiple attributes at once. > In the case of a section or a subsection, the *sectionOrSubsection* object can be passed alone and all the attributes are reset at once. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md index e354ed2b8d60a8..ce3fb659cefd55 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descrição -The **WP SET ATTRIBUTES** command allows you to set the value of any attribute in a range, element, document. This command gives you access to any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. +O comando **WP SET ATTRIBUTES** permite que você reinicie o valor de um ou mais atributos no intervalo, elemento ou documento passado como parâmetro. Este comando lhe dá acesso a qualquer tipo de atributo interno da 4D Write Pro: caractere, parágrafo, tabela ou imagem. Em *targetObj*, você pode passar: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 47523aef3f7472..1fb5a0245d7f2e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -54,22 +54,22 @@ You want to replace the selection in a 4D Write Pro area with the contents of a Você pode inserir expressões especiais relacionadas aos atributos de documento em qualquer área de documento (corpo, cabeçalho, rodapé) usando o comando [WP Insert formula](commands/wp-insert-formula.md). Within a formula, a formula context object is automatically exposed. Você pode usar as propriedades desse objeto por meio de [**This**](../commands/this.md): -| Propriedades | Tipo | Descrição | -| ------------------------------------------------------------------------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [This](../commands/this.md).title | Text | Título definido no atributo wk title | -| [This](../commands/this.md).author | Text | Autor definido no atributo wk author | -| [This](../commands/this.md).subject | Text | Assunto definido no atributo wk subject | -| [This](../commands/this.md).company | Text | Empresa definida no atributo wk company | -| [This](../commands/this.md).notes | Text | Notas definidas no atributo wk notes | -| [This](../commands/this.md).dateCreation | Date | Data de criação definida no atributo wk date creation | -| [This](../commands/this.md).dateModified | Date | Data de modificação definida no atributo wk date modified | -| [This](../commands/this.md).pageNumber (\*) | Number | Page number as it is defined:
      618. - From the document start (default) or
      619. - From the section page start if it is defined by section page start.
      620. This formula is always dynamic; it is not affected by the [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) command. | -| [This](../commands/this.md).pageCount (\*) | Number | Page count: total count of pages.
        This formula is always dynamic; it is not affected by the [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) command. | -| [This](../commands/this.md).document | Object | Documento 4D Write Pro | -| [This](../commands/this.md).data | Object | Contexto dos dados do documento 4D Write Pro definido por [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | -| [This](../commands/this.md).sectionIndex | Number | The Index of the section in the 4D Write Pro document starting from 1 | -| [This](../commands/this.md).pageIndex | Number | The actual page number in the 4D Write Pro document starting from 1 (regardless of the section page numbers) | -| [This](../commands/this.md).sectionName | String | The name that the user gives to the section | +| Propriedades | Tipo | Descrição | +| ------------------------------------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [This](../commands/this.md).title | Text | Título definido no atributo wk title | +| [This](../commands/this.md).author | Text | Autor definido no atributo wk author | +| [This](../commands/this.md).subject | Text | Assunto definido no atributo wk subject | +| [This](../commands/this.md).company | Text | Empresa definida no atributo wk company | +| [This](../commands/this.md).notes | Text | Notas definidas no atributo wk notes | +| [This](../commands/this.md).dateCreation | Date | Data de criação definida no atributo wk date creation | +| [This](../commands/this.md).dateModified | Date | Data de modificação definida no atributo wk date modified | +| [This](../commands/this.md).pageNumber (\*) | Number | Número de página conforme definido
      621. :- A partir do início do documento (padrão) ou
      622. - A partir do início da página da seção, se for definido pelo início da página da seção.
      623. Esta fórmula é sempre dinâmica; não é afetada pelo comando [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).pageCount (\*) | Number | Contagem de páginas: contagem total de páginas.
        Esta fórmula é sempre dinâmica; não é afetada pelo comando [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md). | +| [This](../commands/this.md).document | Object | Documento 4D Write Pro | +| [This](../commands/this.md).data | Object | Contexto dos dados do documento 4D Write Pro definido por [**WP SET DATA CONTEXT**](commands-legacy/wp-set-data-context.md) | +| [This](../commands/this.md).sectionIndex | Number | The Index of the section in the 4D Write Pro document starting from 1 | +| [This](../commands/this.md).pageIndex | Number | The actual page number in the 4D Write Pro document starting from 1 (regardless of the section page numbers) | +| [This](../commands/this.md).sectionName | String | The name that the user gives to the section | :::note From f2667b43cfd5ec184ffdfd696f90f741a8bb9b26 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 11:10:34 +0200 Subject: [PATCH 080/119] added fluent screens --- versioned_docs/version-21/FormEditor/forms.md | 6 ++++++ .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../version-21/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes 3 files changed, 6 insertions(+) create mode 100644 versioned_docs/version-21/assets/en/FormEditor/fluent-dark.png create mode 100644 versioned_docs/version-21/assets/en/FormEditor/fluent.png diff --git a/versioned_docs/version-21/FormEditor/forms.md b/versioned_docs/version-21/FormEditor/forms.md index 53565e921469e0..422e0d30ce3dc1 100644 --- a/versioned_docs/version-21/FormEditor/forms.md +++ b/versioned_docs/version-21/FormEditor/forms.md @@ -102,6 +102,12 @@ A multi-page form has both a background page and several display pages. Objects On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +|Light theme|Dark theme| +|---|---| +|![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| + + + :::caution Developer Preview Fluent UI support is currently in the Developer Preview phase. It should not be used in production. diff --git a/versioned_docs/version-21/assets/en/FormEditor/fluent-dark.png b/versioned_docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/versioned_docs/version-21/assets/en/FormEditor/fluent.png b/versioned_docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 From 44a9225892a4a872972263387f97c1741b217044 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 11:35:58 +0200 Subject: [PATCH 081/119] added picts fluent --- docs/FormEditor/forms.md | 6 ++++++ docs/assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes docs/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes 3 files changed, 6 insertions(+) create mode 100644 docs/assets/en/FormEditor/fluent-dark.png create mode 100644 docs/assets/en/FormEditor/fluent.png diff --git a/docs/FormEditor/forms.md b/docs/FormEditor/forms.md index 53565e921469e0..422e0d30ce3dc1 100644 --- a/docs/FormEditor/forms.md +++ b/docs/FormEditor/forms.md @@ -102,6 +102,12 @@ A multi-page form has both a background page and several display pages. Objects On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +|Light theme|Dark theme| +|---|---| +|![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| + + + :::caution Developer Preview Fluent UI support is currently in the Developer Preview phase. It should not be used in production. diff --git a/docs/assets/en/FormEditor/fluent-dark.png b/docs/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/docs/assets/en/FormEditor/fluent.png b/docs/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 From 85553dcebe72e883e9b9f505a4b712fb0bfb56e5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 17:21:02 +0200 Subject: [PATCH 082/119] added link --- docs/ORDA/entities.md | 2 +- versioned_docs/version-20-R10/ORDA/entities.md | 2 +- versioned_docs/version-21/ORDA/entities.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ORDA/entities.md b/docs/ORDA/entities.md index a1c8f8cca61cba..164a77b603b698 100644 --- a/docs/ORDA/entities.md +++ b/docs/ORDA/entities.md @@ -477,7 +477,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection This function is called whenever an entity selection or an entity of the dataclass is requested. The filter is run once, when the entity selection is created. -The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`], etc. +The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/versioned_docs/version-20-R10/ORDA/entities.md b/versioned_docs/version-20-R10/ORDA/entities.md index a1c8f8cca61cba..164a77b603b698 100644 --- a/versioned_docs/version-20-R10/ORDA/entities.md +++ b/versioned_docs/version-20-R10/ORDA/entities.md @@ -477,7 +477,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection This function is called whenever an entity selection or an entity of the dataclass is requested. The filter is run once, when the entity selection is created. -The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`], etc. +The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/versioned_docs/version-21/ORDA/entities.md b/versioned_docs/version-21/ORDA/entities.md index a1c8f8cca61cba..164a77b603b698 100644 --- a/versioned_docs/version-21/ORDA/entities.md +++ b/versioned_docs/version-21/ORDA/entities.md @@ -477,7 +477,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection This function is called whenever an entity selection or an entity of the dataclass is requested. The filter is run once, when the entity selection is created. -The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`], etc. +The filter must return an entity selection of the dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note From 49c2fee89c9ad61300ac2e39fc5bfe8cf64d542e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 18:25:37 +0200 Subject: [PATCH 083/119] events to entity events --- docs/ORDA/orda-events.md | 4 ++-- versioned_docs/version-20-R10/ORDA/orda-events.md | 4 ++-- versioned_docs/version-21/ORDA/orda-events.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index 51552b941fda8c..f910a57bd16be4 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        History @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. diff --git a/versioned_docs/version-20-R10/ORDA/orda-events.md b/versioned_docs/version-20-R10/ORDA/orda-events.md index 6a52fdd62757c2..c96963f3c25cce 100644 --- a/versioned_docs/version-20-R10/ORDA/orda-events.md +++ b/versioned_docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDA Events +title: Entity Events ---
        History @@ -11,7 +11,7 @@ title: ORDA Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. diff --git a/versioned_docs/version-21/ORDA/orda-events.md b/versioned_docs/version-21/ORDA/orda-events.md index 51552b941fda8c..f910a57bd16be4 100644 --- a/versioned_docs/version-21/ORDA/orda-events.md +++ b/versioned_docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        History @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. From 6ef254350934c0915511990d3cb1dfe983429fe1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 18:30:33 +0200 Subject: [PATCH 084/119] events to entity events --- docs/ORDA/orda-events.md | 2 +- versioned_docs/version-20-R10/ORDA/orda-events.md | 2 +- versioned_docs/version-21/ORDA/orda-events.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index f910a57bd16be4..00f780e30215db 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -29,7 +29,7 @@ You cannot directly trigger event function execution. Events are called automati :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: diff --git a/versioned_docs/version-20-R10/ORDA/orda-events.md b/versioned_docs/version-20-R10/ORDA/orda-events.md index c96963f3c25cce..1b14ce768b5ef6 100644 --- a/versioned_docs/version-20-R10/ORDA/orda-events.md +++ b/versioned_docs/version-20-R10/ORDA/orda-events.md @@ -21,7 +21,7 @@ You cannot directly trigger event function execution. Events are called automati :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: diff --git a/versioned_docs/version-21/ORDA/orda-events.md b/versioned_docs/version-21/ORDA/orda-events.md index f910a57bd16be4..00f780e30215db 100644 --- a/versioned_docs/version-21/ORDA/orda-events.md +++ b/versioned_docs/version-21/ORDA/orda-events.md @@ -29,7 +29,7 @@ You cannot directly trigger event function execution. Events are called automati :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: From a6cf1c6c8b00add70172ba0aab4795bac83520c0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 15 Oct 2025 20:00:35 +0200 Subject: [PATCH 085/119] entity event --- docs/ORDA/orda-events.md | 2 +- versioned_docs/version-20-R10/ORDA/orda-events.md | 4 ++-- versioned_docs/version-21/ORDA/orda-events.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index 00f780e30215db..6056eb98f21689 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -122,7 +122,7 @@ When an error occurs in an event, the other events are stopped at the first rais |errCode|Integer|Same as for [`Last errors`](../commands/last-errors.md) command|Yes| |message|Text|Same as for [`Last errors`](../commands/last-errors.md) command|Yes| |extraDescription|Object|Free information to set up|Yes| -|seriousError|Boolean|Used only with validate events (see below).
      624. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      625. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      626. |Yes (default is false)| +|seriousError|Boolean|Used only with validate events (see below).
      627. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      628. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      629. |Yes (default is false)| |componentSignature|Text|Always "DBEV"|No| - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. diff --git a/versioned_docs/version-20-R10/ORDA/orda-events.md b/versioned_docs/version-20-R10/ORDA/orda-events.md index 1b14ce768b5ef6..42f09ec34ffe8a 100644 --- a/versioned_docs/version-20-R10/ORDA/orda-events.md +++ b/versioned_docs/version-20-R10/ORDA/orda-events.md @@ -30,7 +30,7 @@ ORDA entity events in the datastore are equivalent to triggers in the 4D databas ### Event level -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. @@ -57,7 +57,7 @@ With other remote configurations (i.e. Qodly applications, [REST API requests](. ### Summary table -The following table lists ORDA events along with their rules. +The following table lists ORDA entity events along with their rules. | Event | Level | Function name | (C/S) Executed on | | :--------------- |:--------------- | :----- | :-----: | diff --git a/versioned_docs/version-21/ORDA/orda-events.md b/versioned_docs/version-21/ORDA/orda-events.md index 00f780e30215db..cb9dc1cacb71ea 100644 --- a/versioned_docs/version-21/ORDA/orda-events.md +++ b/versioned_docs/version-21/ORDA/orda-events.md @@ -122,7 +122,7 @@ When an error occurs in an event, the other events are stopped at the first rais |errCode|Integer|Same as for [`Last errors`](../commands/last-errors.md) command|Yes| |message|Text|Same as for [`Last errors`](../commands/last-errors.md) command|Yes| |extraDescription|Object|Free information to set up|Yes| -|seriousError|Boolean|Used only with validate events (see below).
      630. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      631. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      632. |Yes (default is false)| +|seriousError|Boolean|Used only with validate events (see below).
      633. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      634. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      635. |Yes (default is false)| |componentSignature|Text|Always "DBEV"|No| - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. @@ -159,7 +159,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) From c6a8cdd221b91c63f9d30300b681a0464b50db16 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 16 Oct 2025 10:01:19 +0200 Subject: [PATCH 086/119] New Crowdin updates (#2967) * New translations dsmapping.md (French) * New translations webserverclass.md (French) * New translations forms.md (French) * New translations forms.md (Spanish) * New translations forms.md (Japanese) * New translations forms.md (Portuguese, Brazilian) * New translations properties_formsize.md (French) * New translations client-server-optimization.md (French) * New translations dsmapping.md (French) * New translations entities.md (French) * New translations orda-events.md (French) * New translations properties_formsize.md (French) * New translations client-server-optimization.md (French) * New translations dsmapping.md (French) * New translations entities.md (French) * New translations glossary.md (French) * New translations orda-events.md (French) * New translations webserverclass.md (French) * New translations forms.md (French) * New translations properties_formsize.md (French) * New translations forms.md (Spanish) * New translations forms.md (Japanese) * New translations forms.md (Portuguese, Brazilian) * New translations client-server-optimization.md (French) * New translations dsmapping.md (French) * New translations entities.md (French) * New translations glossary.md (French) * New translations orda-events.md (French) * New translations fluent-dark.png (French) * New translations fluent.png (French) * New translations fluent-dark.png (French) * New translations fluent.png (French) * New translations fluent-dark.png (Spanish) * New translations fluent.png (Spanish) * New translations fluent-dark.png (Spanish) * New translations fluent.png (Spanish) * New translations fluent-dark.png (Japanese) * New translations fluent.png (Japanese) * New translations fluent-dark.png (Japanese) * New translations fluent.png (Japanese) * New translations fluent-dark.png (Portuguese, Brazilian) * New translations fluent.png (Portuguese, Brazilian) * New translations fluent-dark.png (Portuguese, Brazilian) * New translations fluent.png (Portuguese, Brazilian) * New translations dsmapping.md (French) * New translations glossary.md (French) * New translations orda-events.md (Japanese) * New translations components.md (Japanese) * New translations client-server.md (Japanese) * New translations dataclassclass.md (Japanese) --- .../current/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../current/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../version-21/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../current/API/WebServerClass.md | 4 +- .../current/FormEditor/forms.md | 64 ++++---- .../current/FormEditor/properties_FormSize.md | 12 +- .../ORDA/client-server-optimization.md | 34 ++-- .../current/ORDA/dsMapping.md | 62 ++++---- .../current/ORDA/entities.md | 8 +- .../current/ORDA/glossary.md | 8 +- .../current/ORDA/orda-events.md | 150 +++++++++--------- .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../current/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../version-19/ORDA/dsMapping.md | 8 +- .../FormEditor/properties_FormSize.md | 12 +- .../ORDA/client-server-optimization.md | 34 ++-- .../version-20-R10/ORDA/dsMapping.md | 56 +++---- .../version-20-R10/ORDA/entities.md | 8 +- .../version-20-R10/ORDA/glossary.md | 8 +- .../version-20-R10/ORDA/orda-events.md | 72 ++++----- .../version-20/ORDA/dsMapping.md | 6 +- .../version-21/API/WebServerClass.md | 4 +- .../version-21/FormEditor/forms.md | 64 ++++---- .../FormEditor/properties_FormSize.md | 12 +- .../ORDA/client-server-optimization.md | 34 ++-- .../version-21/ORDA/dsMapping.md | 56 +++---- .../version-21/ORDA/entities.md | 8 +- .../version-21/ORDA/glossary.md | 8 +- .../version-21/ORDA/orda-events.md | 150 +++++++++--------- .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../current/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../current/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../version-20-R10/ORDA/orda-events.md | 18 +-- .../version-20-R10/Project/components.md | 2 +- .../version-20-R10/settings/client-server.md | 2 +- .../version-21/API/DataClassClass.md | 10 +- .../version-21/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../current/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../current/assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes .../version-21/FormEditor/forms.md | 4 + .../assets/en/FormEditor/fluent-dark.png | Bin 0 -> 25559 bytes .../assets/en/FormEditor/fluent.png | Bin 0 -> 25235 bytes 50 files changed, 485 insertions(+), 453 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 778f2c08cd4d61..76729ea8382ac0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Vista previa para desarrolladores Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 778f2c08cd4d61..76729ea8382ac0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Vista previa para desarrolladores Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/es/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md index cc56372ee96210..870338b9731bb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -187,7 +187,7 @@ Le nom de la page home par d *Propriété en lecture seulement.* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +Une collection d'objets gestionnaires HTTP personnalisés . Un objet HTTP handler contient un motif d'URL écouté, un verbe pris en charge et le code à appeler. Les gestionnaires HTTP peuvent être définis dans un fichier HTTPHandlers.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [HTTP Request handler](../WebServer/http-request-handler.md). @@ -495,7 +495,7 @@ Le chemin du dossier racine du se *Propriété en lecture seulement.* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +La collection d'objets de règles HTTP mises en oeuvre pour personnaliser les en-têtes HTTP. Un objet règle contient une propriété "regexPattern" ainsi qu'un nom d'action avec une valeur. Les règles HTTP peuvent être définies dans un fichier HTTPRules.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [Règles HTTP](../WebServer/http-rules.md). 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 aa94b2fc1eac72..7401d23f42858a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -96,72 +96,76 @@ Il n'y a aucune restriction sur le nombre de pages qu'un formulaire peut conteni Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusieurs pages d'affichage. Les objets placés sur la page d'arrière-plan peuvent être visibles sur toutes les pages d'affichage, mais il ne peuvent être sélectionnés et modifiés que sur la page d'arrière-plan. Dans les formulaires multi-pages, vous devez placer votre palette de boutons sur la page d'arrière-plan. Vous devez également inclure un ou plusieurs objets sur la page d'arrière-plan qui fournissent à l'utilisateur des outils de navigation de page. -## Fluent UI rendering (Developer Preview) +## Rendu Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. + +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | :::caution Developer Preview -Fluent UI support is currently in the Developer Preview phase. Il ne doit pas être utilisé en production. +La prise en charge de Fluent UI est actuellement en phase d'aperçu pour les développeurs. Il ne doit pas être utilisé en production. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle est ignorée. ::: -### Fluent UI rendering availability +### Disponibilité du rendu Fluent UI -The Fluent UI rendering is available in the following execution environments only: +Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). +- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). - Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. :::note -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ::: -### Enabling the Fluent UI rendering +### Activer le rendu Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Vous pouvez activer le mode de rendu Fluent UI au niveau de l'application ou au niveau du formulaire. Le paramétrage du formulaire a la priorité par rapport aux paramètres de l'application. -#### Application setting +#### Paramètres de l'application -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Cochez l'option **Utiliser Fluent UI sous Windows** dans la page "Interface" de la boîte de dialogue des Propriétés. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +Dans ce cas, le mode de rendu Fluent UI sera utilisé par défaut sur Windows pour tous les formulaires. -#### Form setting +#### Paramètres du formulaire -Each form can define its own rendering via the **Widget appearance** property. Les options suivantes sont disponibles : +Chaque formulaire peut définir son propre rendu via la propriété **Apparence des contrôles**. Les options suivantes sont disponibles : -- **Inherited**: inherits the global application setting (default), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
        +- **Hérité** : hérite des propriétés globales de l'application (par défaut), +- **Classic** : utilise le style classique de Windows, +- **Fluent UI** : active le rendu moderne basé sur Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Features and limitations +### Caractéristiques et limitations -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. +- L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). +- Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). +- Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md index 15c307c47cc3e3..f6ec06c336527b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. -Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : +Toutefois, le modèle de données ORDA mis à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -111,7 +111,7 @@ $compClass:=ds.Company //affecte la référence de dataclasse Company à $compCl Un objet dataclass peut contenir : -- attributes +- des attributs - des attributs relationnels La dataclass offre une abstraction de la base de données physique et permet de gérer un modèle de données conceptuel. La dataclass est le seul moyen d'interroger le datastore. Une requête est effectuée à partir d'une seule dataclass. Les requêtes sont construites autour des attributs et des noms d'attributs relationnels des dataclasses. Les attributs relationnels sont ainsi les moyens d'impliquer plusieurs tables liées dans une requête. @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,17 +155,17 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. -> La propriété manuelle ou automatique d'une relation de base de données n'a aucun effet dans ORDA. +> La propriété Manuel ou Automatique d'un lien de base de données n'a aucun effet dans ORDA. Tous les attributs de la dataclass sont exposés en tant que propriétés de la dataclass : @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md index 0be4eacb122866..bee47dac9df190 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index cc75f45301a848..f714b870b00567 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -5,118 +5,118 @@ title: Events
        Historique -| Release | Modifications | -| ------- | ----------------------------------------------------------------------------------------------------- | -| 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ------------------------------------------------------------------------------------------------------------ | +| 21 | Événements ajoutés : validateSave / saving / afterSave / validateDrop / dropping / afterDrop | +| 20 R10 | ajout événement touched |
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::tip Article(s) de blog sur le sujet -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) ::: -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | Can stop action by returning an error | -| :------------------------ | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| Before saving an entity | Attribut | `validateSave ()` | server | oui | -| | Entity | `validateSave()` | server | oui | -| When saving an entity | Attribut | `saving ()` | server | oui | -| | Entity | `saving()` | server | oui | -| After saving an entity | Entity | `afterSave()` | server | non | -| Before dropping an entity | Attribut | `validateDrop ()` | server | oui | -| | Entity | `validateDrop()` | server | oui | -| When dropping an entity | Attribut | `dropping ()` | server | oui | -| | Entity | `dropping()` | server | oui | -| After dropping an entity | Entity | `afterDrop()` | server | non | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | Peut arrêter l'action en renvoyant une erreur | +| :------------------------------------ | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | --------------------------------------------- | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| Avant l'enregistrement d'une entité | Attribut | `validateSave ()` | serveur | oui | +| | Entity | `validateSave()` | serveur | oui | +| Pendant l'enregistrement d'une entité | Attribut | `saving ()` | serveur | oui | +| | Entity | `saving()` | serveur | oui | +| Après l'enregistrement d'une entité | Entity | `afterSave()` | serveur | non | +| Avant la suppression d'une entité | Attribut | `validateDrop ()` | serveur | oui | +| | Entity | `validateDrop()` | serveur | oui | +| Pendant la suppression d'une entité | Attribut | `dropping ()` | serveur | oui | +| | Entity | `dropping()` | serveur | oui | +| Après la suppression d'une entité | Entity | `afterDrop()` | serveur | non | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : -| Nom de propriété | Disponibilité | Type | Description | | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------- | - | -| "kind" | Toujours | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | -| *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | -| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| Nom de propriété | Disponibilité | Type | Description | | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------- | - | +| "kind" | Toujours | String | Nom de l'événement : "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | +| *attributeName* | Uniquement pour les événements définis au niveau des attributs ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | +| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | +| "savedAttributes" | Uniquement dans [`afterSave()`](#function-event-aftersave) | Collection de chaînes | Noms des attributs correctement enregistrés | | +| "droppedAttributes" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | Collection de chaînes | Noms des attributs correctement supprimés | | +| "saveStatus" | Uniquement dans [`afterSave()`](#function-event-aftersave) | String | "success" si l'enregistrement a réussi, "failed" sinon | | +| "dropStatus" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | String | "success" si la suppression a réussi, "failed" sinon | | -## Error object +## Objet error -[Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. +[Certaines fonctions d'événement](#summary-table) peuvent renvoyer un **objet error** pour déclencher une erreur et arrêter l'action en cours. -When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. +Lorsqu'une erreur survient dans un événement, les autres événements sont stoppés à la première erreur signalée et l'action (enregistrement pu suppression) est également arrêtée. Cette erreur est envoyée avant d'autres erreurs potentielles telles que [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propriétés de l'objet error -| Propriété | Type | Description | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| extraDescription | Object | Free information to set up | Oui | -| seriousError | Boolean | Used only with validate events (see below).
      636. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      637. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      638. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      639. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      640. ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      641. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | -- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: - - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). - - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. +- Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). +- Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : + - Si **true** : une erreur critique est déclenchée et doit être traitée par le [code de traitement des erreurs](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), tel qu'un ["try catch"](../Concepts/error-handling.md#trycatchend-try). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status serious validation error` et `statusText` vaut "Serious Validation Error". L'erreur est levée à la fin de l'événement et parvient au client qui demande l'action d'enregistrement/suppression (client REST par exemple). + - Si **false** (défaut) : une [erreur silencieuse (prévisible) est générée](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Elle ne déclenche aucune exception et n'est pas empilée dans les erreurs retournées par la commande [`Last errors`](../commands/last-errors.md). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status validation failed` et `statusText` vaut "Mild Validation Error". +- Dans le cas d'une erreur déclenchée par un événement **saving/dropping**, lorsqu'un objet d'erreur est renvoyé, l'erreur est toujours définie comme critique, quelle que soit la valeur de la propriété `seriousError`. -## Event function description +## Description des fonctions ### `Function event touched` @@ -128,19 +128,19 @@ When an error occurs in an event, the other events are stopped at the first rais // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. -- If you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- If you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- Si vous avez défini la fonction au niveau de l'entité (première syntaxe), elle est déclenchée pour des modifications sur n'importe quel attribut de l'entité. +- Si vous avez défini la fonction au niveau de l'attribut (deuxième syntaxe), elle n'est déclenchée que pour les modifications sur cet attribut. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 zcmaf*XEa@J6y^y*^b(?r7M&n^?=5=oMDO+LB|6c2bfRCqcOs&9Av(e3a`oPs<3BSW zX02H>A1v$2x#zs+ocG=Dvw!>9iBeIL!9XQOg@c2`kdu{EgM)*=0)A#tkbu9C|J}<5 ze!;t`$%w;MPmt~b9}um?6vg1+>f+HJOkV?^-#E+ay1~I=_PzYT4?2~Z!@-%^%Sno9 zco`k8BKy6yctSc^cl1H|Z~^{`g38GFy-*MPrqJ{2w_uF0b5S9DYz=G@sn=rPeo#pX zso2vEmgn!nQ+>;)qK}NkEed-pt1PR0B{JE;X^K}r%sTv`AsISqwU|@iK-+OYroTg` z|M_!FVQZ^SjDnF-Zc%ZuoRU&p`&)ecsJ;!A^t0A1V{+rFeGFrVcVj2nkEfTnNg~2l zXF^%yCF^Gt-98iDer%nK&APb}JbssVD^=0At%$E*%UN5Og@%R6nVT1dhK5G2Ib?KBs#vo^Yo;eK&}RBa z*eBcBU5(n~<(A1HHE#ohY`^PO&$H7(3I#Q_qySGUDk_eOfmo8!%XwqAz}rz{jVWX# zq;F&exk*Vs#2;gM)=bLqaByzlm~+?PM^FT)=*E3+f$r>pVV)_oQIU~D&+q#Zw};#X zmZqjlCX)DZa1sN>!<|-IRWG9(tgNgmlw2hxB_TZt+q{|MR~r!&{JH*Dy79g}JPu15 znOt@y?epo#5u>ypK8&1h4PNrS9BjAC@_g|}Ir{MNdfij-YQgNz{@S^7rARK>{N!Kn zOuiVxTyeJ`uRSXlm*L;)M@h@c+^Q?`NMJD6xq(mKb<~kUr@MvmBW0?EMW%h>wo_Oa zolJjOmjXAZ*uD?chhr3)LxvJ=3*4-S3>wRYD_fW9Lb zo=y>unq!UH3rk8iriZ_xa%gkQ=?#e}yT`@B(d?fsR|iHdjY%%3bM$(&Hg3^=?V|YN zU|J%NpDfM)a$DLT3`^MCo-a+GuGDpliY#Lb3k$P#`dMITug0vv{dTCR1;#TB8>E_1n>V{qya|8r1DGw`hwi2l%s< zDvv$iLN}x0Pg@RVXLs&mYSG`|3@tU9s=u6Yy3+s*BFo7G)vtdX1Qa^i+=d^yry*pd%82XesaY3mOn| z2-d^&cA-1(6pqgw^rqg8ILV;qSpEG{kB6g51|>e~MhBg=Y6~vS;>~=sxC(SFTJML) zCHkPIqeD}kA$4Z;qv4QjgBhf|KkwsxLCwQBTz_%fM98)P*0Nv*L$|PYvO&<{(gA4MXqK-%=NiRjPW-XIa}H` z30m=W7`$u$>mQij=bI~Mz%xiwZ&vKG&+-MG(=VW*o)xR0?G4p_vGLJL47H=ZRP5oU zVWv^}vgyFFFVfHPxQ?08)vnW?YnLuiT|fE*1JnCqz2B9dU3nc92WL7%Obn+mxBXA2 zw;M1aTKDOpqs}c|k5|iarMW)xdCU|@8Q#!UtfBzP@4Tee3N3P9+7-ov8+kf(8k0Jj zBl1(nvZVNFN>w1`n!QQcn#!+GIU)Z7pFc?P(Os|rk;EG-Wbz*`$TOmma<)k@dGAl@ zzME~{xMi{;2~XM9>?$ZlqD(}@uEb#On%G}yPVjt;GxxQC;MuO3>-`}$4V{2QmN=9b z>h}@69MX99oTVSUeZHEA3(~6nee5N%*(|(oAS)@UG5CH(h-jm!{r!TF@QTB91={wi z=Xzqw1?li8Rzhd6=pk+qYujy5QiUPZ`aFp<x>*5uK;_!#5@rs0U%U` zdASRF{P!__a!?6)Lr+1yz%O%3^q0S)nbrcKPZuR52M8_Vga^RC6Z|rvqoS(E{-59e zxB!fSIh1-5cwV}aE-vf}FUM&8-;VkJoc7BgJs0p*$n(cc=KoIee_m+e>9Qt}uS7Yo zS{WBdRTmkHeAWp^v&Z9bX|DzB2%9Yj#`|OB{X#>1{qGO`xP;c~WGUaieY+@@%tb>% zQJKHF$POypoC|yC?-!!KMbn7%$S#XDiq^_pky0fF z-d2RR95cdSQq6V#NZw0&gia@J>Dr)1PZc=#p)}F-ss+~%zUfoEPBtN z71wq89YXpbm8bCa{qcNF9t7B0;6z*@k#~vke)JQ3P*VJxf`Wp2mn~`h3rP)s!UGLM zTdD>BHKy*xTAA&YQf&q2WVe-YeiL2iKisZIv(NGk8_Ab#vlZHGZRZmL+w;bOsaPTp zDgk$UbilTp*4Zft>U9|Fu@ zdy8{k2~V8%^2uz8VwMJpTZLBD1z)jZ7Pq2iX)H09e4d$OS-|n1()iBHzxqj;nc&GP zQs7L^#`b;cTE5S~q^3g0J8r=B-S^#zrWVo877NZsGDB8iRPyUz!N7ZmU*(Cme zUFQ|aC!wml)!by(dt)C_?)bPghsg)Sm$SY)%gO0Qze;d^6JrbZnek<0XIHImhcWuY z-llL!h>Op<27X;TM$uIUudnv{*J0R?s%v>aN0#j@9(n-lF74+}(YgXp!a3qRMBfl$ zo+zPD26?XHdn!&6;U$?Ly|2x|&OMwlkKaes%3MBVGB#jBS@M zr{9w85qV6YUHgj`o0_Q+!Hy}>Uzack6a6(&I1FGv&%=$1i%a8nSh~?1%6A}*Xw<}S z-cS?}@H&6uvitj4b8<^1c6&5^v=2*!+1T$iER&qiwdeuRW_OvA=CA2fBf`V2#SD$l z&QKxqLcZG_4(p>eOL2a-dYJ?;I`h4Hp6%*H&ry-5Q!H=m2i^?+OF7+U`>3Tok#c;9 z^LqY2Y|ZvTOfeOegl-U+RrrmE*$I*MUQa+NIDA!1)Fh{VWLZlpjYYrY6><=wddcTR zr=CZx)vI^B)ziF6U5vm6E{{}yn!CU5qvhutWUo5$ho?(qno%mr+p>1yD14%%Z zg!nI7osNfE|A?5tUDG!2g(}zMuIo{z8s?3Y*Gq&Fxi=6hY4H#7^;^$O4b zBp_iznoZFHI^m#^UkMFs;@E~Bix%KJuk~(!@WrmOir#f|kzp<;%WdA?eMC-hfkXrt z)7SUvKvnZx5|Wo4ME-%YU_;OAnbpnsJJb0NYr^;M2(atB%7zKGu!x5Tzor0Z=Y-jc zcdVwSron|}qvZ0jpxAp;E0fDW5iN(a^}rs(fmnZ80yZN?x(2r%>GFB26){-~IDMjDJ#Sa*56zV1-U=Z?*^EH}pd zk%l=us*2Hm>vMSeCFGF_i+_qp^JZ>3MO2ati)<-GLY!9P^<6-QutPX{&$dTK;p_V& z;{a7^BjTnYl;<;_pXrmG$`2$yeYU_a{u6m zdr+?bMBU#;cgav1{3Wr$DbRqG+@lBlL+txj@bY)hi5%r}kbx;l`FiC{X=jM2xBw9s3M&r-&&eJ0=M5l-_VY)y=Kqf;TDiv;iUojrxfp#$v3iQFR`SBPw- z;QfJ{UjF)rn$EjS8oE+hAQfVa)z;SMZ8ozsOy*fLV0G#|Z8tZ!l<$gcprPm0 zVWB%-So7M#804H3EL7IY!&SYsSqHO`H1Nq%BtLG8lVD;}$Q93 zTiZV$K-Q$M5(T#!Oa{xf4E}u4D$kCR;!CE)#L0t-qW>put<<%3Z>T>5qiY(h{EIM# zhwP0>+5_LC^surZjnpF1-O3+R-GEamzyre9sp9GkNcYP7rii(0i(34{ z%9g)JSm+?{bIeASeZd6jEV6Z64;?HvZ0|cYTNgthp( z)Tzxp4yMFVQCG0k9ksY{4t6R$DXFOP#P(Xs=#AsZ`Iv_p7;p)9Df(JBy^)b$mnXuw z?HAsAd-KhCeD0b%F{GpdQ^$x|qc&}Rk(UP(-;T!|!jAsc@?@{T_G^05)&t`czlvg- zsFMToR+TJBrDYkxd~2Wv(g4a!Cno<(K{(hx`1^su_xg#kUupv0q3n~u8a*I~yMO+~ z28B2GE2M$NOdd|{ZM`OJY;4X3fg70V$Pjp(Lo(-oQMDjA`S!g%hO@=eJg{5Ay+lOY zS$=37=g7v*RT1P<-J-XFukMSI<^So3m1KPVR4wf$@$t@WkTXSIIa^kZuC(9}J0Q84 zCwAXZ;58U;Zf-sXTyS@iYxI?tmfEP>E3rlc&(Yk)Izrf+LqCo@Hnp-cIbfYNb}9Ve zfOL55vvyyCy3LEWkCwpx0%dIp&&MSe6F`FK~8$0vDBqnD2o3A4D{VTGX;dSKY)7Rb9K$cSyykeT3kf8GBZ}1dqTikqTPD*X9 z3fGa)%P`Vd4PoE;+)9MynpkLPB!fdj=8WileQEQrJLzyLS@_j3eLd_MQ9U^hMs=tSa}ikCJbF&fDV&o_VIq@tox^DAC1c6 z(Mqz}rGTo%iA3Bnx+W_na`53SaQm_)N;w~x)_fFz<;K?c z__iDGLvIp)qUVi-QQKFz4#-Y!N?yPc12QIQ?W}LOxQe*=kB5^!kErPA^shhP`@cEO zGR0*s$McR@&lp)egilHZso~uE}hzQnn~zpRT&)Q$A? zyc&KIz0->lFD`GsHXv=@O(Dj*(yG!MuD2MSI? z@GFESG=Yh>vx-$xjrIHcpQr$)c`dW_Z{f0b3cE_ft`FTm3RE`D&sQSG(1d$Xmd2Cc z<-a|WN~?MOb+60!8f-HrlfOl*dE>C$taTTy3fs9Xev{rEiO91Jl|DEv=0CMLXjCDJ`>e|Wq-ODaua|$nc?=4j1 znIYZ4H7XMriF?B3{(QxD7LQX}mQ%OxAvWPu3;aghHl0#-LdQ|N!b^4#@_x{SRgsuW zOW;upCK)kLVA7&c7>==BIfUX6rzwEqGg;ajH}hV;WuQOD|Ng4{%2QTeUTwo~l%=I? z@Ae#8vH$IT3eHpO!9tw`YuAMuSK$5CA;*{BC?E{_y0og1L4SCMrv)3)VUm_Q7DV$9 zB#c?tl$Fy?Y_Lwa!)9H(=W%tK^7oG$F?SeVsK>NQKF*Uu*RtZ`!I?b%ckcKTJS)y2 zncFGjQq0hY<@uUZ^iN*`>F~=9B=rzw+t_s(rBpWTe*$=V>f+$M2-A z8&EsBA94#naH-upFkclWpWW!idgQv%@$u>QY@;s#u)t80J-zD416gbz6FjK;y2oLe zTT_jt;=o^(il?ZkXtza@n8)MjwEd{;y}ccHoI-#Q<+Q$*GuWj8qk6JO5ZL$bSg61x z2d-C(P;2-Fai(p(QjKWNPOe$`eQ2(4^&Q4VX~W@dCWF9aLCPAis*+%i8k2c%LVe=N zg*3RHTV1x~{y%Tx!<&UD=R<34eCaIS%(qh$SY<|&LqjTLTQS>ZL81$6y7iKZcsQwH zNe+*9i8F_1)`u+>#r%0)JraAJ0gouR3K!cmPb+Rkt!1Ld;zRC#QWvIeFy~InVA3Q! z;H_8{sj`hJBxbk6!$Zsop%^mw%J`G}TWH=Ttrb!ZOs~Ze(4h9J%fHBfYiLRlS(hp0}IWLCj5$h22`gU&pm$#22 z&V`vf?*YL7RZS^AISB!^i5+`0I;tPAu;#0^uJ%#mXP+wKMkGbw1wIa6`X8Zj#7Lyo zF*y~Lm7n((3p)&a4?(!ZBT8=DFKBTN{`KqExJEU(F|FsAZP485nJRsrw%s4mG>nWh zvt%&r73;K4NK!N{|D7ulw|!X**>%4A!IY7&qF{x-_Y02%1XcH~ciT*-uDZA12+i%o zx$-t}BF(v<)(zZDq`vWei_)>g40gi0EYa`Sk{k`$QXl-zg`rCWCOmIOF)n2xW)Bly zSQ~Lk0zLx*-^g$Yh{0i&-!q-Gc5foMK{5Hrw@XTq_&!(nxFM@FD)`}Sq&S+G5ze~X zUI$BGbEqN;WnogGz^-hSao1StRZU+vA6>@Qk7?yApc&Kah`WFwrH>m>8#yH8CljMa zm&2D5N(~EB2q}|Q&wGzFSrPDfXNw#v*w?rE`IV;W?$|4tcyi4y%{D7}chqibUdalJ z(KK*qR0G@JSLD%Hk;{Wt`H3IGnX#DQ$L^)a0ASQ z4Vv_JCiLG&y@>*5LnRv*@QQ1V&w*T){7$S^^;-6-o8nmpf|@0Mdi>!_xPF5 zweGlDBE9!;3pFeu0bV<+YGNXX=`Y^4t+-|R;I+It$=Zfk;OID4*+c?Ht5NU6NiGX6 z!Qd{7QG%Inf8;kP=vVhDH4OiWUa$(<#Ljr;==SvVOs%TKFsEvSiO>IL;?TbAYk1TIYI*GyVi5!99rg_X1U>B&!!9GKO87F2R zilbGFu#983_jiM`*X2ag1rjpD;TR-CwWd6BHAbu6gth4}Q>o~+jYO2~lxQB-V{nHItXQ>W%pZrB)#yCTbP8VKJRC8AEpW0RM7@2{&11=X}Hn#EPwD zJCdc_kXHz^dlqCL7N<|>1mjlCoqfd7af2{fEQQ$-R2BQ;g?!`-)io7c5cDs3JtUl+ zBT0o_ff8PTnDC>!VHK7}$n*|Bs9m%~kXyI<$TxL8o*N35Mk>>7v`#de$mY9a1}hR` z5g|x^_g=C5u@vq+IWdtoHul*+?pRl3A!K`@jyL1{m*DNq78kh4AnRk1M|w0{5`%h) zY#x)3U9V%#dG$U20-a*!Z?IQ`s2rKqM{&8F0woA}H}y^RKLLrk!Nmb`>?=DIvS zqz*Zg_{BE5L6|3i*H^~5tJ?zmT2IAr2_fieoNrkVmX0Y|Aws}mwM9x0GC!*_+mo!2 zk{-AYMIgB=Ze8Fri6zQU2-(3j*y2lq-i&{IlQtXG*?0VT?)~hv4Xa3xsF8l>XUC35 zR$%Qumz&faUUPr?r19m;7xR_Y)3e>eWXQjQLfp5cV7B6smvRG)(5ei%0{3*pb1gaD z*jqE;c?*lr`>d#2`ta9;l#)_4sYrmqn(r}!x2A8v;Fm4JBl0gVua8o?tZ?ZOP!8$Z z#)dRDHhW;tW?lY@4L+(BmlSND-I}LknKM8DDTw<~^{pbHdnDie3&Ao6YRR)oJy%B^(=Yl0RV5uCDwefJ(w` z|DSdNO5qk`-`VdBsD6AakQbo&WFX#01xXj`usDOrooz;=&B2LSVu31Uv9SlxL$yt7i~AWq_zW84BO+;x(;+Na0e#U2JC$vPl`r zw$+O^+uq`vy7!WD`PIU29Qi4lo}E{(>a{AT+#lVS+LnwBvn2RjPB30(!s>~!JPreQ}I>COqS#f;Ob$+IM z-#>QyPl=-XJ2QQqqjt_93jxm~jnP^|dkPh5a&GOEP>Dch+0cIuf2QjmuoY0xVtkLA zGD6s?(!XwtA@{FY@rD|n0ocZ_hD{MBB`Gf}Tc%f24L&vL*-q0p2c+~2ppijhCL(7; z)V4&w@B%ervZ5`dBTet73M6caThiH#t9Q1#Uvw)F`9>G&%!)ma*Jy)$A1~+s(}jNr z7upsWKBmDRMQ_p6Jw&s0Cv5aZjQ$Kluy{d{9_Hrea;ZGQ*yk!s{dWM>O(f#9EVCft zan!i3u_-SvckRRADFb^`58>hBLUMhN5`lsacs_bm*D9xY$8@pUu*1Bi85*!xoDRN> z8X`XM$O;V&mun@kWw0SS1J+e0IhSbMtfq|{^slQM4|5Zyy&)o4rv#FDt)<@dd z#uBU34Z**<^7Ad_k5Nps5#Y8?d2D7R$$jmUIxl8k?aeg|+Vo;d?~y_0MY$fD9oC0` zM^L0@Igzunjb%`?BV)=sqhwMjtw)uk*$OT|C-Z9L;|Al%)YHiXJj(i*;R0uYg;WMN zz(M_URZPcJzt-bW5B~|pU6g*S?x#+8@)e1*@qsK{a}bQ|0Og-ci_?0we6MsAnQ8n9 zcP>`*Dqyv^6s&XD;+sVj042-N%TlGNkKg}}KKtkx2o;60bN&2LP+1Kf#H z?`Nk5NZ-EwaDRRLE_-T!C(9|(Ws7cTXWY0#MKT{*a|-EDub=G4qY?T|kDbNz52>?j zRqCcgBrx954Q?*=#NUYZri$uzHG-b2Z!4bbU9f8=npy8=1=36?X08ASVo${V_25t? z6gs5Hvq}Y&^=j>JcSsyc`wLPx0nF%MrO{uAN~*b9wj^CX^Y!Z|`92*>#2SH{_pKpQ zQd}bB$ds|T?GH0=g{|(nw;Qlw{uj@s*Rfn@+6=XFbdc@AVBa?p@fdR?13*TswfDEX>PrB z_4Xd^Gr0XTweI|lCXN?W@!P@o_8!u5f}ETROx`j>5?HaxVQ9ulM?yZb0jwS$zRlT* zz84_vpAgW5Tke~9<6*9*{s&UkvX&?y9g`$*Ow7QfRhfWCm!yIBIu8BgXl+}!+E&dG z;Mmco;P0FcLB?V&cjU>JTxzn@);tsf$hm*@buHBA=EU@pw+t*3)x}s#rqS17#8{zP zrev)yL&ulWY&DTxzS9Lr>zQ_tT?Ri0oGC5CN4g(}E3l?LD+)K!5^wSKI(_gL-t9Y< z28}&F!Om{*7h(6^T1L%vkLAOqW5}wldvi<-dQ^;{LKunognBit$1I!)KO39=LGzck zy`3!c;iP^JgZsx`zZfKKvXh6Y>Uh}G?ylq6*{^ro(=y~~9~6n@atUDlOJisXu1o0tBfs42uJlsxe%o5?~4Bn0l z-P77p*(!)gr6FNT#$Y1JM0@Dg3 zI&y51sP&S@fXT+v(qgn7ls63IYLIXerzE;OKRvW^3QfWamuGQG{{S6PWnL@%{o5Ohxa9gt$LQF^X=r*{_MbC|`G|H+kUT`~oa z+*@%2m|TMdDDM?o@yl;&8-h|ZrK47wWW0L<9yPcG(>92U&HDh$m4+PosDW=qITdzuQRp2-)1#CiiIf_Z1;Mc5~5t9 zu^ljw>zg?zeJc0o6;C z<*a2=Kl89d_IXJ?Gz-6$tipl|f7*7wxLLAAP6|vXlG?awd!E|0jl8`J2x_U#cNP0A z?k=E>Gj|^NqVzW5VYf#M_K3cYj&bKF+&u9?(4ZvHW8}xS=e+BYr2aDT9_cV6son?& zYC%=EJ0M*ijFYST;DhG?u%P8O_U_3E$YT%k{prJBqU#FNDV;bu6Ab`&xpATtcu z1DSzxR+0VMLn^-p_TlN1Mv~Qw+{B*$D8tD$kgC&qBGqPyc1{w3nM{|LS;Fs2IfcEm zjqza%ZNg+S*-ul=v*-NlM`rpVZ2|an8JW?Fnr>!5lxc407`2*N!G)vWW-;qGOFDL4 za#y+AYtvqi3YwlhuVCT&eQPHF*wne=<@qFs(;AxI&}ucNs_)(29^=@w z0;%cIxT)}Dl^Tk{$QdM|3rKQ`)W z{p{K_Q^&c$gr*98ql=36ZT5CWyV6T0)qK?V3B`Quc{6Z-?&R-aT))kA)x&SjR*E$e z^th0^eLIc?!?tii@S)ik%oL4zte$OdkT~(d+YFW!B47+%peCyd|H!D9G`$w@z$X}+ z6AcwLEi_cp`+PjG{Jm&IB@)ID+se#UYCZmK=(exMmqAJw_#iR8a!?3hW099rP^hXk zBQc^rI^QeZpH*pDT-3E4%%@^pXzFp%`YQ)A)bBkSX=*2*7w|YpnI~ZRTkUCc9MLA- z)X;S{!W7r$2898X=A@S^Zf_8db60Ex=KVwcgiLI&93TKN8G=G}fB+ORc5Q})NLU<} z<_(`u3LuY*(|^YZaQacmmd>C~u0Fr}<_Obg!0Gu^CgXO6`PTG49+%wcc3SXexd6d1 zc_0>&DDz>Yss(fY$)n$KT>|}MNaE(sgs-ab!-)v&*dg56GYlF>2B>i|>gzQDJ+h{M z!&a{Z_`MjqVffF0p_F4`9Ff8(^j_+nVG&Z|>9rX{6c|q)#=D0Xt})Px3($nXlHR!E zk4M*=3TzdWN}Bhj!(az^hs7Lz!~Eb!SVavZ&%)_Sh{P`q(8X9r10?Wy`Jbk;e`N&Y zz1wnA>Pua)y2CLa0)?h_xP_NQ1MUW(Udc98npag(E1l21FeTO?oE+wl;g>UjKQE&wY*6Z*(XM8M@kNyNN^4?F8`P-n4rT|rKW-kT=sEWM zlQB`Egc+j1_uA)=Xw7XA#2jSVWzR!~Vu$cjHA6n3j#q_T4gQvOb(JqB8?eO-CM}+v zP0;`ywC*d(nwTUIjD*z(JW6xRc0enj&tT$2Z?_APDlx+%ZUXY067YXgW{@g#oN zizTamd)bMGm0W0hG*^C!a*t?Fuht4YQ>DxIJg^9J@}pvqI)LA?7PbIF+O6oqEwZ{(&kvFJ4?2>VxSG`(8)?=cJxmZ0U_ zFQTEPEx+gYOd3NA+&?%l&?JlRX<9`Lw0kLqbM?gwC^h*2wgil^O|0IyukwGy$%MAH zHosV$Ya74#Jc>MzbAwO+jUw?#hem(1rSI~&PHdRu)5nn0Cy>9QPrW|+qrmTBUlZoD zXLNz$KziiybW5gL1!s#Ku+lBzi@C?RFuoQF?}gzNxVeP~kyHb7mtL8r0##;>aeLf+ zAGyK7LA#BeTT0WWHv$x87QC*I+K1z4HsI~#UUc0t;@=!CO_8b5q#OFwNqX)x1}!}r z_8EsY6Ffol*2R7lb|}bNe_zg*#t*#MHY^5;TlIF=%JtCnRaXuslJVmJ_!@jgR=K5q z^cNH;?EG-^hKm{8BU-yPRRuWStc#Bg_U3zfV1yBBEdumSJPv<9-x;`sHQFw!HD!@F z6B_8~v;yKro%LWv^;?r#mB0d}=<(fJm#@vT4GZ8c6Mq8A!Jyi6WI{9%7B0hkUpm{G zhN~>Bm#fX8h`=yq3bJ`~>4D-2`1d~6N#}I)YO9>t-gH;#r%2oUU(HnD&}zeWP}gVH zdHEH1y`MzR>v3e0$worH6>i@P+uNz=$IbGy$%TH*nYvqwNKWDBdj1_|2HxSH^}ko= z&0P;?qj4|xqGXL_XDaxZvrsH)hvQ3}j5p$ln!o7rzhI|kLdFy7>2EjrSat8(nGNs4 z8GPh@QBCjCdn7CBCUItSWBeT-w5q)90P=GqFJ~o|auI>mAx9qI6|4nzf=xSD@TQSP zw2d2|B>A26GBz0o-jMya!pn=$cO?3NM;DX+VQC_Sl<(%fQQ-|UOtejHEAJ_MU;^nIZ;d%xW9F)mlL)x~4 zd0)N1((x-NBg#(W5~dWxSlhIzHS5{}GSPL!*|U4Rl%?dPBwD`LLR)t4fC2$F>%0cX(-GVQDMiE~ln3%Ebks&XZCYKNaW4El;G$H(fo+NlIm$$+!Bo2;iv~@^j;Y z2%-(^?vWhMt}pwQu8i8K0SE}WFZ#IS!e-ZB>MyQ;o+-1@>3+ib^Akaig^!L z=aSAPzo!?nZyQYE*2r0CNF;LhqyMb_9L@COP@Z_2T%E(`sd*%Yd0oeVUT9(Kq%p)u= z3gEe}kRcpRE+bV@Q=&MypQp=&{4EFVyDDkly$o`uitA^3nwx+3_uDPY&z3%-J^dw2 zp=03Fo#EtQT1`Bq{V&Lgm2*-Hsgp$?ItguJpjc%iKLVVM@t=#4x2H3rsJv|^e`8Jl zzl-^3hXQH?wHX(O5&u1k!~L)@Z(QGtT0IJZcTXtegyjt7N!9*HjO&S~WO>N<079Jm zhuM0C__qpWVp+g;mfrtcr$8;Qn4DUP!z_x6866< zOTOO9j2v1bWt=_jJBkRq#6|gc(~8JP@UB8J)p*7uZ6ca>@3)JlJPTVRd-&b(0V&|M zP}jUV3SPBDO9}mr=em1h+T-vGu2cBnJ3xP|DZ-Wn{1!`l*T9-gZ3p$E<{Q7lV8nj_ zhkxitS8I_S8=GM;bw&sFIdU25peR#BBd)t6CO>@clirDsi!kUSe{xKmp`+7e{_k`! zzYw2+*y5DOY}{>NXtsnO z8~}JIz<2(D0f56{>68C31Aw~$l#A)uA)YD--eIR0jb-$)w*odl+qGtgW%H?gG28C_ ztv1KWRll*mFrZ4sxZ8-Wpd^2~49rX`(VUd;2*?^gw^SPIu_3$kk(f^ST}F)pW+%iN zi+0CJZY5}f1WL<3H&bFwdz^XzISj)9rdVrjl>(F)% ztO=`y)A)l$_))aoeeVaGi}=rGr*$LgIMQ;Y;Xz75z@jmi&i`VWc0d@dLkMbq0QhT# z-m9_Y2CI00(@RuE|K$1GZ|1mATkz}F>uBH{@J*ov{C3%W=OeYXWL%L9KiSpVDvL=W zT$%b~tBG$rbsww<`54cbA$f1g}@z z>izFMxP(l9A!;6Op&GxR&xAX8?|0h&ju8SsO8m(>pB!t>j76_erRCIXfd6P`tBqtb zFS3m421jNXzpH(ky1O}GwgT-HK}20Yxe!&{=9zSV<7iaTTaYz{$E%fIk16PTN?{{V zK2rz6*Q?9cR!Kgu-2~&78iZT{OmBs0`2*h9jt*pJme+GS125Hy+S=MAn1jJb|NW{K z@OCT-PulO_GlNW28iuBifZYbBu7u*MZQ)B19v(h|!LycE=4Pe&O6IcJrT3Hk29ic$hd4tIb782H zC_@hifGO#LTWU@FcS@?F8P6CH(s3&(nOj#b(J}LfV?^j;bp5^gv}BaW)$grgy$w!T z<1Zh#h-L+>Jrl+#tsid6K9gs1W<9bW|Z{D{^`Ew%p)bHcu z_hX-5uRHMK400c|qeh#5Z% zT8CNm!fFj=TFGTuQNS4n0MFmgDicror#WzeqqJ(kH>jInZ^^2lS(>7;>taSB z?ll_0?*DW|%tm~T6b!M|Ke(AkJh&))YuSJw?b6z8hrKaKT0Dc#qy;dk?h^4y)VUG* zx-HO}$1)4YMu7{E$Wep*Je-}sKRleXX7Jgiy?F6M!!!+&zuikpNr4?!Tn4L_JaW!e z#RHGKu*{!=!)yuH^7GZ_9-mN;-`z#520nMWUa!m8)G(;{bEA8W5Ba$FIsfOYD9DVi zK(o!Ls?(Q~)QDDLRFB{*-n`jf5*RCQ-vCjjV3FRa$Mw@%bH;#OBeG@X)ebjv-^$`x zmJRa~ysI%3i1(JU52DlRF9_p{w>W#P{yraQNO0>MQT*o_>?t!~8E z@&LWq=2%gw`l|g!y*?p33=xK5MDX42>#nYd$q~;%*xA{Wat;L#FiPF}*^lVMd~pv{ zGz=gIqUqUS#f?X?!OlL{3wlhq=85~T9wG3Si)APC;bVF1{J_ijI6BNNvs2s;2UoPs zLS_jHi67%du0~I{tdX(sv!gH~YBuQUlq)iEyvn)<>yF_)vOL!9`LG*|$)Z9%teM2t z5lN52@z!5T#Sd>MU}0i%%+4tHHrN`xl;}#^-#o4$DWB%_*Rn8s7Q{sL`3GVLeM43E zpB8|}MeCynyQcFpoG_{JevvJVf8?z*h>}3KLeMJpD*Kr`)Q54nDm1KHf#q6Lz>)Te1Br_{BR>Jy@$W&XNL z6S;-KE*Jh`FA33W6y`ZJJv1h#rR>KyM${Ak!u!^MaujoU`7n5|H;d8T9--JRI}?AI zw=DIk%Kdv5lOK|6B|+qt8p_|QzXskke2E{(omN6$ zV*+N+T9*u2k7IG)iopighK>iKK(*Z+=YOu=R}a=e_j5V4N2@|U*Ad`2>FMPYCK8+L$wyZ!B z_=QS);IQ1CY#g}iD_yLj(NX9haDPRXl#oE*+uM7GyWfk0z`IO=#0uU!ujhQpf`6AF zQOQjX%?7XP4c4ZInOy*GtBA{-VNCR+5Qn#K31sW~+K*FD`8gY}-&pll?3KNs3(Y8k z1KvhCvOdS&kOjl{wJQEbsoZAv2-ky6sT&P|!Oy&;4Nt-I1vc$0i6KH z(bPHp746c?x6|O3P1nUP%+|W#ztZxx)Pd_wZgc98fOSpP>7Qo#x~o=R$5n5B^_0Ij zXV3TRKHhu9+Ou_wl$3uRcn0ifw(A$)Fs-1VK`g8E)9XNiY=v%a6Vbe6I%RNgob%>;a67Z>jSU`taOZ0bqVQtZ6E&`?Bwxyua~U^L{Y z7#N!Kyh2PKzldNE7C+0A#a=6vm`M##!`3X&{I0>CQtzkfFAq|7bgTy25|#77M$C1< z!-jL%pTO(E)+7^F5N4{|p9c0kx^3ukZ z!k~W9WQ&=re7-Y&Sq_VE*kUicdx;>QcY*G6RlqUguPGfvND1^{<*s-vJ2Yvz*6cf< z5qdJ}Y5n;~F7$$^u*NdE6o5WZi`g>OJJLj;ULpaQj*G$j+SLZSYQ+v3(2id|I_qB< zoy~~%H-#6%RWFTkW=Tzi3~FR|lb;A!DS}ojKs%e=5>TqYELZ=C zH98gw+%beM;Qp{B30tZa=LTnFFpM#(Y)(^-A3aHL>+Z8+CvvR?K~J zKVCBgdiaVQ3t<$L9e|G$v`#MM(^_>Ub7Sl_&Sfhk==fqhZ945dA%!~!{%ZxS3_)*K zITnOwJ|LM&g08eU8D9!M0tT1vGNTr|)-CQG(~OM&BCD*dY-D@)QTx7m|2KRvO+4eh z%htf~^?G0p_z=FpXFF9Jyv(!ep8Nnj>zQT;eXdxwPx8+|H=Qjp;0gzWA6;H-s_rjU zOIOra?F#9vjM;VM!F|RE6&kIQ`??a)JI$VN|qqG1v+yy zH3gQM;c5RzX;&T&b;GV-DTEXfvXvz}tz?gsDA{I^y(F5l8@nN7sSpW~CBhil%DyIL zk7Ui75REN6!*HIT_gl_;&h=g2cb)TB*QJ^9o8R(0_j5n@eVYtr79KeaXNARsT5S$K2U@ce}}#&f&702VaFrIiIEb?ypFZE4K$9 zl=VKp9~*MyH9INSA! zSaXyx5Bi56)7gxUVcd!QcfUb$-2ywV-Ki%+&a$4q$P_g(=3ngN@}%zc%#+d>%;e{U zOzx4=dDzwyTov)2-;RhGes>2+$g(;?+{Q~pOsp#t=CB739z?~&WN2-efuiaju)_lO z%SWX71qBTZ%P)trQ&xhov;R6neeoBa&weYw+L&QXqhFf#DmQUdO)Zr6QOUMG_hG2N zd0*&LtgW+j5_56rK!w}9L=nT>y~^Chm`x_kp;q08;gd`p9NAjvgPg*(pzuWM=$oT6 zI)%{$~GR-DFVr zwI9ZHQRIfV;h6qe~@!7^fE*X~OtD8_Dm0x69EJ3BiG_4)J%&LX91 zTI`dK_P-rDMzk-qmADtO}Za-xDW|^;eNpaX)+X;YbXBZ<|$o}7pCtJ#^3tLK6LW3w;8wE9e$Da zfP;#S7Shj1E7MmE4deDwQ4x4fAw1$gY&fd7FXX=y8Rpm4J$Ue-fdCec!fQSJd&Tb8 z4hJHcq}`tk*)%a=xo8eyd-CTDrS1)lY*hEW??)Ash7U2hGRC7;x$1v zBZPQqp3mGUhrkHgL@j^v2Rg~Wla@|uvJ~q0jH@i$I%K(K>M)#@F6XC^gfMx zYF_PKMre~JEW?92bvPOQ$zWyXDx!uraj4xVQ1z2>5u6+PB|3@oxf*cnc!{MO`O+Xv z)Chk2%2e^xDV^uT1zdq!gJsSj-2+I$oxE3$(4xZ$70bf$|OfTIuFE)_xvF*$Vqvt%YJ?y=t>681es_K4&EL@SV{zC@V zhc9xhFaPRHhjR{|q9fe{KF|a~9~$eFJq7L-LR;RG6_bk`iBs>-4|6%l%S#}K5kLEo z)y$z18Z+tj#&_-Ws3wCVqmdcVQp+kATvIffa5LXO`x9*WrF)4Ksx*6m4Ofd|pGo!0-EUCp4X|7o6HXXBbFi+LzrVCibE4WRB`ffK)+jzZt-c@sHQ;TBsCBmx&n7XmsSdmotrpcVzT zB_u@R38#!MJivmKRP@?Qm}W?Yu!71!iazJF(rtj;hEXkY^Ob3m$Kmd7w65L$U3ahr z^r2QCLl}3ty?GFdp7!1L##Wq2sfP$Cyu^ZfzM7iaRY;WpnQ#;7<>D(;4ak+znh|s$ zZZu~*hlw`&Ntx>KnQ@I??ZyD#GjqOT1ZwS9O zmw%-Ng`HJt)WhSr<=ykkm2k(nJ;oW&@eIgAIK%zEeB~iCC@JxPj?b)|kCXOXwz)f8 z>Cx1-7kR!Bl1z!b{H$Cum&~%wfcUDOa7bS-cbz5t1hKdeQK9Z+qB}V^e;WZfDxC8Z z&<5~7`S8}QamRhP7J|zqV>oKVwHp`?7vGx^`aZ8QPJ9*2tvizQ7EpT#p0xf(gu7NJ za=^aE6j)p_P!?-<_U&f_%`vT!y+)H|LpXZvlND%Iod7ctuQtafB#0u=x5SZW?;2tn z&tUvbb2hrafPQ+kzcsg-M2ylsE0OzUhLM#u(=JV)GLO3V_sGt+!GXXr%-7fI7$1}T zIxO(D*&8(LA3v&kY%Mf&pN;X|-k2n=3dEX#C;PMBz$fqfCGe{;?2)5jn~T1eTb6;^ z#rN!tXrAPKa(l{CrRG9HXhOrnx-+jU3s(TVC!r=P4-CT~NRH_Q!5=Sh^Lix>5j>J3 zxXqmMS;=Pbky!xZ{Q?7fOKa9|RW}4U!GopZtWy79%*f< z)`1m_#5jXhIdxU^7_f&$(u5y6i#b;SAFdc@rWi>J3#$)F46OFxb@<5oE2jukI#<5{ z`Ff+=B`d!8=$2pVg{tQiy8~GLw;-$hp)Ixn``-=#uZz;+FQ7eqxNdGLKJ@9h1@U)Gd z?~hPH7-2gCc-k9Q$~G&U+ho)rZXmesmH3ce--hyvEG~p%cI9${g2pd=s&qz2Tbt#t zCN6KPOc-z^klzjsIL*fmbmat8HS`Je^NL%aXwmT(4S6qgWDKOK9W0`s{(~Wc5>;SH zM)m>|=Z_2zV4P5Ld=3sfkM?-Z4VDppyLhCy|lX{o7Qr&AZdFZt6kZcw#1_s!sc!@tMxZQlNOSoNX5@-j~?G=pcQXL@JkiF6hYRO|Sw#I@5YzG9Lwv?83v;0sme7Bd9t3?Y+lD7-a zl4@$a5L;Ve*jaA(lHxF}<=wo${Qyxkh{whIA4BSrVuM$y{gv#c*S|EG|NIDc2<^Gu zKAnA-Naf`ar@B(EoD5JTwHZ=e0uo;4j1bC+gGbOc5CPK!wv%OHXc@LKzgUnG{-@*Q zTsm;;r@>q3)9eOzxb*FMeZSrZV5T3Z%b;DIDWxQd-@7R6hQvCdHuQ5%ezD4lAQlMd z8ZhECn48t)!6qxG>$;y{G8Zpl;2QJHLc+GV`LJh_qLnSOlA$_qbV_gHUN_-6F58YU zoj39YV%f+sAbH$$%Rc}^6Uo_!?U+>5OCEHj!=#8ZQ`J*yRBce+1iddl0D148Fg z0|Pfor8KlaEhPFPLYJlZ<^{B9%-GQufNj|s6axvM(=HFQnm|ih;-Fon`|fNLix=V` zJxR>t+I{A9BR2{gl&K|GuPq894?TJEx#Um$wB#Cd3~Qihl{9XymrpxTo!a2~aAKkg z_kJ~O^1CfV$*hB}Yu{=~ zr93}x%H`&LS}D3!Htj6PdylYUp|$Q=G~@0W_fm;;L&pB&VIRAd^1m23Y~*(h9Js@i ztuNAIN&tn6`!0Q!?moTs)Xb&h5)$o0u+mZ@7s3j}Y~Rf9(K;(wv|_fC6ufSO@0qAb zRVat#1Bo}Rs=;RQ!%f&6o(3Cm5kt(%?0~_L>%)y;2CgVzv+x68LN|zz0p(Ft!^hSB z5_?IwReR>K<##^EL-^PAEZb7AVV0_cH2dU_a5FEB!pN`Rn_CU*%wIh@35o(tTwLO; zCJql;6Xkl-)>{20tjv|ZuiUn>$|CIi&5GUaTAMISsYnU76QLq;zDm*lBf~sz=-k@@ z%61jgyC?syWK1bluz3GRQ5bAK8{uusMb{nIhJTzJ!}+z-*;Q=LyfG@$ASXKd-lxuM z>Wd6~n@q|3w)p7&)h-2NtD&9lXXD8lvDcZaH?H8k7f;CS@SJ&FX9^LI*&|yUOK9Vh zI73GOn8AP~@m9M{u81?=8!9Oky8YF9jL+-g>yM>3mkNr@s^M^5dE?LwN&p_>D1nXUG1kYGr+~kt5FE!Diqwr>zSn?<+c$k^f zw4NV1azuY|Y>svmyX)G~9NS~FbM}~!$*1~yVo4i4w=;ZGQZ#cCM^c&`jfw$_!hG{E zbu@3-W{Paz(AX{NpFPI*=n}8xspHAsKR6Y>JX?EnnnuX2a%lU79bN5XS9|XaWXG*B ziQlfjPXB>9j|cc6(sW)+{>{4U+1zdupS_H^hGP5CUYK&Eb2BydrwkN z#s+$|4xF*t9FxA%P^0xcJT0lG_czzp`=H?9Y{CN6fovX2gB;_M9{a>L)6jPO9k;5| zxxI+kyk;U$mzxlo{R1)I*~`2tXGOmm#!q<|EGwp9%4f*U0Yopb#1&F-)KmHsi%z{V!ndU>4vVtT&~YR=UPuwc3v`yO~ov{LhBYDrYqk3IOy zIDiNm8DTs>KPO1HJUxCJ%IQ9massm1O7onpnEN^AJt+e+cGq^8xOtoz0^u3J7~ zM(lgt6QpcWUpNw}7fQ~}F$4a~Z5eCwGIkYYe9|6XFy`NI?&qju*z9v^U(2x~#>kZ} z_eq&RuZVpd<69MpiGG+pvdX5|ZZsjDDP0g1cJ#}MPzH6pRJ~Jl*Id~ocM*Le;Y-jX zfDgw$9X!z=)e#=bbGuc|xTK@!-uhg{e3!RaLoxV9Uvty_wtS*}!7Hai#AvTfzqzCD zmIa^uHhJE+1u^d@3CdzUI$e!AmU3r&E`0V|P_(eltjs_4y~t9KBJn4EQl)inbM9 zZ9gkHqH56C?lN&`o7qe1`POrT#~!jbk-A=pwqASQnylgG0@E}vGG#2xw?6fcb{B42 z%WWtY9W2ovxV)vY7VspF#gqTtQScmK0@`KUx!gVT`F*#8#(9)d+ZRl>7wV!4=dht3 zM0*k^e9&T`mMjv9sq?vFXM6MBwu3bCL$3b|@Af}P%KwC_`~SS9vHyOtUaahUDZtbX zFs5Zd+$LJ=k=XUn!Pgc>7KH#dk;t?|vQ2 zyLFJZXVU2D>aZ}2kA6XT!Qiu%c5O%H>X+-=&gzCc#kaS%(-ccQVFykIIJRi=&-r^V z!$wj8CCi~hDgFv)&gf|-XVLL&#&*p+6^&zj>s7Y*-$VJWX42CgQs23owzc}f23oB$ zP;N;f^8VVje;d%NezMI=s|>Bnz04v_noF!mR2#i5^jErA^^@i9yv*=s$kk2tDpyvb zb2clWOnHC88pJ3?edX(B=!)4(o$S%=@k|t!5Vw5%F`Ct@(l-5T`aT3th?i;PQ&v_M zOHWXJ?oWQifzFD=ux?Xn=5gn0p(WwcdISn!m+;LaAGmEs!<}&T2EMSy`zyt)iq&YI z69=#bj^s%5xYJgTkVe?^=0;jB;zpCq@&MC*4%j`eB?BE~&EGPr71OvDVUjJe8KZFg zo1-uBs%Q-3yQ?|oriX~eJe425j(YCjPY2=hBN&Zgx=&ZVFiv$}7AA(!$rxjS4=@TvOli306d74^%8in&o+? zo7{XOxKu=tDRrr7@X$*^+`5WH{5pYF z&!m4uF^k{uUcj`aCH2^EwVtCsh=e!e;a5*2_62fUfm~1kdP|^t8J2aZwKEpngf?VD z_I8k^=Tebk%;*oJPxIwN{clKX)(;pXiLz_%Z^|V^?Z!5VKWNeOcz?HtzY;s`(C7{7 zVeH%t`^k3f#=^X!UiXersO8b#I4KM6?~ZHLr*GXvh*^ebQOUIy}WN3$cyo%cBNR@k>OW8>mIR)zJ?K*SZ!$cq%Itb zXu66YZvgd~IeS=p!oMBEpE#EwZa(6ZMcen*c0eXnt?LsDVOVFM{do_u%Q$2C8%E|{ zv4s^LFF*RO+{`+3IqZ*^5-w88*_y@68#lj>j8lu_+hymOig2Xr*~LlfrIn(@>5Hh$ zn#OMdFUN|~LQ|~FN9ft~IzeS|8xtBDO3GP0z6==*N~9^i&?hc2Ob3J((nv70R=BE{ z*bQ}g2TBJuSHbT6Dq+2Vs}z=Vs42^%O9ex~o}$G0=2M8|W@%sjk`gWURE>sQfvM)h zw_i6}Y1Qy)dTpUiWrr2Wg~X-Df)cvu8QY*iQ5{wjiAYw}>;c1_L1S)-l0?PIi89@q z9Op{cK~}jv`iPoD?_y}hX*@>l?oowq9Z$)YqK^@J$-J$vV1vB4)ZX@9SX4wr!?qU> zko#0b8@&qi=)hVP*+^TkWj;?ST{4SPqep0i<517O7g>N!RQeCS&fyrY%mE@z(+s!g|#Gj z@g)h|vp{w{yDCxk`Zf+$3b^*><8KOVU5d}lMGP~8fuGAApj1>R{V z&())=%Ik=R@;(-BJ+>ho=4;1(!GmOx7ZpZ_Y|L{StEmQ!w*8EGiAFgUcR_;C!`USjs_8ESZiJSzW3 zLVY*+`}Xla8Tq}m(}a&^d1eYeM*zWWqyY(tHL~)uut+%z#{6Uml~>)Sxe?weg2-_~ z#8QA5^uJa@O-c-?{$ZPmeS0^AO zL^C_%3Uk$SB&I62Voo+@5MHpg_cX^hNa^+3Pe-R$^}`nQln#fF9HEtvk&$tN1dDI5 zwSRfuQ3Y81?z3=sFDNnJI3Vki)PRK$GR?HY@T2Z7N$-#pc!63o6pA0Nd{jb0c7~&{ zgoH#{bi>frqWinty3sH8=r)6Cf9YwjB~s5pq%Ty@v`b$ zab8leWO6`W(iuzySfnOrK9|EEtC)i}P`~eZIA-nX(?eL>KuAGsJiiQ7w0jLxz(*OVf literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md index 08f36d867a5392..b1b1098459a8b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/ORDA/dsMapping.md @@ -67,7 +67,7 @@ A datastore object is handled through functions and properties of the [**DataSto Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : * le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). * un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. @@ -154,12 +154,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : * dans la dataclass Project : "ID", "name", et "companyID" * dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : * dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) * dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -235,7 +235,7 @@ Les entity selections triées sont créées uniquement lorsque cela est nécessa * résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, * résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : * résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, * résultat de la méthode `newSelection()` sans option, diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md index 15c307c47cc3e3..e5dbe4896d20e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,12 +155,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 50d4730852d6fa..307430b46754dd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ba1fd2735d3605..f1b63f3dc3681d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -5,67 +5,67 @@ title: ORDA Events
        Historique -| Release | Modifications | -| ------- | ------------------- | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ----------------------- | +| 20 R10 | ajout événement touched |
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | -| :------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | +| :--------------------- | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : | Nom de propriété | Disponibilité | Type | Description | | :--------------- | :------------------------------------- | :----- | :--------------------------------------------------------------------------- | @@ -73,7 +73,7 @@ Event functions accept a single *event* object as parameter. When the function i | *attributeName* | Only for events involving an attribute | String | Nom de l'attribut (*ex.* "firstname") | | *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | -## Event function description +## Description des fonctions ### `Function event touched` @@ -85,19 +85,19 @@ Event functions accept a single *event* object as parameter. When the function i // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. - if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. - if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md index 343d91147dc8fb..21239ea04f027d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md @@ -69,7 +69,7 @@ A datastore object is handled through functions and properties of the [**DataSto Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). - un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. @@ -162,12 +162,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : * dans la dataclass Project : "ID", "name", et "companyID" * dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : * dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) * dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index cc56372ee96210..870338b9731bb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -187,7 +187,7 @@ Le nom de la page home par d *Propriété en lecture seulement.* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +Une collection d'objets gestionnaires HTTP personnalisés . Un objet HTTP handler contient un motif d'URL écouté, un verbe pris en charge et le code à appeler. Les gestionnaires HTTP peuvent être définis dans un fichier HTTPHandlers.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [HTTP Request handler](../WebServer/http-request-handler.md). @@ -495,7 +495,7 @@ Le chemin du dossier racine du se *Propriété en lecture seulement.* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +La collection d'objets de règles HTTP mises en oeuvre pour personnaliser les en-têtes HTTP. Un objet règle contient une propriété "regexPattern" ainsi qu'un nom d'action avec une valeur. Les règles HTTP peuvent être définies dans un fichier HTTPRules.json ou dans le paramètre *settings* de la fonction [`.start()`](#start). Pour plus d'informations, veuillez consulter la page [Règles HTTP](../WebServer/http-rules.md). 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 aa94b2fc1eac72..7401d23f42858a 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 @@ -96,72 +96,76 @@ Il n'y a aucune restriction sur le nombre de pages qu'un formulaire peut conteni Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusieurs pages d'affichage. Les objets placés sur la page d'arrière-plan peuvent être visibles sur toutes les pages d'affichage, mais il ne peuvent être sélectionnés et modifiés que sur la page d'arrière-plan. Dans les formulaires multi-pages, vous devez placer votre palette de boutons sur la page d'arrière-plan. Vous devez également inclure un ou plusieurs objets sur la page d'arrière-plan qui fournissent à l'utilisateur des outils de navigation de page. -## Fluent UI rendering (Developer Preview) +## Rendu Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. + +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | :::caution Developer Preview -Fluent UI support is currently in the Developer Preview phase. Il ne doit pas être utilisé en production. +La prise en charge de Fluent UI est actuellement en phase d'aperçu pour les développeurs. Il ne doit pas être utilisé en production. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle est ignorée. ::: -### Fluent UI rendering availability +### Disponibilité du rendu Fluent UI -The Fluent UI rendering is available in the following execution environments only: +Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). +- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). - Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. :::note -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ::: -### Enabling the Fluent UI rendering +### Activer le rendu Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Vous pouvez activer le mode de rendu Fluent UI au niveau de l'application ou au niveau du formulaire. Le paramétrage du formulaire a la priorité par rapport aux paramètres de l'application. -#### Application setting +#### Paramètres de l'application -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Cochez l'option **Utiliser Fluent UI sous Windows** dans la page "Interface" de la boîte de dialogue des Propriétés. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +Dans ce cas, le mode de rendu Fluent UI sera utilisé par défaut sur Windows pour tous les formulaires. -#### Form setting +#### Paramètres du formulaire -Each form can define its own rendering via the **Widget appearance** property. Les options suivantes sont disponibles : +Chaque formulaire peut définir son propre rendu via la propriété **Apparence des contrôles**. Les options suivantes sont disponibles : -- **Inherited**: inherits the global application setting (default), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
        +- **Hérité** : hérite des propriétés globales de l'application (par défaut), +- **Classic** : utilise le style classique de Windows, +- **Fluent UI** : active le rendu moderne basé sur Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Features and limitations +### Caractéristiques et limitations -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. +- L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). +- Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). +- Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md index 6ab25ecd64f45e..f7d879c24c7fac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_FormSize.md @@ -11,15 +11,15 @@ Les options de taille dépendent de la valeur de l'option **Taille basée sur**. ## Taille basée sur -- **Automatic Size**: The size of the form will be that necessary to display all the objects, to which will be added the margin values (in pixels) entered in the [**Hor Margin**](#hor-margin) and [**Vert Margin**](#vert-margin) fields. +- **Taille automatique** : La taille du formulaire sera celle nécessaire à l'affichage de tous les objets, à laquelle s'ajouteront les valeurs de marge (en pixels) saisies dans les champs [**Marge hor.**](#hor-margin) et [**Marge vert.**](#vert-margin). Vous pouvez choisir cette option lorsque vous souhaitez utiliser des objets actifs placés dans une zone hors écran (c'est-à-dire en dehors du rectangle de délimitation de la fenêtre) avec une fenêtre de taille automatique. Grâce à cette option, la présence de ces objets ne modifiera pas la taille de la fenêtre. -- **Set Size**: The size of the form will be based on what you enter (in pixels) in the [**Width**](#width) and [**Height**](#height) fields. +- **Fixer taille** : La taille du formulaire sera basée sur ce que vous entrez (en pixels) dans les champs [**Largeur**](#width) and [**Hauteur**](#height). -- `\`: The size of the form will be based on the position of the selected form object. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. +- `` : La taille du formulaire sera basée sur la position de l'objet du formulaire sélectionné. Par exemple, si vous choisissez un objet qui est placé dans la partie inférieure droite de la zone à afficher, la taille du formulaire sera constituée d'un rectangle dont le coin supérieur gauche sera l'origine du formulaire et le coin inférieur droit correspondra à celle de l'objet sélectionné, plus les éventuelles valeurs de marge. -> For output forms, only the [**Hor margin**](#hor-margin) or [**Width**](#width) fields are available. +> Pour les formulaires de sortie, seuls les champs [**Marge hor.**](#hor-margin) ou [**Largeur**](#width) sont disponibles. #### Grammaire JSON @@ -43,7 +43,7 @@ Hauteur du formulaire (en pixels) lorsque la [taille du formulaire](#size-based- ## Marge hor. -Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` +Valeur à ajouter (en pixels) à la marge droite du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\` Cette valeur détermine également les marges droites des formulaires utilisés dans l'éditeur d'étiquettes. @@ -57,7 +57,7 @@ Cette valeur détermine également les marges droites des formulaires utilisés ## Marge hor. -Value to add (in pixels) to the bottom margin of the form when the [form size](#size-based-on) is **Automatic size** or `\`. +Valeur à ajouter (en pixels) à la marge inférieure du formulaire lorsque la [taille du formulaire](#size-based-on) est définie sur **Taille automatique** ou `\`. Cette valeur détermine également les marges supérieures des formulaires utilisés dans l'éditeur d'étiquettes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md index 5cc95b6062eb55..090b1b0011716a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: Optimisation client/serveur --- -4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités dans l'architecture client/serveur. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : +En architecture client/serveur, 4D optimise automatiquement les requêtes ORDA qui utilisent des entity selections ou chargent des entités. Ces optimisations accélèrent l'exécution de votre application 4D en réduisant drastiquement le volume d'informations transmises sur le réseau. Elles incluent : - le **contexte d'optimisation** - le **Cache ORDA** @@ -27,7 +27,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : +- Les requêtes ultérieures envoyées au serveur sur la même entity selection réutilisent automatiquement le contexte d'optimisation et lisent uniquement les attributs nécessaires depuis le serveur, ce qui accélère le traitement. Par exemple, dans une [list box de type entity selection](#entity-selection-based-list-box), la phase d'apprentissage a lieu pendant l'affichage de la première ligne. L'affichage des lignes suivantes est optimisé. Les fonctions suivantes associent automatiquement le contexte d'optimisation de l'entity selection d'origine à l'entity selection retournée : - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -35,7 +35,7 @@ Le contexte d'optimisation est fondé sur ce qui suit : - [`entitySelection.slice()`](../API/EntitySelectionClass.md#slice) - [`entitySelection.drop()`](../API/EntitySelectionClass.md#drop) -- An existing optimization context can be passed as a property to another entity selection of the same dataclass, thus bypassing the learning phase and accelerating the application (see [Reusing the context property](#reusing-the-context-property) below). +- Un contexte d'optimisation existant peut être passé en tant que propriété à une autre entity selection de la même dataclass, ce qui permet d'économiser la phase d'apprentissage et d'accélérer l'application (voir [Réutilisation de la propriété context](#reusing-the-context-property) ci-dessous). - Vous pouvez créer des contextes d'optimisation manuellement à l'aide de la fonction [`dataStore.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) (voir [Préconfiguration des contextes](#preconfiguring-contexts)). @@ -66,7 +66,7 @@ Vous pouvez augmenter les avantages de l'optimisation en utilisant la propriét > Vous pouvez également créer des contextes en utilisant la fonction [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo). -Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. +Une même propriété de contexte d'optimisation peut être passée à un nombre illimité d"entity selections de la même dataclass. Toutes les fonctions ORDA qui gèrent les entity selections prennent en charge la propriété **context** (par exemple [`dataClass.query()`](../API/DataClassClass.md#query) ou [`dataClass.all()`](../API/DataClassClass.md#all)). Il est toutefois important de garder à l'esprit qu'un contexte est automatiquement mis à jour lorsque de nouveaux attributs sont utilisés dans d'autres parties du code. Si le même contexte est réutilisé dans différents codes, il risque d'être surchargé et de perdre en efficacité. > Un mécanisme similaire est implémenté pour les entités qui sont chargées, de sorte que seuls les attributs utilisés sont demandés (voir la fonction [`dataClass.get()`](../API/DataClassClass.md#get)). @@ -77,22 +77,22 @@ Une même propriété de contexte d'optimisation peut être passée à un nombre var $data : Collection $querysettings:=New object("context";"shortList") $querysettings2:=New object("context";"longList") - + $sel1:=ds.Employee.query("lastname = S@";$querysettings) - $data:=extractData($sel1) // In extractData method an optimization is triggered - // and associated to context "shortList" - + $data:=extractData($sel1) // dans la méthode extractData un contexte d'optimisation + // est généré et associé au contexte "shortList" + $sel2:=ds.Employee.query("lastname = Sm@";$querysettings) - $data:=extractData($sel2) // In extractData method the optimization associated - // to context "shortList" is applied - + $data:=extractData($sel2) // dans la méthode extractData le contexte d'optimisation + // associé au contexte "shortList" est appliqué + $sel3:=ds.Employee.query("lastname = Smith";$querysettings2) - $data:=extractDetailedData($sel3) // In extractDetailedData method an optimization - // is triggered and associated to context "longList" - + $data:=extractDetailedData($sel3) // dans la méthode extractDetailedData un contexte d'optimisation + // est généré et associé au contexte "longList" + $sel4:=ds.Employee.query("lastname = Brown";$querysettings2) - $data:=extractDetailedData($sel4) // In extractDetailedData method the optimization - // associated to context "longList" is applied + $data:=extractDetailedData($sel4) // dans extractDetailedData le contexte d'optimisation + // associé au contexte "longList" est appliqué ``` ### List box de type entity selection @@ -133,7 +133,7 @@ Pour des raisons d'optimisation, les données demandées au serveur via ORDA son Les données contenues dans le cache sont considérées comme expirées lorsque le délai d'attente est atteint. Tout accès à des données périmées provoquera l'envoi d'une requête au serveur. Les données périmées restent dans le cache jusqu'à ce que l'on ait besoin d'espace. -You can force entity selection data in the ORDA cache to expire at any moment by using the [`refresh()`](../API/EntitySelectionClass.md#refresh) function. +Vous pouvez forcer les données de sélection d'entité dans le cache ORDA à expirer à tout moment en utilisant la fonction [`refresh()`](../API/EntitySelectionClass.md#refresh). Par défaut, le cache ORDA est géré de manière transparente par 4D. Cependant, vous pouvez contrôler son contenu en utilisant les fonctions ORDA suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md index 15c307c47cc3e3..e5dbe4896d20e7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/dsMapping.md @@ -3,15 +3,15 @@ id: dsmapping title: Objets du modèle de données --- -The ORDA technology is based upon an automatic mapping of an underlying [database structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html). Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. +La technologie ORDA est basée sur une correspondance automatique d'une [structure de base de données](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.en.html) sous-jacente. Elle permet également d'accéder aux données via des objets sélection d'entités (entity selection) et entité (entity). Par conséquent, ORDA expose la base de données entière comme un ensemble d'objets de modèle de données. ## Correspondance de la structure Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md) ou [`Open datastore`](commands/open-datastore.md), 4D référence automatiquement les tables et les champs de la structure 4D correspondante en tant que propriétés de l'objet [datastore](#datastore) renvoyé : -- Tables are mapped to [dataclasses](#dataclass). -- Fields are mapped to [storage attributes](#storage-and-relation-attributes). -- Relations are mapped to [relation attributes](#storage-and-relation-attributes) - relation names, defined in the [Structure editor](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), are used as relation attribute names. +- Les tables correspondent à des [dataclasses](#dataclass). +- Les champs correspondent à des [attributs de stockage](#storage-and-relation-attributes). +- Les liens correspondent à des [attributs relationnels](#storage-and-relation-attributes) - les noms des liens, définis dans l'[éditeur de structure](https://doc.4d.com/4Dv20/4D/20.2/Creating-and-modifying-relations.300-6750296.en.html), sont utilisés comme noms d'attributs de relation. ![](../assets/en/ORDA/datastoreMapping.png) @@ -19,7 +19,7 @@ Lorsque vous appelez un datastore à l'aide de la commande [`ds`](commands/ds.md Les règles suivantes s'appliquent à toutes les conversions : -- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [Conventions de dénomination des objets](Concepts/identifiers.md). +- Les noms de table, de champ et de relation correspondent à des noms de propriété d'objet. Assurez-vous que ces noms sont conformes aux règles générales de dénomination des objets, comme expliqué dans la section [consacrée aux identifiants](Concepts/identifiers.md). - Un datastore ne référence que les tables avec une seule clé primaire. Les tables suivantes ne sont pas référencées : - Tables sans clé primaire - Tables avec clés primaires composites. @@ -28,12 +28,12 @@ Les règles suivantes s'appliquent à toutes les conversions : > La correspondance ORDA ne prend pas en compte : > > - l'option "Invisible" pour les tables ou les champs, -> - the virtual structure defined through [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) or [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), +> - la structure virtuelle définie par [`SET TABLE TITLES`](../commands-legacy/set-table-titles.md) et [`SET FIELD TITLES`](../commands-legacy/set-field-titles.md), > - la propriété "manuelle" ou "automatique" des relations. ### Règles de contrôle d'accès à distance -Lorsque vous accédez à un datastore distant via la commande `Ouvrir datastore` ou des [requêtes REST](REST/gettingStarted.md), seules les tables et les champs avec la propriété de ressource **Expose as REST resource** sont disponibles à distance. +Lorsque vous accédez à un datastore distant via la commande `Open datastore` ou des [requêtes REST](REST/gettingStarted.md), seuls les tables et les champs avec la propriété **Exposer avec le service REST** sont disponibles à distance. Cette option doit être choisie au niveau de la structure 4D pour chaque table et chaque champ que vous souhaitez voir apparaître comme dataclass et attribut dans le datastore : @@ -47,12 +47,12 @@ Toute modification apportée à la structure de la base invalide la couche coura - le renommage d'une table, d'un champ ou d'une relation - la modification d'une propriété principale d'un champ (type, unique, index, autoincrement, valeur null) -Lorsque la couche courante de données ORDA est invalidée, elle est automatiquement rechargée et mise à jour dans les prochains appels du datastore local `ds` vers 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. +Lorsque le modèle ORDA courant est invalidé, il est automatiquement rechargé et mis à jour dans les appels ultérieurs du datastore local `ds` sur 4D et 4D Server. A noter que les références existantes vers des objets ORDA tels que des entités ou des sélections d'entités continueront d'utiliser les données à partir desquelles elles ont été créées, et ce jusqu'à ce qu'elles soient regénérées. Toutefois, la couche de données ORDA mise à jour n'est pas automatiquement disponible dans les contextes suivants : - une application 4D distante connectée à 4D Server -- l'application distante doit être reconnectée au serveur. -- un datastore distant ouvert à l'aide de `Ouvrir datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. +- un datastore distant ouvert à l'aide de `Open datastore` ou des [appels REST](REST/gettingStarted.md) -- une nouvelle session doit être ouverte. ## Définitions des objets @@ -63,14 +63,14 @@ Un datastore est l'objet d'interface d'une base de données. Il crée une repré - Le modèle contient et décrit toutes les dataclasses qui composent le datastore. Il est indépendant de la base de données sous-jacente. - Les données se réfèrent à l'information qui va être utilisée et stockée dans ce modèle. Par exemple, les noms, adresses et dates de naissance des employés sont des éléments de données que vous pouvez utiliser dans un datastore. -A datastore object is handled through functions and properties of the [**DataStore**](../API/DataStoreClass.md) class. +Un objet datastore est géré par les fonctions et les propriétés de la classe [**DataStore**](../API/DataStoreClass.md). Lorsqu'il est géré via le code, le datastore est un objet dont les propriétés sont toutes les [dataclasses](#dataclass) ayant été spécifiquement exposées. -4d vous permet de gérer les datastores suivants : +4D vous permet de gérer les datastores suivants : - le datastore local, fondé sur la base 4D courante, retourné par la commande `ds` (le datastore principal). -- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Ouvrir datastore`. +- un ou plusieurs datastores distants, exposés en tant que ressources RESET dans des bases 4D distantes, retournés par la commande `Open datastore`. Un datastore ne référence qu'une seule base de données locale ou distante. @@ -88,21 +88,21 @@ Les propriétés du datastore sont toutefois énumérables : //$prop contient les noms de toutes les dataclasses ``` -Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Ouvrir datastore` permet de référencer n'importe quel datastore distant. +Le datastore principal (par défaut) est toujours disponible via la commande `ds`, mais la commande `Open datastore` permet de référencer n'importe quel datastore distant. ### Dataclass Une dataclasse est l'équivalent d'une table. Elle est utilisée comme modèle d'objet et référence tous les champs comme attributs, y compris les attributs relationnels (attributs construits à partir des relations entre les dataclasses). Les attributs relationnels peuvent être utilisés dans les requêtes comme tout autre attribut. -A dataclass object is handled through functions and properties of the [**DataClass**](../API/DataClassClass.md) class. +Un objet dataclass est géré par les fonctions et les propriétés de la classe [**DataClass**](../API/DataClassClass.md). -Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. +Toutes les dataclasses d'un projet 4D sont disponibles en tant que propriété du datastore `ds`. Pour les datastores distants accédés via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque table que vous souhaitez exposer en tant que dataclass du datastore. Par exemple, considérons cette table dans la structure suivante : ![](../assets/en/ORDA/companyTable.png) -La table `Company` est automatiquement disponible en tant que dataclasse dans la banque de données `ds`. Vous pouvez écrire : +La table `Company` est automatiquement disponible en tant que dataclass dans le datastore `ds`. Vous pouvez écrire : ```4d var $compClass : cs.Company //déclare une variable objet $compClass de la classe Company @@ -139,10 +139,10 @@ Les propriétés de dataclass sont des objets attribut décrivant les champs ou $revenuesAttribute:=ds.Company["revenues"] //méthode alternative ``` -Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. This syntax does NOT return values held inside of the attribute, but instead returns references to the attributes themselves [with their **attribute properties**](../API/DataClassClass.md#attributename). +Ce code attribue à `$nameAttribute` et `$revenuesAttribute` des références aux attributs name et revenues de la classe `Company`. Cette syntaxe ne renvoie PAS les valeurs contenues dans l'attribut, mais des références aux attributs eux-mêmes [avec leurs **propriétés d'attribut**](../API/DataClassClass.md#attributename). Pour gérer les valeurs, vous devez passer par les [Entités](#entite). -Tous les fichiers éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer comme ressource REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. +Tous les champs éligibles d'une table sont disponibles en tant qu'attributs de leur [dataclass](#dataclass) parente. Pour les datastores distants accessibles via `Open datastore` ou les [requêtes REST](REST/gettingStarted.md), l'option **Exposer avec le service REST** doit être sélectionnée au niveau de la structure 4D pour chaque champ que vous souhaitez exposer en tant qu'attribut de dataclass. #### Attributs de stockage et relationnels @@ -155,12 +155,12 @@ Prenons l'exemple de la structure de base de données partielle suivante et les ![](../assets/en/ORDA/relationProperties.png) -Tous les attributs relationnels seront disponibles automatiquement : +Tous les attributs de stockage seront disponibles automatiquement : - dans la dataclass Project : "ID", "name", et "companyID" - dans la dataclass Company : "ID", "name", et "discount" -En outre, les attributs relationnels suivant seront également disponibles automatiquement : +En outre, les attributs relationnels suivants seront également disponibles automatiquement : - dans la dataclass Project : l'attribut **theClient**, du type "relatedEntity" ; il y a au plus une compagnie pour chaque projet (le client) - dans la dataclass Company : l'attribut **companyProjects**, du type "relatedEntities" ; pour chaque compagnie, il existe un certain nombre de projets reliés. @@ -175,7 +175,7 @@ Gardez à l'esprit que ces objets décrivent des attributs, mais ne donnent pas #### Attributs calculés et Alias -Les [attributs calculés](ordaClasses.md#computed-attributes) et les[attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. +Les [attributs calculés](ordaClasses.md#computed-attributes) et les [attributs alias](ordaClasses.md#alias-attributes) sont des attributs "virtuels". Leur valeur n'est pas stockée mais évaluée à chaque fois qu'on y accède. Ils n'appartiennent pas à la structure sous-jacente de la base, mais ils se basent sur elle et peuvent être utilisés comme n'importe quel champ du modèle de données. ### Entity @@ -183,7 +183,7 @@ Une entité est l'équivalent d'un enregistrement. Il s'agit d'un objet qui fait Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). Lorsqu'une référence d'entité est obtenue au moyen d'une sélection d'entité, elle conserve également des informations sur la sélection d'entité qui permet une itération à travers la sélection. -An entity object is handled through functions and properties of the [**Entity**](../API/EntityClass.md) class. +Un objet entité est géré par les fonctions et les propriétés de la classe [**Entity**](../API/EntityClass.md). L'objet entité lui-même ne peut pas être copié en tant qu'objet : @@ -203,7 +203,7 @@ Les propriétés de l'entité sont toutefois énumérables : Une entity selection est un objet contenant une ou plusieurs référence(s) à des entités appartenant à la même dataclasse. Elle est généralement créée à la suite d'une requête ou retournée à partir d'un attribut relationnel. Une entity selection peut contenir 0, 1 ou X entités de la dataclass - où X peut représenter le nombre total d'entités contenues dans la dataclass. -An entity selection object is handled through functions and properties of the [**EntitySelection**](../API/EntitySelectionClass.md) class. +Un objet Entity selection est géré par les fonctions et les propriétés de la classe [**EntitySelection**](../API/EntitySelectionClass.md). Voici un exemple : @@ -233,18 +233,18 @@ Les propriétés des entity selections sont toutefois énumérables : #### Entity selections triées vs Entity selections non-triées -Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des sélections d'entités non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy( )` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". +Pour des raisons d'optimisation, par défaut, 4D ORDA crée généralement des entity selections non-ordonnées, sauf lorsque vous utilisez la méthode `orderBy()` ou si vous utilisez les options appropriées. Dans cette documentation, sauf indication contraire, "entity selection" fait généralement référence à une "entity selection non-triée". Les entity selections triées sont créées uniquement lorsque cela est nécessaire ou lorsqu'elles sont spécifiquement demandées à l'aide d'options, c'est-à-dire dans les cas suivants : -- résultat d'un `orderBy( )` sur une sélection (de n'importe quel type) ou un `orderBy( )` sur une dataclass, -- résultat de la méthode `newSelection( )` avec l'option `dk keep ordered` +- résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, +- résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : - résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, - résultat de la méthode `newSelection()` sans option, -- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection saisi : `or()`, `and()`, `minus()`. +- résultat de l'une des méthodes de comparaison, quel que soit le type de sélection d'origine : `or()`, `and()`, `minus()`. > Les entity selections suivantes sont toujours **triées** : > diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 50d4730852d6fa..307430b46754dd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -120,7 +120,7 @@ $entity.save() //sauvegarder les modifications :::note Notes -- Database Object fields can be [associated with classes](../Develop/field-properties.md), in which case only objects of the defined class can be assigned to the entity attribute. +- Les champs objet de la base de données peuvent être [associés à des classes](../Develop/field-properties.md), auquel cas seuls les objets de la classe définie peuvent être affectés à l'attribut de l'entité. - Les champs Blob des bases de données ([blobs scalaires](Concepts/dt_blob.md)) sont automatiquement convertis en attributs d'objets blob ([`4D.Blob`](Concepts/dt_blob.md)) lorsqu'ils sont traités par ORDA. Lorsque vous sauvegardez un attribut d'objet blob, gardez à l'esprit que, contrairement à la taille de l'objet blob qui n'est limitée que par la mémoire disponible, la taille du champ Blob est limitée à 2 Go. ::: @@ -288,7 +288,7 @@ La nature **partageable** ou **modifiable** d'une entity selection est définie Une nouvelle entity selection est **partageable** dans les cas suivants : -- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#quer +- la nouvelle entity selection résulte d'une fonction de classe ORDA appliquée à une dataClass : [dataClass.all()](API/DataClassClass.md#all), [dataClass.fromCollection()](API/DataClassClass.md#fromcollection), [dataClass.query()](API/DataClassClass.md#query), - la nouvelle entity selection est basée sur une relation [entity.*attributeName*](API/EntityClass.md#attributename) (par exemple, "company.employees") lorsque *attributeName* est un attribut lié 1-vers-N mais que l'entité n'appartient pas à une entity selection. - la nouvelle entity selection est explicitement copiée comme partageable avec [entitySelection.copy()](API/EntitySelectionClass.md#copy) ou `OB Copy` (c'est-à-dire avec l'option `ck shared`). @@ -449,7 +449,7 @@ Les filtres s'appliquent aux **entités**. Si vous souhaitez restreindre l'accè ### Comment définir un filtre de restriction -You create a filter for a dataclass by defining an `event restrict` function in the [**dataclass class**](dsMapping.md#dataclass) of the dataclass. Le filtre est alors automatiquement activé. +Vous créez un filtre pour une dataclass en définissant une fonction `event restrict` dans la [**classe**](dsMapping.md#dataclass) de la dataclasse. Le filtre est alors automatiquement activé. ### `Function event restrict` @@ -466,7 +466,7 @@ Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d' :::note -Pour des raisons de performances, nous recommandons d'utiliser les **attributs indexés** dans la définition du filtre. +Pour des raisons de performances, nous recommandons d'utiliser des **attributs indexés** dans la définition du filtre. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md index 29ecb988e206b8..0802de867e16c6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/glossary.md @@ -9,7 +9,7 @@ title: Glossaire ## Action -Chaque action qui peut être effectuée sur une [ressource](#resource). Available actions are: create, read, update, drop, execute, and promote. +Chaque action qui peut être effectuée sur une [ressource](#resource). Les actions disponibles sont : create, read, update, drop, execute, and promote. ## Attribut @@ -18,11 +18,11 @@ Un attribut est la plus petite cellule de stockage dans une base de données rel - Dans un objet dataclass, chaque propriété est un attribut de dataclass qui correspond à un champ dans la table correspondante (même nom et même type). - Dans un objet entity, les attributs d'entités sont des propriétés qui contiennent les valeurs pour les attributs du datastore correspondants. -> \> Attributes and properties are similar concepts. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. +> Les *attributs* et les *propriétés* sont des concepts similaires. "Attribut" est utilisé pour désigner les propriétés de la dataclass qui stockent les données, tandis que "propriété" est plus générique et définit une donnée stockée dans un objet. ## AttributePath -Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. See also [PropertyPath](#propertypath). +Un attributePath est le chemin d'un attribut à l'intérieur d'une dataclass ou d'une entité donnée. Voir aussi [PropertyPath](#propertypath). ## Class code @@ -89,7 +89,7 @@ Une entité est un objet qui correspond à un modèle de dataclass. Une entité Une entité peut être vue comme une instance de la dataclass, comme un enregistrement de la table correspondante à la dataclass dans son datastore associé. Cependant, une entité contient également des données connexes. Le but de l'entité est de gérer les données (créer, mettre à jour, supprimer). -For more information, see [entities](entities.md). +Pour plus d'informations, voir [entities](entities.md). ## Entity selection diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index cc75f45301a848..743e4f1da399fa 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -5,118 +5,118 @@ title: Events
        Historique -| Release | Modifications | -| ------- | ----------------------------------------------------------------------------------------------------- | -| 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| Release | Modifications | +| ------- | ------------------------------------------------------------------------------------------------------------ | +| 21 | Événements ajoutés : validateSave / saving / afterSave / validateDrop / dropping / afterDrop | +| 20 R10 | ajout événement touched |
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. -You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. +Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::tip Article(s) de blog sur le sujet -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) ::: -:::info Compatibility note +:::info Note de compatibilité -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: ## Vue d’ensemble -### Event level +### Niveau de l'événement -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). -It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. +Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. -For the same event, you can define different functions for different attributes. +Pour un même événement, vous pouvez définir différentes fonctions pour différents attributs. -You can also define the same event at both attribute and entity levels. The attribute event is called first and then the entity event. +Vous pouvez également définir le même événement au niveau de l'attribut et de l'entité. L'événement attribut est appelé en premier, puis l'événement entité. -### Execution in remote configurations +### Exécution en configuration distante -Usually, ORDA events are executed on the server. +En général, les événements ORDA sont exécutés sur le serveur. -In client/server configuration however, the `touched()` event function can be executed on the **server or the client**, depending on the use of [`local`](./ordaClasses.md#local-functions) keyword. A specific implementation on the client side allows the triggering of the event on the client. +Cependant, dans une configuration client/serveur, la fonction d'événement `touched()` peut être exécutée sur **le serveur ou le client**, en fonction de l'utilisation du mot-clé [`local`](./ordaClasses.md#local-functions). Une implémentation spécifique côté client permet de déclencher l'événement sur le client. :::note -ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always executed on the client. +Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont toujours exécutées sur le client. ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). -### Summary table +### Tableau de synthèse -The following table lists ORDA events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. -| Evénement | Niveau | Function name | (C/S) Executed on | Can stop action by returning an error | -| :------------------------ | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | ------------------------------------- | -| Entity instantiation | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | -| Attribute touched | Attribut | `event touched ()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| | Entity | `event touched()` | Depends on [`local`](../ORDA/ordaClasses.md#local-functions) keyword | non | -| Before saving an entity | Attribut | `validateSave ()` | server | oui | -| | Entity | `validateSave()` | server | oui | -| When saving an entity | Attribut | `saving ()` | server | oui | -| | Entity | `saving()` | server | oui | -| After saving an entity | Entity | `afterSave()` | server | non | -| Before dropping an entity | Attribut | `validateDrop ()` | server | oui | -| | Entity | `validateDrop()` | server | oui | -| When dropping an entity | Attribut | `dropping ()` | server | oui | -| | Entity | `dropping()` | server | oui | -| After dropping an entity | Entity | `afterDrop()` | server | non | +| Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | Peut arrêter l'action en renvoyant une erreur | +| :------------------------------------ | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | --------------------------------------------- | +| Instanciation d'entité | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | non | +| Attribut touched | Attribut | `event touched ()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| | Entity | `event touched()` | Dépend du mot-clé [`local`](../ORDA/ordaClasses.md#local-functions) | non | +| Avant l'enregistrement d'une entité | Attribut | `validateSave ()` | server | oui | +| | Entity | `validateSave()` | server | oui | +| Pendant l'enregistrement d'une entité | Attribut | `saving ()` | server | oui | +| | Entity | `saving()` | server | oui | +| Après l'enregistrement d'une entité | Entity | `afterSave()` | server | non | +| Avant la suppression d'une entité | Attribut | `validateDrop ()` | server | oui | +| | Entity | `validateDrop()` | server | oui | +| Pendant la suppression d'une entité | Attribut | `dropping ()` | server | oui | +| | Entity | `dropping()` | server | oui | +| Après la suppression d'une entité | Entity | `afterDrop()` | server | non | :::note -The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actually an event function but is always called when a new entity is instantiated. +La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en soi une fonction d'événement, mais elle est toujours appelée lorsqu'une nouvelle entité est instanciée. ::: -## *event* parameter +## Paramètre *event* -Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: +Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : -| Nom de propriété | Disponibilité | Type | Description | | -| :------------------ | :----------------------------------------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------- | - | -| "kind" | Toujours | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | -| *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | -| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Collection of String | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Collection of String | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| Nom de propriété | Disponibilité | Type | Description | | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------------------------- | - | +| "kind" | Toujours | String | Nom de l'événement : "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | +| *attributeName* | Uniquement pour les événements définis au niveau des attributs ("validateSave", "saving", "validateDrop", "dropping") | String | Nom de l'attribut (*ex.* "firstname") | | +| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | | +| "savedAttributes" | Uniquement dans [`afterSave()`](#function-event-aftersave) | Collection de chaînes | Noms des attributs correctement enregistrés | | +| "droppedAttributes" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | Collection de chaînes | Noms des attributs correctement supprimés | | +| "saveStatus" | Uniquement dans [`afterSave()`](#function-event-aftersave) | String | "success" si l'enregistrement a réussi, "failed" sinon | | +| "dropStatus" | Uniquement dans [`afterDrop()`](#function-event-afterdrop) | String | "success" si la suppression a réussi, "failed" sinon | | -## Error object +## Objet error -[Some event functions](#summary-table) can return an **error object** to raise an error and stop the running action. +[Certaines fonctions d'événement](#summary-table) peuvent renvoyer un **objet error** pour déclencher une erreur et arrêter l'action en cours. -When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. +Lorsqu'une erreur survient dans un événement, les autres événements sont stoppés à la première erreur signalée et l'action (enregistrement pu suppression) est également arrêtée. Cette erreur est envoyée avant d'autres erreurs potentielles telles que [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propriétés de l'objet error -| Propriété | Type | Description | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Oui | -| extraDescription | Object | Free information to set up | Oui | -| seriousError | Boolean | Used only with validate events (see below).
      642. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      643. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      644. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      645. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      646. ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      647. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | -- [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. -- In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: - - If **true**: a serious error is thrown and should be handled by the [error processing code](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), such as a [try catch](../Concepts/error-handling.md#trycatchend-try). In the result object of the calling function, `status` gets `dk status serious validation error` and `statusText` gets "Serious Validation Error". The error is raised at the end of the event and reach the client requesting the save/drop action (REST client for example). - - If **false** (default): a [silent (predictable) error is generated](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). It does not trigger any exception and is not stacked in the errors returned by the [`Last errors`](../commands/last-errors.md) command. In the result object of the calling function, `status` gets `dk status validation failed` and `statusText` gets "Mild Validation Error". -- In case of an error triggered by a **saving/dropping** event, when an error object is returned, the error is always raised as a serious error whatever the `seriousError` property value. +- Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). +- Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : + - Si **true** : une erreur critique est déclenchée et doit être traitée par le [code de traitement des erreurs](../Concepts/error-handling.md#predictable-vs-unpredictable-errors), tel qu'un ["try catch"](../Concepts/error-handling.md#trycatchend-try). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status serious validation error` et `statusText` vaut "Serious Validation Error". L'erreur est levée à la fin de l'événement et parvient au client qui demande l'action d'enregistrement/suppression (client REST par exemple). + - Si **false** (défaut) : une [erreur silencieuse (prévisible) est générée](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Elle ne déclenche aucune exception et n'est pas empilée dans les erreurs retournées par la commande [`Last errors`](../commands/last-errors.md). Dans l'objet résultat de la fonction appelante, `status` vaut `dk status validation failed` et `statusText` vaut "Mild Validation Error". +- Dans le cas d'une erreur déclenchée par un événement **saving/dropping**, lorsqu'un objet d'erreur est renvoyé, l'erreur est toujours définie comme critique, quelle que soit la valeur de la propriété `seriousError`. -## Event function description +## Description des fonctions ### `Function event touched` @@ -128,19 +128,19 @@ When an error occurs in an event, the other events are stopped at the first rais // code ``` -This event is triggered each time a value is modified in the entity. +Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. -- If you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- If you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- Si vous avez défini la fonction au niveau de l'entité (première syntaxe), elle est déclenchée pour des modifications sur n'importe quel attribut de l'entité. +- Si vous avez défini la fonction au niveau de l'attribut (deuxième syntaxe), elle n'est déclenchée que pour les modifications sur cet attribut. -This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: +Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: - - the user sets a value on a 4D form, - - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). -- in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. -- with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) +- en **client/serveur avec le [mot-clé `local`](../ORDA/ordaClasses.md#local-functions)** ou en **4D mono-utilisateur** : + - l'utilisateur saisit une valeur dans un formulaire 4D, + - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). +- en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index a421e9046f83c1..7774b26c45bf74 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution デベロッパー・プレビュー Fluent UI support is currently in the Developer Preview phase. 本番環境で使用すべきではありません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 zcmb?@Wl)rF_%0nvE1iOf(t;q}At24tp&-(o3oIZYA>Gm?wR9}qNT+l!y>xe;m*33! z@Sk($d^*f9I}7adK6yXaeO=d0h>DUd?lX#KNJvPya-XEskdTlsfbTIZ4B#g;Q`@P) z3$l}%tOQc&Fx58j2F*-dQ5*@WBJ%m&S9IV#w*4m^CnO}i&ZlqW9=n2XNJz$S<)p+l z+zs~^F}+@zK42WdZ9Pz4`)(j1Bj>)QXQGoQM#ul_Hx^14G=ul@uc4~4cy7T%A_@uj;b-b~T!TlDy*mru)eV{ZuE8&^}9%wR=Q&6a~ z`um%Ui|aKzyONr^`ea;eY)*of2Jv?ouSJ>?+uFpiadG3z%Q*{mVbFkp zfb|mfSdt}OSAGfMH*aLJv$NNKv6QOdcLY!q5E4ea_4fA@m8g{FahnZ)8cOEb=w~St zqTPG3;MlsE zY(=&sB_$<-k`%s&5w{e*J#}{G47xXLbhUx`1qTOvJ-3|C$;m-avXz#tAK++BWpn{r zqy32^`&f5%p_K zed(8y(?R-J;J(U2Pr&J>zGB3A7SYR>e?)%)e?u$)Oq>xP+GBUC)EhjK|)$Q_PU0A>O09)-=RcV&x;t1Rbr5gJOo@VH$2*q{l zN|SFjNTSjG?et&UN&5crR%qY7mTioUjUD$+)uycOO4mm`~%*8E;& zAX_?gJu8T2EYTek?Xm%8mAhtBYd~-yUDBwH6{GB zQCaA~-yB|C#@62I}K&ml8olB!hR*9gxYp#FFz=N?=z>~P#y z@3YG{JSl&yEh8nhv~fBj>Sjd`UpGYX;|Q3H#N+#XO3bL)_+%bs z@ZgXHQcCNK|MQ{IxshK?2L7TTeoLD7psFwQG4Y)VCb|VClDO{QTMI@v3}E67gs9AM zsQ6T1`J@>0IMf0f8K>;SlZVTNYK`-02$i(-q<9vHEv&yM60;u@AG1H$7C9!}G@5rB zz4wIys>bc@KeCiN_z3^lg@>pGTw5d39Zy15N{U#go!13n2`*-_vDNI#!4=l(khFG` zj@QS=tsY2Tbj8L#NtFCYLVlU1xb)jD(T#L=J?}=7eC8kXxYqne?lmtzanBeqxds%e z`4Q@K&-}AAnjQE~I|TZ{TnmddnQ!?I@l{HZmt zPN3@>Jc%8&_OW@UqArur`pvv{d#-Y39jTDyyK2@_8LlL-&IPRX2F4#V8`iuOKeb=r zG^Q%JY7A%<{e3YL0<@+UBEN?rdmH#Z%Ov&mTjBuoJo!_k+4%FfT?u$y3VnL{MvvnP z#FH0a%U=)@CSmylt@cWh?E$}k)A5Cgo}P;kLl6iqA)HT5eh&CQKN1Wp51j%&8*L|^ zSM~S*M~nZX6UI9Aj=A?!dUlg$A;ATiGT{{4m%;Mzhx^-e&%}diBOgZO z_XBywa$RchNZeoNX`{d+0?|Tso=j8;DB@48mwd}v6Y{CAl-8j=1ca(x>;Jy^ zJR;1m?f1$1DrOn^bFOmcCsBfiPY$5w5R0y#zDpG*L1)|JvOnD%%5iJ%*CIv9 z4uJC**W*V$d3bpDl5Mu$6%ukwaIgmZ(j&6q@_2u#us;W51TI~p7{m|qN z(##vkKmyxXjx0VlKK^tf3I6xl&DS>6$;DAX| zS3?!(v5vU-0}1%sk}70axFEr>$-P1(5gzwW{WU$kM8>K2?sQoqugzTC+X-BE9GXx_ zTtJeDD1G*?eunmzqY=IkrT&)88)2c*H?)@}4D&{|?=o;3RTb+ZP2=xQ>_RQC$NOfX zOwEn94cl+7m;Le2>Q7br!y+RS6WH{26q@GS{V^Ho=-NtlE<2VhW-vX*8V6W2XbIzm zizcBr_nEO}=*^u43+}IH5VoQ56Q5H=^2g;j%3MnrBb}if?d|P5kx0N8W@iqx3{)I@ zL^f?AClSA^$!o${K1Ep(H5Dd@N!ymRkeSdO1cgD8#h^2YMifVUoZ zQ-VQfjc$ht5!8ZEu*PoAO?vPkc5|b@q#xr4Rt*VBNk$eHz1wE~yksO)6col{wK`sD zb9ImlB@soQM264^FcG^N4VFx9u8Z+MPBP|q3phEj2Fmf~`8q|)%VNZkAa}<-H>tf9 zCOzwj44(wUW{+)!CfZ^3o_98hP|XruOCv_rm=S#HGnM^})KpeJQ=&*}e#bw_J=l-@bnzF!H?Uw`;YHZoN2&zY0KOn;7Y5suGE9mwaIB48)C9RTh3% z*81>kFquc4`Yt~&x3C8T4Wn>O7!OOO>Qn9jL%S`G$lBhN$JZU&N=|Wcamy4x{r#f1 zwQ%poXH;lJURNtYT;B)DT;N*E3(jjo=L)KYYPn56tQSB)4{c6zWWvV~R5rIMyf$i) z%{Mzm8-bLzqtgV@2Ua>|P4|;wm5!6lIxWVzP3Le2$HQjfT+hqf^?U4Cjjt#s zR;)Ue8X}La9HuAh?@k7}IX)dO-ETbH-uB)eDr>Y7dS2Y+5>t5p!^4V!`Tyih{3+7F zXL=zw=U6#;)&H|%*4i>f0aT*PLo9{$`s_%?h0`NJOX}*g0`zr;kv|6RnI~TC8%4ER zve%fPlY(R>dU)W)NoJ-B_Cy}M);2L;COq1(`L-`7Qsk9-zEYw;CVnA2`RWR7w(0sK z@m5b{hKiyi-&L7r3DlJ`3%c_7aBBxfq#f&8JP=-=4DfS(UB#Tc4>CO;De4*-$;iD_ zTaEtG!&!lT@A1}dEEx-KfZqCM)VWO!VAYv~0$QHER^O%HcgZi16 z$1ZPgzPG=Hz?D)mGSCY*qn&9nscU`|VJSa9N!Za6$BU&5x))5J6C{K1ikQ!sLC^v< zS53`?IT21yvD;?s_^2p?5`rMr$rIA`@{(gdDje1uIML*rR?`7Zu;cpMr1xttJlU<>QpG(tl`|&iO*}vy$YuBzWNG2 zpVXT4Wh>3}*KSubUP3Wx&0*eE`${{bC0BoXUGK;HA?F#bks9c%{T&zeOIqgW) zdYr~S-79T)GJBw`ALPrx4iSmQmucizTwqAk=R3IOq!pK-px#pyc`?;pXp{Pt7F7>4 zjgZIqF;VYiHd#0jU+;u~_EAn2X(@;QccgK+J>UPjz0*$;^=W|y$`UV-8hO34Yq`#A z2@Gzc_M7@Q-W+o=@1XW@3$KNV9dfAWLs%;+9H98P@@u)1BoX&yw;kTxRa~YQW{*r& zW2;E#`De21>=IiQp%Ls;)ps@u)F4N_rXXM%5th%KENTHI8yBakz=92tGMg&6m zTlr=(Hq4qdZKE0qo}nwZN&5`Act~+v+El7D&dTyfKtj|4&QU`t9~F#^vs?Z`{tMd# zgv99LzakvWhErpY*WmGpbWhcXrCMcXtx}EeS$GBSIWcOlZx10S@Y4MQjyRKXvNAoAs^KEz5eBpw*TF3p>urudjyxT*IN~t6!cjSo2T|9 zP}TEMa5$q&_Lyl4uWNN-Q18K_PoLmn6T|M5ol5Td33Dzfdf7WRHpTl=;oH6OvHXuW zxU-OpQ;tyH3odL|RCc^7bF-#9Z&n^VDgM;_rAnpWXV!)wkH@NHU76CAi5FoEkk zrwfEfe7U&7+myW41qnbl$fZ|)Yn6LaH^Z02w~d-4cu7gjyR;A(Zr@|K1e-Qw;Ap*z zao%=p{AOlq*38?&>uO^{0GW3O;%gFM^zQnDAUx{mX3s|=y;2h~%Kj0L_gY8{^z`tx zL)t&3qr4`YOqK*>Moq~ShTQBFuFGx6AdkyUC7%uCq+udKLREC%7+YiG)Vn(Cqy~}( z4(H!a=#0+#s(6Unj8H{_(0Bxl^e=$3p-9D3NY_?}-aN^ae*Y2$)3f9s_GX=SRzEnu zdP1&!{6$;;)v>&&!khwk`*JonO0J zOz{56%~f!8%$~7n5lr{Ze?st|@x+6p=ZDh-^V!39b`d^$teSm;y>W5tFL_i5Ji8G+ zPb~=-X*MXTHuph1!#pvICh2GSXJe8R@=BxIzl=lz^YqPwL{3RAe*MqOirK-@H{l|v z^)b=W?L>{wfm9;<866vs;@H^u89zLbs^@x6CrL-Qe4cC%{lDjruy2!ZTmIp%`bOs` zEXX9=Xo{%!drCL*%o2->KlcrD^$--hesQjBw3uGj{f2p#}68H94`}%m4 zWx3Hjlx$0x>(#xVGM8AVINKo-Ka%6B)w#{E3csrm0zwc{L`(x%ewS~9jjqioEjAJ? z@L#_jN!ZZtQBfv>oxWp>qX{gO*YIcduTx zTP}De%$!ygYgcqE)!67k68b4i8vH(Tt$h&>;bfPUdm(R;{#_Nt0L5Ub7mxDFX??A zn~k1dI8=V$7r@55*#FXVeFfW{NFYu3F+6CwW$zpAADwn@t;BN83rZA|qt2osA?a3O zVn&nyeicDCah#U5s#EN3NkE#yrZ?$&b;GEKYVQ0+*A>WjQ1m?NJ?5dG{eWYCGhua zAm=oN-N?zyLsR)*FwD;KLm|_w1bZa=VjKF_#eciIOhQc1-virt@YzaYQhcreRdyii z>32W3*rfDVA+=g5sdYJ$_Vei>!Sn`cN7!Y;087)xTE!PyUhCgG z-G@Rp@D>B53=y^$Z$7KkYE;909t|*XDgKNQ+ufXPThh}zmWP5^a#QLb@s=oWnKlsr zl-H8X(p3=%a`jLWwm%MQ-8&+-3YN2#rd%Fp=8%Zs;9vf(Exr*Q8X9r085y^oq@*-n;%xalO-uUuSF4qvKR@HyBz*bu^^d2%E0pKxF8N+u z^u;nEK#QoGdN9k}%?hgh<2q^LhwgC7Nk<_(ds@b8;PfKqmsISHfNXGlI@PDRf@a>h zxq@Rsz%KGWyBlfuh|Joq?d~JoD`x~Ojy7XL>)g_qd=<*xP@k9K14PEqK<2zon#+mr? zo&F-aU8r~32w_TB0iBr#$-0;6!sLhWX@s-^8sXc;-YnFT_G`cf03)Vp*(zOjHFfIj zv#e(;r6XuX*;zD;RR$Os7$)}t8g9abv*u_piF=X@l_nG$na`vfhy1;9z~?jp(Ecs} z)_X~(_&Blf@wIl#m8o8S@q2I5{poabXcD6Qes11ve=c`P@A2V&1OE6>o66@P!4{OO zkk}8oT+E+pJ?ePAbHD7{#%Z@CbbYlJIe9~A*QA=Kn37laioQxb%7imqm4_Q zNucSYXb}jiRrChb!D68>I454dE<~~S_G^x_)#sn$*hKq>zAN;E8iH;I8mH8Pt{Sz{ zF@lEEGZiM2 z0(&n;U>@g|uok0MZ_-J-HiNf1YndDSweSQes0eE6F3R^?yVbinImq*%Ue>nd`nwC9 zkATnpD6;{b%6FnrU3QU{>szoFkXG-A5GLXKEr`;oJg8RXF~@xg;H_%&?EHNRvz&~v zFB$#5<|_^EuRhiPdW3Hx#<%Lb48Wv@%!WozthtWNzu_^iBk97XZNA7iW2etVYSb91 zuKD@k%8H7>XofMF-P24bH#1^lRx4#P6;pVx4J9}Fa_cUnsl$LV#)X;bAXmHajwa%o`b@)3&Qz>t8n`=LXVAN}z~R6q}j zD7nrERN~L(^ha@9Tjuxaof$q4g>XSTU}2#lKZ1LS_3t)z8er=;yQSP97cbjV#pmZ9 zjzch9Y1U10)v^!n2IV>aa}6%L6A-Q3kr*6n{~ad{LCVRyM8}BQ3VcMn%aK4h)PqWj z&#k)grA*3Ie>@9FP&Ct{*>P?}*Mg-yh$ZD?Om8TiBfUuJl*X z7#JAo`lcpZuK2xx@xTW9k5sS$5K_frwtbm=s{R3-x1m&$;p1 z8qKowNkmE88J${eaIu1obcK=@F?;;xbI2YbI`1L_5@aZKn#I7FXC)uHmYve2a9McnE zbIx^`IrxwYRdWJGWTm>q)j>Kuk}F~~igqNSig#zLQDr~nzI+KT)`#f=kV*-UMqs@v zF{Hc8+Wr~b=i&4>j*t8Aixw2G9XJXq#@Al&Gn4B160nb6uIYH5;?it4K;Pv)x7oLu zuTE$@*nwh{h<~LQ7GB(yBxH1+;QaROTY=KwcklWfciBpEt)^{>s0NjsN}n!vX5YO% zYi!)-vEul6ak4aEZ5{_>f}-GH`?3R-pylo@$B#?y{?(R~Y95!~VlpE95)_8>VxG!P z&=i*cKm!sZym%1jx+h+%SAj!>iA9q&wifK5t_H8m3hid3J&)i}Rgiih#_hKkGi-UmW3E z;gI$N#?dU4{9FRn<0FH1w?KBhx#Il`ee9x_^zkfO$2$Y*tFY|9G@6B#GkXyiuFMqv ziwc?C&)JtdM0K;XR|NeIpS5s1AFB|Rz9eA=F?2NFpuBfCAR9-+q+6%KXiRL2e2Gyv zTVs<#;fujY;hHzd}i!wqGPZ*QhTGL7c%m(~wkoIx>18(R9M0{LJoOo0zCG|CJW zseR4gA8LP+UIp(Nq8YL3*YCIeKqaE29Dsu9ncji`Olv>^Ky3^Q=7Aj(?$jPb0+bgS z+kQVozjgfWbKE>52PnOXX%Eb}srSNs=DtGL6Fw6#VaH0yty=}_u!-3dMcNtGjz?Dg zeSFi%bfM1S1d$=wY&%Nfd=`p@pZG5)Bkl+4EdsrnV-1N1xH{jv_QeCSYJdlK$J5kI z3e6J`xc-RyTXl_yjv^$Ri~n2l0xCAXM~4m3Kc+>RY9$^#eP`L@y`vvO@=)|k8ywcG zU@8bKrvqc);UJZ_$T?*aJrVo4kj5HgnES}~H$JWVhTY^()1{9w1MH2TsRN=spKu^C znT&lA1Vp_(SyZcEhFFCz zfq!(V?oTk=ye`(6cqHV?;g83_*VT!G=p~Bhjaxo4F`7ax{CzIuD*5G06qTrh#1iBZ zqEllHuE*E#w<`N+F{W+kwF0g$QJ3xG{TIK`zbfR4(MSqNj_Q&^#!*;yEpJg(!Qygw z@Yu7nGcM}SU3cv?Z}XL;`#cYo;}{hZ5^n9AuP$v|CDp;lU8K1Nw>7%uDTsz$AlLbf z&+#Lsp}|j8n@lpTfS}+_w;Nj4u!36xyDVj6>rGfQ^85@3&5OSZnKz5`fljYaH2JW) z-2&yGcZcH>JR-?Pd34tAX|hecSM7U0(~Jf^*H&Y4#FvlX3v%2hSmsL`9I=evD`u^j zr9z!@M_q%H)w+kTi@d=GPE&x2Y<_)lvGuikH|w_OmvR6AtD$>>wR$iyF$c0FgVy_) zGGfd!AW9K5p>e)#Um$G6K~D)(JD-HGN_;TFOISJYbK09*e5$C42@Oc-$xr{#vooBK zkdSEbX-mAt+^(Pt*RPd>H~*bo;{XBZB4YSn2DqQuv9Uwc3e_0Pwu=L&gY9Ko8O}zH z&RV;;O#5H*Q$qq*4lsa&M)AQsYNFIY(9UwYH0=rAIIjN1hCHXwj#15`dHK3tw_qgc z6!!UHS(4w4T@wWHWN0$%DRd*bc6~redSbJrrL8dE?3wGoj6}aJ|JwO&s#xcS$^a*| zlboEqFi%YX}{<)-B)cf{>P*z;$&Fxa7!U1_*WqF ze&(_YHeTWD#>>4JfN50{xmsqBQ&PIPQTa&5=yn!ibaJl--YLxg))&KQ8AXaFu zaJRRZjnLd1c3osV-pNjt=;e=uFgFWo&6_kkxj+D>5;#r>GA5}qzB@wi7G{RuIl*MIAdcfNA$1hm=vqn>gqEue}Y#F z)Q9h+9v12qo?qr~RP@j!ZVV(Uc*xWQ`~>w~rZZP^;k#-u0UEb1ZcdN|5ZWx0id^32 zq8`{S)TzGt{5$gikai6e3l4gCO8}L)R(Nl|R@viXuP_1Vrv?1FqWi{lAfd2thIERu z?0I>q6Jpqs`Xcnc^9i!jsB5Y?20g)XboUGq$RDfeQfPyB;>AXIaBx%)t&hG9Di(yb zvw_y?7k9|` z@>)8VEKKejIqIBSZp;bNboQ-UH_i*xBux_a&D zEJ;il)#;Yd#US@c!7ZC^waUQp3YP$Lo#6f#)1TOtjv7I&%vi1L*B|GTY5h$_~W?pvJ}K_Xx2xdz?pK!abGo zs6|+Rh?{%Y9ns~{zdijTO90?R<#_t{=lkt`9fXA zGaobo99j{5VN$Z))JTcrnS;f~qT3l+HMJN4g0|D_If`AtiZOBX1hS5J4e>9+iMR}z zE^L|tD~|wsM1enT+`@4(z+`$rhQRLdE59%DpFa;4<@J29UEqU-1$)s-;Mxo#BfoMy zS{4T@KZhAM-}J{Shfh6wy$gCvKZ^Rx+~2iy74I2d0zg8=Z;$5>j0Odo-=1rcE*`&b z>K+{Y>>^zYC@{TYk@@{5k;2et4C3wLJ73W9H;FOIsL`o$xV?^+Uy*-&5Z<1xD!Un4 zD%cQLiZEd5(kiyRaV-2LOUwstP=$rZR3jr>#06I1O~R$cu}CqpLe+TFF+m$|vjm;a zweK9rQV$u#09MciglqR%g=P{|0CGQS$2{kcZhg2>Xmz8pBnz81s+ zdG6&L*F|`R?zUUg2g?~1Vj_7@ETf#)>8YvN#5>G=1**#Zvb2!502Y<5b@ASfl15rM?yAu=JV)482C(fv%`d$wXeyGs39;?z) zPU3e8JlkH>W9u=u&qXf7-@kcF1te1vd0uBfgl-4P>hDf=VhVpYD0;F7*cDtPk5bZ% z7!dIZ<7J?W0Fo`QW$q>7k8Gsj$q7rDIrylt#-~VtvxEPh@w(VcItfz{I!9QC)dl3l z1Au&0ROS#@8SZNDeDoGeHvB-W@TJeX`D6EK=DJb&Uqd2%p(9_YDW@Ujh27cb9xmt1 zQ#6efO3)S`orDd>(sO75l8x~xVnl1-VkS?g>boVsj5*ixom<>a1>U^Z<)WLdPlS|4 z3)K(GH(9!J-29A+2^^2AJmeR3t@%wS{Z_i4Y}CINL+2;O*hw*0Hp_&UEYH|->T3+oaBv)Ss4)i5(PM?xZp7qAQm^-|vw&4C_*ZPC&s=b}-c3gSm+xokGmjEbgp2GEA zQ@E`E;#QaK=dGlOn5+Cb%wJ$C2a5fLBj6r{TDli^vdQ-a0%Gd`Kr>7VAeMGY$;5-z z1Z!j`CvxLvjw$|;wz=B?f)nT#t!Xpl1rzi(7dzJ;vEzi+@K0`-Tz*sA%-YO3j++e8 zO1bL*-_lW*TEb+UTwYcwks{BU3sTj)+)T0SyT80l$a?ga5{$~=aB#q89wgMxRV@iC zm&O!u{^G>mZp<$~3h2#T>shaKx9?5rZx0UUYG$E|O|Q$1gfJ!UZ+6RK7=~rD3Sj=}YqnHW1z(oXKjc zG=8$kCwj5*(!3SFPqz-kVnyQy)PrRgu-NwF-gH8p;g2rNlD*6&649kn8Zu`$`4K)C zt1OblmamkiwtwA4t-s7~PeIuML!e#`m_&-cnKpC^|7M!oct>@t|5ltsw^|#3HgdEw zHO_*qD?BTZY%uZ=6)wd@A|CaeLLz(GMqbK8Ap|ecB154RVDk%5W5)b+(e7Rt+fz3# zCSTTqbnSVylC-*B5JsQ%bnN6Pl}=;#B!=8`Bx+pbt&gJUiMc=cG;bQ4D-3tlQwRS&zb3}00_$4yUEBI+!sWEd3O;HNT7S6p>?3#7+@)j0Hrk(m}5C<`S-c|G0bo? zD#TAb7j+jS`)+1d=R7m{L9 zZ`o7mM`%``Pauc4|GWDEy}<&hm)pU;lekP9aL73S{@XqPkk}A#ReeWG6(EHwy+2!u zs->U>JX2si=p5`WE)8lle5>1wtCC;Pd@)DKJorz6>Z@VQ_=G&F#EbV)Azwxs%AY+* zM7%PxsiE3;(S_ae?>PMY$sxbMKO1r3Sv`bkP%R0EtT>qW^jxIlxtd{tQ(rA(fqjTi z#`7SosF=9Xo`<{dMnoU|0H#1bCU(5q|3{SC_L@p^)HZ8{C$?9#LKSsT@8FTayMd!d z4Xks6#>=No+y@c%7)Y^eVQ9Utk#5FE`=k>D7I)om#VK*#!@5|Nm~aqJNZr$S5x(ST zxzdgQX3*@7#+C3`?HEr%el}6~cE6&_$Q>iH)6Bo!fzuVDgVD&1h?0ff11ZHRbocgb zzl{Bpzdya*bGN5#niQSkr~>0>f%#R$a^osXJ`*|`TL1RA**XA^w8VY!bU;NiaXLJW zdetKzShxpDhy;~FPEYYiD&4E*3&)mUy7lK-$kY=W@{p9MOp{TztCHpqETasZ=jo zUhqx2^h8iYNh`|G8oP|+ZFI4$=P!bGyf#Y81i7CxUYsJLNxR{qp8#Sz#Y@1dX2(8| z$VSzkE)dydG*DETWrag$_3Z|Ui;926A$L{fYko#)$7&x>JFKTQ!ujES)vJ1aKCKv2 zN?q(eB%a(|>2>XRn;X$DlZ$Gjvh~^DY2C!cWD=j8ke}{lkycqL`%(aMVt?h$sj;$K zr&YHvJFOR=G_C`5PPDmrj$|}p@sFIzQ)0PZGcN#DZ+fPNO#Lz&nga)$r55YgH%JMe zS5QOucBdP44ZW`!x2N`vcEmbBY>dh509*U&u;sRe_0|C#&4aRmotV(Pb}?T)vM+71 z@F#j;q=b$NX_?`4V%wH1Ec_|?3k$_{O}%UeXd$rKg5Vtf!KSf7?FJ(^w?Zitq@M2S z9k$?hC=AtV;g&7H97q~}4~T5Ersq2uriV+djPKv~?W?zi`6tWZmc{GY*|04hw#W*K zHMX0QVPIesjXwemco{~l_+;%z2{tsDwa&?{2Kb_)CkLX8*624Nb7%rF2mHAdkR!C| z8I(Otb9gdPHynu}#z>wFG zucCY2I%48e$IQ&|l^wkBrIX#}7GXC`6Fl%DSUsf8{OK4`tb1OSd^nnw_QA#@t-597 zJI@L2Ft-~f%1y>l%0T$XCA$5&T98)yLY;-blypwMS5!-UJ9~&+2sHN3`1`% z$->%ko3z(W@^w4J@P>1?vGNs|Wn1#<7r2(bLw&U!T*-18`l_B^2g)W&FC+n^z&WK? z7F1Wube*;%@qYu{C*K?nWl(0?y|nz6oug#swB+#e$r5;iRg^mBy~m)O?pP$;BJ}FB zDthFRlAPi=iS{Jdqp#TP-7X2g$5}zO&9tHABs3QtoHt{`?|APLuA#@@{Y$ov82ylT zfBPfM{1wT*FQ#~8`bk>jLe{SntjobcYYHg+i1JT%#NlinVU;%F_nJCkejh_lXk^wycJbaerGe8qQozaYWHrQlV#a=!Wv{*EV3UN zjH2MN`qb!3tx?iur&l8{_NDxF{-1upGBRO8jVZVE{Bg>{f*dM9^EjpXBm-YB_fRM5 zh6{n!3}y#O{iu=SGk*$rbjwPo#kp8b1A)&{Zoa1WS+_q2*#a3MJAHO?wZ%NJ&V?m` zf7q}XJ>&Z4YpfUmz&a`+?8D&^z^mkDHBpcSB^KLnt0|d>O-B{@EzYNKA{`=UC_A57 z@O!cw>Zv_c^aJb8Y)W#h-u%a5$X);HFX{3!Dh!87i7GK(^!{}`^G~^aAi}h96yq+k z*Po1Re*9EK@-d|K!X0s>l~wZ7Cr4&lzDTo#@h#t<(M%a)pQ411a)ABm8={oD((IC5 zPEk(sv{AXuQ#y8l-{u4Zm}YwX;1K?z`*^s`d*)LKnt*; zN6>(%_q>q1JCuW!Cmxzd%nz&XQt+P`#at}W9aqnY)NuZs?wZSsVIzzt+iDvl*K1Qp zgjkGGGvyG+0xM*&!=IX^b%CK(_ueE!4bv>-4A&?(h6zVr7gwbEWk)XNr zLBLK_dX(JIP2TbsG@@t2Zs69%>5~qJKZBu$(Y3@pk*bblArV3_@qA{5kz9?Wj1az- zl;Opk;l(v?nyTRDN}5lW-MASt$xRa^B6S2j_rkd?f-lnqCQ^@kFHU|1hi^xslhAP zi1pIO1`<7EOf+IV!|#JvQX*;hK0BEhhvW>iF85lbV5RwKp6Q8czve5Jp08n7fIc=* zcf7WdXf)-qPj+0o%)K?Xfwy1fX;|9TCj67?WxRAbw{R0$3l7$qd_42}iI8VM4lzni zA`X8!d6s^Bsv3CpO3v8WSfg-KOM;p};H^W3h?DNm2Ej7w$aZohCS~a&dv5R6J=YYe z43QEHyMH3Yuwr+T5PnakbH$_h2q%oVIR`OP%AoY)jZo}WMim=>S{8a{niiIyAeRKu zPzp*B&D&@WTPa>Ue-#;<-a>WNnB?R6C5ph1G{g6q{w?6vM(4u z9jdxcut)ZDcy)rj^zDvDnbY+M5~uu0evYz&=8xwCb;ht&i4WV3JKy3Opedf1#7mvZ zo<8sT`sR=q`TN)q$rMkl>^lc4`*rhIZkh&3gQWOVsz1Gf5{ZxyaTQW(CHK}H9ABsR zq*T3hzd_rg0=jCj`Bgs(Eg1!Q`RG_CWjT-J!?WOz%jbC(Wr8w-z2c94Ctmme1v5Wd zr)usT19H)m7R?>BCd|0Dk<^eWwU#Yr)3tkJy7aiXyIku4kz|E(c6N4EJr(DLFDenDBk{L|9{;szd|m||dna$RwScf%K?CBlghcj}L<NUpj5|XM~gG%LWt` zo{WHTL^Y8xM!~z{vq*o;>M~lu69H_%t~WSsW{JP!{**>(r3=yQ)%kh@hUiH)!sz;0 zP{CTzBIfg5FhSct)%*>O2|1f#7rA*=f!ei9p>uyfgYB+4FFeN$b8!Y7|D+l z$IXWOE7p1-HQ1;}5B6VTev{?jzl($GP}1PKhQ$g2VmBBd04CWs0gD9I*KgC_gD;4T zL9&${5`(0f%v7i)RO9la*_fdFu{wo_wu6j>R9LTNN1qXIf+`?0FFf1ckzl;SoerYe#|!`5XG| z)q>1%3Dyh!)RBwek9;W1Ab>V3Mxn{iCJvyJl@)h(XW6;WUL^OQ&g?h5jiY*=wp?#N zJGIsm0TqXM!64K}hNIjx8RWJDyUW8lBR8{V8FBzOJpn;u+e~{E*V)+#pntYX%Sq{eqn&CY|vGPQ<;Vsj0!^dK0T_7u!Y>&c5S=L(3| zJJ;n@BeOt`LZ7$>qb$n^E_i!I*i&eoh<`0N}QW2yXJM3&P( z2X>aCqp^1)iQ3MYpnrz`n)McYPRZwA)=-r#y5CDlNw-Jx$(L?ThSMBx zoaY$o5|s0W?|)mzu9(+10G!YOkh1H)1uSRa$@$-$tw6p4qnQ)}&b&Hdf{IFHK@O^YRmd^-C_#{a=ZVqspvwme=W4 z3X&wekA(cf>H&ncf*l)^4k7s!42>K?$-V}f0zZYQcCFN;ok(?EU7ACW{xwmQ`4cMM5gSlP=3=Vu%OD z1yFoNT7qu)famP4@8OY5C8OtEe3;&9Nbv0Um41JytluJ^S@RbQ%F_aY9uEd{Rbu?D zHeSyQYZtgLo*Q6>tklH>SOeyZyEaT3cQM!yB_c53a|2?c_hpFQ6q|T6c>qEWd-@X00%YHhH`QPVC!R) z(gX@OFf9XercpMx7ZzJpgAPolfBJ|?+LUkji zEt)jxvpX`;tP=H0{-$R_(}q-XaULF!EkDfw=kt@2>vzN3kHgBcg)gV|MkeIfx|)qb zyPy)(q&@A(qhQStAqV;SM+c4;U8BC`Dlwx_seQYwCK=jlR-=}MB|zT;40q34UIT?N z6NumfKC-hv07|$?HCxG~RrCN14`Ji5G=D77&A0L1$6ZuO0{bTC5MD_bm;9c424KdE z|Cf^l!ukY#Peao{9txunVg^vH`oE&E1TO9To-P@2IrAMD{1%9p7JAJ5;e?Cmb z-Sd@^P?cYz@N?Sc%gEEjfx{2^V}X}HRYbh5f>VD9l(2C^`}Z9$7WgOG50rkq{2G`X zrmp&Lu4FCM&AGc1d9>X>NaID3&fIi(>(78IG#+1N@EzNe!p=_U-Q=*u<+nK5rQ$`t zL@D!A&|$SM0m0ksN-sOyovJxGbWk0-_8zcU5|yBPW-t91HpU+HdkEV}4QkgPJV_$Q zl*FDhi%rjJ=6K2;4#g?CWWIJ=yr{b6E6UCzq`rEG=2r^=W?=d3;qNdXd`Ujf_Ujj^(dVpPeSm%PxMNAiE#XXz%M=;~YjAIf9ilMa}2_ zDUD*&wh*4U4B_`{-qRW4j6xw)y&jV{?~{v(Nj3&JWK<>3Pyh-SdyO0rD;w`3wOAH%D4!NbQ|@q*9*1&yD5`WLdC z{R0;}$dXqEkUM+Um~HAtap$5844^R1tJG0Bb^!rhq8CIO+qC;<-?woOaePq8U>wqd zGgYMTBU=7*+p;60D4hFEbwFR+47Z>i5^C9ZTG&NL_b`fxXz~ch{dq=xE4EFQ_`ORc z!ZO!~J8g3lXk>d1jxvnY=7M^(H1Gs_wusiz8%fkQz__-`lEFCv&42_9fSHqQJmVvs z6(sZNQsJFDm;XL|h>fUZm~qgX@_F$D!xVgJ_rtGXn_QvNPc9|`oRp2UndpA`wzj3zBO$2yg%ihzbzV|J<|GJ!A*}^XP)bSYY39;7z zfCC&2yHpo`_7NfiLo3xSq5Qt>CgqWPsn!*Qhg>F{opHVcqgxhyBt$F^%C<`D6P36#_r z#|V?@{;BjjYZibj1dghFUa@~#uR7V@o31ZR%t@8N^cz)t?Zl`7wi96zHZU9i&#KD& zMlg2zfeg?$a04Yqe*0f!T`zoZtAX7^jGTWf5`2kVuk9S{8z}$x!-V{(NiW2H18xjN zIGs!jK%S`r;`4cZWe}=_{s7IZ!w_Et_`f+)!GHeTq+ndS6OQ)~C=~KUT4BUZsj4wC z;{qjBH|H4g{~4@t`T6--3)KtT;r}6Rs)`({cwXgu#V51v|F!D#f7EFH#|qH{?$H)TRnGSKtP9zXx)_C31P<5JOv?Az~+zu*sb~%IGX?D0c!SBwb`Gq zoq;C+1+$|UPu-L*`fw$g!2+52nC>qh8Sl?dKnTtNxL9Z*P{hIIvZIm2Z5Dw;@u6Tr z{(zX8oksn4_EbF2Hvt7;#3Gr1_uvVeUIS9$86!PV{T1^A6%)GS5w{o4Y?C7ZC$H(e zz|izl3vKE_s$gD_emYGtd!3W(tqh8=#{@q-XQBc8SC+ zngw7oQST-|e%4-;oqP=CXesC*S$SCUJS5iLk30vEwq~vS5`%0+K{7hS!jsN%(1qB+3g3A{DiCf5^&yipZ;|L3jQs4x1@HWVWl&u2+=w6$TWaX^U-8`12>(Je&%}Q;EGj|olOWn|$tkg5f3hxjpZ*CkoCYFptibIc8}NR- zcOyP4(W})QPoqwBi!kPTLd7>1fVy z2ybnLTFTz?(=7w^f58DNiX&ie=5jy!!V^i?!;3|i<7^wiF2C08EstVz0+6rQbMWIi z`^?cQGiBmA^MS{$oJb9en(sr&*AldoC&OjriYPNn(`e}Eg?)NYC##7-g6u`d%l!>3 zvuXp%mb(*$C-b0g=IQMkUd*1Ur=X{>?zRx-T^bun|zT16Y z_jO;_HPx4s(VQVk=*53vF(2C-U6)Q0l@dtactzI_mR7g58G3npFDs{C2(1ze4i3iT z-Jzese!C(|F-1jmifGxHwX5K`j>H`s)>A?vt-+w3(R#C_Z+7FT$m)>CiIXS6W9HCF zihCQ9#MtS#kIm>DO5Pc%`9v7(d(VpHKC#petlH_QJq|Dz)v4IJ}P>aPI;*EU}h1qL7Y3~t%HgOeado@a60YxCNBy?P4q8bjE6{(g#M=KXI&{0mHcZlfPZoG2RN-8 zDYfhx-KuwIaBU|3M^z?q(lmw3DWd5$OXcqpTaFqTrihBv0zG2kuzDhe9WTx`moEce z^=Ed$+duxAmrE>1_RKt)XQIEQ9FTVnV0f}Vlwp~S>52S`fO34NiDT-3kH~yAJW>D8 zN2#Rw@)f$&;p$ z`)hRV7Le6p@DCih66H0I)_-ukGngmT(}GZytx1rtco z9N6RK?Q58PF2KE=S?gF`=|NKe)sY$fFd~AUJK_X(1v(J{VI&cjB*;A}I#5yo)(Ap7 zoSyV(aHj-=x}Pr0m&yU%TW*4`j?Q`ejDB5RU44*0f#Mr-CTc~i1^M_S`Omt?10_Me zV0CU;?En-}bo1zGi|}G!RG;Gwwd+Z$z6rB^CE1~S66Tu;>f@8Sc3))t2Gg;m$S9mTLVtd+Dw??fkgpnd^x`R*^6{YbBGBXf$F{oKX( zY`{0sF$9=zeGtTT!tI0bf-tZ{2CmGMzA^1F8u9p<^YT`2q5dqhFbVh*j0~jGl!EJ6 z&qq1LA9$3FxM=EUM)pQfwV^-x&JPaE;xTaCkG?vJt(e<5> zuQ?__R^Oaa_|=u4QrY=^(5Apq0N&AGuKW95b)Z6e%6;<--3Kg}@9OQl2OIuV*;B^f zl3%>Q6??O}-AQL0z2|EI5dn#CH6=8f*)?c(s}nIdl(^ZLnItM+@wE=;|C@?FDkdfY zj9KvXFiG$R=6ta^y09Bm{$g%@#c=mQ+Kn;ck8U_hNso%<1p3%Ka|W)&*opjuE3hHG zyd3H4ewBU!)BSzW_jE@lC&d9x0fWfBhs1sFdgPQg+_9V-970V^O%5e}%VIiX`zuBN z?dhd#*er7I3CaN>oXqz2w%0esuJhnQsB?Hf98ij9vytPEiQPR`Ey&_mY+gryjg zTKQ&dzFhnG?jr-+F(sk*@89PnihG5G4#Ii80M2^i?H}+^9E;jdubiAOBfC->K-RA# z=IDG~25w%e9aPDGh(-Y<{-aos2j89e0BQYQK8OW~F=QBvZ} z8I-MoPM%Qr74G>kBa;%#TzYOrxC+`&B6qa>{vp*$ejU^q5L#>R6O)#{2vzE{@9s;c z|N6bJEiF#^NjQf1{vOgpoZo+}){%OlNMT_ux&;@Msc{e{@~#i)%W2nNCI`X5lvlYy zzV`!En#)Dt)Z+A)?p~ek6Q{$Fg@xN!3U9>Dkg9Bf=oCW+EVY*`5WuO`oO9*llCpOI z9dJQC@aJMnhFF#nibX*cIP&G~J~N=T^R3H^Est<=3e(L)tIajZ$iSsQIDy=udLc-8 zd6Pff`z2rwCqDlaZn6agG)fV9;uzD=`vT17-69Y)ky^!Wt6c-9SqC`EeGq*a8zkWP zP1xlW;11C8xP_GOFy4XJx4c*CYZZTyr={4&m& z#RJu2{?0^~?%7Jja-BT=;?5H*b#nkmMkbq6m57Oa=`C66O^>kE1qjFVMeaP`a`AfX$ zC7hV%WjEbEISBbsuC*AF7*#|O0^g9BKP5209mCRv1gnbml7CAc~)x6RgX2)^v6$>oeA5%?Pd z?as#Y$}B%zM?)1CTg`$WYMftSy8RS3_#{ZvA+Vq|H&hb;={CmaqRtp!!hF@v;NUw` zaZIs;w%ccj*hI)X_nld(oCNnK{ zryzroJ&^&}{zTvX#~^1(HoLt#CWwI-7tWId^F zO-M(l4#3=#NrM>y4cb-pL0;1lqX^Mn$E;jzEE|HBD+?!9#22!Bj7>B+o=Qr-EZvBU zt94v$aB2(=e$??B6?m#0nqj^B#o7eN-|^uVWp+i0?gEZ{G#YECam1VgF+uSYmAIu@ z*uv0Z4E={+U)>C-18>6?rJ5Nr<&82cb{~*}A-ha{QW-Se*&Ap7U?i{;5F#Rm3wS$^ z+y0S3ZT&`H-2hmrPxgX^b(o7;YG-@3N(|aY%1LA;WgD3bE30+3-Tmu*!s(B`xrS62 zMmLYQUp+hRJ&_O>CqgG;CapH%rdtl=Hq{N@38%9wRg*)lBsNa;EgR063imRrN`asx zLSeUph6RkVl=gG%`T#8lpu@9W= z3SBi{@Rna0Cj_h6+V7aP_VK02Br{U)SMl`A&Ui5Qje1&yZz)yrOs+m!Zp}}MY1CTMUa0z9r8HR?YmkFHg*99wbSvT#oSEj4x@e*bO=1xCnl2bGuMd`3 zvh!#5UvQ>1*0(q3iDh&m1RNZ1b|2B0fV@Xk^J1;??IF!&-dc#C8Y`VlHl3bqOOd6k zl85Dh+gSGdtTIz2Bt73>`jN2w^D22ew`346r~qs$VY0u#J`_AlvSk1Lp{oLdg2^6; zu!^~Kb>@e=lUduM#_xBTwGa4`lJZ3d=s`^7^Oa8pkpZ8UU-A`H4s9|MQs_B5_#G&l z%@6l+QPi8`W)Kid#&KuxIp?76Ea(Dl=++b;L<*ll+ghOfkhk`lh^A*Sa3U@UEM$+M zvdu1$$b=g8tAy)nYzqOms|uM-nPeJ})wQ`F z$KBPM3n~t)cCDdagxxh#aI<=IV>kk_By)px8-3w|WU=C+b-zb)BJ?})}AYH)4%6QQ)_ zV;Y;G##Z6R;yL14Z;`7k?$1;B3^RMNN?80^q1{vrTbXyg@C`Q+#K+1)DVsz%@DM9F zIoDma9+`GdpPKWQSW_}LveZG#73=*PSXYpoQz%DemhRN7gfYTi#b88Y*pV*_d_dW$ z9(~2RmCSmQ7;sJd6Gy{}JjyqFj${G3%A+=j=3?hWA8_ui&#S>;;t3dAB=?kKuu@k3 zqI7(LQAiE@0z?2(ix@Mucr?oD+Ilx^_Kl!K|6J&FSdBHK4H=jySFj(pGMgfu?%{Rj`G`27Cl_mvT%$lzUo)a zwLECEyv(Pj*d3&6sYf@x_w3Zy2a1YNC8@36hO%nXNgCbn@I%e}RkVg9*opD;6=10I zh0sRvI|2zeOI7)qX27M<2^KCE6PjIm8Ml}z6GH+iaK6Idts-3bTsUsr0*l#! zSOan?gGT+0AHZ$8r=bg3yb7yE7T2o(^h*`sb}Oi#*7>2W-+MVaV4x1e#^O5a{kb|O zyWsRt#i-COX4bvF>I&EQkb*r8%68HZm&npC4cT$d&hCAvh9^9c3Oc4KLR(y;rzUKD z;}f3A`P6o#=z?F)_lqNB59TBlbZ47d3}6CxBLVjR-K@#sK%eMTHaI3t!u#Ux{nJRJ#=V3tx{Yl4FVZjn zotgXJ0yd4EGb>b6UArqEoT9ei5$=N6%SQ>XUY)#hyo0l^Y@sKaj}j+o+o1KMn1_%b-sV{elTfP)~uikJ-0bIE>EyNc+)!nQDxzs zE$BUf;k;}uEfZI2um9f>{Hylm%Q45r#a$mbK5uU~!u+cHrRa^N6`nQzV!L^^FuwJ{ z?$V|_0iAIt{nac^%D08-<*-cV>Q=m;h!?8?*$h%N%yPdP$uh%~{!uSVVCM*rYxDQx zAopfc=xh$vjkccsXuDz_f>&H*f-OPm9f6Fs&ZFRbkBZ%PPg8;2Td>Ox`G= zo4@}i#uSyN<{v1tm8=YOaicgrJwx8%3k#o`UqKmgWO&1KxRj_t(T7`N{m#RMxiTT2cyVx_dcbGQ{SZ~hSkBERMyKz6UmB;T*l z$TFded67FMG0`7D;U)q(jXx)GO4)^W?sw5*FUwZq6HOG{C~YdwmWp)CKNzHTerG#i z(5zSWI_~WR!ldLr<73;DowsEkN8s8}Twn-Bm4M^s89esp&@{x7RD9@`Ycm<~`S2ma z$|H_a-(ErPtQT{e-JVqhC5^Lea_)=m3wh)8C@UM*%w-65X$;=kw1uh8^=D2~c2>%1 z$MAsHyPA!Bwjrx}EY~;O%{Uk9^Wt^(TGHy(Wb{tujE+@SSw&`$v(MG`_@FLa6CZxi zc+dO+s;aHqJ3QsN+91l7eBZfsnnaj%L2qH>lqNi*{TUN>C9n3JDk5T}Pkxiyq0sZJ z@_nY-g&~je5q(Ow^-6=oX?&yql!E{DT;^(m`PT^O0L`B~N5^7R=l%j7^D9uN=)j6y zX%+s|Ys(fn4N7bG-I4>yl0~-CDQ7(f_b~545k@`vC|j)->l4G%sLw}k_2ro=T3l*1 zT8@$OJ69wZ>_0si@L{aYoAT`^Z>j!CXVnNf7p8)sm8=_zPIK7<(_ibaziLi5g2wP8grxbMo9Kq0LGJ+A7UC*R4H`Hlr#vF5IWgwmik#fO#Nid#PnHF9eP z`3z{d%7!JNKfcl(wO$W>p|e9)jbi>I#O8y2TqhbM5J5Ny?AdgFw>6SVt{}Y)ByM>k z$=Mz6z4w(V3GWK(7!S3k^maJ9Y}}*XEG-J!ZuPCL?9az{BWU+hUO#S&f4c7_S-sen zKz-eOcjI8hA?N8uCm#fM%ZxQZ0q*Qr^K((?1m>i^~q_jq(woyTJM+#v+FsA-+B6oi7ujzVsVo0wP>3~OizT}{!%o}6MS)rVB zjMN4m?cTqV-JZU9L#>???1YsneO*oXsn}(efgefAZe`V0^&?ech+9CH=>so9#P}wG z0KLjr7*(C|NbrYie#HsaBhu|%?RDCk8DFfCGc+IOnh=T}XGoRAo<5SK20X?7GFDkj z^voau63je!SsytA02H*3c$?sv_YJ5bfBnm$uHVzcRBmWSRi)CwIka~)cg1OI2-n@P z^y0zyvleHQx@huImwe)JhF`9qr}jRh;3wYCqS2w97{=Z&Nwu_0cOU02$u=uW=K&Zs z$A}!=EUU0tZUWXM17F8k2Ae|@Wbb_Wy!tv20F;D`Z~fLRt~2FyfQW6-Vj`@KMB^_B zG#BK-bojw@^v|N0eqUQEnPRzG=H>3dPb>!IQ{(10uVWW4S@@fDe7yBxYy4Gbz>%{320%i}=es)4nO?eOwkYcDdBqh z^l5z5hyyCftKz&}kF7aE%zf#O#?$!m4^I<~@p|Ha+}iAmbwayga2HRZkrP#)I)M0dW&b5i!up41YYhQ!7PMpo&Ieg*%{s^kDU6wo2Za zv5<)Wysk6eb7-b51>-UNE|_(jl`Hn@?%lhgbLgdHP(p%3Q&VYgL!W&~y_$FUeczI@ z)Y;xDt(~9dkE~NcMw{fx8he)4+6izu=DqQlDqbbiq^u52>EXhtY`{bAO zwgh@QL}?wJuUO%RjR!fx%%-Y>6uWlMrnz&jDI>+v15eHGD|{}QV%bx!S*j*{=Oaa zLxTAK`H$x69UT8ZO>Q{U@qPjLFt+*EFEg7j4}hFM247iivp;8qWMdIhm^3>J3x_Lw zkU$xeC~QF1PdO>e4;(#o=yyOj#k0}Nsf?Rv9{c!ld|}}k3^)BHaj@}wHjc)lJW+MF zcYB=aW_OI@@1HO-vz=ci69v$VQ%7yVxk{X>^q#z&&<_ab9+NzO&yz!{ACA3rr(1ZC zXV03;)z#JM-@26pc^g+Df-~pD8x8svCgSnq1H|N*eZ+Z*ccPu}Nduiu%6Dg848UH( zu0cldFWAF$AWQ*I^cvrMJ#Q0-@gvg$Jd{01GxONi(JK9*V~3lmgmHyGHm4<;f-a0I z+96)tHsIes0DC?BB`_PG&oRs1?~_fG+F>s#IWfkOsE&jWl3>u+y{wa`Z5Q${nVtVd literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 9b6f26afd6daa1..1fc61d006e4c07 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDA Events +title: ORDAイベント ---
        履歴 @@ -67,11 +67,11 @@ The [`constructor()`](./ordaClasses.md#class-constructor-1) function is not actu Event functions accept a single *event* object as parameter. When the function is called, the parameter is filled with several properties: -| プロパティ名 | 利用可能性 | 型 | 説明 | -| :-------------- | :------------------------------------- | :-- | :------------------------------------------------------------------------------------- | -| `kind` | Always | 文字列 | Event name ("touched") | -| *attributeName* | Only for events involving an attribute | 文字列 | Attribute name (*e.g.* "firstname") | -| *dataClassName* | Always | 文字列 | Dataclass name (*e.g.* "Company") | +| プロパティ名 | 利用可能性 | 型 | 説明 | +| :-------------- | :----------- | :-- | :------------------------------------------------------------------------------------- | +| `kind` | Always | 文字列 | イベント名("touched") | +| *attributeName* | 属性に関するイベントのみ | 文字列 | Attribute name (*e.g.* "firstname") | +| *dataClassName* | Always | 文字列 | Dataclass name (*e.g.* "Company") | ## Event function description @@ -87,8 +87,8 @@ Event functions accept a single *event* object as parameter. When the function i This event is triggered each time a value is modified in the entity. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- 関数をエンティティレベルで定義していた場合(第一シンタックス)、その関数はエンティティの任意の属性における変更に対してトリガーされます。 +- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対する変更に対してのみトリガーされます。 This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: @@ -101,7 +101,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi The function receives an [*event* object](#event-parameter) as parameter. -If this event [throws](../commands-legacy/throw.md) an error, it will not stop the undergoing action. +このイベントがエラーを[throw](../commands-legacy/throw.md) する場合でも、進行中のアクションは停止しません。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 63488266de291f..c5e22a805f5c67 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -516,7 +516,7 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 #### GitHub 依存関係バージョン範囲の変更 -You can modify the [version setting](#defining-a-github-dependency-version-range) for a listed GitHub dependency: select the dependency to modify and select **Modify the dependency...** from the contextual menu. In the "Modify the dependency" dialog box, edit the Dependency Rule menu and click **Apply**. +一覧に表示されたGitHub 依存関係に対して[バージョン設定](#github-依存関係のバージョン範囲を定義) を編集することができます: 編集する依存関係を選択し、コンテキストメニューから**依存関係を編集...** を選択して下さい。 In the "依存関係を編集" ダイアログボックス内にて、依存関係のルールメニューを編集し、**適用** をクリックします。 バージョン範囲の変更は、自動アップデート機能を使用しているときに依存関係を特定のバージョン番号にロックしておきたいときに有用です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md index e96fd983130c6e..9d6699cccac929 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/client-server.md @@ -79,7 +79,7 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 - QUICレイヤーオプションを選択すると: - ドロップダウンメニューの隣に、ベータ版である旨のメッセージと警告アイコンが表示されます。 - [Client-server Connections Timeout settings](#client-server-connections-timeout) are hidden - - The [Encrypt Client-Server communication checkbox](#encrypt-client-server-communications) is hidden (QUIC communications are always in TLS, whatever your secured mode is.). + - [クライアント-サーバー通信の暗号化](#クライアント-サーバー通信の暗号化) チェックボックスは非表示になります (セキュアモードに関わらず、QUIC 通信は常に TLS です)。 - **互換性**: QUICネットワークレイヤーに切り替えるには、まずクライアント/サーバーアプリケーションを 4D v20以上で運用する必要があります。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index a8f389fc3a0b6a..8812a3e7f7f275 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" この場合、*value* 引数は、以下のプロパティを格納した**比較ベクトルオブジェクト** である必要があります: -| プロパティ | 型 | 説明 | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | -| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 You can use one of the following (Text) constants:
      648. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      649. `mk dot`: calculates the dot similarity of vectors.
      650. `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| --------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | +| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキスト)定数のいずれか一つを使用できます:
      651. `mk cosine` (省略時のデフォルト): ベクトル間のコサイン距離を計算します。
      652. `mk dot`: ベクトルのドット類似度を計算します。
      653. `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | +| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | **comparator** 記号の、一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index a421e9046f83c1..7774b26c45bf74 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution デベロッパー・プレビュー Fluent UI support is currently in the Developer Preview phase. 本番環境で使用すべきではありません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/ja/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 1138d8154a484c..aa0e9e47272a43 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,10 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Prévia do desenvolvedor Fluent UI support is currently in the Developer Preview phase. Não deve ser usado na produção. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 1138d8154a484c..aa0e9e47272a43 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,10 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +| Light theme | Dark theme | +| --------------------------------------- | -------------------------------------------- | +| ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | + :::caution Prévia do desenvolvedor Fluent UI support is currently in the Developer Preview phase. Não deve ser usado na produção. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..fe35b22f4c543866e49df56dcc87083f7baf5ccc GIT binary patch literal 25559 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png b/i18n/pt/docusaurus-plugin-content-docs/version-21/assets/en/FormEditor/fluent.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ece4b7fb5fbbc1252c61f79a16a4f985de53ac GIT binary patch literal 25235 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 literal 0 HcmV?d00001 From 634c48850a78f8048a5954bcc9ec8bf8743037a0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 16 Oct 2025 14:38:45 +0200 Subject: [PATCH 087/119] after closure fluentid --- docs/FormEditor/forms.md | 29 +-- .../version-21/FormEditor/forms copy.md | 211 ++++++++++++++++++ versioned_docs/version-21/FormEditor/forms.md | 29 +-- 3 files changed, 241 insertions(+), 28 deletions(-) create mode 100644 versioned_docs/version-21/FormEditor/forms copy.md diff --git a/docs/FormEditor/forms.md b/docs/FormEditor/forms.md index 422e0d30ce3dc1..1bb9f5f24bc3ac 100644 --- a/docs/FormEditor/forms.md +++ b/docs/FormEditor/forms.md @@ -102,6 +102,8 @@ A multi-page form has both a background page and several display pages. Objects On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + |Light theme|Dark theme| |---|---| |![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| @@ -120,21 +122,18 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: +:::tip Related blog post -### Fluent UI rendering availability +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -The Fluent UI rendering is available in the following execution environments only: +::: -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Merged [stand-alone](../Desktop/building.md#build-stand-alone-application) or [client](../Desktop/building.md#build-client-application) 4D application -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +### Requirements -:::note +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. -::: - ### Enabling the Fluent UI rendering You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. @@ -158,21 +157,23 @@ Each form can define its own rendering via the **Widget appearance** property. T The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. - +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: diff --git a/versioned_docs/version-21/FormEditor/forms copy.md b/versioned_docs/version-21/FormEditor/forms copy.md new file mode 100644 index 00000000000000..1bb9f5f24bc3ac --- /dev/null +++ b/versioned_docs/version-21/FormEditor/forms copy.md @@ -0,0 +1,211 @@ +--- +id: forms +title: Forms +--- + + +Forms provide the interface through which information is entered, modified, and printed in a desktop application. Users interact with the data in a database using forms and print reports using forms. Forms can be used to create custom dialog boxes, palettes, or any featured custom window. + +![](../assets/en/FormObjects/form1.png) + +Forms can also contain other forms through the following features: + +- [subform objects](FormObjects/subform_overview.md) +- [inherited forms](./properties_FormProperties.md#inherited-form-name) + +## Creating forms + +You can add or modify 4D forms using the following elements: + +- **4D Developer interface:** Create new forms from the **File** menu or the **Explorer** window. +- **Form Editor**: Modify your forms using the **[Form Editor](FormEditor/formEditor.md)**. +- **JSON code:** Create and design your forms using JSON and save the form files at the [appropriate location](Project/architecture#sources). Example: + +``` +{ + "windowTitle": "Hello World", + "windowMinWidth": 220, + "windowMinHeight": 80, + "method": "HWexample", + "pages": [ + null, + { + "objects": { + "text": { + "type": "text", + "text": "Hello World!", + "textAlign": "center", + "left": 50, + "top": 120, + "width": 120, + "height": 80 + }, + "image": { + "type": "picture", + "pictureFormat": "scaled", + "picture": "/RESOURCES/Images/HW.png", + "alignment":"center", + "left": 70, + "top": 20, + "width":75, + "height":75 + }, + "button": { + "type": "button", + "text": "OK", + "action": "Cancel", + "left": 60, + "top": 160, + + + "width": 100, + "height": 20 + } + } + } + ] +} +``` + +## Project form and Table form + +There are two categories of forms: + +- **Project forms** - Independent forms that are not attached to any table. They are intended more particularly for creating interface dialog boxes as well as components. Project forms can be used to create interfaces that easily comply with OS standards. + +- **Table forms** - Attached to specific tables and thus benefit from automatic functions useful for developing applications based on databases. Typically, a table has separate input and output forms. + +Typically, you select the form category when you create the form, but you can change it afterwards. + +## Form pages + +Each form has is made of at least two pages: + +- a page 1: a main page, displayed by default +- a page 0: a background page, whose contents is displayed on every other page. + +You can create multiple pages for an input form. If you have more fields or variables than will fit on one screen, you may want to create additional pages to display them. Multiple pages allow you to do the following: + +- Place the most important information on the first page and less important information on other pages. +- Organize each topic on its own page. +- Reduce or eliminate scrolling during data entry by setting the [entry order](formEditor.md#data-entry-order). +- Provide space around the form elements for an attractive screen design. + +Multiple pages are a convenience used for input forms only. They are not for printed output. When a multi-page form is printed, only the first page is printed. + +There are no restrictions on the number of pages a form can have. The same field can appear any number of times in a form and on as many pages as you want. However, the more pages you have in a form, the longer it will take to display it. + +A multi-page form has both a background page and several display pages. Objects that are placed on the background page may be visible on all display pages, but can be selected and edited only on the background page. In multi-page forms, you should put your button palette on the background page. You also need to include one or more objects on the background page that provide page navigation tools for the user. + + +## Fluent UI rendering (Developer Preview) + +On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. + +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + +|Light theme|Dark theme| +|---|---| +|![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| + + + +:::caution Developer Preview + +Fluent UI support is currently in the Developer Preview phase. It should not be used in production. + +::: + +:::info macOS + +This feature can only be used on Windows. On macOS, it is ignored. + +::: + +:::tip Related blog post + +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) + +::: + +### Requirements + +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. + +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. + +### Enabling the Fluent UI rendering + +You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. + +#### Application setting + +Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. + +![](../assets/en/FormObjects/fluentui-setting.png) + +In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. + +#### Form setting + +Each form can define its own rendering via the **Widget appearance** property. The following options are available: + +- **Inherited**: inherits the global application setting (default), +- **Classic**: uses the classic Windows style, +- **Fluent UI**: enables the modern rendering based on Fluent UI.
        +![](../assets/en/FormObjects/fluentui-form.png) + +The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". + +### Specific behaviors + +When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: + +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. +- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). +- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). +- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: + + + +## Inherited Forms + +4D forms can use and be used as "inherited forms," meaning that all of the objects from *Form A* can be used in *Form B*. In this case, *Form B* "inherits" the objects from *Form A*. + +References to an inherited form are always active: if an element of an inherited form is modified (button styles, for example), all forms using this element will automatically be modified. + +All forms (table forms and project forms) can be designated as an inherited form. However, the elements they contain must be compatible with use in different database tables. + +When a form is executed, the objects are loaded and combined in the following order: + +1. Page zero of the inherited form +2. Page 1 of the inherited form +3. Page zero of the open form +4. Current page of the open form. + +This order determines the default [entry order](formEditor.md#data-entry-order) of objects in the form. + +> Only pages 0 and 1 of an inherited form can appear in other forms. + +The properties and method of a form are not considered when that form is used as an inherited form. On the other hand, the methods of objects that it contains are called. + +To define an inherited form, the [Inherited Form Name](properties_FormProperties.md#inherited-form-name) and [Inherited Form Table](properties_FormProperties.md#inherited-form-table) (for table form) properties must be defined in the form that will inherit something from another form. + +A form can inherit from a project form, by setting the [Inherited Form Table](properties_FormProperties.md#inherited-form-table) property to `\` in the Property List (or " " in JSON). + +To stop inheriting a form, select `\` in the Property List (or " " in JSON) for the [Inherited Form Name](properties_FormProperties.md#inherited-form-name) property. + +>It is possible to define an inherited form in a form that will eventually be used as an inherited form for a third form. The combining of objects takes place in a recursive manner. 4D detects recursive loops (for example, if form [table1]form1 is defined as the inherited form of [table1]form1, in other words, itself) and interrupts the form chain. + +## Supported Properties + +[Associated Menu Bar](properties_Menu.md#associated-menu-bar) - [Fixed Height](properties_WindowSize.md#fixed-height) - [Fixed Width](properties_WindowSize.md#fixed-width) - [Form Break](properties_Markers.md#form-break) - [Form Detail](properties_Markers.md#form-detail) - [Form Footer](properties_Markers.md#form-footer) - [Form Header](properties_Markers.md#form-header) - [Form Name](properties_FormProperties.md#form-name) - [Form Type](properties_FormProperties.md#form-type) - [Inherited Form Name](properties_FormProperties.md#inherited-form-name) - [Inherited Form Table](properties_FormProperties.md#inherited-form-table) - [Maximum Height](properties_WindowSize.md#maximum-height-minimum-height) - [Maximum Width](properties_WindowSize.md#maximum-width-minimum-width) - [Method](properties_Action.md#method) - [Minimum Height](properties_WindowSize.md#maximum-height-minimum-height) - [Minimum Width](properties_WindowSize.md#maximum-width-minimum-width) - [Pages](properties_FormProperties.md#pages) - [Print Settings](properties_Print.md#settings) - [Published as Subform](properties_FormProperties.md#published-as-subform) - [Save Geometry](properties_FormProperties.md#save-geometry) - [Window Title](properties_FormProperties.md#window-title) diff --git a/versioned_docs/version-21/FormEditor/forms.md b/versioned_docs/version-21/FormEditor/forms.md index 422e0d30ce3dc1..1bb9f5f24bc3ac 100644 --- a/versioned_docs/version-21/FormEditor/forms.md +++ b/versioned_docs/version-21/FormEditor/forms.md @@ -102,6 +102,8 @@ A multi-page form has both a background page and several display pages. Objects On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + |Light theme|Dark theme| |---|---| |![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| @@ -120,21 +122,18 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: +:::tip Related blog post -### Fluent UI rendering availability +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -The Fluent UI rendering is available in the following execution environments only: +::: -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Merged [stand-alone](../Desktop/building.md#build-stand-alone-application) or [client](../Desktop/building.md#build-client-application) 4D application -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +### Requirements -:::note +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. -::: - ### Enabling the Fluent UI rendering You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. @@ -158,21 +157,23 @@ Each form can define its own rendering via the **Widget appearance** property. T The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. - +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: From cffb29e7bad887b7140884d7ca483ce4d1558848 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 16 Oct 2025 14:52:58 +0200 Subject: [PATCH 088/119] Delete forms copy.md --- .../version-21/FormEditor/forms copy.md | 211 ------------------ 1 file changed, 211 deletions(-) delete mode 100644 versioned_docs/version-21/FormEditor/forms copy.md diff --git a/versioned_docs/version-21/FormEditor/forms copy.md b/versioned_docs/version-21/FormEditor/forms copy.md deleted file mode 100644 index 1bb9f5f24bc3ac..00000000000000 --- a/versioned_docs/version-21/FormEditor/forms copy.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -id: forms -title: Forms ---- - - -Forms provide the interface through which information is entered, modified, and printed in a desktop application. Users interact with the data in a database using forms and print reports using forms. Forms can be used to create custom dialog boxes, palettes, or any featured custom window. - -![](../assets/en/FormObjects/form1.png) - -Forms can also contain other forms through the following features: - -- [subform objects](FormObjects/subform_overview.md) -- [inherited forms](./properties_FormProperties.md#inherited-form-name) - -## Creating forms - -You can add or modify 4D forms using the following elements: - -- **4D Developer interface:** Create new forms from the **File** menu or the **Explorer** window. -- **Form Editor**: Modify your forms using the **[Form Editor](FormEditor/formEditor.md)**. -- **JSON code:** Create and design your forms using JSON and save the form files at the [appropriate location](Project/architecture#sources). Example: - -``` -{ - "windowTitle": "Hello World", - "windowMinWidth": 220, - "windowMinHeight": 80, - "method": "HWexample", - "pages": [ - null, - { - "objects": { - "text": { - "type": "text", - "text": "Hello World!", - "textAlign": "center", - "left": 50, - "top": 120, - "width": 120, - "height": 80 - }, - "image": { - "type": "picture", - "pictureFormat": "scaled", - "picture": "/RESOURCES/Images/HW.png", - "alignment":"center", - "left": 70, - "top": 20, - "width":75, - "height":75 - }, - "button": { - "type": "button", - "text": "OK", - "action": "Cancel", - "left": 60, - "top": 160, - - - "width": 100, - "height": 20 - } - } - } - ] -} -``` - -## Project form and Table form - -There are two categories of forms: - -- **Project forms** - Independent forms that are not attached to any table. They are intended more particularly for creating interface dialog boxes as well as components. Project forms can be used to create interfaces that easily comply with OS standards. - -- **Table forms** - Attached to specific tables and thus benefit from automatic functions useful for developing applications based on databases. Typically, a table has separate input and output forms. - -Typically, you select the form category when you create the form, but you can change it afterwards. - -## Form pages - -Each form has is made of at least two pages: - -- a page 1: a main page, displayed by default -- a page 0: a background page, whose contents is displayed on every other page. - -You can create multiple pages for an input form. If you have more fields or variables than will fit on one screen, you may want to create additional pages to display them. Multiple pages allow you to do the following: - -- Place the most important information on the first page and less important information on other pages. -- Organize each topic on its own page. -- Reduce or eliminate scrolling during data entry by setting the [entry order](formEditor.md#data-entry-order). -- Provide space around the form elements for an attractive screen design. - -Multiple pages are a convenience used for input forms only. They are not for printed output. When a multi-page form is printed, only the first page is printed. - -There are no restrictions on the number of pages a form can have. The same field can appear any number of times in a form and on as many pages as you want. However, the more pages you have in a form, the longer it will take to display it. - -A multi-page form has both a background page and several display pages. Objects that are placed on the background page may be visible on all display pages, but can be selected and edited only on the background page. In multi-page forms, you should put your button palette on the background page. You also need to include one or more objects on the background page that provide page navigation tools for the user. - - -## Fluent UI rendering (Developer Preview) - -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. - -|Light theme|Dark theme| -|---|---| -|![](../assets/en/FormEditor/fluent.png)|![](../assets/en/FormEditor/fluent-dark.png)| - - - -:::caution Developer Preview - -Fluent UI support is currently in the Developer Preview phase. It should not be used in production. - -::: - -:::info macOS - -This feature can only be used on Windows. On macOS, it is ignored. - -::: - -:::tip Related blog post - -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) - -::: - -### Requirements - -The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. - -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. - -### Enabling the Fluent UI rendering - -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. - -#### Application setting - -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. - -![](../assets/en/FormObjects/fluentui-setting.png) - -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. - -#### Form setting - -Each form can define its own rendering via the **Widget appearance** property. The following options are available: - -- **Inherited**: inherits the global application setting (default), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
        -![](../assets/en/FormObjects/fluentui-form.png) - -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". - -### Specific behaviors - -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: - -- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - -:::info Limitations - -This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). - -::: - - - -## Inherited Forms - -4D forms can use and be used as "inherited forms," meaning that all of the objects from *Form A* can be used in *Form B*. In this case, *Form B* "inherits" the objects from *Form A*. - -References to an inherited form are always active: if an element of an inherited form is modified (button styles, for example), all forms using this element will automatically be modified. - -All forms (table forms and project forms) can be designated as an inherited form. However, the elements they contain must be compatible with use in different database tables. - -When a form is executed, the objects are loaded and combined in the following order: - -1. Page zero of the inherited form -2. Page 1 of the inherited form -3. Page zero of the open form -4. Current page of the open form. - -This order determines the default [entry order](formEditor.md#data-entry-order) of objects in the form. - -> Only pages 0 and 1 of an inherited form can appear in other forms. - -The properties and method of a form are not considered when that form is used as an inherited form. On the other hand, the methods of objects that it contains are called. - -To define an inherited form, the [Inherited Form Name](properties_FormProperties.md#inherited-form-name) and [Inherited Form Table](properties_FormProperties.md#inherited-form-table) (for table form) properties must be defined in the form that will inherit something from another form. - -A form can inherit from a project form, by setting the [Inherited Form Table](properties_FormProperties.md#inherited-form-table) property to `\` in the Property List (or " " in JSON). - -To stop inheriting a form, select `\` in the Property List (or " " in JSON) for the [Inherited Form Name](properties_FormProperties.md#inherited-form-name) property. - ->It is possible to define an inherited form in a form that will eventually be used as an inherited form for a third form. The combining of objects takes place in a recursive manner. 4D detects recursive loops (for example, if form [table1]form1 is defined as the inherited form of [table1]form1, in other words, itself) and interrupts the form chain. - -## Supported Properties - -[Associated Menu Bar](properties_Menu.md#associated-menu-bar) - [Fixed Height](properties_WindowSize.md#fixed-height) - [Fixed Width](properties_WindowSize.md#fixed-width) - [Form Break](properties_Markers.md#form-break) - [Form Detail](properties_Markers.md#form-detail) - [Form Footer](properties_Markers.md#form-footer) - [Form Header](properties_Markers.md#form-header) - [Form Name](properties_FormProperties.md#form-name) - [Form Type](properties_FormProperties.md#form-type) - [Inherited Form Name](properties_FormProperties.md#inherited-form-name) - [Inherited Form Table](properties_FormProperties.md#inherited-form-table) - [Maximum Height](properties_WindowSize.md#maximum-height-minimum-height) - [Maximum Width](properties_WindowSize.md#maximum-width-minimum-width) - [Method](properties_Action.md#method) - [Minimum Height](properties_WindowSize.md#maximum-height-minimum-height) - [Minimum Width](properties_WindowSize.md#maximum-width-minimum-width) - [Pages](properties_FormProperties.md#pages) - [Print Settings](properties_Print.md#settings) - [Published as Subform](properties_FormProperties.md#published-as-subform) - [Save Geometry](properties_FormProperties.md#save-geometry) - [Window Title](properties_FormProperties.md#window-title) From 18b91f0ed4b9bb8525064945ace5150bcd38f6c6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 16 Oct 2025 18:43:57 +0200 Subject: [PATCH 089/119] edits for more clarity --- docs/aikit/Classes/OpenAI.md | 4 ++-- docs/aikit/compatible-openai.md | 6 +++--- docs/aikit/overview.md | 4 ++-- versioned_docs/version-20-R10/aikit/Classes/OpenAI.md | 4 ++-- versioned_docs/version-20-R10/aikit/compatible-openai.md | 6 +++--- versioned_docs/version-20-R10/aikit/overview.md | 4 ++-- versioned_docs/version-21/aikit/Classes/OpenAI.md | 4 ++-- versioned_docs/version-21/aikit/compatible-openai.md | 6 +++--- versioned_docs/version-21/aikit/overview.md | 4 ++-- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/aikit/Classes/OpenAI.md b/docs/aikit/Classes/OpenAI.md index 3d1dcd75409a18..8e88ba360ad3cd 100644 --- a/docs/aikit/Classes/OpenAI.md +++ b/docs/aikit/Classes/OpenAI.md @@ -11,8 +11,8 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Property Name | Type | Description | Optional | |-------------------|-------|-----------------------------------|----------| -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | No for OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Yes | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider| +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI Platform)| | `organization` | Text | Your OpenAI Organization ID. | Yes | | `project` | Text | Your OpenAI Project ID. | Yes | diff --git a/docs/aikit/compatible-openai.md b/docs/aikit/compatible-openai.md index 48db88a10f7216..847aec12b412c1 100644 --- a/docs/aikit/compatible-openai.md +++ b/docs/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remote -|Provider|Base url| +|Provider|baseURL| |-|-| |https://mistral.ai/|https://api.mistral.ai/v1| |https://www.deepseek.com/|https://api.deepseek.com| @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | Default base url | Doc | +| Provider | Default baseURL | Doc | |------------------ |---------------------------|-----------------------------------------------| |https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | |https://lmstudio.ai/| http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/docs/aikit/overview.md b/docs/aikit/overview.md index eb664c46d783e6..e9772f39bc5ba5 100644 --- a/docs/aikit/overview.md +++ b/docs/aikit/overview.md @@ -22,7 +22,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -44,7 +44,7 @@ var $result:=$client..() The `$result` contains the `HTTPRequest`, a `success` status, a collection of `errors` and more. See [OpenAIResult](Classes/OpenAIResult.md) -See some examples bellow. +See some examples below. #### Chat diff --git a/versioned_docs/version-20-R10/aikit/Classes/OpenAI.md b/versioned_docs/version-20-R10/aikit/Classes/OpenAI.md index 3d1dcd75409a18..9fded0091c08d7 100644 --- a/versioned_docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/versioned_docs/version-20-R10/aikit/Classes/OpenAI.md @@ -11,8 +11,8 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Property Name | Type | Description | Optional | |-------------------|-------|-----------------------------------|----------| -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | No for OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Yes | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI provider)| | `organization` | Text | Your OpenAI Organization ID. | Yes | | `project` | Text | Your OpenAI Project ID. | Yes | diff --git a/versioned_docs/version-20-R10/aikit/compatible-openai.md b/versioned_docs/version-20-R10/aikit/compatible-openai.md index 48db88a10f7216..847aec12b412c1 100644 --- a/versioned_docs/version-20-R10/aikit/compatible-openai.md +++ b/versioned_docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remote -|Provider|Base url| +|Provider|baseURL| |-|-| |https://mistral.ai/|https://api.mistral.ai/v1| |https://www.deepseek.com/|https://api.deepseek.com| @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | Default base url | Doc | +| Provider | Default baseURL | Doc | |------------------ |---------------------------|-----------------------------------------------| |https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | |https://lmstudio.ai/| http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/versioned_docs/version-20-R10/aikit/overview.md b/versioned_docs/version-20-R10/aikit/overview.md index eb664c46d783e6..e9772f39bc5ba5 100644 --- a/versioned_docs/version-20-R10/aikit/overview.md +++ b/versioned_docs/version-20-R10/aikit/overview.md @@ -22,7 +22,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -44,7 +44,7 @@ var $result:=$client..() The `$result` contains the `HTTPRequest`, a `success` status, a collection of `errors` and more. See [OpenAIResult](Classes/OpenAIResult.md) -See some examples bellow. +See some examples below. #### Chat diff --git a/versioned_docs/version-21/aikit/Classes/OpenAI.md b/versioned_docs/version-21/aikit/Classes/OpenAI.md index 3d1dcd75409a18..9fded0091c08d7 100644 --- a/versioned_docs/version-21/aikit/Classes/OpenAI.md +++ b/versioned_docs/version-21/aikit/Classes/OpenAI.md @@ -11,8 +11,8 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Property Name | Type | Description | Optional | |-------------------|-------|-----------------------------------|----------| -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | No for OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Yes | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI provider)| | `organization` | Text | Your OpenAI Organization ID. | Yes | | `project` | Text | Your OpenAI Project ID. | Yes | diff --git a/versioned_docs/version-21/aikit/compatible-openai.md b/versioned_docs/version-21/aikit/compatible-openai.md index 48db88a10f7216..847aec12b412c1 100644 --- a/versioned_docs/version-21/aikit/compatible-openai.md +++ b/versioned_docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remote -|Provider|Base url| +|Provider|baseURL| |-|-| |https://mistral.ai/|https://api.mistral.ai/v1| |https://www.deepseek.com/|https://api.deepseek.com| @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | Default base url | Doc | +| Provider | Default baseURL | Doc | |------------------ |---------------------------|-----------------------------------------------| |https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | |https://lmstudio.ai/| http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/versioned_docs/version-21/aikit/overview.md b/versioned_docs/version-21/aikit/overview.md index eb664c46d783e6..e9772f39bc5ba5 100644 --- a/versioned_docs/version-21/aikit/overview.md +++ b/versioned_docs/version-21/aikit/overview.md @@ -22,7 +22,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -44,7 +44,7 @@ var $result:=$client..() The `$result` contains the `HTTPRequest`, a `success` status, a collection of `errors` and more. See [OpenAIResult](Classes/OpenAIResult.md) -See some examples bellow. +See some examples below. #### Chat From 3f4bb57c699b1d1e1fbedc609678837eb652e813 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 17 Oct 2025 09:54:58 +0200 Subject: [PATCH 090/119] New Crowdin updates (#2968) * New translations collectionclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations onvalidate.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations mandata.md (Japanese) * New translations authentication.md (Japanese) * New translations updates.md (Japanese) * New translations collectionclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations operators.md (Japanese) * New translations clientserver.md (Japanese) * New translations onmouseenter.md (Japanese) * New translations onmouseleave.md (Japanese) * New translations onmousemove.md (Japanese) * New translations onscroll.md (Japanese) * New translations onvalidate.md (Japanese) * New translations listbox_overview.md (Japanese) * New translations dsmapping.md (French) * New translations mandata.md (Japanese) * New translations authentication.md (Japanese) * New translations forms.md (French) * New translations forms.md (Spanish) * New translations forms.md (Japanese) * New translations forms.md (Portuguese, Brazilian) * New translations writeprointerface.md (Japanese) * New translations http-request-handler.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimoderation.md (Spanish) * New translations compatible-openai.md (French) * New translations openaiembeddingsresult.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations writeprointerface.md (Japanese) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderation.md (Spanish) * New translations compatible-openai.md (French) * New translations entityclass.md (Japanese) * New translations forms.md (French) * New translations forms.md (Spanish) * New translations forms.md (Japanese) * New translations forms.md (Portuguese, Brazilian) * New translations updates.md (Spanish) * New translations $filter.md (Japanese) * New translations http-request-handler.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations managing-formulas.md (Japanese) * New translations writeprointerface.md (Japanese) * New translations openaichathelper.md (Spanish) * New translations openaiembeddingsapi.md (Spanish) * New translations openaiembeddingsresult.md (Spanish) * New translations openaimoderation.md (Spanish) * New translations compatible-openai.md (French) * New translations updates.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaiembeddingsapi.md (Spanish) * New translations openaiembeddingsapi.md (Spanish) --- .../current/FormEditor/forms.md | 30 +++++---- .../current/Notes/updates.md | 2 +- .../current/WebServer/http-request-handler.md | 2 +- .../OpenAIChatCompletionsParameters.md | 2 +- .../current/aikit/Classes/OpenAIChatHelper.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsResult.md | 14 ++-- .../current/aikit/Classes/OpenAIModeration.md | 2 +- .../WebServer/http-request-handler.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsResult.md | 14 ++-- .../aikit/Classes/OpenAIModeration.md | 2 +- .../version-21/FormEditor/forms.md | 30 +++++---- .../version-21/Notes/updates.md | 2 +- .../WebServer/http-request-handler.md | 2 +- .../OpenAIChatCompletionsParameters.md | 2 +- .../aikit/Classes/OpenAIChatHelper.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 2 +- .../aikit/Classes/OpenAIEmbeddingsResult.md | 14 ++-- .../aikit/Classes/OpenAIModeration.md | 2 +- .../current/FormEditor/forms.md | 30 +++++---- .../current/aikit/compatible-openai.md | 4 +- .../version-20-R10/aikit/compatible-openai.md | 4 +- .../version-20/ORDA/dsMapping.md | 2 +- .../version-21/FormEditor/forms.md | 30 +++++---- .../version-21/aikit/compatible-openai.md | 4 +- .../current/FormEditor/forms.md | 32 +++++---- .../current/WritePro/writeprointerface.md | 66 +++++++++---------- .../version-19/API/CollectionClass.md | 10 +-- .../version-19/API/DataClassClass.md | 2 +- .../version-19/Events/onMouseEnter.md | 2 +- .../version-19/Events/onMouseLeave.md | 2 +- .../version-19/Events/onMouseMove.md | 2 +- .../version-19/Events/onScroll.md | 2 +- .../version-19/Events/onValidate.md | 2 +- .../FormObjects/listbox_overview.md | 30 ++++----- .../version-19/REST/manData.md | 2 +- .../version-19/WebServer/authentication.md | 2 +- .../WritePro/writeprointerface.md | 66 +++++++++---------- .../version-20/API/CollectionClass.md | 10 +-- .../version-20/API/DataClassClass.md | 2 +- .../version-20/Concepts/operators.md | 2 +- .../version-20/Desktop/clientServer.md | 2 +- .../version-20/Events/onMouseEnter.md | 2 +- .../version-20/Events/onMouseLeave.md | 2 +- .../version-20/Events/onMouseMove.md | 2 +- .../version-20/Events/onScroll.md | 2 +- .../version-20/Events/onValidate.md | 2 +- .../FormObjects/listbox_overview.md | 30 ++++----- .../version-20/Notes/updates.md | 2 +- .../version-20/REST/manData.md | 2 +- .../version-20/WebServer/authentication.md | 2 +- .../version-21/API/EntityClass.md | 22 +++---- .../version-21/FormEditor/forms.md | 32 +++++---- .../version-21/REST/$filter.md | 10 +-- .../version-21/WritePro/managing-formulas.md | 22 +++---- .../version-21/WritePro/writeprointerface.md | 66 +++++++++---------- .../current/FormEditor/forms.md | 30 +++++---- .../version-21/FormEditor/forms.md | 30 +++++---- 59 files changed, 366 insertions(+), 334 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 76729ea8382ac0..ad13bba5adde09 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,8 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Entrada de blog relacionada -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Fusionado aplicación 4D [autónomo](../Desktop/building.md#build-stand-alone-application) o [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### Requisitos -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. L The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- El comando `FORM Window theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formularios heredados 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 6fc55a8744ccc9..7f0f9eda7ba93a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -42,7 +42,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Las sesiones usuario web ahora son devueltas por [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. - **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index e0a480493e6133..809dff92ab76e2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -83,7 +83,7 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` - To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index db1b10b9ec0ee7..4efd06ca4191d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -40,7 +40,7 @@ See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. ## Response Format -The `response_format` parameter allows you to specify the format that the model must output. This is particularly useful when you need structured data or want to ensure the response follows a specific format. +El parámetro `response_format` le permite especificar el formato que el modelo debe salir. This is particularly useful when you need structured data or want to ensure the response follows a specific format. ### Supported Response Format Types diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md index 6136f03703b7cb..c4070a6740e801 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md @@ -77,7 +77,7 @@ Registers a tool with its handler function for automatic tool call handling. The *handler* parameter can be: - A **4D.Function**: Direct handler function -- An **Object**: An object containing a `formula` property matching the tool function name +- Un **Objeto**: un objeto que contiene una propiedad `formula` que coincide con el nombre de la función de la herramienta The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md index e74d6fc2364cee..1ad09d7c28ce91 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -5,7 +5,7 @@ title: OpenAIEmbeddingsAPI # OpenAIEmbeddingsAPI -The `OpenAIEmbeddingsAPI` provides functionalities to create embeddings using OpenAI's API. +`OpenAIEmbeddingsAPI` ofrece funcionalidades para crear integraciones utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/embeddings diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsResult.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsResult.md index 35c45022b6929c..0e2185eb101695 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsResult.md @@ -11,13 +11,13 @@ title: OpenAIEmbeddingsResult ## Propiedades calculadas -| Propiedad | Tipo | Descripción | -| ------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `model` | Text | Returns the model used to compute the embedding | -| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | -| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | -| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Returns the first [OpenAIEmbedding](OpenAIEmbedding.md) from the `embeddings` collection. | -| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | +| Propiedad | Tipo | Descripción | +| ------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `model` | Text | Returns the model used to compute the embedding | +| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | +| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | +| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Devuelve el primer [OpenAIEmbedding](OpenAIEmbedding.md) de la colección `embeddings`. | +| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md index 945951ab25b085..3c92f30cc3c7c7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -The `OpenAIModeration` class is designed to handle moderation results from the OpenAI API. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. https://platform.openai.com/docs/api-reference/moderations/object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 979c997dc5f3c5..19dcbb6bbe6b82 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -72,7 +72,7 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` - To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md index e74d6fc2364cee..1ad09d7c28ce91 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -5,7 +5,7 @@ title: OpenAIEmbeddingsAPI # OpenAIEmbeddingsAPI -The `OpenAIEmbeddingsAPI` provides functionalities to create embeddings using OpenAI's API. +`OpenAIEmbeddingsAPI` ofrece funcionalidades para crear integraciones utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/embeddings diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsResult.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsResult.md index 35c45022b6929c..0e2185eb101695 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsResult.md @@ -11,13 +11,13 @@ title: OpenAIEmbeddingsResult ## Propiedades calculadas -| Propiedad | Tipo | Descripción | -| ------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `model` | Text | Returns the model used to compute the embedding | -| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | -| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | -| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Returns the first [OpenAIEmbedding](OpenAIEmbedding.md) from the `embeddings` collection. | -| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | +| Propiedad | Tipo | Descripción | +| ------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `model` | Text | Returns the model used to compute the embedding | +| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | +| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | +| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Devuelve el primer [OpenAIEmbedding](OpenAIEmbedding.md) de la colección `embeddings`. | +| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md index 945951ab25b085..3c92f30cc3c7c7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -The `OpenAIModeration` class is designed to handle moderation results from the OpenAI API. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. https://platform.openai.com/docs/api-reference/moderations/object diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 76729ea8382ac0..ad13bba5adde09 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,8 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Entrada de blog relacionada -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Fusionado aplicación 4D [autónomo](../Desktop/building.md#build-stand-alone-application) o [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### Requisitos -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. L The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- El comando `FORM Window theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formularios heredados 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 8d14d4fd39ce5a..65292b41b776d6 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 @@ -42,7 +42,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. - Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. -- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md). +- Las sesiones usuario web ahora son devueltas por [`Process activity`](../commands/process-activity.md). - The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. - **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        ![alt-text](../assets/en/getStart/convert.png)
        diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index e0a480493e6133..809dff92ab76e2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -83,7 +83,7 @@ The handler identifier is the couple [pattern + a verb among the verbs list]. URL patterns can be given as **prefixes** or using **regular expressions**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Prefixes are considered as regular expressions already containing starting and ending `/`. +- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` - To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index db1b10b9ec0ee7..4efd06ca4191d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -40,7 +40,7 @@ See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. ## Response Format -The `response_format` parameter allows you to specify the format that the model must output. This is particularly useful when you need structured data or want to ensure the response follows a specific format. +El parámetro `response_format` le permite especificar el formato que el modelo debe salir. This is particularly useful when you need structured data or want to ensure the response follows a specific format. ### Supported Response Format Types diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md index 6136f03703b7cb..c4070a6740e801 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md @@ -77,7 +77,7 @@ Registers a tool with its handler function for automatic tool call handling. The *handler* parameter can be: - A **4D.Function**: Direct handler function -- An **Object**: An object containing a `formula` property matching the tool function name +- Un **Objeto**: un objeto que contiene una propiedad `formula` que coincide con el nombre de la función de la herramienta The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md index e74d6fc2364cee..1ad09d7c28ce91 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -5,7 +5,7 @@ title: OpenAIEmbeddingsAPI # OpenAIEmbeddingsAPI -The `OpenAIEmbeddingsAPI` provides functionalities to create embeddings using OpenAI's API. +`OpenAIEmbeddingsAPI` ofrece funcionalidades para crear integraciones utilizando la API de OpenAI. https://platform.openai.com/docs/api-reference/embeddings diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsResult.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsResult.md index 35c45022b6929c..0e2185eb101695 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsResult.md @@ -11,13 +11,13 @@ title: OpenAIEmbeddingsResult ## Propiedades calculadas -| Propiedad | Tipo | Descripción | -| ------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `model` | Text | Returns the model used to compute the embedding | -| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | -| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | -| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Returns the first [OpenAIEmbedding](OpenAIEmbedding.md) from the `embeddings` collection. | -| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | +| Propiedad | Tipo | Descripción | +| ------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `model` | Text | Returns the model used to compute the embedding | +| `vector` | `4D.Vector` | Devuelve el primer `4D.Vector` de la colección `vectors`. | +| `vectors` | Collection | Devuelve una colección de `4D.Vector`. | +| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Devuelve el primer [OpenAIEmbedding](OpenAIEmbedding.md) de la colección `embeddings`. | +| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md index 945951ab25b085..3c92f30cc3c7c7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -The `OpenAIModeration` class is designed to handle moderation results from the OpenAI API. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. https://platform.openai.com/docs/api-reference/moderations/object 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 7401d23f42858a..e092e3968aa951 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,8 @@ Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusie Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle ::: -### Disponibilité du rendu Fluent UI +:::tip Article(s) de blog sur le sujet -Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). -- Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. +::: -:::note +### Conditions requises -Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ### Activer le rendu Fluent UI @@ -153,19 +153,23 @@ Chaque formulaire peut définir son propre rendu via la propriété **Apparence La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Caractéristiques et limitations - -Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. +### Specific behaviors Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. - Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. -- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. - L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). - Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). - Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index a27cd014683587..807d5b80abeae1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Distant -| Fournisseur | Url de base | +| Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index a27cd014683587..807d5b80abeae1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Distant -| Fournisseur | Url de base | +| Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md index 21239ea04f027d..1af39035ae89b8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ORDA/dsMapping.md @@ -250,7 +250,7 @@ Les entity selections triées sont créées uniquement lorsque cela est nécessa * résultat d'un `orderBy()` sur une sélection (de n'importe quel type) ou un `orderBy()` sur une dataclass, * résultat de la méthode `newSelection()` avec l'option `dk keep ordered` -Les sélections d'entités non-triées sont créées dans les cas suivants : +Les entity selections non-triées sont créées dans les cas suivants : * résultat d'un `query()` standard sur une sélection (de n'importe quel type) ou un `query()` sur une dataclass, * résultat de la méthode `newSelection()` sans option, 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 7401d23f42858a..e092e3968aa951 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 @@ -100,6 +100,8 @@ Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusie Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interface utilisateur graphique moderne de Microsoft, basée sur la technologie **WinUI 3**. **WinUI 3** est la base du Windows App SDK et représente les prochaines interfaces graphiques de Windows. +Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ Cette fonctionnalité ne peut être utilisée que sous Windows. Sous macOS, elle ::: -### Disponibilité du rendu Fluent UI +:::tip Article(s) de blog sur le sujet -Le rendu Fluent UI est disponible dans les environnements d'exécution suivants uniquement : +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows avec la version 1.7.3 du [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) installée (vous devez installer ce SDK sur toute machine Windows affichant vos formulaires). -- Application 4D fusionnée [autonome](../Desktop/building.md#build-stand-alone-application) ou [cliente](../Desktop/building.md#build-client-application) -- [Fonction **Tester l'application**](../Menus/bars.md#previewing-menu-bars) disponible dans le menu **Exécution**. +::: -:::note +### Conditions requises -Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +Si le Windows App SDK n'est pas correctement installé, 4D utilisera le rendu classique pour vos formulaires sans erreur. ### Activer le rendu Fluent UI @@ -153,19 +153,23 @@ Chaque formulaire peut définir son propre rendu via la propriété **Apparence La [propriété de formulaire JSON](./properties_JSONref.md) correspondante est `fluentUI` avec la valeur undefined (i.e. hérité, valeur par défaut), "true" ou "false". -### Caractéristiques et limitations - -Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. +### Specific behaviors Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- La commande `FORM Window theme` renvoie le thème d'affichage réel du formulaire courant. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Valeurs possibles : "Classic" ou "FluentUI". S'il n'y a pas de formulaire courant ou si la commande est appelée sous macOS, une chaîne vide est renvoyée. - Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) est appelée dans le contexte d'un formulaire, les informations renvoyées concernent l'apparence courante du formulaire (Classic ou FluentUI). Si la commande est appelée en dehors du contexte d'un formulaire, les informations renvoyées concernent les [propriétés globales du projet](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. -- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. - L'objet de formulaire [Stepper](../FormObjects/stepper.md) ne prend pas en charge l'événement [double-clic](../Events/onDoubleClicked.md). - Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). - Les commandes [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) ne sont pas prises en charge dans les zones Web avec moteur de rendu système. +- Un rectangle de focus peut être ajouté aux [zones de saisie](../FormObjects/input_overview.md) image et texte. + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index a27cd014683587..807d5b80abeae1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Distant -| Fournisseur | Url de base | +| Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 7774b26c45bf74..d460a48eb79567 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,7 +100,9 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. -| Light theme | Dark theme | +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + +| ライトテーマ | ダークテーマ | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Related blog post -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- 組み込みの [スタンドアロン](../Desktop/building#スタンドアロンアプリケーションをビルド) または [クライアント](../Desktop/building#クライアントアプリケーションをビルド) 4Dアプリケーション -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### 要件 -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## 継承フォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md index fc2acfdb8020c0..c73338891c9f16 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -10,10 +10,10 @@ slug: /WritePro/write-pro-interface インターフェースのマニュアルについては、*4D デザインリファレンス* の [4D Write Pro エリアのドキュメント](https://doc.4d.com/4Dv20/4D/20/Entry-areas.300-6263967.ja.html) を参照ください。 -You will find below: +ここには以下のような情報があります: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. +- 表ウィザード設定ドキュメンテーション +- 統合されたAIについての ドキュメント. ## 表ウィザード @@ -303,36 +303,36 @@ JSONファイルで設定する各属性に対して、以下の WP属性を定 [4D Write Pro - 表ウィザード (チュートリアル動画)](https://www.youtube.com/watch?v=2ChlTju-mtM) -## Integrated AI +## 統合されたAI -You can use an integrated AI in the 4D Write Pro interface so that you can easily translate or enhance your documents without having to use an external AI application. +4D Write Pro インターフェース内に統合されたAI を使用して、外部AI アプリケーションを使用することなくドキュメントを簡単に要約したり改善したりすることができます。 -Once you have enabled the AI feature, you can display a chat box over your 4D Write Pro document and interact with *chatGPT* to modify the text of the selection or of the document itself. +AI 機能を有効化すると、4D Write Pro ドキュメント上にチャットボックスが表示され、そこから*chatGPT* とやりとりをすることで選択したテキストやドキュメント自身を変更することができます。 :::note -The 4D Write Pro interface uses OpenAI, for which you need to provide your own key (see below). +4D Write Pro インターフェースはOpenAI を使用し、これを使用するためにはご自身のキーを提供する必要があります(以下参照)。 ::: -### Limitations (Developer Preview) +### 制約(デベロッパープレビュー) -In the current implementation, the feature has the following limitations: +現在の実装では、この機能では以下のような制約があります: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only +- 使用するAI プロバイダーが決められていることと、OpenAI キーを渡す必要があること +- 基本的なチャット機能 +- 画像処理なし +- 設定不可な定義済みアクションコマンド +- 定義済みの翻訳は英語→フランス語とフランス語→英語のみ -### Enabling the AI feature +### AI機能の有効化 -The AI dialog box is available by clicking on a button in the 4D Write Pro interface. This button is **hidden by default**, you need to enable it explicitely. +AI ダイアログボックスは4D Write Pro インターフェース内のボタンをクリックすることで利用可能になります。 このボタンは**デフォルトでは非表示** なので、明示的に有効化する必要があります。 -To display the AI dialog box button, you need to: +AI ダイアログボックスボタンを表示するためには、以下の操作が必要です: -1. Get an API key from the [OpenAI website](https://openai.com/api/). -2. Execute the following 4D code: +1. [OpenAI website](https://openai.com/api/) からAPI キーを取得する。 +2. 以下の4D コードを実行する: ```4d @@ -342,44 +342,44 @@ WP SetAIKey ("") // :::note -No checking is done on the OpenAI key validity. If it is invalid, the *chatGPT* box will stay empty. +OpenAi キーの有効性に関するチェックは行われません。 キーが無効だった場合には、*chatGPT* ボックスは空のままになります。 ::: -The **A.I.** button is then displayed: +その後**A.I.** ボタンは、以下の場所に表示されます: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. +- **読み込み書き出し** タブ内の4D Write Pro ツールバー内 +- **フォントスタイル** タブ内の4D Write Pro ウィジェット内。 -Click on the button to display the AI dialog box. +AI ダイアログボックスを表示するには、ボタンをクリックしてください。 -### AI dialog box +### AI ダイアログボックス -The 4D Write Pro AI dialog box allows a straightforward interaction between the chat area and the 4D Write Pro document. +4D Write Pro AI ダイアログボックスを使用するとチャットエリアと4D Write Pro ドキュメントとの簡単なやりとりを可能にします。 -#### Prompt area +#### プロンプトエリア -At the bottom of the window, the **prompt area** allows you to enter any question to send to the AI. +ウィンドウの下部には、**プロンプトエリア** があり、ここにAI に送信したい質問を入力することができます。 -To send your question to the AI, click on the Send button: +AI に質問を送信するためには、送信ボタンをクリックします: ![ai send](../assets/en/WritePro/ai-send.png) -The button icon changes when the same request is sent again: +同じリクエストが再度送信されると、ボタンのアイコンが変わります: ![ai resend](../assets/en/WritePro/ai-resend.png) -On the left side of this area, a pop up menu provides examples of common actions that can be usually delegated to the AI. +このエリアの左側にあるポップアップメニューには、通常AI にたずねるような一般的なアクションの一例が提供されています。 -Selecting an action writes a corresponding question to the prompt. If necessary, you can modify the question and then to click on the Send button to actually send it: +アクションを選択すると、それに対応した質問がプロンプトに入力さます。 必要であれば、質問を書き換えてから送信ボタンを押して送信することもできます: ![ai menu](../assets/en/WritePro/ai-menu.png) :::note -Default translation actions are based upon the current 4D default configuration and depend on available languages. +デフォルトの翻訳アクションはカレントの4D のデフォルト設定に基づき、利用可能な言語に依存します。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md index 07ab072da0546c..9c9b73a778df06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md @@ -2510,14 +2510,14 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 `.sort()` 関数は、 コレクションの要素を並べ替えます 。戻り値は並べ替えられた元のコレクションです。 > このコマンドは、元のコレクションを変更します。 -引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 You can also pass one of the following constants in the *ascOrDesc* parameter: +引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 *ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: - |Constant| Type|Value|Comment| + |定数| 型|値|詳細| |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |ck ascending|Integer|0|要素は昇順に並んでいます(デフォルト)| + |ck descending|Integer|1|要素は降順に並んでいます| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md index e0de537fc09768..8184f6054f8368 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/DataClassClass.md @@ -945,7 +945,7 @@ ds.People.query("places.locations[a].kind= :1 and places.locations[a].city= :2"; * フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。 クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 * 処理中のエンティティはフォーミュラ内において `This` で参照されます。 -* if the `Formula` object is **null**, the errror 1626 ("Expecting a text or formula") is generated, that you can intercept using a method installed with `ON ERR CALL`. +* `Formula` オブジェクトが **null** の場合、エラー1626 ("テキストまたはフォーミュラが必要です") が生成されます。このエラーは `ON ERR CALL` で実装したメソッドで割り込み可能です。 > セキュリティのため、`query()` 関数内のフォーミュラ使用を禁止することができます。 *querySettings* パラメーターの説明を参照ください。 **フォーミュラに引数を渡す** diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseEnter.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseEnter.md index 90eb5ad9f3f021..580d2b235722bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseEnter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseEnter.md @@ -14,7 +14,7 @@ title: On Mouse Enter `On Mouse Enter` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseLeave.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseLeave.md index d3d0d2a1281f6a..0d22dd1ad1efdc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseLeave.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseLeave.md @@ -14,7 +14,7 @@ title: On Mouse Leave `On Mouse Leave` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseMove.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseMove.md index 8f0701bc752a18..94b131b1243593 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseMove.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onMouseMove.md @@ -19,7 +19,7 @@ title: On Mouse Move `On Mouse Move` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onScroll.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onScroll.md index e0e611eaf03d52..19655b53d2d56e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onScroll.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onScroll.md @@ -14,7 +14,7 @@ title: On Scroll このイベントは、スクロールアクションに関連した他のすべてのユーザーイベント ([On Clicked](onClicked.md)、[On After Keystroke](onAfterKeystroke.md)、等) の後にトリガーされます。 このイベントは、オブジェクトメソッドの中でのみ生成されます (フォームメソッドでは生成されません)。 -このイベントは、ユーザーのアクションの結果としてスクロールが発生した場合にのみ生成されます: スクロールバー/カーソルの使用、マウスホイールまたは [キーボード](FormObjects/properties_Appearance.md#縦スクロールバー) の使用、等です。 It is not generated when the object is scrolled due to the execution of the [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command. +このイベントは、ユーザーのアクションの結果としてスクロールが発生した場合にのみ生成されます: スクロールバー/カーソルの使用、マウスホイールまたは [キーボード](FormObjects/properties_Appearance.md#縦スクロールバー) の使用、等です。 [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) コマンド使用の結果スクロールした場合には生成されません。 ### ピクチャー入力 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onValidate.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onValidate.md index 78363c6579fa03..b8d5c35e84938d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onValidate.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/Events/onValidate.md @@ -10,7 +10,7 @@ title: On Validate ## 説明 -This event is triggered when the record data entry has been validated, for example after an `accept` [standard action](FormObjects/properties_Action.md#standard-action). +このイベントは、`accept` [標準アクション](FormObjects/properties_Action.md#標準アクション)の後など、レコードのデータ入力が確定されたときにトリガーされます。 ### サブフォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/FormObjects/listbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/FormObjects/listbox_overview.md index 2d90daa8889249..43c14130b5e183 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/FormObjects/listbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/FormObjects/listbox_overview.md @@ -70,7 +70,7 @@ title: リストボックス デフォルトで 4D は各列に “ColumnX” という名前を割り当てます。 この配列変数名は [列のプロパティ](listbox_overview.md#列特有のプロパティ) で変更できます (プロパティリストの [変数あるいは式](properties_Object.md#変数あるいは式) プロパティを使用します)。 列ごとの表示フォーマットを指定するには、`OBJECT SET FORMAT` コマンドも使用できます。 > 配列タイプのリストボックスは、特別なメカニズムをもつ [階層モード](listbox_overview.md#階層リストボックス) で表示することができます。 -配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 列に [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。 The values of columns are managed using high-level List box commands (such as [`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) or `LISTBOX DELETE ROWS`) as well as array manipulation commands. たとえば、列の内容を初期化するには、以下の命令を使用できます: +配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 列に [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。 リストボックスのハイレベルコマンド ([`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) や `LISTBOX DELETE ROWS` 等) や配列操作コマンドを使用して、列の値を管理します。 たとえば、列の内容を初期化するには、以下の命令を使用できます: ```4d ARRAY TEXT(varCol;size) @@ -299,7 +299,7 @@ myCol:=myCol.push("new value") // リストボックスに new value を表示 ランタイムにおいてヘッダーで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used with a header, it is applied to all headers, regardless of the individual element set by the command. たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 +ヘッダーに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのヘッダーが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 ### ヘッダー特有のプロパティ @@ -318,7 +318,7 @@ When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used ランタイムにおいてフッターで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used with a footer, it is applied to all footers, regardless of the individual element set by the command. たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 +フッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのフッターが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 ### フッター特有のプロパティ @@ -403,7 +403,7 @@ When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used End if ``` -> The [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command scrolls the list box rows so that the first selected row or a specified row is displayed. +> [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) コマンドは、最初に選択された行または指定された行を表示するようにリストボックスをスクロールします。 ### 選択行の見た目のカスタマイズ @@ -629,13 +629,13 @@ End if ### 詳細モード -このモードでは、リストボックスの印刷は `Print object` コマンドを使用してプログラムにより実行されます (プロジェクトフォームとテーブルフォームがサポートされています)。 The [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command is used to control the printing of the object. +このモードでは、リストボックスの印刷は `Print object` コマンドを使用してプログラムにより実行されます (プロジェクトフォームとテーブルフォームがサポートされています)。 [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用してオブジェクトの印刷を制御できます。 このモードでは: -* オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。 他方、オブジェクトの内容に基づき高さが自動で増大することはありません。 The size of the object actually printed can be obtained via the [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command. -* リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。 These parameters also include the first row to be printed: if you call the [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command before launching the printing, the first row printed in the list box will be the one designated by the command. -* 自動メカニズムにより、表示可能な行以上の行数を含むリストボックスの印刷が容易になります。 連続して `Print object` を呼び出し、呼び出し毎に別の行のまとまりを印刷することができます。 The [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command can be used to check the status of the printing while it is underway. +* オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。 他方、オブジェクトの内容に基づき高さが自動で増大することはありません。 実際に印刷されるオブジェクトのサイズは [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドで取得できます。 +* リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。 これらの設定には印刷される最初の行も含みます。 印刷を実行する前に [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) を呼び出すと、リストボックスに印刷される最初の行はコマンドで指定した行になります。 +* 自動メカニズムにより、表示可能な行以上の行数を含むリストボックスの印刷が容易になります。 連続して `Print object` を呼び出し、呼び出し毎に別の行のまとまりを印刷することができます。 [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用して、印刷がおこなわれている間の状態をチェックできます。 ## 階層リストボックス @@ -762,7 +762,7 @@ Variable 1 は常に、リストボックスの先頭列の変数名に対応し > 親が折りたたまれているために行が非表示になっていると、それらは選択から除外されます。 (直接あるいはスクロールによって) 表示されている行のみを選択できます。 言い換えれば、行を選択かつ隠された状態にすることはできません。 -As with selections, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command will return the same values for a hierarchical list box and a non-hierarchical list box. This means that in both of the examples below, [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) will return the same position: (3;2). +選択と同様に、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは階層リストボックスと非階層リストボックスにおいて同じ値を返します。 つまり以下の両方の例題で、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は同じ位置 (3;2) を返します。 *非階層表示:* ![](../assets/en/FormObjects/hierarch9.png) @@ -772,11 +772,11 @@ As with selections, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-ce #### ブレーク行の管理 -If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns the first occurrence of the row in the corresponding array. 以下のケースで: +ユーザーがブレーク行を選択すると、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は対応する配列の最初のオカレンスを返します。 以下のケースで: ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. +[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は (2;4) を返します。 プログラムでブレーク行を選択するには [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) コマンドを使用する必要があります。 ブレーク行はリストボックスのグラフィカルな表示 (スタイルやカラー) を管理する内部的な配列では考慮されません。 しかし、オブジェクトのグラフィックを管理するオブジェクト (フォーム) テーマのコマンドを使用してブレーク行の表示を変更できます。 階層を構成する配列に対して、適切なコマンドを実行します。 @@ -802,17 +802,17 @@ If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listb `On Expand` や `On Collapse` フォームイベントを使用して階層リストボックスの表示を最適化できます。 -階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。 This makes it difficult to build large hierarchical list boxes based on arrays generated from data (through the [`SELECTION TO ARRAY`](../commands/selection-to-array) command), not only because of the display speed but also the memory used. +階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。 大量のデータから ([`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドを使用して) 生成される配列をもとに階層リストボックスを構築するのは、表示速度だけでなくメモリ使用量の観点からも困難が伴います。 -`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。 たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。 In the context of these events, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell where the user clicked in order to expand or collapse a row. +`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。 たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。 これらのイベントのコンテキストでは、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは、行を展開/折りたたむためにユーザーがクリックしたセルを返します。 この場合、開発者がコードを使用して配列を空にしたり値を埋めたりしなければなりません。 実装する際注意すべき原則は以下のとおりです: * リストボックスが表示される際、先頭の配列のみ値を埋めます。 しかし 2番目の配列を空の値で生成し、リストボックスに展開/折りたたみアイコンが表示されるようにしなければなりません: ![](../assets/en/FormObjects/hierarch15.png) -* ユーザーが展開アイコンをクリックすると `On Expand` イベントが生成されます。 The [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell concerned and lets you build the appropriate hierarchy: you fill the first array with the repeated values and the second with the values sent from the [`SELECTION TO ARRAY`](../commands/selection-to-array) command and you insert as many rows as needed in the list box using the [`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) command. ![](../assets/en/FormObjects/hierarch16.png) +* ユーザーが展開アイコンをクリックすると `On Expand` イベントが生成されます。 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドはクリックされたセルを返すので、適切な階層を構築します: 先頭の配列に繰り返しの値を設定し、2番目の配列には [`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドから得られる値を設定します。 そして[`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) コマンドを使用して必要なだけ行を挿入します。 ![](../assets/en/FormObjects/hierarch16.png) -* ユーザーが折りたたみアイコンをクリックすると `On Collapse` イベントが生成されます。 The [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell concerned: you remove as many rows as needed from the list box using the [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) command. +* ユーザーが折りたたみアイコンをクリックすると `On Collapse` イベントが生成されます。 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドはクリックされたセルを返すので、 [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) コマンドを使用してリストボックスから必要なだけ行を削除します。 ## オブジェクト配列の使用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/REST/manData.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/REST/manData.md index 36706bacb91db1..e202253e90ae96 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/REST/manData.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/REST/manData.md @@ -22,7 +22,7 @@ REST API を使って、4D内と同等のデータ操作をおこなうことが [\{dataClass\}(\{key\})](dataClass.md#dataclasskey) でデータクラスのいちエンティティを取得する以外にも、エンティティセレクションやコレクションを返す [クラス関数](ClassFunctions.md#関数の呼び出し) を用意することもできます。 -Before returning a selection, you can also sort it by using [`$orderby`]($orderby.md) on one or more attributes (even relation attributes). +戻り値としてセレクションを返す前に、[`$orderby`]($orderby.md) を使って一つ以上の属性 (リレーション属性も可) を基準に並べ替えることもできます。 ## データのナビゲーション diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/WebServer/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/WebServer/authentication.md index 64fa63784bfddf..1745bfbc97110c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/WebServer/authentication.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/WebServer/authentication.md @@ -119,7 +119,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス -> $RequestAccepted : Boolean ``` -> `On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。 The information received by the database method depends on the selected [authentication mode](#authentication-modes). +> `On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。 このデータベースメソッドが受け取る情報は、[認証モード](#authentication-modes)の設定により異なります。 #### $1 - URL diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md index fc2acfdb8020c0..c73338891c9f16 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/WritePro/writeprointerface.md @@ -10,10 +10,10 @@ slug: /WritePro/write-pro-interface インターフェースのマニュアルについては、*4D デザインリファレンス* の [4D Write Pro エリアのドキュメント](https://doc.4d.com/4Dv20/4D/20/Entry-areas.300-6263967.ja.html) を参照ください。 -You will find below: +ここには以下のような情報があります: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. +- 表ウィザード設定ドキュメンテーション +- 統合されたAIについての ドキュメント. ## 表ウィザード @@ -303,36 +303,36 @@ JSONファイルで設定する各属性に対して、以下の WP属性を定 [4D Write Pro - 表ウィザード (チュートリアル動画)](https://www.youtube.com/watch?v=2ChlTju-mtM) -## Integrated AI +## 統合されたAI -You can use an integrated AI in the 4D Write Pro interface so that you can easily translate or enhance your documents without having to use an external AI application. +4D Write Pro インターフェース内に統合されたAI を使用して、外部AI アプリケーションを使用することなくドキュメントを簡単に要約したり改善したりすることができます。 -Once you have enabled the AI feature, you can display a chat box over your 4D Write Pro document and interact with *chatGPT* to modify the text of the selection or of the document itself. +AI 機能を有効化すると、4D Write Pro ドキュメント上にチャットボックスが表示され、そこから*chatGPT* とやりとりをすることで選択したテキストやドキュメント自身を変更することができます。 :::note -The 4D Write Pro interface uses OpenAI, for which you need to provide your own key (see below). +4D Write Pro インターフェースはOpenAI を使用し、これを使用するためにはご自身のキーを提供する必要があります(以下参照)。 ::: -### Limitations (Developer Preview) +### 制約(デベロッパープレビュー) -In the current implementation, the feature has the following limitations: +現在の実装では、この機能では以下のような制約があります: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only +- 使用するAI プロバイダーが決められていることと、OpenAI キーを渡す必要があること +- 基本的なチャット機能 +- 画像処理なし +- 設定不可な定義済みアクションコマンド +- 定義済みの翻訳は英語→フランス語とフランス語→英語のみ -### Enabling the AI feature +### AI機能の有効化 -The AI dialog box is available by clicking on a button in the 4D Write Pro interface. This button is **hidden by default**, you need to enable it explicitely. +AI ダイアログボックスは4D Write Pro インターフェース内のボタンをクリックすることで利用可能になります。 このボタンは**デフォルトでは非表示** なので、明示的に有効化する必要があります。 -To display the AI dialog box button, you need to: +AI ダイアログボックスボタンを表示するためには、以下の操作が必要です: -1. Get an API key from the [OpenAI website](https://openai.com/api/). -2. Execute the following 4D code: +1. [OpenAI website](https://openai.com/api/) からAPI キーを取得する。 +2. 以下の4D コードを実行する: ```4d @@ -342,44 +342,44 @@ WP SetAIKey ("") // :::note -No checking is done on the OpenAI key validity. If it is invalid, the *chatGPT* box will stay empty. +OpenAi キーの有効性に関するチェックは行われません。 キーが無効だった場合には、*chatGPT* ボックスは空のままになります。 ::: -The **A.I.** button is then displayed: +その後**A.I.** ボタンは、以下の場所に表示されます: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. +- **読み込み書き出し** タブ内の4D Write Pro ツールバー内 +- **フォントスタイル** タブ内の4D Write Pro ウィジェット内。 -Click on the button to display the AI dialog box. +AI ダイアログボックスを表示するには、ボタンをクリックしてください。 -### AI dialog box +### AI ダイアログボックス -The 4D Write Pro AI dialog box allows a straightforward interaction between the chat area and the 4D Write Pro document. +4D Write Pro AI ダイアログボックスを使用するとチャットエリアと4D Write Pro ドキュメントとの簡単なやりとりを可能にします。 -#### Prompt area +#### プロンプトエリア -At the bottom of the window, the **prompt area** allows you to enter any question to send to the AI. +ウィンドウの下部には、**プロンプトエリア** があり、ここにAI に送信したい質問を入力することができます。 -To send your question to the AI, click on the Send button: +AI に質問を送信するためには、送信ボタンをクリックします: ![ai send](../assets/en/WritePro/ai-send.png) -The button icon changes when the same request is sent again: +同じリクエストが再度送信されると、ボタンのアイコンが変わります: ![ai resend](../assets/en/WritePro/ai-resend.png) -On the left side of this area, a pop up menu provides examples of common actions that can be usually delegated to the AI. +このエリアの左側にあるポップアップメニューには、通常AI にたずねるような一般的なアクションの一例が提供されています。 -Selecting an action writes a corresponding question to the prompt. If necessary, you can modify the question and then to click on the Send button to actually send it: +アクションを選択すると、それに対応した質問がプロンプトに入力さます。 必要であれば、質問を書き換えてから送信ボタンを押して送信することもできます: ![ai menu](../assets/en/WritePro/ai-menu.png) :::note -Default translation actions are based upon the current 4D default configuration and depend on available languages. +デフォルトの翻訳アクションはカレントの4D のデフォルト設定に基づき、利用可能な言語に依存します。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md index 77d16eb94ef2ff..25b280bd677ca0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md @@ -3264,14 +3264,14 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 `.sort()` 関数は、 コレクションの要素を並べ替え、並べ替えられた元のコレクションを返します 。 > このコマンドは、元のコレクションを変更します。 -引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 You can also pass one of the following constants in the *ascOrDesc* parameter: +引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 *ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: - |Constant| Type|Value|Comment| + |定数| 型|値|詳細| |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |ck ascending|Integer|0|要素は昇順に並んでいます(デフォルト)| + |ck descending|Integer|1|要素は降順に並んでいます| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md index 7c50aa187dc627..5c26f0e33a732f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataClassClass.md @@ -1184,7 +1184,7 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" * フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。 クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 * 処理中のエンティティはフォーミュラ内において `This` で参照されます。 -* if the `Formula` object is **null**, the error 1626 ("Expecting a text or formula") is generated, that you can intercept using a method installed with `ON ERR CALL`. +* `Formula` オブジェクトが **null** の場合、エラー1626 ("テキストまたはフォーミュラが必要です") が生成されます。このエラーは `ON ERR CALL` で実装したメソッドで割り込み可能です。 > セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 *querySettings* パラメーターの説明を参照ください。 #### フォーミュラに引数を渡す diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/operators.md index 472be758eb2929..9114734be65366 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/operators.md @@ -93,7 +93,7 @@ $a+=2 // $a=3 | | Time *= Number | Number | `$t1*=5 //$t1:=$t1*5` | | | Picture *= Number | Picture | `$p1*=5 //$p1:=$p1*5 ($p1 を 5倍にリサイズします)` | -These operators apply on any [assignable expressions](quick-tour.md#assignable-vs-non-assignable-expressions) except: +これらの演算子は、あらゆる[代入可能の式](quick-tour.md#代入可能vs代入不可) に対して適用されますが、以下は除きます: - オブジェクトプロパティあるいはコレクション要素としてのピクチャー - 配列のインデックス変数 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Desktop/clientServer.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Desktop/clientServer.md index 8a25b376c2b890..7dcdaddaac5b3c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Desktop/clientServer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Desktop/clientServer.md @@ -74,7 +74,7 @@ title: クライアント/サーバー管理 同じマシン上で 4D が 4D Server に接続すると、アプリケーションはシングルユーザーモードの 4D のようにふるまい、デザイン環境にてプロジェクトファイルの編集が可能です。 この機能により、クライアント/サーバーアプリケーションを運用時と同じコンテキストで開発することができます。 -> When 4D connects to a 4D Server on the same machine, the **development mode** is automatically activated, whatever the [Activate development mode](#opening-a-remote-project) option status. +> 同じマシン上で 4D Server に 4D を接続する場合には、 [開発モードを有効化](#リモートプロジェクトを開く) の設定にかかわらず **開発モード** が自動的に有効化されます。 デザイン環境にて 4D が **すべてを保存** アクションを (**ファイル** メニューを使って明示的に、または、アプリケーションモードへの移行により暗示的に) おこなうと、4D Server は同期的にプロジェクトファイルをリロードします。 4D Server によるプロジェクトファイルのリロードが完了するのを待って、4D は続行します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseEnter.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseEnter.md index 90eb5ad9f3f021..580d2b235722bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseEnter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseEnter.md @@ -14,7 +14,7 @@ title: On Mouse Enter `On Mouse Enter` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseLeave.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseLeave.md index d3d0d2a1281f6a..0d22dd1ad1efdc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseLeave.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseLeave.md @@ -14,7 +14,7 @@ title: On Mouse Leave `On Mouse Leave` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseMove.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseMove.md index 8f0701bc752a18..94b131b1243593 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseMove.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onMouseMove.md @@ -19,7 +19,7 @@ title: On Mouse Move `On Mouse Move` イベントは、*MouseX* および *MouseY* システム変数を更新します。 -Objects that are made invisible using the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command or the [Visibility](FormObjects/properties_Display.md#visibility) property do not generate this event. +[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドの使用や、[表示状態](FormObjects/properties_Display.md#表示状態) プロパティの設定によって非表示にされたオブジェクトでは、このイベントは生成されません。 ### コールスタック diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onScroll.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onScroll.md index e0e611eaf03d52..19655b53d2d56e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onScroll.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onScroll.md @@ -14,7 +14,7 @@ title: On Scroll このイベントは、スクロールアクションに関連した他のすべてのユーザーイベント ([On Clicked](onClicked.md)、[On After Keystroke](onAfterKeystroke.md)、等) の後にトリガーされます。 このイベントは、オブジェクトメソッドの中でのみ生成されます (フォームメソッドでは生成されません)。 -このイベントは、ユーザーのアクションの結果としてスクロールが発生した場合にのみ生成されます: スクロールバー/カーソルの使用、マウスホイールまたは [キーボード](FormObjects/properties_Appearance.md#縦スクロールバー) の使用、等です。 It is not generated when the object is scrolled due to the execution of the [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command. +このイベントは、ユーザーのアクションの結果としてスクロールが発生した場合にのみ生成されます: スクロールバー/カーソルの使用、マウスホイールまたは [キーボード](FormObjects/properties_Appearance.md#縦スクロールバー) の使用、等です。 [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) コマンド使用の結果スクロールした場合には生成されません。 ### ピクチャー入力 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onValidate.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onValidate.md index 78363c6579fa03..b8d5c35e84938d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onValidate.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onValidate.md @@ -10,7 +10,7 @@ title: On Validate ## 説明 -This event is triggered when the record data entry has been validated, for example after an `accept` [standard action](FormObjects/properties_Action.md#standard-action). +このイベントは、`accept` [標準アクション](FormObjects/properties_Action.md#標準アクション)の後など、レコードのデータ入力が確定されたときにトリガーされます。 ### サブフォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormObjects/listbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormObjects/listbox_overview.md index fae046c8910e3a..be2ac0a48e4da8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormObjects/listbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormObjects/listbox_overview.md @@ -76,7 +76,7 @@ title: リストボックス デフォルトで 4D は各列に “ColumnX” という名前を割り当てます。 この配列変数名は [列のプロパティ](listbox_overview.md#列特有のプロパティ) で変更できます (プロパティリストの [変数あるいは式](properties_Object.md#変数あるいは式) プロパティを使用します)。 列ごとの表示フォーマットを指定するには、`OBJECT SET FORMAT` コマンドも使用できます。 > 配列タイプのリストボックスは、特別なメカニズムをもつ [階層モード](listbox_overview.md#階層リストボックス) で表示することができます。 -配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 列に [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。 The values of columns are managed using high-level List box commands (such as [`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) or `LISTBOX DELETE ROWS`) as well as array manipulation commands. たとえば、列の内容を初期化するには、以下の命令を使用できます: +配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 列に [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。 リストボックスのハイレベルコマンド ([`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) や `LISTBOX DELETE ROWS` 等) や配列操作コマンドを使用して、列の値を管理します。 たとえば、列の内容を初期化するには、以下の命令を使用できます: ```4d ARRAY TEXT(varCol;size) @@ -326,7 +326,7 @@ myCol:=myCol.push("new value") // リストボックスに new value を表示 ランタイムにおいてヘッダーで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used with a header, it is applied to all headers, regardless of the individual element set by the command. たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 +ヘッダーに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのヘッダーが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 ### ヘッダー特有のプロパティ @@ -349,7 +349,7 @@ When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used ランタイムにおいてフッターで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used with a footer, it is applied to all footers, regardless of the individual element set by the command. たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 +フッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのフッターが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 ### フッター特有のプロパティ @@ -436,7 +436,7 @@ When the [`OBJECT SET VISIBLE`](../commands/object-set-visible) command is used End if ``` -> The [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command scrolls the list box rows so that the first selected row or a specified row is displayed. +> [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) コマンドは、最初に選択された行または指定された行を表示するようにリストボックスをスクロールします。 ### 選択行の見た目のカスタマイズ @@ -671,13 +671,13 @@ End if ### 詳細モード -このモードでは、リストボックスの印刷は `Print object` コマンドを使用してプログラムにより実行されます (プロジェクトフォームとテーブルフォームがサポートされています)。 The [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command is used to control the printing of the object. +このモードでは、リストボックスの印刷は `Print object` コマンドを使用してプログラムにより実行されます (プロジェクトフォームとテーブルフォームがサポートされています)。 [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用してオブジェクトの印刷を制御できます。 このモードでは: -- オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。 他方、オブジェクトの内容に基づき高さが自動で増大することはありません。 The size of the object actually printed can be obtained via the [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command. -- リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。 These parameters also include the first row to be printed: if you call the [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) command before launching the printing, the first row printed in the list box will be the one designated by the command. -- 自動メカニズムにより、表示可能な行以上の行数を含むリストボックスの印刷が容易になります。 連続して `Print object` を呼び出し、呼び出し毎に別の行のまとまりを印刷することができます。 The [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) command can be used to check the status of the printing while it is underway. +- オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。 他方、オブジェクトの内容に基づき高さが自動で増大することはありません。 実際に印刷されるオブジェクトのサイズは [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドで取得できます。 +- リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。 これらの設定には印刷される最初の行も含みます。 印刷を実行する前に [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) を呼び出すと、リストボックスに印刷される最初の行はコマンドで指定した行になります。 +- 自動メカニズムにより、表示可能な行以上の行数を含むリストボックスの印刷が容易になります。 連続して `Print object` を呼び出し、呼び出し毎に別の行のまとまりを印刷することができます。 [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用して、印刷がおこなわれている間の状態をチェックできます。 @@ -814,7 +814,7 @@ Variable 1 は常に、リストボックスの先頭列の変数名に対応し > 親が折りたたまれているために行が非表示になっていると、それらは選択から除外されます。 (直接あるいはスクロールによって) 表示されている行のみを選択できます。 言い換えれば、行を選択かつ隠された状態にすることはできません。 -As with selections, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command will return the same values for a hierarchical list box and a non-hierarchical list box. This means that in both of the examples below, [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) will return the same position: (3;2). +選択と同様に、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは階層リストボックスと非階層リストボックスにおいて同じ値を返します。 つまり以下の両方の例題で、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は同じ位置 (3;2) を返します。 *非階層表示:* ![](../assets/en/FormObjects/hierarch9.png) @@ -824,12 +824,12 @@ As with selections, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-ce #### ブレーク行の管理 -If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns the first occurrence of the row in the corresponding array. 以下のケースで: +ユーザーがブレーク行を選択すると、 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は対応する配列の最初のオカレンスを返します。 以下のケースで: ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. +[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は (2;4) を返します。 プログラムでブレーク行を選択するには [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) コマンドを使用する必要があります。 ブレーク行はリストボックスのグラフィカルな表示 (スタイルやカラー) を管理する内部的な配列では考慮されません。 しかし、オブジェクトのグラフィックを管理するオブジェクト (フォーム) テーマのコマンドを使用してブレーク行の表示を変更できます。 階層を構成する配列に対して、適切なコマンドを実行します。 @@ -856,17 +856,17 @@ If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listb `On Expand` や `On Collapse` フォームイベントを使用して階層リストボックスの表示を最適化できます。 -階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。 This makes it difficult to build large hierarchical list boxes based on arrays generated from data (through the [`SELECTION TO ARRAY`](../commands/selection-to-array) command), not only because of the display speed but also the memory used. +階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。 大量のデータから ([`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドを使用して) 生成される配列をもとに階層リストボックスを構築するのは、表示速度だけでなくメモリ使用量の観点からも困難が伴います。 -`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。 たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。 In the context of these events, the [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell where the user clicked in order to expand or collapse a row. +`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。 たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。 これらのイベントのコンテキストでは、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは、行を展開/折りたたむためにユーザーがクリックしたセルを返します。 この場合、開発者がコードを使用して配列を空にしたり値を埋めたりしなければなりません。 実装する際注意すべき原則は以下のとおりです: - リストボックスが表示される際、先頭の配列のみ値を埋めます。 しかし 2番目の配列を空の値で生成し、リストボックスに展開/折りたたみアイコンが表示されるようにしなければなりません: ![](../assets/en/FormObjects/hierarch15.png) -- ユーザーが展開アイコンをクリックすると `On Expand` イベントが生成されます。 The [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell concerned and lets you build the appropriate hierarchy: you fill the first array with the repeated values and the second with the values sent from the [`SELECTION TO ARRAY`](../commands/selection-to-array) command and you insert as many rows as needed in the list box using the [`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) command. ![](../assets/en/FormObjects/hierarch16.png) +- ユーザーが展開アイコンをクリックすると `On Expand` イベントが生成されます。 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドはクリックされたセルを返すので、適切な階層を構築します: 先頭の配列に繰り返しの値を設定し、2番目の配列には [`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドから得られる値を設定します。 そして[`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) コマンドを使用して必要なだけ行を挿入します。 ![](../assets/en/FormObjects/hierarch16.png) -- ユーザーが折りたたみアイコンをクリックすると `On Collapse` イベントが生成されます。 The [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) command returns the cell concerned: you remove as many rows as needed from the list box using the [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) command. +- ユーザーが折りたたみアイコンをクリックすると `On Collapse` イベントが生成されます。 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドはクリックされたセルを返すので、 [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) コマンドを使用してリストボックスから必要なだけ行を削除します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 09d472ba092668..3b62e29954c52f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -25,7 +25,7 @@ title: リリースノート #### 動作の変更 -- As of 4D **20.7 HF2**, the [`Time`](https://doc.4d.com/4dv20/help/command/en/page179.html) command returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will now return -01:02:03. 過去のリリースにおいては、負の符号は無視されていました。 +- 4D **20.7 HF2** 以降、[`Time`](https://doc.4d.com/4dv20/help/command/ja/page179.html) コマンドは、*timeValue* 引数が負の値の場合には負の時間式を返すようになりました。 例えば、`Time("-01:02:03")` は、 -01:02:03 を返すようになりました。 過去のリリースにおいては、負の符号は無視されていました。 ## 4D 20.6 LTS diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/manData.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/manData.md index 38397cc87cd235..2d3836699ebaac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/manData.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/manData.md @@ -22,7 +22,7 @@ REST API を使って、4D内と同等のデータ操作をおこなうことが [\{dataClass\}(\{key\})](dataClass.md#dataclasskey) でデータクラスのいちエンティティを取得する以外にも、エンティティセレクションやコレクションを返す [クラス関数](ClassFunctions.md#関数の呼び出し) を用意することもできます。 -Before returning a selection, you can also sort it by using [`$orderby`]($orderby.md) on one or more attributes (even relation attributes). +戻り値としてセレクションを返す前に、[`$orderby`]($orderby.md) を使って一つ以上の属性 (リレーション属性も可) を基準に並べ替えることもできます。 ## データのナビゲーション diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/WebServer/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/WebServer/authentication.md index a63ad5f4d4a4ee..c3a5a7f60b7dcb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/WebServer/authentication.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/WebServer/authentication.md @@ -125,7 +125,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス -> $RequestAccepted : Boolean ``` -> `On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。 The information received by the database method depends on the selected [authentication mode](#authentication-modes). +> `On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。 このデータベースメソッドが受け取る情報は、[認証モード](#authentication-modes)の設定により異なります。 #### $1 - URL diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 4897fd58447bba..392e5216fdd387 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -393,15 +393,15 @@ The object returned by `.drop()` contains the following properties: (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      654. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      655. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
      656. **Associated statusText**: "Entity does not exist anymore" | -| `dk status locked` | 3 | エンティティはペシミスティックロックによってロックされています。
        **割り当てられた statusText**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      657. with `.save()`: error only if the `dk auto merge` option is not used
      658. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      659. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      660. **Associated statusText**: "Stamp has changed"
      661. | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      662. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      663. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. entity.lock() を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
      664. **割り当てられた statusText**: "エンティティはもう存在しません" | +| `dk status locked` | 3 | エンティティはペシミスティックロックによってロックされています。
        **割り当てられた statusText**: "Already locked" | +| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | +| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      665. `entity.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      666. `entity.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      667. `entity.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー
      668. **割り当てられた statusText**: "Stamp has changed"
      669. | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1021,7 +1021,7 @@ $info:=$address.getRemoteContextAttributes() | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      670. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      671. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      672. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      673. with `.save()`: error only if the `dk auto merge` option is not used
      674. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      675. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      676. **Associated statusText**: "Stamp has changed" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      677. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      678. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      679. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      680. **割り当てられた statusText**: "Stamp has changed" | #### 例題 1 @@ -1285,7 +1285,7 @@ $info:=$address.getRemoteContextAttributes() | `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | | `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      681. with `.save()`: error only if the `dk auto merge` option is not used
      682. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      683. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      684. **Associated statusText**: "Stamp has changed" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      685. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      686. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      687. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      688. **割り当てられた statusText**: "Stamp has changed" | | `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 7774b26c45bf74..d460a48eb79567 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,7 +100,9 @@ title: Forms On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. -| Light theme | Dark theme | +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + +| ライトテーマ | ダークテーマ | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Related blog post -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- 組み込みの [スタンドアロン](../Desktop/building#スタンドアロンアプリケーションをビルド) または [クライアント](../Desktop/building#クライアントアプリケーションをビルド) 4Dアプリケーション -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### 要件 -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## 継承フォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 28f0596b8c40dc..1c45add9710b90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -89,11 +89,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| プロパティ | 型 | 説明 | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [].vector | Object の Collection) | 必須設定です。 A collection that represents the vector to compare | | -| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 Supported values:
      689. "cosine" (default if omitted): calculates the cosine distance between vectors.
      690. "dot": calculates the dot similarity of vectors.
      691. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | | +| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [].vector | Object の Collection) | 必須設定です。 A collection that represents the vector to compare | | +| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 サポートされる値:
      692. "cosine" (省略時のデフォルト): ベクトル間のコサイン距離を計算します。
      693. "dot": ベクトルのドット類似度を計算します。
      694. "euclidean": ベクトル間のユークリッド距離を計算します。 | | +| | [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | Only a subset of **comparator** symbols are supported with vector comparisons. これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 76d36cac48e48f..871d6082d75649 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -95,17 +95,17 @@ For security reasons, when formulas are pasted from a different 4D application o When used in a formula within the table, the **This** keyword gives access to different data according to the context: -| **Context** | **Expression** | **型** | **戻り値** | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Anywhere | [This](../commands/this.md).table | Object | Current table | -| | [This](../commands/this.md).row | Object | Current table row element | -| | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | -| When a datasource has been defined for the table | [This](../commands/this.md).table.dataSource | Object (フォーミュラ) | Datasource as a formula | -| | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | Evaluated table.dataSource | -| In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | 制限なし | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | -| | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | -| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection or Entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
        This expression returns the same type of value as the **This.tableData** expression. | -| In a break row | [This](../commands/this.md).breakItems | Collection or Entity selection | Items of the collection or entity selection displayed in the rows between:
        • the current break row and the previous break row of the same level (or the start of the table) if the break row(s) are displayed after the data row.
        • the current break and the next break row of the same level (or the end of the table) if the break row(s) are displayed before the data row.
        | +| **Context** | **Expression** | **型** | **戻り値** | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Anywhere | [This](../commands/this.md).table | Object | Current table | +| | [This](../commands/this.md).row | Object | Current table row element | +| | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | +| When a datasource has been defined for the table | [This](../commands/this.md).table.dataSource | Object (フォーミュラ) | Datasource as a formula | +| | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | Evaluated table.dataSource | +| In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | 制限なし | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | +| | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | +| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection or Entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
        This expression returns the same type of value as the **This.tableData** expression. | +| In a break row | [This](../commands/this.md).breakItems | Collection or Entity selection | コレクションまたはエンティティセレクションの項目は、以下の箇所に表示されます:
        • ブレーク行がデータ行の後に表示されている場合には、同じレベルのカレントのブレーク行と前のブレーク行(または表のスタート)との間。
        • ブレーク行がデータ行の前に表示されている場合には、同じレベルのカレントのブレーク行と次のブレーク行(または表の終わり)との間。
        | In any other contexts, these expressions will return *undefined*. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md index fc2acfdb8020c0..c73338891c9f16 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/writeprointerface.md @@ -10,10 +10,10 @@ slug: /WritePro/write-pro-interface インターフェースのマニュアルについては、*4D デザインリファレンス* の [4D Write Pro エリアのドキュメント](https://doc.4d.com/4Dv20/4D/20/Entry-areas.300-6263967.ja.html) を参照ください。 -You will find below: +ここには以下のような情報があります: -- the Table Wizard configuration documentation, -- the integrated A.I. ドキュメント. +- 表ウィザード設定ドキュメンテーション +- 統合されたAIについての ドキュメント. ## 表ウィザード @@ -303,36 +303,36 @@ JSONファイルで設定する各属性に対して、以下の WP属性を定 [4D Write Pro - 表ウィザード (チュートリアル動画)](https://www.youtube.com/watch?v=2ChlTju-mtM) -## Integrated AI +## 統合されたAI -You can use an integrated AI in the 4D Write Pro interface so that you can easily translate or enhance your documents without having to use an external AI application. +4D Write Pro インターフェース内に統合されたAI を使用して、外部AI アプリケーションを使用することなくドキュメントを簡単に要約したり改善したりすることができます。 -Once you have enabled the AI feature, you can display a chat box over your 4D Write Pro document and interact with *chatGPT* to modify the text of the selection or of the document itself. +AI 機能を有効化すると、4D Write Pro ドキュメント上にチャットボックスが表示され、そこから*chatGPT* とやりとりをすることで選択したテキストやドキュメント自身を変更することができます。 :::note -The 4D Write Pro interface uses OpenAI, for which you need to provide your own key (see below). +4D Write Pro インターフェースはOpenAI を使用し、これを使用するためにはご自身のキーを提供する必要があります(以下参照)。 ::: -### Limitations (Developer Preview) +### 制約(デベロッパープレビュー) -In the current implementation, the feature has the following limitations: +現在の実装では、この機能では以下のような制約があります: -- use of a predefined AI provider and necessity to pass your OpenAI key -- basic chatting features -- no image handling -- non-configurable predefined action commands -- predefined translations English/French and French/English only +- 使用するAI プロバイダーが決められていることと、OpenAI キーを渡す必要があること +- 基本的なチャット機能 +- 画像処理なし +- 設定不可な定義済みアクションコマンド +- 定義済みの翻訳は英語→フランス語とフランス語→英語のみ -### Enabling the AI feature +### AI機能の有効化 -The AI dialog box is available by clicking on a button in the 4D Write Pro interface. This button is **hidden by default**, you need to enable it explicitely. +AI ダイアログボックスは4D Write Pro インターフェース内のボタンをクリックすることで利用可能になります。 このボタンは**デフォルトでは非表示** なので、明示的に有効化する必要があります。 -To display the AI dialog box button, you need to: +AI ダイアログボックスボタンを表示するためには、以下の操作が必要です: -1. Get an API key from the [OpenAI website](https://openai.com/api/). -2. Execute the following 4D code: +1. [OpenAI website](https://openai.com/api/) からAPI キーを取得する。 +2. 以下の4D コードを実行する: ```4d @@ -342,44 +342,44 @@ WP SetAIKey ("") // :::note -No checking is done on the OpenAI key validity. If it is invalid, the *chatGPT* box will stay empty. +OpenAi キーの有効性に関するチェックは行われません。 キーが無効だった場合には、*chatGPT* ボックスは空のままになります。 ::: -The **A.I.** button is then displayed: +その後**A.I.** ボタンは、以下の場所に表示されます: ![ai button](../assets/en/WritePro/ai-button.png) -- in the 4D Write Pro Toolbar, in the **Import Export** tab, -- in the 4D Write Pro Widget, in the **Font Style** tab. +- **読み込み書き出し** タブ内の4D Write Pro ツールバー内 +- **フォントスタイル** タブ内の4D Write Pro ウィジェット内。 -Click on the button to display the AI dialog box. +AI ダイアログボックスを表示するには、ボタンをクリックしてください。 -### AI dialog box +### AI ダイアログボックス -The 4D Write Pro AI dialog box allows a straightforward interaction between the chat area and the 4D Write Pro document. +4D Write Pro AI ダイアログボックスを使用するとチャットエリアと4D Write Pro ドキュメントとの簡単なやりとりを可能にします。 -#### Prompt area +#### プロンプトエリア -At the bottom of the window, the **prompt area** allows you to enter any question to send to the AI. +ウィンドウの下部には、**プロンプトエリア** があり、ここにAI に送信したい質問を入力することができます。 -To send your question to the AI, click on the Send button: +AI に質問を送信するためには、送信ボタンをクリックします: ![ai send](../assets/en/WritePro/ai-send.png) -The button icon changes when the same request is sent again: +同じリクエストが再度送信されると、ボタンのアイコンが変わります: ![ai resend](../assets/en/WritePro/ai-resend.png) -On the left side of this area, a pop up menu provides examples of common actions that can be usually delegated to the AI. +このエリアの左側にあるポップアップメニューには、通常AI にたずねるような一般的なアクションの一例が提供されています。 -Selecting an action writes a corresponding question to the prompt. If necessary, you can modify the question and then to click on the Send button to actually send it: +アクションを選択すると、それに対応した質問がプロンプトに入力さます。 必要であれば、質問を書き換えてから送信ボタンを押して送信することもできます: ![ai menu](../assets/en/WritePro/ai-menu.png) :::note -Default translation actions are based upon the current 4D default configuration and depend on available languages. +デフォルトの翻訳アクションはカレントの4D のデフォルト設定に基づき、利用可能な言語に依存します。 ::: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md index aa0e9e47272a43..e0f5a4167e9998 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -100,6 +100,8 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Related blog post -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Fusionado aplicación 4D [autónomo](../Desktop/building.md#build-stand-alone-application) o [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### Requisitos -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. A The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formulários herdados diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index aa0e9e47272a43..e0f5a4167e9998 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -100,6 +100,8 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. + | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | @@ -116,19 +118,17 @@ This feature can only be used on Windows. On macOS, it is ignored. ::: -### Fluent UI rendering availability +:::tip Related blog post -The Fluent UI rendering is available in the following execution environments only: +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) -- Windows with [Windows App SDK](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) version 1.7.3 installed (you need to install this SDK on any Windows machine displaying your forms). -- Fusionado aplicación 4D [autónomo](../Desktop/building.md#build-stand-alone-application) o [cliente](../Desktop/building.md#build-client-application) -- [**Test application** feature](../Menus/bars.md#previewing-menu-bars) available from the Run menu. +::: -:::note +### Requisitos -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. -::: +If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. ### Enabling the Fluent UI rendering @@ -153,19 +153,23 @@ Each form can define its own rendering via the **Widget appearance** property. A The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Features and limitations - -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +### Specific behaviors When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The `FORM Window theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. +- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). + +:::info Limitations + +This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). + +::: ## Formulários herdados From d72069c3f47c44804a64cc0246dc1a84337c958b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 17 Oct 2025 10:12:20 +0200 Subject: [PATCH 091/119] fix value type --- docs/commands-legacy/value-type.md | 1 - versioned_docs/version-20-R10/commands-legacy/value-type.md | 1 - versioned_docs/version-21/commands-legacy/value-type.md | 1 - 3 files changed, 3 deletions(-) diff --git a/docs/commands-legacy/value-type.md b/docs/commands-legacy/value-type.md index 69bf5f18487a00..3fdd90420a4b6c 100644 --- a/docs/commands-legacy/value-type.md +++ b/docs/commands-legacy/value-type.md @@ -37,7 +37,6 @@ The command returns a numeric value that can be compared with one of the followi | Is time | Integer | 11 | | Is undefined | Integer | 5 | | Is variant | Integer | 12 | -| Object array | Integer | 39 | This command is designed to return the type of a scalar expression, *i.e.* the value stored in or returned by the *expression* parameter. In particular, it can be applied to the following 4D expressions: diff --git a/versioned_docs/version-20-R10/commands-legacy/value-type.md b/versioned_docs/version-20-R10/commands-legacy/value-type.md index 69bf5f18487a00..3fdd90420a4b6c 100644 --- a/versioned_docs/version-20-R10/commands-legacy/value-type.md +++ b/versioned_docs/version-20-R10/commands-legacy/value-type.md @@ -37,7 +37,6 @@ The command returns a numeric value that can be compared with one of the followi | Is time | Integer | 11 | | Is undefined | Integer | 5 | | Is variant | Integer | 12 | -| Object array | Integer | 39 | This command is designed to return the type of a scalar expression, *i.e.* the value stored in or returned by the *expression* parameter. In particular, it can be applied to the following 4D expressions: diff --git a/versioned_docs/version-21/commands-legacy/value-type.md b/versioned_docs/version-21/commands-legacy/value-type.md index 69bf5f18487a00..3fdd90420a4b6c 100644 --- a/versioned_docs/version-21/commands-legacy/value-type.md +++ b/versioned_docs/version-21/commands-legacy/value-type.md @@ -37,7 +37,6 @@ The command returns a numeric value that can be compared with one of the followi | Is time | Integer | 11 | | Is undefined | Integer | 5 | | Is variant | Integer | 12 | -| Object array | Integer | 39 | This command is designed to return the type of a scalar expression, *i.e.* the value stored in or returned by the *expression* parameter. In particular, it can be applied to the following 4D expressions: From e2492d5c2d082b69c4bd81eb003525fdde3999d7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 09:58:42 +0200 Subject: [PATCH 092/119] Import/triggers (#2969) * import 1 * triggers draft EN * triggers FR ok * triggers SP * JP triggers * picts --- docs/Concepts/parameters.md | 6 - docs/Develop-legacy/triggers.md | 290 +++++++++++++++++ docs/Develop/triggers-new.md | 18 + .../en/Develop/triggers-architecture.png | Bin 0 -> 2573 bytes docs/assets/en/Develop/triggers-cascade.png | Bin 0 -> 29218 bytes docs/assets/en/Develop/triggers-set.png | Bin 0 -> 9750 bytes .../current/Develop-legacy/triggers.md | 299 +++++++++++++++++ .../current/Develop/triggers-new.md | 18 + .../en/Develop/triggers-architecture.png | Bin 0 -> 2573 bytes .../assets/en/Develop/triggers-cascade.png | Bin 0 -> 29218 bytes .../assets/en/Develop/triggers-set.png | Bin 0 -> 9750 bytes .../current/Develop-legacy/triggers.md | 285 ++++++++++++++++ .../current/Develop/triggers-new.md | 18 + .../en/Develop/triggers-architecture.png | Bin 0 -> 2573 bytes .../assets/en/Develop/triggers-cascade.png | Bin 0 -> 29218 bytes .../assets/en/Develop/triggers-set.png | Bin 0 -> 9750 bytes .../current/Develop-legacy/triggers.md | 307 ++++++++++++++++++ .../current/Develop/triggers-new.md | 18 + .../en/Develop/triggers-architecture.png | Bin 0 -> 2573 bytes .../assets/en/Develop/triggers-cascade.png | Bin 0 -> 29218 bytes .../assets/en/Develop/triggers-set.png | Bin 0 -> 9750 bytes .../current/Develop-legacy/triggers.md | 289 +++++++++++++++++ .../current/Develop/triggers-new.md | 18 + .../en/Develop/triggers-architecture.png | Bin 0 -> 2573 bytes .../assets/en/Develop/triggers-cascade.png | Bin 0 -> 29218 bytes .../assets/en/Develop/triggers-set.png | Bin 0 -> 9750 bytes sidebars.js | 4 +- 27 files changed, 1563 insertions(+), 7 deletions(-) create mode 100644 docs/Develop-legacy/triggers.md create mode 100644 docs/Develop/triggers-new.md create mode 100644 docs/assets/en/Develop/triggers-architecture.png create mode 100644 docs/assets/en/Develop/triggers-cascade.png create mode 100644 docs/assets/en/Develop/triggers-set.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png diff --git a/docs/Concepts/parameters.md b/docs/Concepts/parameters.md index b4064c48667cb3..163b6f2017e26f 100644 --- a/docs/Concepts/parameters.md +++ b/docs/Concepts/parameters.md @@ -313,12 +313,6 @@ The legacy syntax for declaring variadic parameters (`C_TEXT(${4})`) is deprecat ::: -## Triggers and On Drag Over - -Some contexts do not support declaration in a "Compiler_" method, thus they are handled specifically: - -- Triggers - The $0 parameter (Longint), which is the result of a trigger, will be typed by the compiler if the parameter has not been explicitly declared. Nevertheless, if you want to declare it, you must do so in the trigger itself. - diff --git a/docs/Develop-legacy/triggers.md b/docs/Develop-legacy/triggers.md new file mode 100644 index 00000000000000..9766ec6846296f --- /dev/null +++ b/docs/Develop-legacy/triggers.md @@ -0,0 +1,290 @@ +--- +id: triggers +title: Triggers +--- + + +A **trigger** is a method attached to a table. It is a property of a table. You do not call triggers; they are automatically invoked by the 4D database engine each time you manipulate table records (add, delete and modify). You can write very simple triggers, and then make them more sophisticated. + +Triggers can prevent "illegal" operations on the records of your database. They are a very powerful tool for restricting operations on a table, as well as preventing accidental data loss or tampering. For example, in an invoicing system, you can prevent anyone from adding an invoice without specifying the customer to whom the invoice is billed. + + + + + +## Activating and Creating a Trigger + +By default, when you create a table in the Design Environment, it has no trigger. + +To use a trigger for a table, you need to: + +- Activate the trigger and tell 4D when it has to be invoked. +- Write the code for the trigger. + +Activating a trigger that is not yet written or writing a trigger without activating it will not affect the operations performed on a table. + +1. To activate a trigger for a table, you must select one of the **Triggers** options (database events) for the table in the Inspector window of the structure: + +![](../assets/en/Develop/triggers-set.png) + +2. Creating a Trigger. + +To create a trigger for a table, click on the **Edit...** button in the Inspector window or press **Alt** (Windows)/**Option** (macOS) and double-click on the table title in the Structure window ans write the code corresponding to the trigger that you want to create. + + + +## Description of the triggers + +### On saving an existing record + +If this option is selected, the trigger will be invoked each time a record of the table is modified. This happens when: + +- Modifying a record in data entry (Design environment, [`MODIFY RECORD`](../commands/modify-record) command or the SQL `UPDATE` command). +- Saving an already existing record using [`SAVE RECORD`](../commands/save-record). +- Calling any other commands that save existing records (i.e., [`ARRAY TO SELECTION`](../commands/array-to-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), etc.). +- Using an ORDA function that saves the entity. + +:::note + +For optimization reasons, the trigger is not called when the record is saved by the user or via the [`SAVE RECORD`](../commands/save-record) command if no field in the table has been modified in the record. If you want to "force" the calling of the trigger in this case, you can simply assign a field to itself: + +```4d +[thetable]thefield:=[thetable]thefield +``` + +::: + +### On deleting a record + +If this option is selected, the trigger will be invoked each time a record of the table is deleted. This happens when: + +- Deleting a record (Design environment or calling [`DELETE RECORD`](../commands/delete-record), [`DELETE SELECTION`](../commands/delete-selection) or the SQL `DELETE` command). +- Performing any operation that provokes deletion of related records through the deletion control options of a relation. +- Using an ORDA function that deletes the entity. + +:::note + +The [`TRUNCATE TABLE`](../commands/trucate-table) command does NOT call the trigger. + +::: + +### On saving a new record + +If this option is selected, the trigger will be invoked each time a record is added to the table. This happens when: + +- Adding a record in data entry (Design environment, [`ADD RECORD`](../commands/add-record) command or the SQL `INSERT` command). +- Creating and saving a record with [`CREATE RECORD`](../commands/create-record) and [`SAVE RECORD`](../commands/save-record). Note that the trigger is invoked at the moment you call [`SAVE RECORD`](../commands/save-record), not when it is created. +- Importing records (Design environment or using an import command). +- Calling any other commands that create and/or save new records (i.e., [`ARRAY TO SELECTION`](../commands/array-to-selection), [`SAVE RELATED ONE`](../commands/save-related-one), etc.). +- Using ORDA functions such as [`ds.dataclass.new()`](../API/DataClassClass.md#new) and [`entity.save()`](../API/EntityClass.md#save). + + +## Database events + +A trigger can be invoked for one of the three database events described above. Within the trigger, you detect which event is occurring by calling the [`Trigger event`](../commands/trigger-event) command. This function returns a numeric value that denotes the database event. + +Typically, you write a trigger with a [`Case of` structure](../Concepts/flow-control.md#case-ofelseend-case) on the result returned by [`Trigger event`](../commands/trigger-event). + +```4d + //Trigger for [anyTable] +#DECLARE -> $result : Integer +$result:=0 // Assume the database request will be granted + Case of + :(Trigger event=On Saving New Record Event) + // Perform appropriate actions for the saving of a newly created record + :(Trigger event=On Saving Existing Record Event) + // Perform appropriate actions for the saving of an already existing record + :(Trigger event=On Deleting Record Event) + // Perform appropriate actions for the deletion of a record + End case + ``` + + +## Triggers are Functions + +A trigger has two purposes: + +- Performing actions on the record just before it is saved or deleted. +- Granting or rejecting a database operation. + + +### Performing Actions + +Each time a record is saved (added or modified) to a [Documents] table, you want to "mark" the record with a time stamp for creation and another one for the most recent modification. You can write the following trigger: + +```4d + // Trigger for table [Documents] + Case of + :(Trigger event=On Saving New Record Event) + [Documents]CreationStamp:=myTimeStamp + [Documents]ModificationStamp:=myTimeStamp + :(Trigger event=On Saving Existing Record Event) + [Documents]ModificationStamp:=myTimeStamp + End case +``` + +:::note + +The *myTimeStamp* function used in this example is a small project method that returns the number of seconds elapsed since a fixed date was chosen arbitrarily. + +::: + +After this trigger has been written and activated, no matter what way you add or modify a record to the [Documents] table (data entry, import, project method, ORDA function), the fields [Documents]CreationStamp and [Documents]ModificationStamp will automatically be assigned by the trigger before the record is eventually written to the disk. + +### Granting or rejecting the database operation + +To grant or reject a database operation, the trigger must **return a trigger error code** in the function result. + +#### Example + +Let's take the case of an [Employees] table. During data entry, you enforce a rule on the social security number field for the [Employees] table. When you click the validation button, you check the field using the object method of the button: + +```4d + // bAccept button object method + If(GoodSSnumber([Employees]SSNumber)) + ACCEPT + Else + BEEP + ALERT("Enter a Social Security Number then click OK again.") + End if +``` + +If the field value is valid, you accept the data entry; if the field value is not valid, you display an alert and you stay in data entry. + +If you also create [Employees] records programmatically, the following piece of code would be programmatically valid, but would violate the rule expressed in the previous object method: + +```4d + // Extract from a project method + // ... + CREATE RECORD([Employees]) + [Employees]Name:="DOE" + SAVE RECORD([Employees]) // <-- DB rule violation! The SS number has not been assigned! + // ... +``` + +Using a trigger for the [Employees] table, you can enforce the [Employees]SSNumber rule at all the levels of the database. The trigger would look like this: + +```4d + // Trigger for [Employees] + #DECLARE -> $result : Integer + var $dbEvent : Integer + $result:=0 + $dbEvent:=Trigger event + Case of + :(($dbEvent=On Saving New Record Event)|($dbEvent=On Saving Existing Record Event)) + If(Not(GoodSSnumber([Employees]SSNumber))) + $result:=-15050 + Else + // ... + End if + // ... + End case +``` + +Once this trigger is written and activated, the line `SAVE RECORD([Employees])` will generate a database engine error -15050, and the record will NOT be saved. + +Similarly, if a 4D Plug-in attempted to save an [Employees] record with an invalid social security number, the trigger will generate the same error and the record will not be saved. + +The trigger guarantees that nobody (user, database designer, plug-in) can violate the social security number rule, either deliberately or accidentally. + +Note that even if you do not have a trigger for a table, you can get database engine errors while attempting to save or delete a record. For example, if you attempt to save a record with a duplicated value in a unique indexed field, the error -9998 is returned. + +Therefore, triggers returning errors add database engine errors to your application: + +- 4D manages the "regular" errors: unique index, relational data control, and so on. +- Using triggers, you manage the custom errors unique to your application. + +**Important:** You can return an error code value of your choice. However, do NOT use error codes already taken by the 4D database engine. We strongly recommend that you use error codes between -32000 and -15000. We reserve error codes above -15000 for the database engine. + +At the process level, you handle trigger errors the same way you handle database engine errors: + +- You can let 4D display the standard error dialog box, then the method is halted. +- You can use an [error-handling method](../Concepts/error-handling.md) and recover the error the appropriate way (except for commands acting on a selection of records, see the note below). + +:::note Notes + +- During data entry, if a trigger error is returned while attempting to validate or delete a record, the error is handled like a unique indexed error. The error dialog is displayed, and you stay in data entry. Even if you use a database in the Design environment (not in the Application environment), you have the benefit of using triggers. +- When an error is generated by a trigger for a record within the framework of a command acting on a selection of records ([`DELETE SELECTION`](../commands/delete-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), [`ARRAY TO SELECTION`](../commands/array-to-selection)...), the record is not processed but is automatically registered in the [`LockedSet` of the process](../Develop/processes.md#elements-of-a-process). The command continues its execution until the end and no error can be catched. The error-handling method, if any, is not called. To know if errors have been generated in this context, you need to test the `LockedSet` just after the command call. Also, in the trigger, you have to store error codes, for example in a collection, and handle them afterwards. + +::: + +Even when a trigger returns no error ($result=0), this does not mean that a database operation will be successful—a unique index violation may occur. If the operation is the update of a record, the record may be locked, an I/O error may occur, and so on. The checking is done after the execution of the trigger. However, at the higher level of the executing process, errors returned by the database engine or a trigger are the same—a trigger error is a database engine error. + + + +## Triggers and the 4D Architecture + +Triggers execute at the database engine level. This is summarized in the following diagram: + +![](../assets/en/Develop/triggers-architecture.png) + +Triggers are executed on the machine where the database engine is actually located. This is obvious with a 4D single-user version. On 4D Server, triggers are executed within the acting process on the server machine (in the "twinned" process of the process that set off the trigger), not on the client machine. + +When a trigger is invoked, it executes within the context of the process that attempts the database operation. This process, which invokes the trigger execution, is called the **invoking process**. The elements included in this context differ according to whether the database is executed with 4D in local mode or with 4D Server : + +- With 4D in local mode, the trigger works with the current selections, current records, table read/write states, record locking operations, etc., of the invoking process. +- With 4D Server, only the context of the database of the invoking client process is preserved (locked records and transactional states). 4D Server also (and only) guarantees that the current record of the table of the trigger is correctly positioned. The other elements of the context (current selections for example) are those of the trigger process. + +Be careful about using other database or language objects of the 4D environment, because a trigger may execute on a machine other than that of the invoking process—this is the case with 4D Server! + +- **Process variables**: Each trigger has its own table of process variables. A trigger has no access to the process variables of the invoking process. +- **Local variables**: You can use local variables in a trigger. Their scope is the trigger execution; they are created/deleted at each execution. +- **Semaphores**: A trigger can test or set global semaphores as well as local semaphores (on the machine where it executes). However, a trigger must execute quickly, so you must be very careful when testing or setting semaphores from within triggers. +- **Sets and Named selections**: If you use a set or a named selection from within a trigger, you work on the machine where the trigger executes. In client/server mode, "process" sets and named selections (whose names do not begin with a $ nor with \<>) that are created on the client machine are visible in a trigger. +- **User Interface**: Do NOT use user interface elements in a trigger (no alerts, no messages, no dialog boxes). Accordingly, you should limit any tracing of triggers in the [Debugging window](../Debugging/debugger.md). Remember that in Client/Server, triggers execute on the 4D Server machine. An alert message on the server machine does not help a user on a client machine. Let the invoking process handle the user interface. + +Note that in client-server mode, if you use 4D's password system, you can execute the [`Current user`](../commands/current-user) command in the trigger in order, for example, to save the name of the user at the origin of the trigger call in a journaled table. + + +## Triggers and Transactions + +[Transactions](./transactions.md) must be handled at the invoking process level. They must not be managed at the trigger level. During one trigger execution, if you have to add, modify or delete multiple records (see the following case study), you must first use the [`In transaction`](../commands/in-transaction) command from within the trigger to test if the invoking process is currently in transaction. If this is not the case, the trigger may potentially encounter a locked record. Therefore, if the invoking process is not in transaction, do not even start the operations on the records. Just return an error in the trigger $result in order to signal to the invoking process that the database operation it is trying to perform must be executed in a transaction. Otherwise, if locked records are met, the invoking process will have no means to roll back the actions of the trigger. + + +:::note + +In order to optimize the combined operation of triggers and transactions, 4D does not call triggers after the execution of [`VALIDATE TRANSACTION`](../commands/validate-transaction). This prevents the triggers from being executed twice. + +::: + +## Cascading Triggers + +Given the following example structure: + +![](../assets/en/Develop/triggers-cascade.png) + + +Note: The tables have been collapsed; they have more fields than shown here. + +Let's say that the database "authorizes" the deletion of an invoice. We can examine how such an operation would be handled at the trigger level (because you could also perform deletions at the process level). + +In order to maintain the relational integrity of the data, deleting an invoice requires the following actions to be performed in the trigger for [Invoices]: + +- In the [Customer] record, decrement the Gross Sales field by the amount of the invoice. +- Delete all the [Line Items] records related to the invoice. +- This also implies that the [Line Items] trigger decrements the Quantity Sold field of the [Products] record related to the line item to be deleted. +- Delete all the [Payments] records related to the deleted invoice. + +First, the trigger for [Invoices] must perform these actions only if the invoking process is in transaction, so that a roll-back is possible if a locked record is met. + +Second, the trigger for [Line Items] is **cascading** with the trigger for [Invoices]. The [Line Items] trigger executes "within" the execution of the [Invoices] trigger, because the deletion of the list items are consequent to a call to `DELETE SELECTION` from within the [Invoices] trigger. + +Consider that all tables in this example have triggers activated for all database events. The cascade of triggers will be: + +- [Invoices] trigger is invoked because the invoking process deletes an invoice + - [Customers] trigger is invoked because the [Invoices] trigger updates the Gross Sales field + - [Line Items] trigger is invoked because the [Invoices] trigger deletes a line item (repeated) + - [Products] trigger is invoked because the [Line Items] trigger updates the Quantity Sold fiel + - [Payments] trigger is invoked because the [Invoices] trigger deletes a payment (repeated) + +In this cascade relationship, the [Invoices] trigger is said to be executing at level 1, the [Customers], [Line Items], and [Payments] triggers at level 2, and the [Products] trigger at level 3. + +From within the triggers, you can use the [`Trigger level`](../commands/trigger-level) command to detect the level at which a trigger is executed. In addition, you can use the [`TRIGGER PROPERTIES`](../commands/trigger-properties) command to get information about the other levels. + +For example, if a [Products] record is being deleted at a process level, the [Products] trigger would be executed at level 1, not at level 3. + +Using [`Trigger level`](../commands/trigger-level) and [`TRIGGER PROPERTIES`](../commands/trigger-properties), you can detect the cause of an action. In our example, an invoice is deleted at a process level. If we delete a [Customers] record at a process level, then the [Customers] trigger should attempt to delete all the invoices related to that customer. This means that the [Invoices] trigger will be invoked as above, but for another reason. From within the [Invoices] trigger, you can detect if it executed at level 1 or 2. If it did execute at level 2, you can then check whether or not it is because the [Customers] record is deleted. If this is the case, you do not even need to bother updating the Gross Sales field. + + + + diff --git a/docs/Develop/triggers-new.md b/docs/Develop/triggers-new.md new file mode 100644 index 00000000000000..a40afb77231567 --- /dev/null +++ b/docs/Develop/triggers-new.md @@ -0,0 +1,18 @@ +--- +id: triggers-new +title: Triggers +--- + + + +## Triggers vs ORDA entity events + +**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +- triggers are handled at the database level, which is the lowest level, +- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. + +Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. + +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. + + diff --git a/docs/assets/en/Develop/triggers-architecture.png b/docs/assets/en/Develop/triggers-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9d523d0372f12307a3c33fd6548ca097002c05 GIT binary patch literal 2573 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 literal 0 HcmV?d00001 diff --git a/docs/assets/en/Develop/triggers-cascade.png b/docs/assets/en/Develop/triggers-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4a075fd1f5d31dfc589b7b6802c101f4965af0 GIT binary patch literal 29218 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 Ndt+0hD+YEy{u^phHsAmN literal 0 HcmV?d00001 diff --git a/docs/assets/en/Develop/triggers-set.png b/docs/assets/en/Develop/triggers-set.png new file mode 100644 index 0000000000000000000000000000000000000000..b339a988df617267b880eed98b3e29c3130aa8f3 GIT binary patch literal 9750 zcmaia2Q*yY+wLHG9lZ;pL@%R6PmJDMq9h{f=tS>CFgg*U1f#bg7`;W8$YAsqgha1l z5Q2O1TlfE4cisDa_nWoOnsfF#d(Z5>pZ9&9^SmckUssKkh>-{c0+DK{Lk&S7EJolE zBESP$3{1aa0bf{NhH8&MHKWYiz{MShhdK{Ipt@w@KQC~BYeEloGcOQ`tncrEHRN7y z3j%RfX+R$u`&;gR3-Pva$mKbz-S3r@XX1GDX3#~w(4ITNS5iTZi!d6RReGn$^W1u2 z(pA>YAV5?BMxW#8ko=IJz$oi+d47U8yYbYsZ%uemqZ*Qau2XD3Ti4}R%&Z=x}J5(Czr*ib0t zG@^hX<$Jni@QD#-8Mw{m$;44;wpeEqQgJ)za!oxK7vQuYey4iix=Px4`kD`); z;YK_h=F&|{Mo)}J1_zt^7oWxsc{$zsEp;W2G~6)j?OpSQ^7~SOTdjy8jg5_INX99| zU_n^HBJst+^3`#gXkC6{BFfck;$p7>7JN2eUz-d6JAjg<@-~z4eVc>rUJviJD57ZWpcSJ?Yd39_Fq?Au41#0J!D$O z@xO#hxd{hpySR)r=nTsEWXJtohOybGkiC^QA6bR#Rm=U6!Q{1~3zlVO+>hVMk8apP z7!8~UtzB-X#}KR_$zZ(m&_7c2EVv@(p9n%Dc@9?+g8W?(_h~Y^=zX# zUvAcrPO?IVgOSz_MK_(8IZ*iG@pp1PFA@&E95Ed_7yB=?Ft^I8T;wzY&nKhSIjU}< z&3p-2LAo-Wv?}b(HqhBFS#(%DdB*8q1)7?2TEQW=4)eXE2w4cbgfBmr$@gcO@rqxZ zo=#5^bOX?{@!rDruxnA$C)?@r9_v`e^@uSB=H%qe<38i*Y4QE){Kkyv7K0|Y`jH3@ z`7S<%TM?pD~?oL_wu?2 zOAmu_nsGp9Yh(GpomVZ|QP<{e$yjqFKVuJV(n@X*!zx@?{LgFAVaav5O}DMWJ6Fp^ z*5~4bb+P4!b2l^FtKoA8rD~HSL%LzBoePJxGMKj#@!ag` zz28L_hXq*z0SX&5EVvxs==hx08VZX>WE2zM!BqR{%Jr*2Nu*Q&*GIT<8oFdixzia}%c}OnD zx=E`|+mF)8f;Z{h<4l5;GVz!T(Zk@h+IZj?I`L#4f}z=lN0bkf@mb5BRBGEU&^_YG zf_Le0W9x|!E-q&c|Ckk1i>HN=vBzB+GriXmg6^vi!z;0+$I1`j-CP6Un9tJRca zN|Y@Ux%CoAYl<3(@&lc z@F@P)c(Mw&bEU5{3D_e$+8Mfc$Ddv6+7% z=QFHHq;W?+)Z0Gd^;*R9t4BFAbZ-dw9=z@w#4kp5s}Mt`3-yQRW$SZ~h$~!#XjRL8 z8*~uz>Q>aS+U^N667r_Wd%_rwiOd==n4MG#O`$@|1h%qh9)(U|*z`NSm8pVuXa?H6 zC(9HQt%%l&a4AWSJpMviL^91J?A**R^LacYtn2pru-z&CGn1yX9%y%p@5#q& zPWx+vD}U>caz^*>fwe$N^pz4Jqhxpc)Rk46b`M|w&bAvblU`QhXTs` z)E+2u5FFlk5o%TS0+Re;g;-cMb?ox{vy|;@djlNQZ1;`N6IapsQW;%6Y|!_O@Uy5{ z;%;eEZma>DfJYSD@m)m5)bV`1Yb{#lsy0ZstualI5Ia5dHy)!?u< zWu)rd@ZI|Y6aLDC{Y;HkZzsEWiB-i+pa}4ao!CO5xY%14o_?T}uawesJ8PWtQq*!4|PL^QnE2Eop;4Fs3E3?AeE z(Dd}WdU9IIlCm8RKN>yXr)UTLlU4Bk?O2tdBrf?{NF~DB^_em~RkN4alKa7=qFh3# z)YZsmVBB{?qgGvoU1P zSv&D{Us&j|$pnv!XR~e*#ytz=XEiiA^|=TS77i6CRws4kvlax6zsl?rjlNn$=bRT5 zjlFTiSdfXKj$_pg5v?zO5|ObfButj+;ed4W6%zYm$k)HnY+e>lGRXQ+2Y@Qdu~kIt zGr>r}TrLsX;3WE>-y9czZ5bDKci+6R7PA=t$&SrG}S3HD5ns zFP?OiJ74lrFPkKYdSu%AvZQ7Ehfu;@a;x1-!?*%Fi0V2ckwIe$B@ATst<49xN80az z`B4GIOtl4%o7jVp$~({T51c?d&HIt$N|i{fNcL+M&el_s!LNCzBxQCyk<4fkbz;bP zB#N%<2zT}&_sU|8U}e)e#|kBXXOQvA>pWB9l(?PvdIOl01VLYzHTjLFx?i2;d63!_B=sN-Y&Oyif2aHCk+k_)dgal>T=2}0Z#j#Vc`aD zA88?lyq7_t`}<$dsX(zcBDf>rLy_vLTZwm41?H~cu9M5*1N4-fac#?S>D#mpV@MlXkKoDdx8~8fZgZZ@h$UzWX}kkoLC3>Wqo5gp)@K^2&@hQuC-w^?AZHMXmLi| zSQpko{4L4BMKB0dOLsFUz0l}R0mC>mQH#+Jb0g>(65l9Ey5C-W)AVQx^Sj>%o=60b zWO{MGBuS>f(#^oa`m~IbnduJ>J04mC8Q7&V!$AJZ>PWJ=hNMT7J(=XKg?ZHwb3cy) z(VD}m=7aE-fx^X!GY)QUe`Kso1gaRTp`ZXAA58+oNh$$r29e?kly6mafD8 zm5x_2EM+gC)5@U;tW{F3aTy9#fik~@jZ{p~_o&o@x#s*gv&3OdR3Ubgb(%(BG!Ooq z5q5|b`W*%`uZWkLSe&gHwOjU@IWs>9BEi=SX7XcXK;^Cs5_&ll?jY|*sOCIs#8y=z zL~`aCAuIHx$!`$ZBYnj=+gXR4RaM1BBVuua1_a@i zam7khN`5lMb^>_r1l!h(?81BTJ=<>HW$leVSxQn93wU-zN6~GVkVKpGQr&bZFUB5z z9$%{wT99`+O*9`GoZ^ z%#Yo3Gq^?;zZor4s2gX|!zz0%nLi4V2~UwmAYG=Xrr^)KdMhTGzqNSc=*eTKmqV{y zJ>lhi)#i;v#p-yG45w9AxszQWgd1nLd>Io(8go^^OVk!U_!^6&(iWhx>_Fr4$~aSE5b|!R z(@L`h0h1*1p^3>UWSSTUYWx`>L2dh%mF(}QHm1X{!RR(_)T_NKKK-{s^sy%8_H_c_eK?~m-_u|Z`(R&(%klC7NeOu+%%HLGg)I9eWBrNh} z6}0U5&ih~A!A{=oX7 zCbYF);x%2nLIhG*$wE<}(%&k1{rp11tPo6Jrk9Tgdan?|7(>oBn9e`i$ZtRPfWWcI z`np&{-H}Dz#H8FV{^4by{&W0b(67$@4eEHfy{;z0to0=qkiRFkA$dUu4}kO!kidth zt%gh9Gyf#<0A~4;>q}>|1l18YL+J-3TC_M?zBUP1^sHjDZeOOP3e++K!RW8RBtakD zzR3W+-^==u73dS}&Qw!LW#wFQ%T0WrtS43JF>(klAt@^$t)q2aDB|6hCd$wHJ|%@Q z9i-+p*pKEga4cwL=?q|#VRh^+CZq)GIDTGYkXx$Vitp$x6de?qnohFxM%2diyn-nR zM#@IUpxpzm7HDk;qsQ%%M29H^o4C@@6zE&qFtScQw-@)svbKkSW7}8Ev3bBfQeTC;+q?!C$*5VO9mfA{cS zCNx5r2!aFj@Xkuu+8BZhtC4fEErQ@+;YLLm1>KR8q9@%0_*~z~Y=l+{AWfhWBvx zX%;eC>1*d0ph!}Ebv&>JHyFvHWh7GD6RCdBnn~Q2Te?6q&Td|QVjd$=;#_L(cL1uOo1|X9$_yoH!NcfSXyfR;J;2@Vu%C;B@vk%o79w;_%mry8;}W@#)x6KOGGA$lhXp zu07zjx8i%|?uQ7sZJ`P^S!rh2D6&;mcGDn-NFq!>RRl#NNF5yMgH z`1alsHz7hS5#GFO5r6~3;3#2bMF>#Fr5e!BQYm>!$2`K~r4DbYd~Q(?{(i-R7UZfJ z^Yt#}yzT{NuWuzwrAD8(U03>PyA-v`9LZY7uAr?*xO9ShwW6~<km&Wx36vrM&tOVatH}`LdP2iB8TCK0##ydumeC4U7 zEAS?(#<`iWE>TQ|iONU1a7Myg4?*UOIQF0uf4QUACr3;Si8t}@w7&9=f+F0?ZzhcG z#$RAdr7QW>c+1bIn7f0jhqD>9fpriFp0ir%d|zjEKu4R|$$k%j%*+Wv$W6rKA8om; z!Juz5He|iQZ@-_=f*UId`&!@ulwm;lY?Tu5o(~+fT>k9Q|Cy z^ImC~->a(Rsg-(tiY?gjxUe$N0HFfJK1k_YKF8yrZl5=_%yYsQIJx+hzwm^0G*{LE zkLjjc=0*>~a^D#OMal{6Fp`2(Y5re_B^T+J8~Q6Pe>IBE^3%_ecLVH`aWwoNZHCB# z*QoL-V&LUOEg`cSnuvh2c?VC-j>%HU`8U%#>nLfLHt%i9ys(>qj;n8ngF^~uqMn&> zzW0ktoOU~>zea>P=}B}MY(Z9-o#~d%yr83AVqv&)Af{zv|2pk4I;~{E2~W?fGsEb#oC7|6^(GT2pcVL3{5`Ebp-`;qS2)brp8D4iA)ozqcpFzb6 z^M$D%iew4o_8B_Np=|i8g!eo;!##9VyZ4g~wQi$l@|%5icSWyKq{eio3jv}qtYX+B zEkS+Njw%sJ_tmdnS&6NW3CDiZ^AN&h_6(BjQ6H|<>`97y&nDdID(x8i&37y$WBOGa z&QbKl@BkC|F($C*m5YO=q8i!p`_K>}HVdxRkGVMUmju#~SwVaTUCi zCPi4_QYW+hE|-4xi({O~`|?|@4J13cCqDe~xIbR9PPy=&cW2hadjiQcVjM?wuOL>`q*wLc=Yo60igvZ z2f20qw%?m?!0)lrXXYs6Ta_$Ir3JL^HsHe)1Kue7!+)nd9Npa;>_yNMn`is3_amYu zB4ab~n(E9=AJf7$;9C zgyw#P{pd!O{gH8_{m2es{0D~g3_?2&^QaEpu!@w7R4g;+&5SRcFtJp_$F#B14umDH z+^ww6uFtPQGwT_?b(YO&_c1cmy2UQ7#SWP1>a0#$7?l=B0y!}fpDSNn(|2x4fqLjy zd07b1f>ALe*e2YRlDofYy%hR681A&i>-QzXHxn59AD1k&0v>6rX~jkJ8}Z6fuGO64 zRaeAfx#m0N-Ehk^Q>&S?eKJG}iS@_%Ii9!7aK4sF>zX|vgawsPvZ;fSf(z&t^Di0rM&{ywk02*O@E3 z;O`7g#QpgaRZEMSf0^^YIH3Z?sT95J7GQw>34mg}Dt;PFMr4?!vqqX0zb}6YghN*T zKYs}W@Dw9k)|&dF6!&PE{fo$2aO{MN^el-Gb&4}&=cm0$NPwkq$IXX6Z-c8J_*Xvh zAq=NJ*j>NYIu2^mVYGbW<6pHo)_ z$r%c@9r!O?cE4QM=eE#m86nFKc-52IwZTNDH4(F=mm`9voq-Z=ZQIX(z(`aKF@GcUtnD>s zch&~5l1RiR%d4vgvL&29+M^hscK91G=h6M4LvU@Mci+m(u_n*SkBzRy%KMa8@i(d^ z$1lQ?6rBITP~%y(Y`-U(Hux-R z!q*{xE>d3aJ&lw(wU3X_#7zBv0+V4>AwquetK}72&#Px zgD2;_d>)b#?!fIEKkh6vGde@eL0C!a=<5Bs8>0|S%)O(|L--Yzg~Ao~=;?lMO_w-5 z+bwNru8)Z*9%JEyx*Bvx_?R1($C-fT&6=Lpu7rg`d~KM)oNLw#1beo-d&es(>lHD; zqJpd(Tu66axbxueV>)4Le>_si>XO>bba(9?e%wKG_`mOSEf89agH!S~I{Nc^)i1 z_`8WzR8(ss+rSckbeiUKS?&l>4bzWhu!R6s8HlqR4r!V0f1I@c0!sfj)ws>IUk+;h zt@|wh?qac~`^0nxhlv_LMlc-26!HSk<0Oe@mqXFxCA?c~lCmOGB}(^w2u?jq*!n=x zS1d`}y>t5S0!TQrJL8BTeLO~&Pk`rCyI3MR)fC|n{8en#J(gF25KOuLv?K(sEbj4Q zCygRii-sB&?J0(fD8XS-xEpp#J&164U?2!8DFhsZq@w4s93?(V+l;-LS%i+&VRLzC z`XttmZjpu?lM==5PUv#ZQ!9I`TH z6zGu!Rn8&WM+(9#2C^^wlaW8YPLMZCssgvNQ%)yxuSZ7b_= zL@U|ra4Md|{_>vSI0OQ*3Jzul3JvJalk9RW$=EFYhG$sgMgW~a5rWTQB2UE&|_S`;7?ajke9#8Ot zH>^Ey7XGnb3ZEGuc=xwh>bkgUb;``Gy@JZ(VfWwoIvj0n@%}C8T^)9_B!1 zO;2SbSB{hXR)HdiZ3;U_K*R{ z%8f~``cZu2ZzWvd1m&3nR-K>#t*@=i?iKpdr;J_ZD7xwu{Cwf$j++QvK|w+F5@ccs zOURaErC(<*?a>0-Ir!qC7KxKZWZ#W~_bJ9|u|f!$!{i**zM#)n>el(Vumpyti*zs) zH?5*`5e~MaXWE${)~wK<{>MRIhTA_7XGa#A<}3 zWop#?33J%D;z&a(iKk`vI7?juC7623P;rzC)Oq3U7s36=U1YHaKlvAO)w^%#VIq;) zJs2Hw$NWa>Mq4Z!G^1UAen&Yv|ef48LRyMn~JHr$dnGr7-9{ z(eVVJ8Z(^ADddbNg+Q5xi7qd@9S$&nFgo(^#vka#8oE1U&3Emu$6ErX#%E&4@;!xc z_d7Y)xb2X4EB5~>LakpmMsW=dxEB6YU1-<+OJj}Bv!eDTU9aXasa&I@)s&a?EirZ)n60R#ZIm|3?qAnxptB|Y@l&Uw2e!h;^RwTT`M&%jhE5lAVC$HD`*z66uChOgs54Sa#s4_{IB={YkQHnq z<``kGS|YcbGhQ@%C|Ik#`BWKF#;E96w(twDvv0yQ7c2@c? zIh%|zO*O-RRl60&aqjC;6sP}UW_t7_NcdM1 zc_?S$z{jnyS9h!5I)qRK+G7lOp-9vJJ1Wgd?C`F38Q2%-35pih|B$2bcfSPS7#`f>9IN=}Ien_O0N&*S NX{hKzYaUs>`d@{CXEXo+ literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md new file mode 100644 index 00000000000000..07fd36d89ed482 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -0,0 +1,299 @@ +--- +id: triggers +title: Triggers +--- + + +Un **trigger** es un método asociado a una tabla. Es una propiedad de una tabla. Usted no llama a los triggers; los triggers son llamados automáticamente por el motor de 4D cada vez que manipula registros de la tabla (adición, eliminación, modificación, y carga). Puede escribir triggers muy simples, y luego volverlos más sofisticados. + +Los triggers pueden evitar operaciones “ilegales” en los registros de su base. Son una herramienta muy poderosa que permite controlar las operaciones en tablas, como también evitar perdidas de datos accidentales. Por ejemplo, en un sistema de facturación, puede evitar que un usuario cree una factura sin especificar el cliente al que debe facturarse. + + + + + +## Activar y crear un trigger + +Por defecto, cuando crea una tabla en el entorno Diseño, la tabla no tiene trigger. + +Para utilizar un trigger para una tabla, necesita: + +- Activar el trigger e indicar a 4D cuando llamarlo. +- Escribir el código para el trigger. + + +Activar un trigger que no está escrito o escribir un trigger sin activarlo no afecta las operaciones efectuadas en una tabla. + + +1. Para activar un trigger, seleccione las opciones **Triggers** para la tabla en la ventana de propiedades de la tabla:: + +![](../assets/en/Develop/triggers-set.png) + +2. Para crear un trigger para una tabla, utilice la ventana de propiedades de la tabla, haga clic en el botón **Editar** o presione **Alt** (Windows)/**Opción** (macOS) y doble clic en la tabla en la ventana de estructura. + + +## Descripción de los triggers + +### Al guardar un registro existente + +Si se selecciona esta opción, el trigger se llamará cada vez que se modifique un registro de la tabla. Esto sucede cuando: + +- se modifica un registro en la entrada de datos (entorno Diseño, comando [`MODIFY RECORD`](../commands/modify-record) o el comando SQL `UPDATE`). +- se guarda un registro existente utilizando [`SAVE RECORD`](../commands/save-record). +- se llama un comando que guarda registros existentes (por ejemplo, [`ARRAY TO SELECTION`](../commands/array-to-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), etc.). +- se utiliza función ORDA que guarda la entidad. + +:::note + +Por razones de optimización, el trigger no se llama cuando el registro es guardado por el usuario o vía el comando [`SAVE RECORD`](../commands/save-record) si ningún campo de la tabla ha sido modificado en el registro. Si quiere "forzar" el llamado del trigger en este caso, simplemente puede asignar un campo: + +```4d +[thetable]thefield:=[thetable]thefield +``` + +::: + +### Al borrar un registro + +Si selecciona esta opción, el trigger se llamará cada vez que se borre un registro de la tabla. Esto sucede cuando: + +- Cuando se borra un registro (entorno Diseño o llamando a los comandos [`DELETE RECORD`](../commands/delete-record), [`DELETE SELECTION`](../commands/delete-selection) o al comando SQL `DELETE`). +- Cuando se efectúan operaciones que provocan la eliminación de un registro relacionado por intermedio de las opciones de control de eliminación de una relación +- Cuando se utiliza una función ORDA que elimina la entidad. + +:::note + +El comando [`TRUNCATE TABLE`](../commands/trucate-table) no llama al trigger. + +::: + +### Al guardar un nuevo registro + +Si esta opción se selecciona, el trigger se llamará cada vez que un registro se cree en la tabla, es decir en las siguientes circunstancias: + +- Cuando se añade un registro en la entrada de datos (entorno Diseño, comando [`ADD RECORD`](../commands/add-record) o comando SQL `INSERT`). +- Cuando se crea y guarda un registro con [`CREATE RECORD`](../commands/create-record) y [`SAVE RECORD`](../commands/save-record). Note que el trigger se llama en el momento en que llama [`SAVE RECORD`](../commands/save-record), no cuando se crea. +- Cuando se importan registros (entorno Diseño o utilizando un comando de importación). +- Cuando se llaman otros comandos que crean y/o guardan nuevos registros (por ejemplo, [`ARRAY TO SELECTION`](../commands/array-to-selection), [`SAVE RELATED ONE`](../commands/save-related-one), etc.). +- Cuando se utiliza funciones ORDA como [`ds.dataclass.new()`](../API/DataClassClass.md#new) y [`entity.save()`](../API/EntityClass.md#save). + + +## Eventos de base + +Un trigger puede ser llamado por uno de los cuatro eventos de base descritos anteriormente. En el trigger, puede detectar qué evento está ocurriendo llamando la función [`Trigger event`](../commands/trigger-event). Esta función devuelve un valor numérico que indica el evento de base. + +Generalmente, se escribe un trigger con una estructura de tipo [`Case of`](../Concepts/flow-control.md#case-ofelseend-case) sobre el resultado devuelto por [`Trigger event`](../commands/trigger-event). + + +```4d + //Trigger for [anyTable] +#DECLARE -> $result : Integer +$result:=0 // Asume que la petición será aceptada + Case of + :(Trigger event=On Saving New Record Event) + // Realizar las acciones apropiadas para guardar el nuevo registro creado + :(Trigger event=On Saving Existing Record Event) + // Realizar las acciones apropiadas para guardar un registro existente + :(Trigger event=On Deleting Record Event) + // Realizar las acciones apropiadas para borrar un registro + End case + ``` + + +## Los triggers son funciones + +Un trigger tiene dos propósitos: + +- Efectuar acciones sobre el registro justo antes de que se guarde o borre, o justo después de ser cargado. +- Aceptar o rechazar una operación de base de datos. + + +### Efectuar las acciones + +Cada vez que se guarda un registro (añadido o modificado) a una tabla [Documentos], usted quiere “marcar” el registro con los marcadores de creación y modificación. Puede escribir el siguiente trigger: + +```4d + // Trigger for table [Documents] + Case of + :(Trigger event=On Saving New Record Event) + [Documents]CreationStamp:=myTimeStamp + [Documents]ModificationStamp:=myTimeStamp + :(Trigger event=On Saving Existing Record Event) + [Documents]ModificationStamp:=myTimeStamp + End case +``` + +:::note + +La función *myTimeStamp* utilizada en este ejemplo es un pequeño método de proyecto que devuelve el número de segundos transcurridos desde una fecha elegida arbitrariamente. + +::: + +Una vez este trigger ha sido escrito y activado, no importa de que manera añada o modifique un registro en la tabla de la tabla [Documents] (entrada de datos, importación, método de proyecto, ORDA function), los campos [Documents]CreationStamp y [Documents]ModificationStamp serán asignados automáticamente por el trigger antes de que el registro se escriba en el disco. + + +### Aceptar o rechazar la operación de una base + +Para aceptar o rechazar una operación de la base, el trigger debe devolver un **código de error de trigger** en el resultado de la función. + + +#### ExEjemplo mple + +Tomemos el caso de una tabla [Empleados]. Durante la entrada de datos, usted controla el campo [Empleados]Numero_Seguridad_Social. Por ejemplo, cuando el usuario hace clic en el botón de validación, usted verifica el campo utilizando el método objeto del botón: + + +```4d + // Método objeto bAccept + If(Good SS number([Empleados]Numero_Seguridad_Social)) + ACCEPT + Else + BEEP + ALERT("Introduzca un número de seguridad social y haga clic de nuevo en OK.") + End if +``` + +Si el valor del campo es correcto, acepta la entrada de datos; si el valor del campo no es correcto, muestra una alerta y permanece en entrada de datos. + +Si también crea registros para la tabla [Empleados] por programación, el siguiente código sería válido pero violaría la regla expresada en el método objeto creado anteriormente: + +```4d + // Extracción de un método proyecto + // ... + CREATE RECORD([Empleados]) + [Empleados]Name:="DOE" + SAVE RECORD([Empleados]) // <-- ¡Violación de la regla! El número de seguridad social no ha sido asignado + // ... +``` + +Utilizando un trigger para la tabla [Empleados], puede implementar la regla [Empleados]Numero_Seguridad_Social en todos los niveles de la base. El trigger se vería así: + +```4d + // Trigger for [Empleados] + #DECLARE -> $result : Integer + var $dbEvent : Integer + $result:=0 + $dbEvent:=Trigger event + Case of + :(($dbEvent=On Saving New Record Event)|($dbEvent=On Saving Existing Record Event)) + If(Not(Good SS number([Empleados]Numero_Seguridad_Social))) + $0:=-15050 + Else + // ... + End if + // ... + End case +``` + +Una vez este trigger está escrito y activado, la línea `SAVE RECORD([Empleados])` del método proyecto generará un error base -15050, y el registro NO se guardará. + +De la misma forma, si un plug-in 4D intenta guardar un registro en [Empleados] con un número de seguridad social incorrecto, el trigger generará el mismo error y el registro no se guardará. + +El trigger garantiza que nadie (usuario, desarrollador, plug-in...) pueda violar la regla del número de seguridad social (bien sea deliberada o accidentalmente). + +Note que incluso si no tiene un trigger para una tabla, la base puede devolver errores base cuando se trata de guardar o borrar un registro. Por ejemplo, si intenta guardar un registro con un valor duplicado en un campo indexado único, se devuelve el error -9998. + +Los triggers devuelven nuevos tipos de errores en 4D: + +- 4D administra los errores “normales”: índice único, control de datos relacionales, etc. +- Utilizando triggers, puede crear códigos de errores propios al contenido de su aplicación. + +**Importante**: puede devolver el código de error de su elección. Sin embargo, NO utilice códigos de errores ya utilizados por el motor de 4D. Recomendamos utilizar códigos de error entre -32 000 y -15 000. Nos reservamos los errores superiores a -15 000 para el motor de 4D. + +A nivel del proceso, usted administra los errores trigger de la misma manera que los errores de motor de base de datos: + +- Puede permitir a 4D mostrar la caja de diálogo estándar de error, luego se interrumpe el método. +- Puede utilizar un [método de gestión de errores](../Concepts/error-handling.md) y recuperar el error de la manera apropiada. + + +:::note Notas + +- Durante la entrada de datos, si un error trigger es devuelto mientras intenta validar o borrar un registro, el error se trata como un error de índice único. La caja de diálogo de error se muestra, y permanece en la entrada de datos. Incluso si utiliza una base en el entorno Diseño (no en el entorno Aplicación), usted se beneficia del uso de triggers. +- Cuando se genera un error por un trigger para un registro en el marco de un comando que actúa sobre una selección de registros ([`DELETE SELECTION`](../commands/delete-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), [`ARRAY TO SELECTION`](../commands/array-to-selection)...), el registro no es procesado pero se registra automáticamente en el Locke[`LockedSet`](../Develop/processes.md#elements-of-a-process). El comando continúa su ejecución hasta el final y no se detecta ningún error. No se llama al método de manejo de errores, si lo hay. Para saber si se han generado errores en este contexto, debe probar `LockedSet` justo después de la llamada al comando. Además, en el trigger, debe almacenar códigos de error, en una colección por ejemplo y manejarlos después. + +::: + + +Incluso si un trigger no devuelve un error ($result=0), esto no significa que una operación de la base se efectuará correctamente, puede ocurrir una violación de índice único. Si la operación es la actualización de un registro, el registro puede estar bloqueado, se puede producir un error de entrada/salida puede ocurrir, etc. Estas verificaciones son efectuadas después de la ejecución del trigger. Sin embargo, desde el punto de vista del nivel superior del proceso en ejecución, los errores devueltos por el motor de la base de datos o por un trigger son de la misma naturaleza, un error trigger es un error del motor de la base de datos. + + + +## Triggers y la arquitectura 4D + +Los triggers funcionan al nivel del motor de la base de datos. Este punto se resume en el siguiente diagrama: + +![](../assets/en/Develop/triggers-architecture.png) + +Los triggers se ejecutan en el equipo donde está el motor de la base de datos. Esto es evidente en el caso de 4D en local. En 4D Server, los triggers se ejecutan en el equipo servidor (en el proceso activo) y no en el equipo cliente. + +Cuando se llama un trigger, se ejecuta dentro del contexto del proceso que intenta la operación. Este proceso, invoca la ejecución del trigger y se llama **proceso llamante**.** + +Los elementos incluidos en este contexto difieren si la base se ejecuta con 4D en modo local o con 4D Server: + +- Con 4D en modo local, el trigger funciona con las selecciones actuales, registros actuales, estados de lectura/escritura de las tablas, operaciones de bloqueos de registros, etc., del proceso llamante. +- Con 4D Server, sólo el contexto de base de datos del proceso cliente llamante se conserva (bloqueo de registros, estados transaccionales). +4D Server igualmente garantiza que el registro actual de la tabla del trigger esté correctamente posicionado. +Los otros elementos contextuales (selecciones actuales por ejemplo) son las del proceso del trigger. + +Tenga cuidado cuando utilice otros objetos de la base y del lenguaje del entorno 4D, porque un trigger podría ejecutarse en una maquina diferente de la del proceso que lo llama ¡Este es el caso con 4D Server! + +- **Variables proceso**: cada trigger tiene su propia tabla de variables proceso. Un trigger no tiene acceso a las variables proceso del proceso llamante. +- **Variables locales**: puede utilizar las variables locales en un trigger. Su alcance es la ejecución del trigger; se crean/eliminan en cada ejecución. +- **Semáforos**: un trigger puede probar o fijar semáforos globales y locales (en el equipo donde se ejecuta). Sin embargo, un trigger debe ejecutar rápidamente, de manera que debe ser muy cuidadoso cuando pruebe o defina semáforos dentro de triggers. +- **Conjuntos y selecciones temporales**: si utiliza un conjunto o una selección temporal en un trigger, trabaja en el equipo donde los triggers se ejecutan. +- **Interfaz del usuario**: NO utilice elementos de la interfaz del usuario en un trigger (alertas, mensajes o cajas de diálogo). De la misma forma, debe limitar todo seguimiento de triggers en la [ventana del **Depurador**](../Debugging/debugger.md). Recuerde que en Cliente/Servidor, los triggers se ejecutan en el equipo 4D Server. Un mensaje de alerta en el equipo servidor no ayuda al usuario en un equipo cliente. Deje al proceso llamante administrar la interfaz del usuario. + +Tenga en cuenta que si utiliza el sistema de contraseñas de 4D, puede ejecutar el comando [`Current user`](../commands/current-user) en el trigger con el fin, por ejemplo, de guardar el nombre del usuario en el origen de la llamada del trigger en una tabla con historial, incluso en modo cliente-servidor. + + + +## Triggers y transacciones + +Las [transacciones](./transactions.md) deben administrarse en el nivel del proceso llamante. No deben administrarse a nivel del trigger. Si durante la ejecución del trigger, tiene que añadir, modificar o borrar varios registros, primero debe utilizar el comando [`In transaction`](../commands/in-transaction) desde el trigger para probar si el proceso llamante está en transacción actualmente. Si no es el caso, el trigger podría encontrarse con un registro bloqueado. Por lo tanto, si el proceso llamante no está en transacción, no comienzan las operaciones en los registros y devuelve un error en $0 para indicar al proceso llamante que la operación de la base de datos debe ejecutarse en una transacción. Por otra parte, si encuentra registros bloqueados, el proceso llamante no podrá deshacer las acciones del trigger. + +:::note + +Con el fin de optimizar el funcionamiento combinado de los triggers y transacciones, 4D no llama triggers después de la ejecución de [`VALIDATE TRANSACTION`](../commands/validate-transaction). Esto evita que los triggers se ejecuten dos veces. + +::: + +## Triggers en cascada + +Dada la siguiente estructura de ejemplo: + +![](../assets/en/Develop/triggers-cascade.png) + +Nota: las tablas han sido contraídas; tienen más campos de los que se muestran. + +Supongamos que la base de datos “autoriza” la eliminación de una factura. Podemos examinar cómo sería tratada tal operación a nivel del trigger (porque también podría realizar eliminaciones a nivel del proceso). + +Para conservar la integridad relacional de los datos, la eliminación de una factura requiere las siguientes acciones de parte del trigger de [Facturas]: + +- Disminuir el campo Ventas de la tabla [Clientes], en la cantidad de la factura. +- Borrar todos los registros de [Linea_Factura] relacionados con la factura. +- Esto también implica que el trigger de [Linea_Factura] disminuya el campo Cantidad vendida de los registros [Productos] relacionados con la línea de factura a eliminar. +- Borrar todos los registros de [Pagos] relacionados con la factura borrada. + +Primero, el trigger de [Facturas] debe efectuar estas acciones sólo si el proceso llamante está en transacción, de manera que sea posible deshacer en caso de encontrar un registro bloqueado. + +Segundo, el trigger de [Linea_Factura] está en **cascada** con el trigger de [Facturas]. El trigger [Linea_Factura] se ejecuta dentro de la ejecución del trigger [Facturas], porque la eliminación de los elementos de la lista es consecutiva a una llamada a `DELETE SELECTION` desde el trigger de [Facturas]. + +Imagine que todas las tablas en este ejemplo tienen triggers activados para todos los eventos de la base de datos. La cascada de triggers será: + +- El trigger de [Facturas] se llama porque el proceso llamante borra una factura + - El trigger de [Clientes] se llama porque el trigger de [Facturas] trigger actualiza el campo Ventas_Brutas + - El trigger de [Linea_Factura] se llama porque el trigger [Facturas] borra una línea(repetida) + - El trigger de [Productos] se llama porque el trigger de [Linea_Factura] actualiza el campo Cantidad_Vendida + - El trigger de [Pagos] se llama porque el trigger de [Facturas] borra un pago(repetido) + +En esta cascada, el trigger de [Facturas] se ejecuta en el nivel 1, los triggers de [Clientes], [Linea_Factura], y [Pagos] en el nivel 2 y el trigger de [Productos] en el nivel 3. + +Desde dentro de los triggers, puede utilizar el comando [`Trigger level`](../commands/trigger-level) para detectar el nivel en el cual se ejecuta un trigger. Además, puede utilizar el comando [`TRIGGER PROPERTIES`](../commands/trigger-properties) para obtener información sobre los otros niveles. + +Por ejemplo, si borra un registro de [Productos] a nivel del proceso, el trigger de [Productos] se ejecutará en el nivel 1, no en el nivel 3. + +Con [`Trigger level`](../commands/trigger-level) y [`TRIGGER PROPERTIES`](../commands/trigger-properties), puede identificar la causa de una acción. En nuestro ejemplo, una factura se borra al nivel del proceso. Si borramos un registro de [Clientes] a nivel del proceso, el trigger de [Clientes] debe intentar borrar todas las facturas relacionadas con ese cliente. Esto significa que el trigger [Facturas] será llamado como se llamó anteriormente, pero por otra razón. Desde el trigger de [Facturas], puede detectar si se ejecuta en el nivel 1 ó 2. Si se ejecutó en el nivel 2, puede verificar si fue porque se borro el registro de [Clientes]. Si este es el caso, no tiene que preocuparse en actualizar el campo Ventas_Brutas. + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md new file mode 100644 index 00000000000000..a40afb77231567 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -0,0 +1,18 @@ +--- +id: triggers-new +title: Triggers +--- + + + +## Triggers vs ORDA entity events + +**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +- triggers are handled at the database level, which is the lowest level, +- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. + +Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. + +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9d523d0372f12307a3c33fd6548ca097002c05 GIT binary patch literal 2573 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4a075fd1f5d31dfc589b7b6802c101f4965af0 GIT binary patch literal 29218 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 Ndt+0hD+YEy{u^phHsAmN literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png new file mode 100644 index 0000000000000000000000000000000000000000..b339a988df617267b880eed98b3e29c3130aa8f3 GIT binary patch literal 9750 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 NX{hKzYaUs>`d@{CXEXo+ literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md new file mode 100644 index 00000000000000..c9d7edbfd184e8 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -0,0 +1,285 @@ +--- +id: triggers +title: Triggers +--- + +Un **trigger** est une méthode associée à une table. C'est une propriété d'une table. Vous n'appelez pas un trigger, les triggers sont appelés automatiquement par le moteur de 4D à chaque fois qu'un enregistrement de la table est manipulé (ajout, suppression et modification). Les triggers sont des méthodes qui peuvent éviter des opérations “illégales” dans votre base. Par exemple, dans une facturation, vous pouvez empêcher qu'un utilisateur crée une facture sans spécifier à qui elle doit être adressée. Les triggers sont un outil puissant permettant de contrôler les opérations sur les tables, et d'éviter des pertes de données accidentelles. Vous pouvez créer des triggers très simples et les rendre de plus en plus sophistiqués. + + + + + +## Activer et créer un trigger + +Par défaut, lorsque vous créez une table en mode Développement, la table n'a pas de trigger. + +Pour utiliser un trigger pour une table, vous devez : + +- activer le trigger et indiquer à 4D quand l'appeler. +- créer et écrire le code pour le trigger. + +Activer un trigger qui n'est pas encore écrit ou écrire un trigger sans l'activer n'affecte pas les opérations effectuées sur une table. + +1. Pour activer le trigger, sélectionnez les options **Triggers** pour la table dans la fenêtre de l'Inspecteur de structure : + +![](../assets/en/Develop/triggers-set.png) + +2. Pour créer ou modifier le code d'un trigger pour une table, cliquez sur le bouton **Editer** dans la palette de l'Inspecteur de structure ou double-cliquez sur le titre de la table dans la fenêtre de Structure en appuyant sur la touche **Alt** (Windows)/**Option** (macOS). + + +## Description des triggers + +### Sur sauvegarde enregistrement + +Si cette option est sélectionnée, le trigger sera appelé à chaque fois qu'un enregistrement de la table est modifié, c'est-à-dire dans les circonstances suivantes : + +- Vous modifiez un enregistrement en saisie de données (mode Développement, commande [`MODIFY RECORD`](../commands/modify-record) ou SQL `UPDATE`). +- Vous sauvegardez un enregistrement existant avec [`SAVE RECORD`](../commands/save-record). +- Vous appelez une commande qui provoque la sauvegarde d'un enregistrement existant (par exemple [`ARRAY TO SELECTION`](../commands/array-to-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), etc.). +- Vous utilisez une fonction ORDA qui sauvegarde l'entité. + +:::note + +Pour des raisons d'optimisation, le trigger n'est pas appelé lors de la sauvegarde de l'enregistrement par l'utilisateur ou via la commande [`SAVE RECORD`](../commands/save-record) si aucun champ de la table n'a été modifié dans l'enregistrement. Si vous souhaitez "forcer" l'appel du trigger dans ce cas, il suffit d'auto-affecter un champ : + +```4d +[thetable]thefield:=[thetable]thefield +``` + +::: + +### Sur suppression enregistrement + +Si cette option est sélectionnée, le trigger sera appelé à chaque fois qu'un enregistrement de la table est supprimé, c'est-à-dire dans les circonstances suivantes : + +- Vous supprimez un enregistrement en mode Développement ou en appelant la commande [`DELETE RECORD`](../commands/delete-record), [`DELETE SELECTION`](../commands/delete-selection) ou SQL `DELETE`. +- Vous effectuez des opérations qui provoquent la suppression d'un enregistrement lié par l'intermédiaire des options de contrôle de suppression d'un lien. +- Vous utilisez une fonction ORDA qui supprime une entité. + +:::note + +La commande [`TRUNCATE TABLE`](../commands/trucate-table) ne provoque PAS l'appel du trigger. + +::: + +### Sur sauvegarde nouvel enregistrement + +Si cette option est sélectionnée, le trigger sera appelé à chaque fois qu'un enregistrement est créé dans la table, c'est-à-dire dans les circonstances suivantes : + +- Vous ajoutez un enregistrement lors de la saisie de données (mode Développement, commande [`ADD RECORD`](../commands/add-record) ou SQL `INSERT` command). +- Vous créez puis sauvegardez un enregistrement avec [`CREATE RECORD`](../commands/create-record) et [`SAVE RECORD`](../commands/save-record). Notez que le trigger est appelé au moment où vous exécutez [`SAVE RECORD`](../commands/save-record), et non quand il est réellement créé. +- Vous importez des enregistrements (mode Développement ou commandes du langage). +- Vous appelez d'autres commandes qui créent et/ou sauvegardent de nouveaux enregistrements (par exemple [`ARRAY TO SELECTION`](../commands/array-to-selection), [`SAVE RELATED ONE`](../commands/save-related-one), etc.). +- Vous utilisez des fonctions ORDA telles que [`ds.dataclass.new()`](../API/DataClassClass.md#new) et [`entity.save()`](../API/EntityClass.md#save). + + +## Evénements moteur + +Un trigger peut être invoqué pour l'un des trois événements moteur décrits ci-dessus. Dans le trigger, vous détectez quel événement a lieu en appelant la commande [`Trigger event`](../commands/trigger-event). Cette commande retourne une valeur numérique qui indique l'événement moteur. + +Typiquement, vous écrivez un trigger avec une structure du type [`Case of` structure](../Concepts/flow-control.md#case-ofelseend-case) sur le résultat retourné par [`Trigger event`](../commands/trigger-event) : + + +```4d + //Trigger for [anyTable] +#DECLARE -> $result : Integer +$result:=0 // On suppose que la requête sera acceptée + Case of + :(Trigger event=On Saving New Record Event) + // Effectuer les actions appropriées pour sauvegarder l'enregistrement nouvellement créé + :(Trigger event=On Saving Existing Record Event) + // Effectuer les actions appropriées pour sauvegarder l'enregistrement déjà existant + :(Trigger event=On Deleting Record Event) + // Effectuer les actions appropriées pour détruire l'enregistrement + End case + ``` + + +## Les triggers sont des fonctions + +Un trigger a deux finalités : + +- Effectuer des actions sur l'enregistrement juste avant qu'il soit sauvegardé ou supprimé. +- Accepter ou rejeter une opération de base de données. + + +### Effectuer des actions + +A chaque fois qu'un enregistrement est sauvegardé (ajouté ou modifié) dans une table [Documents], vous souhaitez estampiller l'enregistrement avec des marqueurs de création et de modification. Vous pouvez écrire le trigger suivant : + +```4d + // Trigger pour la table [Documents] + Case of + :(Trigger event=On Saving New Record Event) + [Documents]CreationStamp:=myTimeStamp + [Documents]ModificationStamp:=myTimeStamp + :(Trigger event=On Saving Existing Record Event) + [Documents]ModificationStamp:=myTimeStamp + End case +``` + +:::note + +La fonction *myTimeStamp* utilisée dans cet exemple est une petite méthode projet retournant le nombre de secondes écoulées depuis une date choisie arbitrairement. + +::: + +Une fois que ce trigger a été écrit et activé, peu importe la façon dont vous ajoutez ou modifiez un enregistrement dans la table [Documents] (saisie de données, import, méthode projet, ORDA...), la valeur des deux champs [Documents]CreationStamp et [Documents]ModificationStamp sera automatiquement assignée par le trigger avant que l'enregistrement ne soit écrit sur disque. + + +### Accepter ou rejeter l'opération + +Pour accepter ou rejeter une opération de base de données, le trigger doit **retourner un code d'erreur de trigger** dans le résultat de la fonction. + +#### Example + +Prenons le cas d'une table [Employees]. Pendant la saisie de données, vous contrôlez le champ de numéro de sécurité sociale. Par exemple, lorsque l'utilisateur clique sur le bouton de validation, vous vérifiez le champ utilisant la méthode objet du bouton : + +```4d + // Méthode objet bouton bAccept + If(GoodSSnumber([Employees]SSNumber)) + ACCEPT + Else + BEEP + ALERT("Saisissez un numéro de sécurité sociale et cliquez sur OK.") + End if +``` + +Si la valeur du champ est correcte, vous acceptez la saisie de données, sinon vous affichez une alerte et restez en saisie de données. + +Si vous créez aussi des enregistrements pour la table [Employees] par programmation, le code ci-dessous serait valide MAIS violerait la règle imposée dans la méthode objet créée plus haut : + +```4d + // Extrait d'une méthode projet + // ... + CREATE RECORD([Employees]) + [Employees]Name:="DOE" + SAVE RECORD([Employees]) // <-- violation de la règle ! Il n'y a pas de numéro de sécurité sociale ! + // ... +``` + +En utilisant un trigger pour la table [Employees], vous pouvez appliquer la contrainte sur [Employees]SSNumber à tous les niveaux de la base. Le trigger serait du type : + +```4d + // Trigger pour [Employees] + #DECLARE -> $result : Integer + var $dbEvent : Integer + $result:=0 + $dbEvent:=Trigger event + Case of + :(($dbEvent=On Saving New Record Event)|($dbEvent=On Saving Existing Record Event)) + If(Not(GoodSSnumber([Employees]SSNumber))) + $result:=-15050 + Else + // ... + End if + // ... + End case +``` + +Une fois que ce trigger est écrit et activé, la ligne SAVE RECORD([Employees]) de la méthode projet ci-dessus génèrera une erreur moteur -15050 et l'enregistrement ne sera PAS sauvegardé. + +De la même façon, si un plug-in 4D essayait de sauvegarder un enregistrement dans [Employees] avec un numéro de sécurité sociale incorrect, le trigger génèrerait la même erreur et l'enregistrement ne serait pas sauvegardé non plus. + +Le trigger garantit que personne (utilisateur, développeur, plug-in...) ne peut violer la règle sur le numéro de sécurité sociale (à dessein ou par erreur). + +Notez que même si vous n'avez pas créé de trigger pour une table, la base peut retourner des erreurs moteur lorsque vous essayez de sauvegarder ou de détruire un enregistrement. Vous pouvez, par exemple, recevoir l'erreur -9998, si vous essayez de sauvegarder un enregistrement. + +Ainsi, les triggers retournent des erreurs moteur de base de données supplémentaires dans 4D : + +- 4D gère les erreurs “normales” : index unique, contrôles relationnels, etc. +- En utilisant les triggers, vous pouvez créer des codes d'erreurs propres à votre application. + +**Important** : Vous pouvez retourner le code d'erreur de votre choix. Cependant, n'utilisez pas des codes d'erreurs déjà utilisés par le moteur de 4D. Nous vous recommandons fortement d'utiliser des codes compris entre -32000 et -15000. Nous réservons les erreurs supérieures à -15000 au moteur de 4D. + +Au niveau du process, vous gérez les erreurs trigger de la même façon que les erreurs du moteur de base de données : + +- vous pouvez laisser 4D afficher la boîte de dialogue standard d'erreur, la méthode est alors interrompue. +- vous pouvez utiliser une [méthode de gestion d'erreur](../Concepts/error-handling.md) et traiter l'erreur de façon appropriée (à l’exception des commandes qui agissent sur une sélection d’enregistrements, voir la note ci-dessous). + +:::note Notes + +- Pendant la saisie, si une erreur trigger est retournée au moment où vous essayez de valider ou de supprimer un enregistrement, l'erreur est gérée comme une erreur sur un index unique. La boîte de dialogue d'erreur est affichée et vous restez en saisie de données. Même si vous n'utilisez une base qu'en mode Développement (et non en Application), vous bénéficiez des triggers. +- Lorsqu'une erreur est générée par un trigger pour un enregistrement dans le cadre d'une commande qui agit sur une sélection d'enregistrements (telle que [`DELETE SELECTION`](../commands/delete-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), [`ARRAY TO SELECTION`](../commands/array-to-selection)...), l'enregistrement n'est pas traité mais automatiquement enregistré dans le [LockedSet du process](../Develop/processes.md#elements-of-a-process). La commande poursuit son exécution jusqu’à la fin, et aucune erreur ne peut être identifiée. Le cas échéant, la méthode de traitement des erreurs, n’est pas appelée. Pour savoir si des erreurs ont été générées dans ce contexte, vous devez tester le `LockedSet` juste après l’appel de commande. De plus, dans le trigger, vous devez stocker des codes d’erreur, dans une collection par exemple, et les manipuler par la suite. + +::: + +Même si un trigger ne retourne pas d'erreur ($result=0), cela ne signifie pas qu'une opération de la base s'effectuera correctement. Il peut y avoir eu un doublon sur l'index unique. Si l'opération est la mise à jour d'un enregistrement, ce dernier peut être verrouillé, une erreur d'entrée/sortie peut se produire, bien d'autres choses encore peuvent arriver. Ces vérifications sont effectuées après l'exécution du trigger. Cependant, du point de vue du plus haut niveau du process en exécution, les erreurs retournées par le moteur de la base de données ou celle d'un trigger sont de même nature : une erreur trigger est une erreur du moteur de la base de données. + + +## Les triggers et l'architecture 4D + +TrLes triggers sont exécutés au niveau du moteur de la base de données. Ce point est illustré dans le schéma suivant : + +![](../assets/en/Develop/triggers-architecture.png) + +Les triggers sont exécutés sur la machine où est situé le moteur de la base de données. Si ce point est une évidence dans le cas de 4D en local, il convient de rappeler que pour 4D Server, les triggers sont exécutés sur la machine serveur (dans le process "jumeau" du process ayant déclenché le trigger) et non sur la machine cliente. + +Quand un trigger est appelé, il s'exécute dans le contexte du process qui tente l'opération. Ci-dessous, ce process est appelé **process appelant** l'exécution du trigger. Les éléments inclus dans ce contexte diffèrent suivant que la base est exécutée avec 4D en mode local ou avec 4D Server : + +- avec 4D en mode local, le trigger fonctionne avec les sélections courantes, les enregistrements courants, les statuts lecture/écriture des tables, les verrouillages d'enregistrements, etc., du process appelant. +- avec 4D Server, seul le contexte de base de données du process client appelant est préservé (verrouillages d'enregistrements et statut transactionnel). 4D Server garantit également (et uniquement) que l'enregistrement courant de la table du trigger est correctement positionné. Les autres éléments contextuels (sélections courantes par exemple) sont ceux du process du trigger. + +Soyez prudent lorsque vous utilisez les autres objets de la base et du langage, car un trigger peut s'exécuter sur une machine différente de celle du process appelant : c'est le cas avec 4D Server ! + +- **Variables process** : Chaque trigger possède sa propre table de variables process. Un trigger n'a pas accès aux variables process du process appelant. +- **Variables locales** : Vous pouvez utiliser des variables locales dans un trigger. Leur aire d'action est l'exécution du trigger (elles sont créées/détruites au cours de cette exécution). +- **Sémaphores** : Un trigger peut tester ou placer des sémaphores globaux et locaux (sur la machine où il s'exécute dans ce dernier cas). Cependant, un trigger doit s'exécuter rapidement. En conséquence, utilisez plutôt des sémaphores locaux dans un trigger, sauf si vous avez une idée précise en tête. +- **Ensembles et sélections temporaires** : Si vous utilisez un ensemble ou une sélection temporaire dans un trigger, vous travaillez alors avec ceux de la machine où les triggers s'exécutent. En client/serveur, les ensembles et sélections temporaires "process" (dont le nom ne débute ni par $ ni par <>) créés sur le client sont visibles dans un trigger. +- **Interface utilisateur** : N'utilisez PAS d'éléments d'interface utilisateur dans un trigger (alerte, message ou dialogue). Cela signifie également que tracer le trigger dans la [fenêtre du Débogueur](../Debugging/debugger.md) doit être limité. Souvenez-vous que les triggers en client/serveur s'exécutent sur la machine 4D Server. Un message d'alerte affiché sur le poste serveur ne dit pas grand chose à l'utilisateur qui, lui, travaille sur sa machine cliente. Laissez le process appelant gérer l'interface utilisateur. + +A noter que, en client/serveur, si vous utilisez le système de mots de passe de 4D, vous pouvez exécuter la commande [`Current user`](../commands/current-user) dans le trigger afin, par exemple, de stocker dans une table journal le nom de l'utilisateur à l'origine de l'appel du trigger. + + +## Triggers et transactions + +Les [transactions](./transactions.md) doivent être gérées au niveau du process appelant. Il est fortement déconseillé de gérer des transactions au niveau du trigger. Si, pendant l'exécution d'un trigger, vous devez ajouter, modifier ou détruire plusieurs enregistrements et souhaitez garantir l'intégrité de vos données à l'aide d'une transaction, vous devez d'abord tester (à partir du trigger) si le process appelant est en cours de transaction avec la commande [`In transaction`](../commands/in-transaction). En effet, si ce n'est pas le cas et si le trigger rencontre un enregistrement verrouillé, le process appelant n'aura aucun moyen d'annuler a posteriori les actions déjà effectuées par le trigger. Par conséquent, si vous n'êtes pas en transaction, ne commencez pas les opérations à exécuter, et retournez simplement une erreur dans $0 afin de signaler au process appelant que l'opération de base de données doit être exécutée dans une transaction. + +:::note + +Afin d'optimiser le fonctionnement combiné des triggers et des transactions, 4D n'appelle PAS les triggers lors d'un [`VALIDATE TRANSACTION`](../commands/validate-transaction). Cela évite que les triggers soient exécutés deux fois. + +::: + + +## Triggers en cascade + +Prenons l'exemple de la structure suivante : + +![](../assets/en/Develop/triggers-cascade.png) + +Note : Les tables ont été contractées (il y a davantage de champs). + +Admettons que la base “autorise” la suppression d'une facture. Voyons comment une telle opération serait gérée au niveau du trigger (puisque vous pourriez aussi décider d'effectuer l'opération au niveau du process). + +Afin que soit maintenue l'intégrité relationnelle des données, la suppression d'une facture requiert les actions suivantes de la part du trigger de [Invoices] : + +- Décrémenter le champ Ventes de la table [Customers] du montant de la facture. +- Supprimer tous les enregistrements de [Line Items] liés à la facture. +- Ceci implique aussi que le trigger de [Line Items] décrémente le champ Quantité vendue des enregistrements [Products] liés à la ligne de facture que l'on s'apprête à supprimer. +- Supprimer tous les enregistrements de [Payments] liés à la facture. + +Tout d'abord, le trigger de Invoices ne doit effectuer ces actions que si le process appelant est en transaction, afin qu'une annulation rétroactive soit possible en cas de rencontre d'un enregistrement verrouillé. + +Deuxièmement, le trigger de [Line Items] est **en cascade** avec le trigger de Invoices. Le premier s'exécute "à l'intérieur" du second parce que la destruction des éléments de la liste est consécutive à un appel à `DELETE SELECTION` dans le trigger de Invoices. + +Admettons que toutes les tables dans cet exemple ont des triggers activés pour tous les événements de la base de données. La cascade des triggers sera : + +- Le trigger de Invoices est appelé car le process appelant supprime une facture + - Le trigger de Customers est appelé car le trigger Invoices met à jour le champ Ventes + - Le trigger de Line Items est appelé car le trigger Invoices supprime une ligne (ce qui est répété) + - Le trigger de Products est appelé car le trigger Line Items met à jour le champ Quantité vendue + -Le trigger de Payments est appelé car le trigger Invoices supprime un paiement (ce qui est répété) + +Dans cette cascade, le trigger de Invoices s'exécute au niveau 1, les triggers [Customers], [Line Items] et [Payments] au niveau 2 et le trigger [Products] au niveau 3. + +Dans les triggers, vous pouvez détecter à quel niveau un trigger est exécuté grâce à la commande [`Trigger level`](../commands/trigger-level). De plus, vous pouvez aussi obtenir des informations sur les autres niveaux en utilisant la commande [`TRIGGER PROPERTIES`](../commands/trigger-properties). + +Si, par exemple, vous détruisiez un enregistrement [Products] à un niveau process, le trigger de [Products] s'exécuterait au niveau 1, non au niveau 3, comme plus haut. + +Avec [`Trigger level`](../commands/trigger-level) et [`TRIGGER PROPERTIES`](../commands/trigger-properties), vous pouvez identifier la raison d'une action. Dans l'exemple ci-dessus, une facture est supprimée au niveau process. Prenons pour hypothèse que nous voulons détruire un enregistrement [Customers] au niveau process. Le trigger de [Customers] devrait alors être conçu pour détruire toutes les factures liées à ce client. Cela signifie que le trigger Invoices devrait être invoqué comme plus haut, mais pour une autre raison. Du trigger Invoices, vous pouvez détecter si le niveau est 1 ou 2. S'il est 2, vous pouvez vérifier si oui ou non c'est à cause de la suppression de l'enregistrement Customer lui-même. Si tel est le cas, vous n'avez même plus besoin de vous préoccuper de la mise à jour du champ Ventes. + + + + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md new file mode 100644 index 00000000000000..a40afb77231567 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -0,0 +1,18 @@ +--- +id: triggers-new +title: Triggers +--- + + + +## Triggers vs ORDA entity events + +**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +- triggers are handled at the database level, which is the lowest level, +- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. + +Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. + +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9d523d0372f12307a3c33fd6548ca097002c05 GIT binary patch literal 2573 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 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4a075fd1f5d31dfc589b7b6802c101f4965af0 GIT binary patch literal 29218 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 Ndt+0hD+YEy{u^phHsAmN literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png new file mode 100644 index 0000000000000000000000000000000000000000..b339a988df617267b880eed98b3e29c3130aa8f3 GIT binary patch literal 9750 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 NX{hKzYaUs>`d@{CXEXo+ literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md new file mode 100644 index 00000000000000..4647100a289355 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -0,0 +1,307 @@ +--- +id: triggers +title: トリガ +--- + + +トリガーはテーブルに付属するメソッドであり、テーブルのプロパティです。トリガーを呼び出す必要はありません。テーブルレコードを操作 (追加、削除、修正) するたびに4Dのデータベースエンジンが自動的に呼び出します。まず簡単なトリガーを記述し、後からより洗練されたものにすることができます。 + +トリガーを使用すれば、データベースのレコードに対して "不正な" 操作が行われるのを防ぐことができます。偶発的なデータの紛失や改ざんを防ぎ、テーブル上での操作を制限することのできる非常に強力なツールです。例えば請求書システムにおいては、請求書の送付先である顧客を指定せずに誰かが請求書を追加するのを防止することができます。 + + + + + + +## トリガーのアクティブ化と作成 + +デザインモードでテーブルを作成したときには、デフォルトでテーブルにトリガーがありません。 + +テーブルのトリガーを使用するには、以下を実行する必要があります。 + +- トリガーをアクティブにし、4Dに対してトリガーをいつ起動すべきか知らせる。 +- トリガー用のコードを記述する。 + +まだメソッドとして記述されていないトリガーをアクティブにする、あるいはトリガーをアクティブにしないでメソッドに記述しても、テーブルに対して実行される操作に影響を与えることはありません。 + +1. トリガをアクティブにする +テーブルのトリガーをアクティブにするには、ストラクチャーの**インスペクタ**ーウィンドウでテーブルのトリガー オプション (データベースイベント) を選択しなければなりません。 + +![](../assets/en/Develop/triggers-set.png) + +2. トリガを作成する +テーブルのトリガーを作成するには、**エクスプローラー**を使用するか、ストラクチャーエディターのインスペクターウィンドウにある**編集...** ボタンをクリックするか、Alt (Windowsの場合) または Option (Mac OSの場合) キーを押して、ストラクチャーエディターのテーブルタイトルをダブルクリックしてください。 + + + + +## トリガーの説明 + +### 既存レコード保存時 + +このオプションを選択すると、テーブルのレコードが修正されるたびに、トリガーが起動します。 +以下の場合にトリガーが起動します。 + +- データ入力時にレコードを修正する (デザインモード、 [`MODIFY RECORD`](../commands/modify-record)コマンド またはUPDATEコマンド等を使用) 。 +- [`SAVE RECORD`](../commands/save-record)を使用して既存レコードを保存する。 +- 既存レコードを保存するコマンドを使用する [`ARRAY TO SELECTION`](../commands/array-to-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection)など) 。 +- [`SAVE RECORD`](../commands/save-record) コマンドを呼び出すプラグインを使用する。 + +注: 最適化のため、ユーザーがレコードを保存したり[`SAVE RECORD`](../commands/save-record)コマンドでレコードが保存されたりする際、レコードのフィールドが全く変更されていなければ、トリガーは呼び出されません。トリガーを強制的に呼び出したいときは、フィールドに同じ値を代入します: + +```4d +[thetable]thefield:=[thetable]thefield +``` + +::: + +### レコード削除時 + +このオプションを選択すると、テーブルのレコードが削除されるたびに、トリガーが起動します。 +以下の場合にトリガが起動します。 + +- レコードを削除する (デザインモード、[`DELETE RECORD`](../commands/delete-record)コマンド、[`DELETE SELECTION`](../commands/delete-selection)コマンドまたはSQLのDELETEコマンドを使用する) 。 +- リレートの削除制御オプションによって、リレート先レコードの削除を引き起こす何らかの操作を実行する。 +- DELETE RECORDコマンドを呼び出すプラグインを使用する。 + +:::note + +[`TRUNCATE TABLE`](../commands/trucate-table) コマンドはトリガーを呼び出しません。 + +::: + +### 新規レコード保存時 + +このオプションを選択すると、レコードがテーブルに追加されるたびに、トリガーが起動します。 + +以下の場合にトリガーが起動します。 + +- データ入力時にレコードを追加する(デザインモード、[`ADD RECORD`](../commands/add-record)コマンド または SQLのINSERTコマンド等を使用) 。 +- [`CREATE RECORD`](../commands/create-record) や [`SAVE RECORD`](../commands/save-record)を使用してレコードを作成し、保存する。トリガーは[`SAVE RECORD`](../commands/save-record)を呼び出したときに起動します。レコードを作成したときではありません。 +- レコードを読み込む (デザインモード、または読み込みコマンドを使用して) 。 +- 新規レコードを作成または保存するコマンドを使用する ([`ARRAY TO SELECTION`](../commands/array-to-selection), [`SAVE RELATED ONE`](../commands/save-related-one)など) 。 +- [`CREATE RECORD`](../commands/create-record) や [`SAVE RECORD`](../commands/save-record)コマンドを呼び出すプラグインを使用する。 + + +## データベースイベント + +トリガーは、前述の3つのデータベースイベントのいずれかに対して起動することができます。トリガー内で[`Trigger event`](../commands/trigger-event) 関数を呼び出すことによって、どのイベントが発生しているかを検出します。この関数はデータベースイベントを示す数値を返します。 + +一般的には、[`Trigger event`](../commands/trigger-event) から返される結果に関して、 [Case of](../Concepts/flow-control.md#case-ofelseend-case) ストラクチャーを用いて、トリガーを記述します。Trigger Events テーマの定数を使用できます。 + +```4d + //トリガー用の[anyTable] テーブル +#DECLARE -> $result : Integer +var $event_l : Integer +$result:=0 // データベースリクエストが許可されると仮定する +$event_l:=Trigger event // データベースイベントを取得 + Case of + :($event_l=On Saving New Record Event) + // 新規に作成されたレコードの保存のために適切な動作 (アクション) を実行する + :($event_l=On Saving Existing Record Event) + // 既存のレコードの保存のために適切な動作を実行する + :($event_l=On Deleting Record Event) + // レコードの削除のために適切な動作を実行する + End case + ``` + + +## トリガと関数 + +トリガーには、2つの目的があります。 + +レコードが保存、削除される前に、レコードに対して動作 (アクション) を実行する。 +データベース操作を許可または拒絶する。 +. + + +### 動作を実行する + +[Documents] テーブルにレコードが保存 (追加または修正) されるたびに、作成時を示すタイムスタンプと最新の修正時を示すタイムスタンプでレコードを "マーク" したいとします。この場合、以下のようなトリガーを記述できます。 + + +```4d + //トリガー用の [Documents] テーブル +var $event_l : Integer + $event_l:=Trigger event + Case of + :($event_l=On Saving New Record Event) + [Documents]Creation Stamp:=Time stamp + [Documents]Modification Stamp:=Time stamp + :($event_l=On Saving Existing Record Event) + [Documents]Modification Stamp:=Time stamp + End case +``` + +:::note + +この例題で使用している Time stamp 関数は、固定日付が任意に選択された時点から経過数秒を返す小さなプロジェクトメソッドです + +::: + +いったんこのトリガーを記述してアクティブにすると、ユーザーがどのような方法で [Documents] テーブルにレコードを追加または修正しても (データ入力、読み込み、プロジェクトメソッド、4Dプラグイン) 、レコードが最終的にディスクに書き込まれる前に、トリガーによって、[Documents]Creation Stamp フィールドと [Documents]Modification Stamp フィールドに自動的に日付が割り当てられます。 + + +### データベース操作を許可または拒絶する + +データベース操作を許可または拒絶するために、トリガーは、戻り値 $result にトリガーエラーコードを返さなければなりません。 + + +#### 例題 + +[Employees] テーブルの場合を取り上げてみましょう。データ入力時に、[Employees]Social Security number フィールドで規則を強制します。確認ボタンをクリックする際に、ボタンのオブジェクトメソッドを使用してそのフィールドをチェックします。 + +```4d + // bAcceptボタンのオブジェクトメソッド + If(Good SS number([Employees]SS number)) + ACCEPT + Else + BEEP + ALERT("Enter a Social Security number then click OK again.") + End if + +``` +フィールド値が有効な場合、データ入力を受け入れます。フィールド値が無効な場合、警告を表示して、データ入力の状態になります。 + +[Employees] レコードをプログラムで作成した場合、以下のコードはプログラムとしては正当ですが、前述のオブジェクトメソッドで強制した規則に違反します。 + +```4d + //プロジェクトメソッドから抽出する + // ... + CREATE RECORD([Employees]) + [Employees]Name:="DOE" + SAVE RECORD([Employees]) ` <-- DB規則の違反! 保険証番号は保存されない! + // ... +``` + +[Employees] テーブルのトリガーを使用して、データベースのすべてのレベルで[Employees]SS number の規則を強制することができます。トリガーは以下のようになります。 + +```4d + // Trigger for [Employees] + #DECLARE -> $result : Integer + var $result : Integer + $result:=0 + $dbEvent:=Trigger event + Case of + :(($dbEvent=On Saving New Record Event)|($dbEvent=On Saving Existing Record Event)) + If(Not(Good SS number([Employees]SS number))) + $0:=-15050 + Else + // ... + End if + // ... + End case +``` + +いったんこのトリガーを記述しアクティブにすると、SAVE RECORD([Employees]) 行はデータベースエンジンエラー-15050を生成し、そのレコードは保存されません。 + +同様に4Dプラグインが無効な保険証番号で[Employees] レコードを保存しようとしても、トリガーは同じエラーを生成しレコードは保存されません。 + +トリガーを使用すれば、誰も (ユーザー、データベース設計者、プラグイン) 保険証番号の規則を故意にまたは偶発的に違反できないことが保証されます。 + +テーブルのトリガーが無くても、レコードを保存または削除しようとしているときに、データベースエンジンエラーが生じる場合があるので注意してくださ い。例えば、重複不可属性を持つインデックスフィールドで重複する値を持つレコードを保存しようとすると、エラー-9998が返されます。 + +したがって、エラーを返すトリガーは、新しいデータベースエンジンエラーをアプリケーションへ追加します。 + +4Dは "通常" エラー、すなわち重複不可のインデックス、リレーショナルデータのコントロールなどを管理します。 +トリガーを使用して、開発者はアプリケーションに固有のカスタムエラーを管理できます。 +**重要**: エラーコード値は任意のものを返すことができます。ただし、4Dデータベースエンジンによって既に確保されているエラーコードは使用できません。 -32000 から -15000 の間のエラーコードを使用することを強く勧めます。 -15000を超えるエラーコードは、データベースエンジン用に予約されています。 + +プロセスレベルでは、データベースエンジンエラーと同じ方法で、トリガーエラーを処理します。 + +4Dに標準のエラーダイアログボックスを表示させ、その後メソッドが停止します。 +ON ERR CALLでインストールしたエラー処理メソッドを使用して、適切な方法でエラーから回復します。 + +:::note 注 + +- データ入力時に、レコードを受け入れまたは削除しようとしているときにトリガーエラーが返されると、エラーは重複不可なインデックスエラーのように処理されます。エラーダイアログが表示され、データ入力状態になります。デザインモード (アプリケーションモードでなく) でデータベースを使用する場合でも、トリガーを使用することのメリットが得られます。 +- レコードのセレクションで動作しているコマンドのフレームワーク内のトリガーによってエラーが生成されると ([`DELETE SELECTION`](../commands/delete-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), [`ARRAY TO SELECTION`](../commands/array-to-selection)など)レコードは処理されず、自動的にLockedSet に登録されます(セット 参照)。コマンドは終わりまで実行が続けられ、このときエラーはキャッチされません。つまりエラーハンドリングメソッドは(あったとしても)呼び出されません。このコンテキストにおいて、エラーが生成されたかどうかを確認するためには、コマンドの呼び出しの直後にLockedSet をテストする必要があります。また、トリガでは、エラーをあとで適切に管理するためには、エラーコードを例えばコレクションなどに保存する必要があります。 + +::: + + +トリガーがエラーを返さないからといって ($result=0) 、データベース操作が成功したという意味ではありません。重複不可なインデックス違反が生じる場合があります。操作がレコードの更新である場合、レコードがロックされたり I/O エラーが生じたりすることがあります。トリガーの実行後にチェックが終了します。ただしプロセスを実行する高レベルにおいては、データベースエンジンまたはトリガーによって返されるエラーは同じものです。トリガーエラーはデータベースエンジンエラーです。 + + +## トリガーと4Dアーキテクチャ + +トリガーはデータベースエンジンレベルで実行されます。以下の図にその様子をまとめています。 + +![](../assets/en/Develop/triggers-architecture.png) + +データベースエンジンが実際に配置されているマシンでトリガーは実行されます。これはシングルユーザー版の4Dでは明白です。4D Serverではクライアントマシンではなく、サーバーマシン (トリガーを起動させるプロセスの "対の" プロセスで) 上で動作しているプロセス内でトリガーは実行されます。 + +トリガーが起動される場合、トリガーはデータベース操作を実行しようとするプロセスのコンテキスト内で実行されます。トリガーの実行を引き起こすこのプロセスは**起動プロセス**と呼ばれます。 +コンテキストに含まれるエレメントは、データベースが4Dのローカルモードで実行されたか、または4D Serverで実行されたかにより異なります。 + +4Dのローカルモードでは、トリガーは起動プロセスのカレントセレクション、カレントレコードテーブルの読み/書き状態、およびレコードロック操作を用いて動作します。 +4D Serverでは、起動クライアントプロセスのデータベースのコンテキストのみが保持されます (ロックされたレコードやトランザクションの状態など) 。また4D Serverはトリガーのテーブルのカレントレコードが正確に配置されていることのみを保証します。コンテキストの他の要素 (例えばカレントセレクション) はトリガープロセスのものです。 +4D環境の他のデータベースオブジェクトや言語オブジェクトは注意して使用してください。これは、トリガーが起動プロセスのマシンとは別のマシン上で実行される可能性があるためです。4D Serverがこれに当てはまります。 + +- **プロセス変数**: 各トリガーは独自のプロセス変数テーブルを持っています。トリガーは、トリガーを起動する元となったプロセスのプロセス変数にアクセスすることはできません。 +- **ローカル変数**: トリガー内でローカル変数を使用できます。その有効範囲はトリガーの実行中です。ローカル変数はトリガーの実行のたびに作成され、削除されます。 +- **セマフォー**: トリガー、(トリガーが実行されるマシン上の) ローカルセマフォーだけでなく、グローバルセマフォーもテスト、または設定できます。ただしトリガーは即座に実行されなければならないため、トリガー内か らセマフォーをテストまたは設定する場合には、十分な注意が必要です。 +- **セットと命名セレクション**: トリガー内からセットまたは命名セレクションを使用する場合、トリガーが実行されるマシン上で作業することになります。クライアント/サーバーモードでは、クライアントマシン上で作成されるプロセスセットとプロセス命名セレクションは、トリガー内で可視です。 +- **ユーザーインターフェース**: トリガー内でユーザーインターフェースエレメントを使用してないでください (警告、メッセージ、ダイアログボックスを使用しない) 。したがって、トリガーのトレースはデバッグウィンドウに限定する必要があります。クライアント/サーバーでは、トリガーは4D Server上で実行されることを覚えておいてください。サーバーマシン上で警告メッセージを表示しても、クライアント上のユーザーの助けにはなりません。起動プロセスにユーザインターフェースの処理も行わせるようにしてください。 + + +4Dパスワードシステムを使用した場合、トリガー内で[`Current user`](../commands/current-user) コマンドを使用できることに注意して下さい。これを使用すると、例えばジャーナルを取っているテーブルのトリガー呼び出し元にユーザー名を保存することができます(クライアント・サーバーモードにおいても可能です)。 + + + +## トリガとトランザクション + +トランザクションは起動プロセスレベルで処理されなければなりません。トリガーレベルでトランザクションを管理してはいけません。一つのトリガーを実行してい る間に、複数のレコード (下記の例を参照) を追加、修正、削除する必要がある場合、最初にトリガー内から[`In transaction`](../commands/in-transaction)コマンド を使用して、起動プロセスが現在トランザクション内にあるかどうかテストしなければなりません。そうでない場合には、トリガーがロックされたレコードに出く わす可能性があります。そのため、起動プロセスがトランザクション内に無い場合は、レコードに対する操作を開始しないでください。起動プロセスに、実行し ようとしているデータベース操作はトランザクション内で実行されなければならないことを知らせるためにエラーを$0 に返すだけにしてください。そうしないとロックされたレコードに出くわした場合、起動プロセスにはトリガーの動作をロールバックする方法がなくなります。 + +注: + + + +:::note + +トリガーとトランザクションを統合した操作を最適化するため、4Dでは[`VALIDATE TRANSACTION`](../commands/validate-transaction)を実行した後、トリガーは呼び出されません。これにより、トリガーの実行を2度繰り返すことを防ぎます。 + +::: + +## トリガのカスケード + +以下の例のようなストラクチャーがあるとします。 + +![](../assets/en/Develop/triggers-cascade.png) + + +注: 上記のテーブルは簡略化されています。実際には、テーブルにはここに示したよりも多くのフィールドがあります。 + +データベースがある請求書の削除を "許可" するとしましょう。そのような操作がトリガーレベルでどのように処理されるか検討してみます (プロセスレベルで削除を実行することも可能です) 。 + +リレートに関するデータの整合性を維持するには、請求書の削除において、[Invoices] のトリガー内で実行される以下の動作が必要となります。 + +[Customer] レコードにおいて、送り状の金額分だけ総売上フィールドの額を減らす。 +- 送り状に関連したすべての [Line Items] レコードを削除する。 +- これはまた、 [Line Items] トリガーが、削除された明細品目に関連した [Products] レコードの売り上げ数量フィールドの数量を減らすことを意味する。 +- 削除された送り状に関連するすべての [Payments] レコードを削除する。 + +最初に、 [Invoices] のトリガーは、起動プロセスがトランザクション内にある場合に限り、これらの動作を実行しなければなりません。そのため、ロックされたレコードに出くわした場合にロールバックが可能になります。 + +次に、 [Line Items] のトリガーは、 [Invoices] のトリガーと**カスケー**ドしています。明細品目の削除は [Invoices] のトリガー内から`DELETE SELECTION`を呼び出した結果であるため、 [Line Items] のトリガーは [Invoices] のトリガーの実行の "範囲内で" 実行されます。 + +この例題にあるすべてのテーブルは、すべてのデータベースイベント対してアクティブなトリガーを持っているとします。トリガーのカスケードは以下のようになります。 + +- 起動プロセスが請求書を削除するため [Invoices] トリガーが起動される。 + - [Invoices] トリガーが総売上フィールドを更新するため、 [Customers] トリガーが起動される。 + - [Invoices] トリガーが明細品目を削除するため (繰り返し) 、[Line Items] トリガーが起動される。 + - [Line Items] トリガーが売上数量フィールドを更新するため、[Products] トリガーが起動される。 + - [Invoices] トリガーが支払を削除するため (繰り返し) 、[Payments] トリガーが起動される。 + +こ のカスケードの関係においては、[Invoices] のトリガーはレベル1で、 [Customers]、 [Line Items]、 と [Payments] のトリガーはレベル2で、そして [Products] のトリガーはレベル3で実行されていると言えます。 + +トリガー内から[`Trigger level`](../commands/trigger-level)コマンドを使用して、トリガーが実行されるレベルを検出します。更に[`TRIGGER PROPERTIES`](../commands/trigger-properties)コマンドを使用して、他のレベルに関する情報を入手することができます。 + +例えば、 [Products] レコードがプロセスレベルで削除されている場合、 [Products] のトリガーは、レベル3ではなく、レベル1で実行されます。 + +[`Trigger level`](../commands/trigger-level)と[`TRIGGER PROPERTIES`](../commands/trigger-properties)を使用すれば、動作の原因を検出できます。前述の例では、請求書がプロセスレベルで削除されています。[Customers] レコードをプロセスレベルで削除すると、 [Customers] のトリガーは、その顧客に関連するすべての請求書を削除しようとします。これにより、前述の例と同じように、 [Invoices] のトリガーが起動されることになりますが、起動される理由は異なります。[Invoices] トリガー内から、そのトリガーがレベル1で実行されたか、レベル2で実行されたかを、検出することができます。トリガーがレベル2で実行された場合には、次に、 それが [Customers] レコードが削除されたためであるかどうかをチェックできます。そうであれば、総売上フィールドの更新にわずらわされる必要はありません。 + + + + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md new file mode 100644 index 00000000000000..a40afb77231567 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -0,0 +1,18 @@ +--- +id: triggers-new +title: Triggers +--- + + + +## Triggers vs ORDA entity events + +**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +- triggers are handled at the database level, which is the lowest level, +- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. + +Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. + +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9d523d0372f12307a3c33fd6548ca097002c05 GIT binary patch literal 2573 zcmbtWXH*kd77ikaN^wO%83Y^)Whf&GD1<~oga`o)5s;`zC!vHOCA0t@fx&=)w4o~y zkeUfqX;F$16hljpk)j|0Lk%Q=Bq57?&g`Dq(cL{~f86ulyYGJQ$GzYAzL#KQWhSvt zejfk;kbsz9f&l9Fa0%y z06BSwcakRpO&tPl(H?;z&H?U#t3gOtZ#dG|U0GjCPfJHx73%D&Y;CLTpa!_DqYK)p z-xCOdn(i4DJuIrJu5jqC!p^fkkV_Zg*u2H@MS4-IkciD<4wpRB6g&zO-6i_z`1vKi zYo?U6^1k@pySA_^KWu-QEo`ZLZn_QhSyoz!08MK9%wvhZd}7NyK*6%&SQ6YszC7+M zOafUVKWMI7l8Q1vPD{D`uM4P2!SRe4DK%*ZbzCNzEN-3AHaNGpF0v%&a@&talIuL@ z!HsmtCZ3vCaGK-}gYG%S!jTKQaOLlchqvV{=+-`Y@S&KH=wx*}+gdzZD-~s6vv7Y| zs}UZcz;Tgkm4itLnkHhFV^cNdgZPjIir%xV%PpM7u+{T+evBzeQhKI8s-?WJoC-=|5~Qoo&^Z{AVe>EkBuQ9g zuw(lX!U7Ank7Z!a5!u-f3zzA>tR%}57Tf`8g@YFnMpkdPkc$+A21kgfE4p$=%8H07z%WB`h;E2H&VkFHH3W9gUZzy@ zZK^ybFeFSiRD}Loo3^3_>+3tUxV}mK$Z?x04OMv^%8RslqV_W=SmT;cd0bNpN~?A_ zJ#wfD%E+e>1A-9qL)iEm70+IYK)fnmw5FzNeq}L(skqrYlayvhYI)P!n#`b9ZRwJ$ z_zocFTiF{f`ZZxo%%k-i@DTm}Ej{syzDWx)IfFk1O5hi_^OYIw)l(FpL+A zKg-)(#h7NC@yjunfJ~HRz(*2cvQ8t~p*p;$$h@`cfS1taSa}YG)pGV)rya~_onT-5yj1(s0j^y=GP*v$Qq9f#BrSP#@1on3yZ3UK z%!-$1Yjb|w(mNTMtkMAn+`fsHCOt3}{b{SqwemDMGHM>e1s2JXv)UsBkAiYXIk{& z+;8Bf)hBB_Dl|kI=#hMFM7tst*MFhnnImhfW62!;7W>MThOn40-N{5sqR9&VR%Kz* z<#DEq`marEG6!mc-`aCg^$oNe)!5FCtCFqSw}*-t$)XcaGQ#{T-do!|OJt$MPW(wq z{vgJmHAZwUt*ikTZ?*<__Ia zuh@*vHq3fehU=hvoJdNi9!LqLJ?xC4Svsi$dG@5A7gLy8Np)u>*WW+QR}$FIu(Kd` zvlM(r$Cy+I*;c@NQBU|G7F`)hWlL5~3y+#zH*G??_GpK`+Nu-M>SjEVAp z)ZgzkExPf`M-hNm?(*SS)pplIyCC0??r%f?(zma|{)!y|iXYK+THjO`kQ|`d=)`&6 zJI>Jz&ykcXu*ghj!IGDgpthi`wGRu6Y#wO`Nv`*wuqw6e0BZ*ib_Fdvws~r3p?(Fa ztzj<5N3WT42>)&aWAIsmsYFmN`y=?R>N}NGrbS-}AAO&eK9-*6V$y6FZX7OG-VP^a zyuayF{^=akVw_R5Kfoche(DEUKC(?Xs#unJfQsdOt^vpJ-YGWr-)^*thyTv3)5tHD z-C*?0Oc7kx{^<=(npR;0q({ z=f_h1n*)BMjlvh+M=bsXsP79&G(I$WdSA?U%<~)2zu4^%rlK$^*OHhWiOe>m2Lur& ztLBHp6urs|x_z74^Lp$+rMQIcv70f(MDkHiL-u4;`}TNKPy9*$#vU_1E3FBs_t}t^ z5tkwr{xZB5>y&MMJqHspj3q0Uw&IhVqOSM!G%FJHP^(&*x6qE8u$hr8TizThg7*fG zE?Z4f+CEmV4W@Pb0!uKedWEpMV#`v?+M8qqyr%MLazXt{=nPoPbKAw%C`%SmM_Shm z-L?Yb#BRaD6bu#?{F6__aJ)#Z)-;EIRy_$?4HEAk)J zy18y4EtrQc=(XW1bZy?WK+&NGI!l{0WSYzwPnI)$$Fvsb@*iZ~38d9bn;Z@V)^>-! z^&>WWNwqw2yNW}!1sFHrNMX1jHZVg)z^(b)f&-StrxW?EJ%lyp7L_;6c<)H4mhsA- s?7F9FO-|Sw`hQI2I1SL>7$wXQ|0Vyl82#YRR}26#wYpSeeEaU-0WSm=UH||9 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4a075fd1f5d31dfc589b7b6802c101f4965af0 GIT binary patch literal 29218 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 Ndt+0hD+YEy{u^phHsAmN literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png new file mode 100644 index 0000000000000000000000000000000000000000..b339a988df617267b880eed98b3e29c3130aa8f3 GIT binary patch literal 9750 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 NX{hKzYaUs>`d@{CXEXo+ literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md new file mode 100644 index 00000000000000..2681f34a0af02f --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -0,0 +1,289 @@ +--- +id: triggers +title: Triggers +--- + + +A **trigger** is a method attached to a table. It is a property of a table. You do not call triggers; they are automatically invoked by the 4D database engine each time you manipulate table records (add, delete and modify). You can write very simple triggers, and then make them more sophisticated. + +Triggers can prevent "illegal" operations on the records of your database. They are a very powerful tool for restricting operations on a table, as well as preventing accidental data loss or tampering. For example, in an invoicing system, you can prevent anyone from adding an invoice without specifying the customer to whom the invoice is billed. + + + + + +## Activating and Creating a Trigger + +By default, when you create a table in the Design Environment, it has no trigger. + +To use a trigger for a table, you need to: + +- Activate the trigger and tell 4D when it has to be invoked. +- Write the code for the trigger. + +Activating a trigger that is not yet written or writing a trigger without activating it will not affect the operations performed on a table. + +1. To activate a trigger for a table, you must select one of the **Triggers** options (database events) for the table in the Inspector window of the structure: + +![](../assets/en/Develop/triggers-set.png) + +2. Creating a Trigger. + +To create a trigger for a table, click on the **Edit...** button in the Inspector window or press **Alt** (Windows)/**Option** (macOS) and double-click on the table title in the Structure window ans write the code corresponding to the trigger that you want to create. + + + +## Description of the triggers + +### On saving an existing record + +If this option is selected, the trigger will be invoked each time a record of the table is modified. This happens when: + +- Modifying a record in data entry (Design environment, [`MODIFY RECORD`](../commands/modify-record) command or the SQL `UPDATE` command). +- Saving an already existing record using [`SAVE RECORD`](../commands/save-record). +- Calling any other commands that save existing records (i.e., [`ARRAY TO SELECTION`](../commands/array-to-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), etc.). +- Using an ORDA function that saves the entity. + +:::note + +For optimization reasons, the trigger is not called when the record is saved by the user or via the [`SAVE RECORD`](../commands/save-record) command if no field in the table has been modified in the record. If you want to "force" the calling of the trigger in this case, you can simply assign a field to itself: + +```4d +[thetable]thefield:=[thetable]thefield +``` + +::: + +### On deleting a record + +If this option is selected, the trigger will be invoked each time a record of the table is deleted. This happens when: + +- Deleting a record (Design environment or calling [`DELETE RECORD`](../commands/delete-record), [`DELETE SELECTION`](../commands/delete-selection) or the SQL `DELETE` command). +- Performing any operation that provokes deletion of related records through the deletion control options of a relation. +- Using an ORDA function that deletes the entity. + +:::note + +The [`TRUNCATE TABLE`](../commands/trucate-table) command does NOT call the trigger. + +::: + +### On saving a new record + +If this option is selected, the trigger will be invoked each time a record is added to the table. This happens when: + +- Adding a record in data entry (Design environment, [`ADD RECORD`](../commands/add-record) command or the SQL `INSERT` command). +- Creating and saving a record with [`CREATE RECORD`](../commands/create-record) and [`SAVE RECORD`](../commands/save-record). Note that the trigger is invoked at the moment you call [`SAVE RECORD`](../commands/save-record), not when it is created. +- Importing records (Design environment or using an import command). +- Calling any other commands that create and/or save new records (i.e., [`ARRAY TO SELECTION`](../commands/array-to-selection), [`SAVE RELATED ONE`](../commands/save-related-one), etc.). +- Using ORDA functions such as [`ds.dataclass.new()`](../API/DataClassClass.md#new) and [`entity.save()`](../API/EntityClass.md#save). + + +## Database events + +A trigger can be invoked for one of the three database events described above. Within the trigger, you detect which event is occurring by calling the [`Trigger event`](../commands/trigger-event) command. This function returns a numeric value that denotes the database event. + +Typically, you write a trigger with a [`Case of` structure](../Concepts/flow-control.md#case-ofelseend-case) on the result returned by [`Trigger event`](../commands/trigger-event). + +```4d + //Trigger for [anyTable] +#DECLARE -> $result : Integer +$result:=0 // Assume the database request will be granted + Case of + :(Trigger event=On Saving New Record Event) + // Perform appropriate actions for the saving of a newly created record + :(Trigger event=On Saving Existing Record Event) + // Perform appropriate actions for the saving of an already existing record + :(Trigger event=On Deleting Record Event) + // Perform appropriate actions for the deletion of a record + End case + ``` + + +## Triggers are Functions + +A trigger has two purposes: + +- Performing actions on the record just before it is saved or deleted. +- Granting or rejecting a database operation. + + +### Performing Actions + +Each time a record is saved (added or modified) to a [Documents] table, you want to "mark" the record with a time stamp for creation and another one for the most recent modification. You can write the following trigger: + +```4d + // Trigger for table [Documents] + Case of + :(Trigger event=On Saving New Record Event) + [Documents]CreationStamp:=myTimeStamp + [Documents]ModificationStamp:=myTimeStamp + :(Trigger event=On Saving Existing Record Event) + [Documents]ModificationStamp:=myTimeStamp + End case +``` + +:::note + +The *myTimeStamp* function used in this example is a small project method that returns the number of seconds elapsed since a fixed date was chosen arbitrarily. + +::: + +After this trigger has been written and activated, no matter what way you add or modify a record to the [Documents] table (data entry, import, project method, ORDA function), the fields [Documents]CreationStamp and [Documents]ModificationStamp will automatically be assigned by the trigger before the record is eventually written to the disk. + +### Granting or rejecting the database operation + +To grant or reject a database operation, the trigger must **return a trigger error code** in the function result. + +#### Example + +Let's take the case of an [Employees] table. During data entry, you enforce a rule on the social security number field for the [Employees] table. When you click the validation button, you check the field using the object method of the button: + +```4d + // bAccept button object method + If(GoodSSnumber([Employees]SSNumber)) + ACCEPT + Else + BEEP + ALERT("Enter a Social Security Number then click OK again.") + End if +``` + +If the field value is valid, you accept the data entry; if the field value is not valid, you display an alert and you stay in data entry. + +If you also create [Employees] records programmatically, the following piece of code would be programmatically valid, but would violate the rule expressed in the previous object method: + +```4d + // Extract from a project method + // ... + CREATE RECORD([Employees]) + [Employees]Name:="DOE" + SAVE RECORD([Employees]) // <-- DB rule violation! The SS number has not been assigned! + // ... +``` + +Using a trigger for the [Employees] table, you can enforce the [Employees]SSNumber rule at all the levels of the database. The trigger would look like this: + +```4d + // Trigger for [Employees] + #DECLARE -> $result : Integer + $result:=0 + $dbEvent:=Trigger event + Case of + :(($dbEvent=On Saving New Record Event)|($dbEvent=On Saving Existing Record Event)) + If(Not(GoodSSnumber([Employees]SSNumber))) + $result:=-15050 + Else + // ... + End if + // ... + End case +``` + +Once this trigger is written and activated, the line `SAVE RECORD([Employees])` will generate a database engine error -15050, and the record will NOT be saved. + +Similarly, if a 4D Plug-in attempted to save an [Employees] record with an invalid social security number, the trigger will generate the same error and the record will not be saved. + +The trigger guarantees that nobody (user, database designer, plug-in) can violate the social security number rule, either deliberately or accidentally. + +Note that even if you do not have a trigger for a table, you can get database engine errors while attempting to save or delete a record. For example, if you attempt to save a record with a duplicated value in a unique indexed field, the error -9998 is returned. + +Therefore, triggers returning errors add database engine errors to your application: + +- 4D manages the "regular" errors: unique index, relational data control, and so on. +- Using triggers, you manage the custom errors unique to your application. + +**Important:** You can return an error code value of your choice. However, do NOT use error codes already taken by the 4D database engine. We strongly recommend that you use error codes between -32000 and -15000. We reserve error codes above -15000 for the database engine. + +At the process level, you handle trigger errors the same way you handle database engine errors: + +- You can let 4D display the standard error dialog box, then the method is halted. +- You can use an [error-handling method](../Concepts/error-handling.md) and recover the error the appropriate way (except for commands acting on a selection of records, see the note below). + +:::note Notes + +- During data entry, if a trigger error is returned while attempting to validate or delete a record, the error is handled like a unique indexed error. The error dialog is displayed, and you stay in data entry. Even if you use a database in the Design environment (not in the Application environment), you have the benefit of using triggers. +- When an error is generated by a trigger for a record within the framework of a command acting on a selection of records ([`DELETE SELECTION`](../commands/delete-selection), [`APPLY TO SELECTION`](../commands/apply-to-selection), [`ARRAY TO SELECTION`](../commands/array-to-selection)...), the record is not processed but is automatically registered in the [`LockedSet` of the process](../Develop/processes.md#elements-of-a-process). The command continues its execution until the end and no error can be catched. The error-handling method, if any, is not called. To know if errors have been generated in this context, you need to test the `LockedSet` just after the command call. Also, in the trigger, you have to store error codes, for example in a collection, and handle them afterwards. + +::: + +Even when a trigger returns no error ($result=0), this does not mean that a database operation will be successful—a unique index violation may occur. If the operation is the update of a record, the record may be locked, an I/O error may occur, and so on. The checking is done after the execution of the trigger. However, at the higher level of the executing process, errors returned by the database engine or a trigger are the same—a trigger error is a database engine error. + + + +## Triggers and the 4D Architecture + +Triggers execute at the database engine level. This is summarized in the following diagram: + +![](../assets/en/Develop/triggers-architecture.png) + +Triggers are executed on the machine where the database engine is actually located. This is obvious with a 4D single-user version. On 4D Server, triggers are executed within the acting process on the server machine (in the "twinned" process of the process that set off the trigger), not on the client machine. + +When a trigger is invoked, it executes within the context of the process that attempts the database operation. This process, which invokes the trigger execution, is called the **invoking process**. The elements included in this context differ according to whether the database is executed with 4D in local mode or with 4D Server : + +- With 4D in local mode, the trigger works with the current selections, current records, table read/write states, record locking operations, etc., of the invoking process. +- With 4D Server, only the context of the database of the invoking client process is preserved (locked records and transactional states). 4D Server also (and only) guarantees that the current record of the table of the trigger is correctly positioned. The other elements of the context (current selections for example) are those of the trigger process. + +Be careful about using other database or language objects of the 4D environment, because a trigger may execute on a machine other than that of the invoking process—this is the case with 4D Server! + +- **Process variables**: Each trigger has its own table of process variables. A trigger has no access to the process variables of the invoking process. +- **Local variables**: You can use local variables in a trigger. Their scope is the trigger execution; they are created/deleted at each execution. +- **Semaphores**: A trigger can test or set global semaphores as well as local semaphores (on the machine where it executes). However, a trigger must execute quickly, so you must be very careful when testing or setting semaphores from within triggers. +- **Sets and Named selections**: If you use a set or a named selection from within a trigger, you work on the machine where the trigger executes. In client/server mode, "process" sets and named selections (whose names do not begin with a $ nor with \<>) that are created on the client machine are visible in a trigger. +- **User Interface**: Do NOT use user interface elements in a trigger (no alerts, no messages, no dialog boxes). Accordingly, you should limit any tracing of triggers in the [Debugging window](../Debugging/debugger.md). Remember that in Client/Server, triggers execute on the 4D Server machine. An alert message on the server machine does not help a user on a client machine. Let the invoking process handle the user interface. + +Note that in client-server mode, if you use 4D's password system, you can execute the [`Current user`](../commands/current-user) command in the trigger in order, for example, to save the name of the user at the origin of the trigger call in a journaled table. + + +## Triggers and Transactions + +[Transactions](./transactions.md) must be handled at the invoking process level. They must not be managed at the trigger level. During one trigger execution, if you have to add, modify or delete multiple records (see the following case study), you must first use the [`In transaction`](../commands/in-transaction) command from within the trigger to test if the invoking process is currently in transaction. If this is not the case, the trigger may potentially encounter a locked record. Therefore, if the invoking process is not in transaction, do not even start the operations on the records. Just return an error in the trigger $result in order to signal to the invoking process that the database operation it is trying to perform must be executed in a transaction. Otherwise, if locked records are met, the invoking process will have no means to roll back the actions of the trigger. + + +:::note + +In order to optimize the combined operation of triggers and transactions, 4D does not call triggers after the execution of [`VALIDATE TRANSACTION`](../commands/validate-transaction). This prevents the triggers from being executed twice. + +::: + +## Cascading Triggers + +Given the following example structure: + +![](../assets/en/Develop/triggers-cascade.png) + + +Note: The tables have been collapsed; they have more fields than shown here. + +Let's say that the database "authorizes" the deletion of an invoice. We can examine how such an operation would be handled at the trigger level (because you could also perform deletions at the process level). + +In order to maintain the relational integrity of the data, deleting an invoice requires the following actions to be performed in the trigger for [Invoices]: + +- In the [Customer] record, decrement the Gross Sales field by the amount of the invoice. +- Delete all the [Line Items] records related to the invoice. +- This also implies that the [Line Items] trigger decrements the Quantity Sold field of the [Products] record related to the line item to be deleted. +- Delete all the [Payments] records related to the deleted invoice. + +First, the trigger for [Invoices] must perform these actions only if the invoking process is in transaction, so that a roll-back is possible if a locked record is met. + +Second, the trigger for [Line Items] is **cascading** with the trigger for [Invoices]. The [Line Items] trigger executes "within" the execution of the [Invoices] trigger, because the deletion of the list items are consequent to a call to `DELETE SELECTION` from within the [Invoices] trigger. + +Consider that all tables in this example have triggers activated for all database events. The cascade of triggers will be: + +- [Invoices] trigger is invoked because the invoking process deletes an invoice + - [Customers] trigger is invoked because the [Invoices] trigger updates the Gross Sales field + - [Line Items] trigger is invoked because the [Invoices] trigger deletes a line item (repeated) + - [Products] trigger is invoked because the [Line Items] trigger updates the Quantity Sold fiel + - [Payments] trigger is invoked because the [Invoices] trigger deletes a payment (repeated) + +In this cascade relationship, the [Invoices] trigger is said to be executing at level 1, the [Customers], [Line Items], and [Payments] triggers at level 2, and the [Products] trigger at level 3. + +From within the triggers, you can use the [`Trigger level`](../commands/trigger-level) command to detect the level at which a trigger is executed. In addition, you can use the [`TRIGGER PROPERTIES`](../commands/trigger-properties) command to get information about the other levels. + +For example, if a [Products] record is being deleted at a process level, the [Products] trigger would be executed at level 1, not at level 3. + +Using [`Trigger level`](../commands/trigger-level) and [`TRIGGER PROPERTIES`](../commands/trigger-properties), you can detect the cause of an action. In our example, an invoice is deleted at a process level. If we delete a [Customers] record at a process level, then the [Customers] trigger should attempt to delete all the invoices related to that customer. This means that the [Invoices] trigger will be invoked as above, but for another reason. From within the [Invoices] trigger, you can detect if it executed at level 1 or 2. If it did execute at level 2, you can then check whether or not it is because the [Customers] record is deleted. If this is the case, you do not even need to bother updating the Gross Sales field. + + + + diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md new file mode 100644 index 00000000000000..a40afb77231567 --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -0,0 +1,18 @@ +--- +id: triggers-new +title: Triggers +--- + + + +## Triggers vs ORDA entity events + +**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +- triggers are handled at the database level, which is the lowest level, +- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. + +Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. + +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. + + diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9d523d0372f12307a3c33fd6548ca097002c05 GIT binary patch literal 2573 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-cascade.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4a075fd1f5d31dfc589b7b6802c101f4965af0 GIT binary patch literal 29218 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 Ndt+0hD+YEy{u^phHsAmN literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/triggers-set.png new file mode 100644 index 0000000000000000000000000000000000000000..b339a988df617267b880eed98b3e29c3130aa8f3 GIT binary patch literal 9750 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 NX{hKzYaUs>`d@{CXEXo+ literal 0 HcmV?d00001 diff --git a/sidebars.js b/sidebars.js index ffd92fc776cadb..c805bc9728d0c1 100644 --- a/sidebars.js +++ b/sidebars.js @@ -38,7 +38,8 @@ module.exports = type: "category", label: "Dababase structure", items: [ - "Develop/field-properties" + "Develop/field-properties", + "Develop-legacy/triggers" ] }, { @@ -310,6 +311,7 @@ module.exports = ] }, "Develop-legacy/transactions", + "Develop-legacy/triggers", "Tags/transformation-tags", "Project/date-time-formats" ] From b45db54e5e2b958fcbf8c34fc9c4cefc4f665138 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 10:00:29 +0200 Subject: [PATCH 093/119] New Crowdin updates (#2970) * New translations webarea_overview.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations labels.md (Spanish) * New translations openai.md (French) * New translations openai.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openai.md (Japanese) * New translations openai.md (Portuguese, Brazilian) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations openaimessage.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations overview.md (Spanish) * New translations call-chain.md (Spanish) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) * New translations compatible-openai.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations tcpeventclass.md (Spanish) * New translations cli.md (Spanish) * New translations classes.md (Spanish) * New translations labels.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations openai.md (French) * New translations openai.md (Spanish) * New translations openai.md (Japanese) * New translations openai.md (Portuguese, Brazilian) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations overview.md (Spanish) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) * New translations compatible-openai.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations call-chain.md (Spanish) * New translations process-number.md (Spanish) * New translations zip-create-archive.md (Spanish) * New translations openaitool.md (Spanish) * New translations http-rules.md (Spanish) * New translations dataclassclass.md (Spanish) * New translations entityclass.md (Spanish) * New translations tcpeventclass.md (Spanish) * New translations cli.md (Spanish) * New translations classes.md (Spanish) * New translations error-handling.md (Spanish) * New translations clientserver.md (Spanish) * New translations labels.md (Spanish) * New translations forms.md (Spanish) * New translations call-chain.md (Spanish) * New translations process-number.md (Spanish) * New translations zip-create-archive.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (Spanish) * New translations openai.md (French) * New translations openai.md (Spanish) * New translations openaichatcompletionsapi.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openai.md (Japanese) * New translations openai.md (Portuguese, Brazilian) * New translations openaichathelper.md (Spanish) * New translations openaiimageparameters.md (Spanish) * New translations openaimessage.md (Spanish) * New translations openaimoderationsapi.md (Spanish) * New translations openaiparameters.md (Spanish) * New translations openairesult.md (Spanish) * New translations openaitool.md (Spanish) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations overview.md (Spanish) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) * New translations compatible-openai.md (Portuguese, Brazilian) * New translations overview.md (Portuguese, Brazilian) * New translations entityclass.md (Spanish) * New translations error-handling.md (Spanish) * New translations clientserver.md (Spanish) * New translations forms.md (Spanish) * New translations components.md (Spanish) --- .../current/API/EntityClass.md | 12 +++--- .../current/API/TCPEventClass.md | 2 +- .../current/Concepts/error-handling.md | 2 +- .../current/Desktop/clientServer.md | 2 +- .../current/Desktop/labels.md | 2 +- .../current/FormEditor/forms.md | 2 +- .../current/FormObjects/webArea_overview.md | 4 +- .../current/ORDA/orda-events.md | 36 +++++++++--------- .../current/Project/components.md | 2 +- .../current/WebServer/http-request-handler.md | 2 +- .../current/WebServer/http-rules.md | 4 +- .../current/aikit/Classes/OpenAI.md | 12 +++--- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 14 +++---- .../current/aikit/Classes/OpenAIChatHelper.md | 2 +- .../aikit/Classes/OpenAIImageParameters.md | 14 +++---- .../current/aikit/Classes/OpenAIMessage.md | 4 +- .../aikit/Classes/OpenAIModerationsAPI.md | 2 +- .../current/aikit/Classes/OpenAIParameters.md | 2 +- .../current/aikit/Classes/OpenAIResult.md | 2 +- .../current/aikit/Classes/OpenAITool.md | 4 +- .../current/aikit/asynchronous-call.md | 2 +- .../current/aikit/compatible-openai.md | 6 +-- .../current/aikit/overview.md | 4 +- .../current/commands/call-chain.md | 2 +- .../version-20-R10/API/TCPEventClass.md | 2 +- .../version-20-R10/Admin/cli.md | 2 +- .../version-20-R10/Concepts/classes.md | 2 +- .../version-20-R10/Desktop/labels.md | 2 +- .../FormObjects/webArea_overview.md | 4 +- .../version-20-R10/ORDA/orda-events.md | 18 ++++----- .../version-20-R10/Project/components.md | 2 +- .../WebServer/http-request-handler.md | 2 +- .../version-20-R10/aikit/Classes/OpenAI.md | 12 +++--- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../aikit/Classes/OpenAIImageParameters.md | 14 +++---- .../aikit/Classes/OpenAIModerationsAPI.md | 2 +- .../aikit/Classes/OpenAIParameters.md | 2 +- .../aikit/Classes/OpenAIResult.md | 2 +- .../version-20-R10/aikit/asynchronous-call.md | 2 +- .../version-20-R10/aikit/compatible-openai.md | 6 +-- .../version-20-R10/aikit/overview.md | 4 +- .../version-20-R10/commands/call-chain.md | 2 +- .../version-20-R10/commands/process-number.md | 2 +- .../commands/zip-create-archive.md | 16 ++++---- .../version-21/API/DataClassClass.md | 10 ++--- .../version-21/API/EntityClass.md | 12 +++--- .../version-21/API/TCPEventClass.md | 2 +- .../version-21/Admin/cli.md | 2 +- .../version-21/Concepts/classes.md | 2 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-21/Desktop/clientServer.md | 2 +- .../version-21/Desktop/labels.md | 2 +- .../version-21/FormEditor/forms.md | 2 +- .../FormObjects/webArea_overview.md | 4 +- .../version-21/ORDA/orda-events.md | 38 +++++++++---------- .../version-21/Project/components.md | 2 +- .../WebServer/http-request-handler.md | 2 +- .../version-21/WebServer/http-rules.md | 4 +- .../version-21/aikit/Classes/OpenAI.md | 12 +++--- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 14 +++---- .../aikit/Classes/OpenAIChatHelper.md | 2 +- .../aikit/Classes/OpenAIImageParameters.md | 14 +++---- .../version-21/aikit/Classes/OpenAIMessage.md | 4 +- .../aikit/Classes/OpenAIModerationsAPI.md | 2 +- .../aikit/Classes/OpenAIParameters.md | 2 +- .../version-21/aikit/Classes/OpenAIResult.md | 2 +- .../version-21/aikit/Classes/OpenAITool.md | 4 +- .../version-21/aikit/asynchronous-call.md | 2 +- .../version-21/aikit/compatible-openai.md | 6 +-- .../version-21/aikit/overview.md | 4 +- .../version-21/commands/call-chain.md | 2 +- .../version-21/commands/process-number.md | 2 +- .../version-21/commands/zip-create-archive.md | 16 ++++---- .../current/ORDA/orda-events.md | 20 +++++----- .../current/aikit/Classes/OpenAI.md | 12 +++--- .../current/aikit/compatible-openai.md | 4 +- .../current/aikit/overview.md | 4 +- .../version-20-R10/ORDA/orda-events.md | 10 ++--- .../version-20-R10/aikit/Classes/OpenAI.md | 12 +++--- .../version-20-R10/aikit/compatible-openai.md | 4 +- .../version-20-R10/aikit/overview.md | 4 +- .../version-21/ORDA/orda-events.md | 22 +++++------ .../version-21/aikit/Classes/OpenAI.md | 12 +++--- .../version-21/aikit/compatible-openai.md | 4 +- .../version-21/aikit/overview.md | 4 +- .../current/ORDA/orda-events.md | 20 +++++----- .../current/aikit/Classes/OpenAI.md | 12 +++--- .../current/aikit/compatible-openai.md | 6 +-- .../current/aikit/overview.md | 4 +- .../version-20-R10/ORDA/orda-events.md | 10 ++--- .../version-20-R10/aikit/Classes/OpenAI.md | 12 +++--- .../version-20-R10/aikit/compatible-openai.md | 6 +-- .../version-20-R10/aikit/overview.md | 4 +- .../version-21/ORDA/orda-events.md | 22 +++++------ .../version-21/aikit/Classes/OpenAI.md | 12 +++--- .../version-21/aikit/compatible-openai.md | 6 +-- .../version-21/aikit/overview.md | 4 +- .../current/ORDA/orda-events.md | 20 +++++----- .../current/aikit/Classes/OpenAI.md | 12 +++--- .../current/aikit/compatible-openai.md | 6 +-- .../current/aikit/overview.md | 4 +- .../version-20-R10/ORDA/orda-events.md | 10 ++--- .../version-20-R10/aikit/Classes/OpenAI.md | 12 +++--- .../version-20-R10/aikit/compatible-openai.md | 6 +-- .../version-20-R10/aikit/overview.md | 4 +- .../version-21/ORDA/orda-events.md | 22 +++++------ .../version-21/aikit/Classes/OpenAI.md | 12 +++--- .../version-21/aikit/compatible-openai.md | 6 +-- .../version-21/aikit/overview.md | 4 +- 111 files changed, 383 insertions(+), 383 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md index ae8faab8fc75f9..06060c9cade538 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -1015,12 +1015,12 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      695. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      696. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      701. **Associated statusText**: "Stamp has changed" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      702. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      703. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      708. **Associated statusText**: "Stamp has changed" | #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md index 20c901bac3061d..6d9eb04f026eba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPEventClass.md @@ -16,7 +16,7 @@ The `TCPEvent` class provides information about events occurring during the life ### Objeto TCPEvent -A `TCPEvent` object is immutable and non-streamable. +Un objeto `TCPEvent` es inmutable y no se puede transmitir. Las siguientes propiedades están disponibles: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/error-handling.md index 706dcbef348f6c..7e8ff6cf13490d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/error-handling.md @@ -23,7 +23,7 @@ Es muy recomendable instalar un método global de gestión de errores en 4D Serv ## Predictable vs unpredictable errors -Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. The error is only returned in the `status` and `statusText` properties of the returned object. It can be processed according to your business logic. +Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. El error sólo se devuelve en las propiedades `status` y `statusText` del objeto devuelto. It can be processed according to your business logic. The other category of errors are **unpredictable** errors, also named **serious errors**. They include disk write error, network failure, or in general any unexpected interruption. This category of errors generates exceptions defined by [a *code*, a *message* and a *signature*](#error-codes). They interrupt the execution and trigger the error processing of the [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or [error-handling method](#installing-an-error-handling-method) features. They are listed in the [`Last errors`](../commands/last-errors.md) collection. Note that serious errors can also return values in the `status` and `statusText` properties, e.g. `dk status serious error` - "Other error". diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index 3fb97a773f2ad5..b0ce1345a5fbe2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -97,7 +97,7 @@ En el servidor, el comando [`Session`](../commands/session.md) devuelve un objet ### Utilización -The `session` object allows you to handle information and privileges for the remote user session. +El objeto `session` permite manejar la información y los privilegios de la sesión del usuario remoto. Puede compartir datos entre todos los procesos de la sesión del usuario utilizando el objeto compartido [`session.storage`](../API/SessionClass.md#storage). Por ejemplo, puede iniciar un procedimiento de autenticación y verificación de usuario cuando un cliente se conecta al servidor, que involucra ingresar un código enviado por correo electrónico o SMS en la aplicación. A continuación, añada la información de usuario al almacenamiento de sesión, permitiendo al servidor identificar al usuario. De este modo, el servidor 4D puede acceder a la información del usuario para todos los procesos del cliente, lo que permite escribir código personalizado según el rol del usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md index 9f39573be56933..a7ff4816cc015b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md @@ -166,7 +166,7 @@ You can use dedicated table forms and project methods to print labels with calcu Here, in a table form named "label", we added the *myVar* variable: ![](../assets/en/Desktop/label-example1.png) -2. Create a `setMyVar` project method with the following code: +2. Crea un método proyecto llamado `setMyVar` con el siguiente código: ```4d var myVar+=1 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index ad13bba5adde09..90a26020484546 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -157,7 +157,7 @@ The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` wi When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index deebe6ce0e1e73..9ecdfb1282a9cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -53,7 +53,7 @@ Por ejemplo, llamando al método `HelloWorld` en 4D: $4d.HelloWorld(); ``` -> **Note:** JavaScript is **case-sensitive**, so the object is named **`$4d`** (with a lowercase "d"). +> **Nota:** JavaScript es **sensible a mayúsculas**, así que el objeto se llama **`$4d`** (con una minúscula "d"). ### Controlar el acceso a $4d @@ -123,7 +123,7 @@ $4d.today(function(result) En lugar de utilizar un método independiente, también podemos definir una **clase** que se encargue del cálculo. -Define the Class with 4D project method `calcSum` which receives parameters and returns their sum: +Defina la clase con el método proyecto 4D `calcSum` que recibe parámetros y devuelve su suma: ```4d // SumCalculator user class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f6b897a82a5694..2502c9f919fd48 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Eventos +title: Entity Events ---
        Historia @@ -12,7 +12,7 @@ title: Eventos
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. No se puede activar directamente la ejecución de la función de evento. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ No se puede activar directamente la ejecución de la función de evento. Events :::info Nota de compatibilidad -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -89,10 +89,10 @@ Event functions accept a single *event* object as parameter. When the function i | "kind" | siempre | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | | *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nombre del atributo (por ejemplo, "nombre") | | | *dataClassName* | siempre | String | Nombre de la Dataclass (*ej.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| "savedAttributes" | Sólo en [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | +| "droppedAttributes" | Sólo en [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | +| "saveStatus" | Sólo en [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | +| "dropStatus" | Sólo en [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | ## Objeto de error @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propiedad | Tipo | Descripción | Definido por el desarrollador | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| extraDescription | Object | Free information to set up | Sí | -| seriousError | Boolean | Used only with validate events (see below).
      709. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      710. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      711. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | No | +| Propiedad | Tipo | Descripción | Definido por el desarrollador | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| extraDescription | Object | Free information to set up | Sí | +| seriousError | Boolean | Used only with validate events (see below).
      712. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      713. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      714. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | No | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -135,9 +135,9 @@ This event is triggered each time a value is modified in the entity. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: +- en **cliente/servidor con la [palabra clave `local`](../ORDA/ordaClasses.md#local-functions)** o en **4D monousuario**: - el usuario define un valor en un formulario 4D, - - el código 4D realiza una asignación con el operador `:=`. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). + - el código 4D realiza una asignación con el operador `:=`. El evento también se activa en caso de autoasignación (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). - in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) @@ -150,7 +150,7 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- cuando los atributos son asignados por el evento [`constructor()`](./ordaClasses.md#class-constructor-1), - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -269,7 +269,7 @@ Note over Client:$people.lastname is uppercased ``` -#### Example 4 (diagram): Client/server without the `local` keyword +#### Ejemplo 4 (diagrama): cliente/servidor sin la palabra clave `local` ```mermaid diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 3bb2eb19a0f57e..360c11733574c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -365,7 +365,7 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 809dff92ab76e2..abf30606fa7f39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -137,7 +137,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). +- "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. [Ver abajo](#request-handler-code) para obtener información sobre el código del gestor de peticiones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index e88e079122443e..fb6538d1b50df9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -45,7 +45,7 @@ Other properties are ignored. URL patterns are given using **regular expressions**. To declare a regular expression pattern, use the "RegExPattern" property name. -Ex: `"RegExPattern": "/Test/Authorized/(.*)"` +Ej.: `"RegExPattern": "/Test/Authorized/(.*)"` When the web server receives a request, **all** URL patterns are triggered sequentially in the given order, and all matching patterns are executed. In case of several actions modifying similar resources, the last executed action is taken into account. @@ -78,7 +78,7 @@ Unauthorized changes on these headers do not generate errors, however modificati ### Current rules -You can know the current rules using the [`.rules` property of the Web Server object](../API/WebServerClass.md#rules): +Puede conocer las reglas actuales utilizando la propiedad [`.rules` del objeto Web Server](../API/WebServerClass.md#rules): ``` var $rules : Collection diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index b10646ebb340b8..cdffaaba7869af 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Propiedades de configuración -| Nombre de la propiedad | Tipo | Descripción | Opcional | -| ---------------------- | ---- | ---------------------------------------------------------------------------- | -------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | No para OpenAI | -| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Sí | -| `organization` | Text | Su ID de organización OpenAI. | Sí | -| `project` | Text | Su ID de proyecto OpenAI. | Sí | +| Nombre de la propiedad | Tipo | Descripción | Opcional | +| ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI Platform) | +| `organization` | Text | Su ID de organización OpenAI. | Sí | +| `project` | Text | Su ID de proyecto OpenAI. | Sí | ### Propiedades HTTP adicionales diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md index 1ae10d8af589a6..132231e8669478 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -The `OpenAIChatCompletionsAPI` class is designed for managing chat completions with OpenAI's API. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. https://platform.openai.com/docs/api-reference/chat diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index 4efd06ca4191d4..3c088ca7ccd666 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -34,7 +34,7 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters | ----------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | `onData` (o `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | -`onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). +`onData` recibirá como argumento un [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. @@ -117,18 +117,18 @@ $result := $client.chat.completions.create($messages; $params) ### JSON Schema Properties -When using `json_schema` type, you can specify: +Cuando se utiliza el tipo `json_schema`, puede especificar: - **`name`**: un nombre para el esquema -- **`description`**: A description of what the schema represents -- **`schema`**: The JSON schema definition -- **`strict`**: Whether to enforce strict adherence to the schema +- **`description`**: una descripción de lo que representa el esquema +- **`schema`**: la definición de esquema JSON +- **`strict`**: si se debe hacer cumplir estrictamente el esquema ### Notas Importantes - Not all models support structured outputs (json_object or json_schema), so check model capabilities before using them. -- When using `json_object` format, you should include instructions in your system message to respond in JSON format -- The `json_schema` format provides the most control and ensures the response exactly matches your specified structure +- Cuando utilice el formato `json_object`, deberá incluir instrucciones en el mensaje del sistema para responder en formato JSON +- El formato `json_schema` ofrece el mayor control y garantiza que la respuesta coincida exactamente con la estructura especificada - Invalid JSON responses will result in an error when using JSON formats - JSON schema validation ensures type safety and required field presence diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md index c4070a6740e801..0779745588607e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md @@ -115,7 +115,7 @@ Registers multiple tools at once. The parameter can be: - **Collection**: Array of tool objects (with handlers embedded or separate) - **Object**: Object with function names as keys mapping to tool definitions -- **Object with `tools` attribute**: Object containing a `tools` collection and formula properties matching tool names +- **Objeto con atributo `tools`**: objeto que contiene una colección `tools` y propiedades de fórmulas que coinciden con nombres de herramientas #### Register Multiple Tools Example diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md index d50e4af6583cb9..692705efcc3fa2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md @@ -13,13 +13,13 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame ## Propiedades -| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | -| ---------------------- | ------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | -| `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | -| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | -| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | +| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | +| ---------------------- | ------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | +| `n` | Integer | 1 | El número de imágenes a generar (debe estar entre 1 y 10; sólo `n=1` es soportado para `dall-e-3`). | +| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index ab4ca22c87ed49..3d85542be120c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -15,7 +15,7 @@ The `OpenAIMessage` class represents a structured message containing a role, con | `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | | `user` | Text | An optional property representing the user associated with the message. | | `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | ## Propiedades calculadas @@ -77,7 +77,7 @@ When you receive a tool call message, you need to: 1. **Extract the function information:** - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` - - `id`: The unique identifier for this specific tool call + - `id`: el identificador único para esta llamada específica a la herramienta 2. **Execute the function:** Parse the arguments (which is a JSON string) and call the corresponding function that you defined in your OpenAITool configuration. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md index 72fdb9d849830a..8f949e42ee4570 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md @@ -5,7 +5,7 @@ title: OpenAIModerationsAPI # OpenAIModerationsAPI -The `OpenAIModerationsAPI` is responsible for classifying if text and/or image inputs are potentially harmful. +La interfaz `OpenAIModerationsAPI` se encarga de clasificar si las entradas de texto y/o imágenes son potencialmente dañinas. https://platform.openai.com/docs/api-reference/moderations diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 385aec155367c2..dbe32b1770da06 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -95,7 +95,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md ## Clases heredadas -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: +Varias clases heredan de `OpenAIParameters` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md index 0e88534c6bfd9a..6122c517c37e21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md @@ -50,7 +50,7 @@ Lanza el primer error de la colección `errors`. This function is useful for pro ## Clases heredadas -Several classes inherit from `OpenAIResult` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIResult`: +Varias clases heredan de `OpenAIResult` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIResult`: - [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) - [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index 77620f6ef0ac24..dbe20d10764afa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -86,7 +86,7 @@ var $tool := cs.OpenAITool.new({ \ ## Integration with Chat Completions -Tools are typically used with the `OpenAIChatCompletionsParameters.tools` property: +Las herramientas se utilizan normalmente con la propiedad `OpenAIChatCompletionsParameters.tools`: ```4d var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ @@ -95,7 +95,7 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ }) ``` -> **Note:** You can pass plain objects directly - they will be automatically converted to `OpenAITool` instances. There's no need to explicitly create `OpenAITool` objects. +> **Nota:** puede pasar objetos planos directamente, se convertirán automáticamente en instancias `OpenAITool`. No es necesario crear explícitamente objetos `OpenAITool`. ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md index aec2f38c8ea0a3..cea52c2b0979e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md @@ -15,7 +15,7 @@ The callback function will receive the same result object type (one of [OpenAIRe The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. En estos casos, considere la posibilidad de utilizar `CALL WORKER` o `CALL FORM`. ## Ejemplos de uso diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index 80ac8ee4f5d3e5..a3c3f64be88879 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Proveedores Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Algunos de ellos ## Remoto -| Proveedor | Url base | +| Proveedor | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Url base por defecto | Doc | +| Proveedor | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/overview.md index e2e93e051c023d..6af02947ee1768 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -21,7 +21,7 @@ En primer lugar, inicialice el cliente OpenAI utilizando su llave API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Para una API de [proveedor compatible](compatible-openai.md), puede configurar la URL del servidor definiendo el parámetro `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() El `$result` contiene el `HTTPRequest`, un estado `success`, una colección de `errors` y más. Ver [OpenAIResult](Classes/OpenAIResult.md) -Vea algunos ejemplos a continuación. +See some examples below. #### Chat diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md index bf6cbc3363f3ff..e21c0bb3c1d0d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponds to the contents of the line referenced by the `line` property in the source file indicated by method. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
      715. "projectMethod"
      716. "formObjectMethod"
      717. "formmethod"
      718. "databaseMethod"
      719. "triggerMethod"
      720. "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
      721. "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
      722. "classFunction"
      723. "formMethod"
      724. | "type":"formMethod" | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md index 20c901bac3061d..6d9eb04f026eba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/TCPEventClass.md @@ -16,7 +16,7 @@ The `TCPEvent` class provides information about events occurring during the life ### Objeto TCPEvent -A `TCPEvent` object is immutable and non-streamable. +Un objeto `TCPEvent` es inmutable y no se puede transmitir. Las siguientes propiedades están disponibles: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md index cdc65c6656666b..6d4f22b6de1924 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md @@ -55,7 +55,7 @@ Sintaxis: | `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | | `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | | `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
      725. El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
      726. No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
      727. No se muestra ningún icono en el dock o la barra de tareas
      728. La base de datos abierta no se registra en el menú "Bases de datos recientes"
      729. Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
      730. Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). All intercepted commands(\*) are logged in the diagnostic log.

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

      734. **Nota**:
      735. si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
      736. If passed using the `.4DLink` file, dataless mode only applies to the database specified in the `.4DLink` file. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
      737. | +| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
      738. No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
      739. Los comandos que manipulan datos arrojarán un error. For example, `CREATE RECORD` throws “no table to apply the command to”.

      740. **Nota**:
      741. si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
      742. Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
      743. | | `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | | `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | | `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md index 41471d66e3a903..cc4dcb07b55793 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md @@ -774,7 +774,7 @@ Se declaran clases singleton añadiendo la(s) palabra(s) clave(s) apropiada(s) a ::: -El singleton de la clase se instanciará en la primera llamada del comando [`cs..me`](../API/ClassClass.md#me) property. El singleton instanciado de la clase se devuelve siempre cuando se utiliza la propiedad [`me`](../API/ClassClass.md#me). +El singleton de la clase se instanciará en la primera llamada de la propiedad [`cs.[.me`](../API/ClassClass.md#me). El singleton instanciado de la clase se devuelve siempre cuando se utiliza la propiedad [`me`](../API/ClassClass.md#me). Si necesita instanciar un singleton con parámetros, también puede llamar la función [`new()`](../API/ClassClass.md#new). En este caso, se recomienda instanciar el singleton en algún código ejecutado al inicio de la aplicación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md index 45de20b2ad2c1e..2b68e41e9c4cb2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md @@ -166,7 +166,7 @@ You can use dedicated table forms and project methods to print labels with calcu Here, in a table form named "label", we added the *myVar* variable: ![](../assets/en/Desktop/label-example1.png) -2. Create a `setMyVar` project method with the following code: +2. Crea un método proyecto llamado `setMyVar` con el siguiente código: ```4d var myVar+=1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md index 1b6be15a37a604..c76e76e79d1274 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md @@ -47,7 +47,7 @@ Por ejemplo, llamando al método `HelloWorld` en 4D: $4d.HelloWorld(); ``` -> **Note:** JavaScript is **case-sensitive**, so the object is named **`$4d`** (with a lowercase "d"). +> **Nota:** JavaScript es **sensible a mayúsculas**, así que el objeto se llama **`$4d`** (con una minúscula "d"). ### Controlar el acceso a $4d @@ -117,7 +117,7 @@ $4d.today(function(result) En lugar de utilizar un método independiente, también podemos definir una **clase** que se encargue del cálculo. -Define the Class with 4D project method `calcSum` which receives parameters and returns their sum: +Defina la clase con el método proyecto 4D `calcSum` que recibe parámetros y devuelve su suma: ```4d // SumCalculator user class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 0e431ff13cc080..a366adf9f54881 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Eventos ORDA +title: Entity Events ---
        Historia @@ -11,13 +11,13 @@ title: Eventos ORDA
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. No se puede activar directamente la ejecución de la función de evento. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. :::info Nota de compatibilidad -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -25,7 +25,7 @@ ORDA events in the datastore are equivalent to triggers in the 4D database. Howe ### Nivel del evento -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. @@ -49,7 +49,7 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests ### Tabla resumen -La siguiente tabla lista los eventos ORDA junto con sus reglas. +The following table lists ORDA entity events along with their rules. | Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | | :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | @@ -92,9 +92,9 @@ This event is triggered each time a value is modified in the entity. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: +- en **cliente/servidor con la [palabra clave `local`](../ORDA/ordaClasses.md#local-functions)** o en **4D monousuario**: - el usuario define un valor en un formulario 4D, - - el código 4D realiza una asignación con el operador `:=`. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). + - el código 4D realiza una asignación con el operador `:=`. El evento también se activa en caso de autoasignación (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). - in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) @@ -107,7 +107,7 @@ If this event [throws](../commands-legacy/throw.md) an error, it will not stop t Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- cuando los atributos son asignados por el evento [`constructor()`](./ordaClasses.md#class-constructor-1), - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -226,7 +226,7 @@ Note over Client:$people.lastname is uppercased ``` -#### Example 4 (diagram): Client/server without the `local` keyword +#### Ejemplo 4 (diagrama): cliente/servidor sin la palabra clave `local` ```mermaid diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 9f30f95e0bee18..f158b4a86b6fd1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -378,7 +378,7 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 19dcbb6bbe6b82..4dbc4001c1fdac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -126,7 +126,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). +- "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. [Ver abajo](#request-handler-code) para obtener información sobre el código del gestor de peticiones. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index b10646ebb340b8..78314e72ed1705 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Propiedades de configuración -| Nombre de la propiedad | Tipo | Descripción | Opcional | -| ---------------------- | ---- | ---------------------------------------------------------------------------- | -------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | No para OpenAI | -| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Sí | -| `organization` | Text | Su ID de organización OpenAI. | Sí | -| `project` | Text | Su ID de proyecto OpenAI. | Sí | +| Nombre de la propiedad | Tipo | Descripción | Opcional | +| ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI provider) | +| `organization` | Text | Su ID de organización OpenAI. | Sí | +| `project` | Text | Su ID de proyecto OpenAI. | Sí | ### Propiedades HTTP adicionales diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md index 7b9668af173b63..f3fb51737378b9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -The `OpenAIChatCompletionsAPI` class is designed for managing chat completions with OpenAI's API. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. https://platform.openai.com/docs/api-reference/chat diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md index d50e4af6583cb9..692705efcc3fa2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImageParameters.md @@ -13,13 +13,13 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame ## Propiedades -| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | -| ---------------------- | ------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | -| `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | -| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | -| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | +| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | +| ---------------------- | ------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | +| `n` | Integer | 1 | El número de imágenes a generar (debe estar entre 1 y 10; sólo `n=1` es soportado para `dall-e-3`). | +| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationsAPI.md index 72fdb9d849830a..8f949e42ee4570 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationsAPI.md @@ -5,7 +5,7 @@ title: OpenAIModerationsAPI # OpenAIModerationsAPI -The `OpenAIModerationsAPI` is responsible for classifying if text and/or image inputs are potentially harmful. +La interfaz `OpenAIModerationsAPI` se encarga de clasificar si las entradas de texto y/o imágenes son potencialmente dañinas. https://platform.openai.com/docs/api-reference/moderations diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md index 09a57fe7d5faef..30a0ee07ce9043 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md @@ -37,7 +37,7 @@ Ver la [documentación sobre código asíncrono](../asynchronous-call.md) ## Clases heredadas -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: +Varias clases heredan de `OpenAIParameters` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md index 0e88534c6bfd9a..6122c517c37e21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md @@ -50,7 +50,7 @@ Lanza el primer error de la colección `errors`. This function is useful for pro ## Clases heredadas -Several classes inherit from `OpenAIResult` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIResult`: +Varias clases heredan de `OpenAIResult` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIResult`: - [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) - [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md index 540ca7bff97777..a5f4fd483ff3a6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md @@ -11,7 +11,7 @@ Debe proporcionar un `4D.Formula` para recibir el resultado. Ver [OpenAIParamete The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. En estos casos, considere la posibilidad de utilizar `CALL WORKER` o `CALL FORM`. ## Ejemplos de uso diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index 80ac8ee4f5d3e5..a3c3f64be88879 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Proveedores Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Algunos de ellos ## Remoto -| Proveedor | Url base | +| Proveedor | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Url base por defecto | Doc | +| Proveedor | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index e2e93e051c023d..6af02947ee1768 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -21,7 +21,7 @@ En primer lugar, inicialice el cliente OpenAI utilizando su llave API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Para una API de [proveedor compatible](compatible-openai.md), puede configurar la URL del servidor definiendo el parámetro `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() El `$result` contiene el `HTTPRequest`, un estado `success`, una colección de `errors` y más. Ver [OpenAIResult](Classes/OpenAIResult.md) -Vea algunos ejemplos a continuación. +See some examples below. #### Chat diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md index bf6cbc3363f3ff..e21c0bb3c1d0d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponds to the contents of the line referenced by the `line` property in the source file indicated by method. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
      744. "projectMethod"
      745. "formObjectMethod"
      746. "formmethod"
      747. "databaseMethod"
      748. "triggerMethod"
      749. "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
      750. "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
      751. "classFunction"
      752. "formMethod"
      753. | "type":"formMethod" | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-number.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-number.md index 8e5b81d1056ae0..62d2495d47d071 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descripción -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Si no se encuentra ningún proceso, `Process number` devuelve 0. +El comando `Process number` devuelve el número del proceso cuyo *name* o *id* pasa en el primer parámetro. Si no se encuentra ningún proceso, `Process number` devuelve 0. El parámetro opcional \* permite recuperar, de un 4D remoto, el número de un proceso que se ejecuta en el servidor. En este caso, el valor devuelto es negativo. Esta opción es especialmente útil cuando se utilizan los comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) y [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md index 8d17f8e266c9d6..e43da8a0339d09 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/zip-create-archive.md @@ -40,14 +40,14 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará - *zipStructure*: pase un objeto que describa el objeto ZIP archivo. Las siguientes propiedades están disponibles para definir la estructura: -| Propiedad | Tipo | Descripción | -| ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
      754. `ZIP Compression standard`: Compresión Deflate (por defecto)
      755. `ZIP Compression LZMA`: Compression LZMA
      756. `ZIP Compresión XZ`: Compression XZ
      757. `ZIP Compresión`: sin compresión
      758. | -| level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      759. `ZIP Compression standard`: 6
      760. `ZIP Compression LZMA`: 4
      761. `ZIP Compression XZ`: 4
      762. | -| encryption | Integer | The encryption to use if a password is set:
      763. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      764. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      765. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      766. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      767. | -| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | -| Histórico | Collection |
      768. una colección de objetos `4D.File` o `4D.Folder` o
      769. una colección de objetos con las siguientes propiedades:
      770. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | -| retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
      771. `ZIP Compression standard`: Compresión Deflate (por defecto)
      772. `ZIP Compression LZMA`: Compression LZMA
      773. `ZIP Compresión XZ`: Compression XZ
      774. `ZIP Compresión`: sin compresión
      775. | +| level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      776. `ZIP Compression standard`: 6
      777. `ZIP Compression LZMA`: 4
      778. `ZIP Compression XZ`: 4
      779. | +| encryption | Integer | El cifrado a utilizar si se define una contraseña
      780. :`ZIP Encryption AES128`: Cifrado AES con clave de 128 bits.
      781. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      782. `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
      783. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      784. | +| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | +| Histórico | Collection |
      785. una colección de objetos `4D.File` o `4D.Folder` o
      786. una colección de objetos con las siguientes propiedades:
      787. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | +| retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | En el parámetro *destinationFile*, pase un objeto `4D.File` que describa el archivo ZIP a crear (nombre, ubicación, etc.). Se aconseja utilizar la extensión ".zip" si quiere que el archivo ZIP sea procesado automáticamente por cualquier software. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 94c42c36a6ddb5..11ce46e883e739 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ Si *attributePath* designa un atributo que almacena [**objetos vectores**](../AP En este caso, el parámetro *value* debe ser un **objeto vectorial de comparación** que contenga las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | -| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      788. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      789. `mk dot`: calculates the dot similarity of vectors.
      790. `mk euclidean`: calcula la distancia euclidiana entre vectores. | -| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | +| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      791. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      792. `mk dot`: calcula la similitud en puntos de los vectores.
      793. `mk euclidean`: calcula la distancia euclidiana entre vectores. | +| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Sólo se admite un subconjunto de símbolos **comparadores**. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index b9b3e8e9e3a566..235b647126aa6e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -1015,12 +1015,12 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      794. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      795. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      800. **Associated statusText**: "Stamp has changed" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      801. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      802. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      807. **Associated statusText**: "Stamp has changed" | #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md index 20c901bac3061d..6d9eb04f026eba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/TCPEventClass.md @@ -16,7 +16,7 @@ The `TCPEvent` class provides information about events occurring during the life ### Objeto TCPEvent -A `TCPEvent` object is immutable and non-streamable. +Un objeto `TCPEvent` es inmutable y no se puede transmitir. Las siguientes propiedades están disponibles: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md index cdc65c6656666b..6d4f22b6de1924 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md @@ -55,7 +55,7 @@ Sintaxis: | `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | | `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | | `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
      808. El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
      809. No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
      810. No se muestra ningún icono en el dock o la barra de tareas
      811. La base de datos abierta no se registra en el menú "Bases de datos recientes"
      812. Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
      813. Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). All intercepted commands(\*) are logged in the diagnostic log.

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

      817. **Nota**:
      818. si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
      819. If passed using the `.4DLink` file, dataless mode only applies to the database specified in the `.4DLink` file. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
      820. | +| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
      821. No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
      822. Los comandos que manipulan datos arrojarán un error. For example, `CREATE RECORD` throws “no table to apply the command to”.

      823. **Nota**:
      824. si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
      825. Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
      826. | | `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | | `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | | `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/classes.md index 41471d66e3a903..cc4dcb07b55793 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/classes.md @@ -774,7 +774,7 @@ Se declaran clases singleton añadiendo la(s) palabra(s) clave(s) apropiada(s) a ::: -El singleton de la clase se instanciará en la primera llamada del comando [`cs..me`](../API/ClassClass.md#me) property. El singleton instanciado de la clase se devuelve siempre cuando se utiliza la propiedad [`me`](../API/ClassClass.md#me). +El singleton de la clase se instanciará en la primera llamada de la propiedad [`cs.[.me`](../API/ClassClass.md#me). El singleton instanciado de la clase se devuelve siempre cuando se utiliza la propiedad [`me`](../API/ClassClass.md#me). Si necesita instanciar un singleton con parámetros, también puede llamar la función [`new()`](../API/ClassClass.md#new). En este caso, se recomienda instanciar el singleton en algún código ejecutado al inicio de la aplicación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index 706dcbef348f6c..7e8ff6cf13490d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -23,7 +23,7 @@ Es muy recomendable instalar un método global de gestión de errores en 4D Serv ## Predictable vs unpredictable errors -Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. The error is only returned in the `status` and `statusText` properties of the returned object. It can be processed according to your business logic. +Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. El error sólo se devuelve en las propiedades `status` y `statusText` del objeto devuelto. It can be processed according to your business logic. The other category of errors are **unpredictable** errors, also named **serious errors**. They include disk write error, network failure, or in general any unexpected interruption. This category of errors generates exceptions defined by [a *code*, a *message* and a *signature*](#error-codes). They interrupt the execution and trigger the error processing of the [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or [error-handling method](#installing-an-error-handling-method) features. They are listed in the [`Last errors`](../commands/last-errors.md) collection. Note that serious errors can also return values in the `status` and `statusText` properties, e.g. `dk status serious error` - "Other error". diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md index 3fb97a773f2ad5..b0ce1345a5fbe2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md @@ -97,7 +97,7 @@ En el servidor, el comando [`Session`](../commands/session.md) devuelve un objet ### Utilización -The `session` object allows you to handle information and privileges for the remote user session. +El objeto `session` permite manejar la información y los privilegios de la sesión del usuario remoto. Puede compartir datos entre todos los procesos de la sesión del usuario utilizando el objeto compartido [`session.storage`](../API/SessionClass.md#storage). Por ejemplo, puede iniciar un procedimiento de autenticación y verificación de usuario cuando un cliente se conecta al servidor, que involucra ingresar un código enviado por correo electrónico o SMS en la aplicación. A continuación, añada la información de usuario al almacenamiento de sesión, permitiendo al servidor identificar al usuario. De este modo, el servidor 4D puede acceder a la información del usuario para todos los procesos del cliente, lo que permite escribir código personalizado según el rol del usuario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md index 9f39573be56933..a7ff4816cc015b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md @@ -166,7 +166,7 @@ You can use dedicated table forms and project methods to print labels with calcu Here, in a table form named "label", we added the *myVar* variable: ![](../assets/en/Desktop/label-example1.png) -2. Create a `setMyVar` project method with the following code: +2. Crea un método proyecto llamado `setMyVar` con el siguiente código: ```4d var myVar+=1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index ad13bba5adde09..90a26020484546 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -157,7 +157,7 @@ The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` wi When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The new `FORM Windows theme` command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. +- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. - If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). - [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. - [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md index deebe6ce0e1e73..9ecdfb1282a9cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md @@ -53,7 +53,7 @@ Por ejemplo, llamando al método `HelloWorld` en 4D: $4d.HelloWorld(); ``` -> **Note:** JavaScript is **case-sensitive**, so the object is named **`$4d`** (with a lowercase "d"). +> **Nota:** JavaScript es **sensible a mayúsculas**, así que el objeto se llama **`$4d`** (con una minúscula "d"). ### Controlar el acceso a $4d @@ -123,7 +123,7 @@ $4d.today(function(result) En lugar de utilizar un método independiente, también podemos definir una **clase** que se encargue del cálculo. -Define the Class with 4D project method `calcSum` which receives parameters and returns their sum: +Defina la clase con el método proyecto 4D `calcSum` que recibe parámetros y devuelve su suma: ```4d // SumCalculator user class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index f6b897a82a5694..a4b9131253dbed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Eventos +title: Entity Events ---
        Historia @@ -12,7 +12,7 @@ title: Eventos
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. No se puede activar directamente la ejecución de la función de evento. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ No se puede activar directamente la ejecución de la función de evento. Events :::info Nota de compatibilidad -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -89,10 +89,10 @@ Event functions accept a single *event* object as parameter. When the function i | "kind" | siempre | String | Event name: "touched", "validateSave", "saving", "afterSave", "validateDrop", "dropping", "afterDrop" | | | *attributeName* | Only for events implemented at attribute level ("validateSave", "saving", "validateDrop", "dropping") | String | Nombre del atributo (por ejemplo, "nombre") | | | *dataClassName* | siempre | String | Nombre de la Dataclass (*ej.* "Company") | | -| "savedAttributes" | Only in [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | -| "droppedAttributes" | Only in [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | -| "saveStatus" | Only in [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | -| "dropStatus" | Only in [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | +| "savedAttributes" | Sólo en [`afterSave()`](#function-event-aftersave) | Colección de cadenas | Names of attributes properly saved | | +| "droppedAttributes" | Sólo en [`afterDrop()`](#function-event-afterdrop) | Colección de cadenas | Names of attributes properly dropped | | +| "saveStatus" | Sólo en [`afterSave()`](#function-event-aftersave) | String | "success" if the save was successful, "failed" otherwise | | +| "dropStatus" | Sólo en [`afterDrop()`](#function-event-afterdrop) | String | "success" if the drop was successful, "failed" otherwise | | ## Objeto de error @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propiedad | Tipo | Descripción | Definido por el desarrollador | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sí | -| extraDescription | Object | Free information to set up | Sí | -| seriousError | Boolean | Used only with validate events (see below).
      827. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      828. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      829. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | No | +| Propiedad | Tipo | Descripción | Definido por el desarrollador | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| extraDescription | Object | Free information to set up | Sí | +| seriousError | Boolean | Used only with validate events (see below).
      830. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      831. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      832. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | No | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -135,11 +135,11 @@ This event is triggered each time a value is modified in the entity. This event is triggered as soon as the 4D Server / 4D engine can detect a modification of attribute value which can be due to the following actions: -- in **client/server with the [`local` keyword](../ORDA/ordaClasses.md#local-functions)** or in **4D single-user**: +- en **cliente/servidor con la [palabra clave `local`](../ORDA/ordaClasses.md#local-functions)** o en **4D monousuario**: - el usuario define un valor en un formulario 4D, - - el código 4D realiza una asignación con el operador `:=`. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). + - el código 4D realiza una asignación con el operador `:=`. El evento también se activa en caso de autoasignación (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. @@ -150,7 +150,7 @@ If this function [throws](../commands/throw) an error, it will not stop the unde Este evento también se activa: -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, +- cuando los atributos son asignados por el evento [`constructor()`](./ordaClasses.md#class-constructor-1), - when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). ::: @@ -269,7 +269,7 @@ Note over Client:$people.lastname is uppercased ``` -#### Example 4 (diagram): Client/server without the `local` keyword +#### Ejemplo 4 (diagrama): cliente/servidor sin la palabra clave `local` ```mermaid diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index e7fda44cc53d46..f8a5c66d2848e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -365,7 +365,7 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... - **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 809dff92ab76e2..abf30606fa7f39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -137,7 +137,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. -- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). +- "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. [Ver abajo](#request-handler-code) para obtener información sobre el código del gestor de peticiones. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index e88e079122443e..fb6538d1b50df9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -45,7 +45,7 @@ Other properties are ignored. URL patterns are given using **regular expressions**. To declare a regular expression pattern, use the "RegExPattern" property name. -Ex: `"RegExPattern": "/Test/Authorized/(.*)"` +Ej.: `"RegExPattern": "/Test/Authorized/(.*)"` When the web server receives a request, **all** URL patterns are triggered sequentially in the given order, and all matching patterns are executed. In case of several actions modifying similar resources, the last executed action is taken into account. @@ -78,7 +78,7 @@ Unauthorized changes on these headers do not generate errors, however modificati ### Current rules -You can know the current rules using the [`.rules` property of the Web Server object](../API/WebServerClass.md#rules): +Puede conocer las reglas actuales utilizando la propiedad [`.rules` del objeto Web Server](../API/WebServerClass.md#rules): ``` var $rules : Collection diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index b10646ebb340b8..78314e72ed1705 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Propiedades de configuración -| Nombre de la propiedad | Tipo | Descripción | Opcional | -| ---------------------- | ---- | ---------------------------------------------------------------------------- | -------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | No para OpenAI | -| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Sí | -| `organization` | Text | Su ID de organización OpenAI. | Sí | -| `project` | Text | Su ID de proyecto OpenAI. | Sí | +| Nombre de la propiedad | Tipo | Descripción | Opcional | +| ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI provider) | +| `organization` | Text | Su ID de organización OpenAI. | Sí | +| `project` | Text | Su ID de proyecto OpenAI. | Sí | ### Propiedades HTTP adicionales diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md index 1ae10d8af589a6..132231e8669478 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -The `OpenAIChatCompletionsAPI` class is designed for managing chat completions with OpenAI's API. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. https://platform.openai.com/docs/api-reference/chat diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index 4efd06ca4191d4..3c088ca7ccd666 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -34,7 +34,7 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters | ----------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | `onData` (o `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Asegúrese de que el proceso actual no termina. | -`onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). +`onData` recibirá como argumento un [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. @@ -117,18 +117,18 @@ $result := $client.chat.completions.create($messages; $params) ### JSON Schema Properties -When using `json_schema` type, you can specify: +Cuando se utiliza el tipo `json_schema`, puede especificar: - **`name`**: un nombre para el esquema -- **`description`**: A description of what the schema represents -- **`schema`**: The JSON schema definition -- **`strict`**: Whether to enforce strict adherence to the schema +- **`description`**: una descripción de lo que representa el esquema +- **`schema`**: la definición de esquema JSON +- **`strict`**: si se debe hacer cumplir estrictamente el esquema ### Notas Importantes - Not all models support structured outputs (json_object or json_schema), so check model capabilities before using them. -- When using `json_object` format, you should include instructions in your system message to respond in JSON format -- The `json_schema` format provides the most control and ensures the response exactly matches your specified structure +- Cuando utilice el formato `json_object`, deberá incluir instrucciones en el mensaje del sistema para responder en formato JSON +- El formato `json_schema` ofrece el mayor control y garantiza que la respuesta coincida exactamente con la estructura especificada - Invalid JSON responses will result in an error when using JSON formats - JSON schema validation ensures type safety and required field presence diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md index c4070a6740e801..0779745588607e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md @@ -115,7 +115,7 @@ Registers multiple tools at once. The parameter can be: - **Collection**: Array of tool objects (with handlers embedded or separate) - **Object**: Object with function names as keys mapping to tool definitions -- **Object with `tools` attribute**: Object containing a `tools` collection and formula properties matching tool names +- **Objeto con atributo `tools`**: objeto que contiene una colección `tools` y propiedades de fórmulas que coinciden con nombres de herramientas #### Register Multiple Tools Example diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md index d50e4af6583cb9..692705efcc3fa2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImageParameters.md @@ -13,13 +13,13 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame ## Propiedades -| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | -| ---------------------- | ------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | -| `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). | -| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | -| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | -| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | +| Nombre de la propiedad | Tipo | Valor por defecto | Descripción | +| ---------------------- | ------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | "dall-e-2" | Especifica el modelo a utilizar para la generación de imágenes. | +| `n` | Integer | 1 | El número de imágenes a generar (debe estar entre 1 y 10; sólo `n=1` es soportado para `dall-e-3`). | +| `size` | Text | "1024x1024" | El tamaño de las imágenes generadas. Debe ajustarse a las especificaciones del modelo. | +| `style` | Text | "" | El estilo de las imágenes generadas (debe ser `vivid` o `natural`). | +| `response_format` | Text | "url" | El formato de las imágenes devueltas puede ser `url` o `b64_json`. | ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index ab4ca22c87ed49..3d85542be120c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -15,7 +15,7 @@ The `OpenAIMessage` class represents a structured message containing a role, con | `contenido` | Variant | The content of the message, which can be a text or a collection of objects. | | `user` | Text | An optional property representing the user associated with the message. | | `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | ## Propiedades calculadas @@ -77,7 +77,7 @@ When you receive a tool call message, you need to: 1. **Extract the function information:** - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` - - `id`: The unique identifier for this specific tool call + - `id`: el identificador único para esta llamada específica a la herramienta 2. **Execute the function:** Parse the arguments (which is a JSON string) and call the corresponding function that you defined in your OpenAITool configuration. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationsAPI.md index 72fdb9d849830a..8f949e42ee4570 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationsAPI.md @@ -5,7 +5,7 @@ title: OpenAIModerationsAPI # OpenAIModerationsAPI -The `OpenAIModerationsAPI` is responsible for classifying if text and/or image inputs are potentially harmful. +La interfaz `OpenAIModerationsAPI` se encarga de clasificar si las entradas de texto y/o imágenes son potencialmente dañinas. https://platform.openai.com/docs/api-reference/moderations diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md index 521e885edf667e..598dd0a5cc575e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md @@ -51,7 +51,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md ## Clases heredadas -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: +Varias clases heredan de `OpenAIParameters` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIParameters`: - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md index 0e88534c6bfd9a..6122c517c37e21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md @@ -50,7 +50,7 @@ Lanza el primer error de la colección `errors`. This function is useful for pro ## Clases heredadas -Several classes inherit from `OpenAIResult` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIResult`: +Varias clases heredan de `OpenAIResult` para ampliar su funcionalidad en casos de uso específicos. A continuación se muestran algunas de las clases que extienden `OpenAIResult`: - [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) - [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md index 77620f6ef0ac24..dbe20d10764afa 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md @@ -86,7 +86,7 @@ var $tool := cs.OpenAITool.new({ \ ## Integration with Chat Completions -Tools are typically used with the `OpenAIChatCompletionsParameters.tools` property: +Las herramientas se utilizan normalmente con la propiedad `OpenAIChatCompletionsParameters.tools`: ```4d var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ @@ -95,7 +95,7 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ }) ``` -> **Note:** You can pass plain objects directly - they will be automatically converted to `OpenAITool` instances. There's no need to explicitly create `OpenAITool` objects. +> **Nota:** puede pasar objetos planos directamente, se convertirán automáticamente en instancias `OpenAITool`. No es necesario crear explícitamente objetos `OpenAITool`. ## Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md index aec2f38c8ea0a3..cea52c2b0979e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md @@ -15,7 +15,7 @@ The callback function will receive the same result object type (one of [OpenAIRe The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. En estos casos, considere la posibilidad de utilizar `CALL WORKER` o `CALL FORM`. ## Ejemplos de uso diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index 80ac8ee4f5d3e5..a3c3f64be88879 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Proveedores Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Algunos de ellos ## Remoto -| Proveedor | Url base | +| Proveedor | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Url base por defecto | Doc | +| Proveedor | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/overview.md index e2e93e051c023d..6af02947ee1768 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -21,7 +21,7 @@ En primer lugar, inicialice el cliente OpenAI utilizando su llave API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Para una API de [proveedor compatible](compatible-openai.md), puede configurar la URL del servidor definiendo el parámetro `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() El `$result` contiene el `HTTPRequest`, un estado `success`, una colección de `errors` y más. Ver [OpenAIResult](Classes/OpenAIResult.md) -Vea algunos ejemplos a continuación. +See some examples below. #### Chat diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md index bf6cbc3363f3ff..e21c0bb3c1d0d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponds to the contents of the line referenced by the `line` property in the source file indicated by method. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. If the source code is not available, `formula` property is omitted (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
      833. "projectMethod"
      834. "formObjectMethod"
      835. "formmethod"
      836. "databaseMethod"
      837. "triggerMethod"
      838. "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
      839. "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
      840. "classFunction"
      841. "formMethod"
      842. | "type":"formMethod" | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md index 8e5b81d1056ae0..62d2495d47d071 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/process-number.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Descripción -The `Process number` command returns the number of the process whose *name* or *id* you pass in the first parameter. Si no se encuentra ningún proceso, `Process number` devuelve 0. +El comando `Process number` devuelve el número del proceso cuyo *name* o *id* pasa en el primer parámetro. Si no se encuentra ningún proceso, `Process number` devuelve 0. El parámetro opcional \* permite recuperar, de un 4D remoto, el número de un proceso que se ejecuta en el servidor. En este caso, el valor devuelto es negativo. Esta opción es especialmente útil cuando se utilizan los comandos [GET PROCESS VARIABLE](../commands-legacy/get-process-variable.md), [SET PROCESS VARIABLE](../commands-legacy/set-process-variable.md) y [VARIABLE TO VARIABLE](../commands-legacy/variable-to-variable.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 8d17f8e266c9d6..e43da8a0339d09 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -40,14 +40,14 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará - *zipStructure*: pase un objeto que describa el objeto ZIP archivo. Las siguientes propiedades están disponibles para definir la estructura: -| Propiedad | Tipo | Descripción | -| ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
      843. `ZIP Compression standard`: Compresión Deflate (por defecto)
      844. `ZIP Compression LZMA`: Compression LZMA
      845. `ZIP Compresión XZ`: Compression XZ
      846. `ZIP Compresión`: sin compresión
      847. | -| level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      848. `ZIP Compression standard`: 6
      849. `ZIP Compression LZMA`: 4
      850. `ZIP Compression XZ`: 4
      851. | -| encryption | Integer | The encryption to use if a password is set:
      852. `ZIP Encryption AES128`: AES encryption using 128-bit key.
      853. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      854. `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
      855. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      856. | -| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | -| Histórico | Collection |
      857. una colección de objetos `4D.File` o `4D.Folder` o
      858. una colección de objetos con las siguientes propiedades:
      859. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | -| retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
      860. `ZIP Compression standard`: Compresión Deflate (por defecto)
      861. `ZIP Compression LZMA`: Compression LZMA
      862. `ZIP Compresión XZ`: Compression XZ
      863. `ZIP Compresión`: sin compresión
      864. | +| level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Valores por defecto si se omite:
      865. `ZIP Compression standard`: 6
      866. `ZIP Compression LZMA`: 4
      867. `ZIP Compression XZ`: 4
      868. | +| encryption | Integer | El cifrado a utilizar si se define una contraseña
      869. :`ZIP Encryption AES128`: Cifrado AES con clave de 128 bits.
      870. `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
      871. `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
      872. `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
      873. | +| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | +| Histórico | Collection |
      874. una colección de objetos `4D.File` o `4D.Folder` o
      875. una colección de objetos con las siguientes propiedades:
      876. PropiedadTipoDescripción
        source4D.Archivo o 4D.CarpetaArchivo o Carpeta
        destinoTexto(opcional) - Especifique una ruta de archivo relativa para cambiar la organización del contenido del archivo
        optionnumber(opcional) - `ZIP Ignore invisible files` o 0 para comprimir todo el archivo
        | +| retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. | En el parámetro *destinationFile*, pase un objeto `4D.File` que describa el archivo ZIP a crear (nombre, ubicación, etc.). Se aconseja utilizar la extensión ".zip" si quiere que el archivo ZIP sea procesado automáticamente por cualquier software. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f714b870b00567..f7d498b3a4d1ec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        Historique @@ -12,7 +12,7 @@ title: Events
        -Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. @@ -24,7 +24,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::info Note de compatibilité -Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -102,13 +102,13 @@ Lorsqu'une erreur survient dans un événement, les autres événements sont sto ### Propriétés de l'objet error -| Propriété | Type | Description | Fixé par le développeur | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| extraDescription | Object | Informations libres à définir | Oui | -| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      877. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      878. ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      879. | Oui (par défaut : False) | -| componentSignature | Text | Toujours "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      880. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Adds the `dk status serious validation error` status
      881. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      882. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | - Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). - Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 2d275428873a7d..2af0940c29c81b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources ## Propriétés de configuration -| Nom de propriété | Type | Description | Optionnel | -| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Non pour OpenAI | -| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Oui | -| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | -| `project` | Text | Votre identifiant de projet OpenAI. | Oui | +| Nom de propriété | Type | Description | Optionnel | +| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI Platform) | +| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | +| `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index 807d5b80abeae1..ba0522fda1b175 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Url de base par défaut | Doc | +| Fournisseur | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md index 790109ee1305cf..853ce7579b49a0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Pour une API [ compatible provider ](compatible-openai.md), vous pouvez configurer l'URL du serveur en définissant le paramètre `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -Voir quelques exemples ci-dessous. +See some examples below. #### Chat diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index f1b63f3dc3681d..a5eaa72234d8ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDA Events +title: Entity Events ---
        Historique @@ -11,13 +11,13 @@ title: ORDA Events
        -Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::info Note de compatibilité -Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -25,7 +25,7 @@ Les événements d'entité ORDA dans le datastore sont équivalents aux triggers ### Niveau de l'événement -Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). +A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. @@ -49,7 +49,7 @@ Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via ### Tableau de synthèse -Le tableau suivant liste les événements d'entité ORDA ainsi que leurs règles. +The following table lists ORDA entity events along with their rules. | Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | | :--------------------- | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 2d275428873a7d..6734c9aefbc5f5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources ## Propriétés de configuration -| Nom de propriété | Type | Description | Optionnel | -| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Non pour OpenAI | -| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Oui | -| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | -| `project` | Text | Votre identifiant de projet OpenAI. | Oui | +| Nom de propriété | Type | Description | Optionnel | +| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI provider) | +| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | +| `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index 807d5b80abeae1..ba0522fda1b175 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Url de base par défaut | Doc | +| Fournisseur | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index 790109ee1305cf..853ce7579b49a0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Pour une API [ compatible provider ](compatible-openai.md), vous pouvez configurer l'URL du serveur en définissant le paramètre `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -Voir quelques exemples ci-dessous. +See some examples below. #### Chat diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 743e4f1da399fa..0a86a7d9146613 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        Historique @@ -12,7 +12,7 @@ title: Events
        -Les événements ORDA sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entités sont manipulés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. @@ -24,7 +24,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::info Note de compatibilité -Les événements d'entité ORDA dans le datastore sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -102,13 +102,13 @@ Lorsqu'une erreur survient dans un événement, les autres événements sont sto ### Propriétés de l'objet error -| Propriété | Type | Description | Fixé par le développeur | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| extraDescription | Object | Informations libres à définir | Oui | -| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      883. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      884. ne crée qu'une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      885. | Oui (par défaut : False) | -| componentSignature | Text | Toujours "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      886. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Adds the `dk status serious validation error` status
      887. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      888. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | - Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). - Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : @@ -139,7 +139,7 @@ Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte un - l'utilisateur saisit une valeur dans un formulaire 4D, - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). - en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). -- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.4d.com/qodly)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. - avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 2d275428873a7d..6734c9aefbc5f5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources ## Propriétés de configuration -| Nom de propriété | Type | Description | Optionnel | -| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Non pour OpenAI | -| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Oui | -| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | -| `project` | Text | Votre identifiant de projet OpenAI. | Oui | +| Nom de propriété | Type | Description | Optionnel | +| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI provider) | +| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | +| `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index 807d5b80abeae1..ba0522fda1b175 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -Pour ce faire, il suffit de remplacer le `baseURL` original par celui du fournisseur et d'utiliser leur clé d'api si nécessaire. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Url de base par défaut | Doc | +| Fournisseur | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md index 790109ee1305cf..853ce7579b49a0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -Pour une API [ compatible provider ](compatible-openai.md), vous pouvez configurer l'URL du serveur en définissant le paramètre `baseURL`. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -Voir quelques exemples ci-dessous. +See some examples below. #### Chat diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 33bc7539dc0b38..605811450b1c29 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        履歴 @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ You cannot directly trigger event function execution. Events are called automati :::info note Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| プロパティ | 型 | 説明 | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| extraDescription | Object | Free information to set up | ◯ | -| seriousError | Boolean | Used only with validate events (see below).
      889. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      890. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      891. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | × | +| プロパティ | 型 | 説明 | Set by the developer | +| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| extraDescription | Object | Free information to set up | ◯ | +| seriousError | Boolean | Used only with validate events (see below).
      892. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      893. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      894. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | × | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 24fd10a739da75..54c039039cd54c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ title: OpenAI ## 設定プロパティ -| プロパティ名 | 型 | 説明 | 任意 | -| --------- | ---- | ---------------------------------------------------------- | ----------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | OpenAI では必須 | -| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | ◯ | -| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | -| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | +| プロパティ名 | 型 | 説明 | 任意 | +| --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | +| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI Platform) | +| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | +| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | ### 追加のHTTPプロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index 2afc35ae0f24b3..bb57ed880d46f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -そのためには元の `baseURL` をプロバイダーのものに変更し、必要であればそのサービスのAPI キーを使用するだけです。 +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## リモート -| プロバイダ | ベースURL | +| プロバイダ | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ja/ | https://api.mistral.ai/v1/ja | | https://www.deepseek.com/ja/ | https://api.deepseek.com/ja | @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | デフォルトのベースURL | ドキュメント | +| プロバイダ | Default baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md index 06c467d9cc2b7b..18196a64eec1cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -また以下の例題も参照して下さい。 +See some examples below. #### チャット diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 1fc61d006e4c07..8f0c50be7ae228 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDAイベント +title: Entity Events ---
        履歴 @@ -11,13 +11,13 @@ title: ORDAイベント
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. :::info note Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -25,7 +25,7 @@ ORDA events in the datastore are equivalent to triggers in the 4D database. Howe ### Event level -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. @@ -49,7 +49,7 @@ With other remote configurations (i.e. Qodly applications, [REST API requests](. ### Summary table -The following table lists ORDA events along with their rules. +The following table lists ORDA entity events along with their rules. | イベント | レベル | Function name | (C/S) Executed on | | :------------------- | :----- | :------------------------------------------------------ | :------------------------------------------------------------------: | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 24fd10a739da75..c2d1e5f3a7cc99 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ title: OpenAI ## 設定プロパティ -| プロパティ名 | 型 | 説明 | 任意 | -| --------- | ---- | ---------------------------------------------------------- | ----------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | OpenAI では必須 | -| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | ◯ | -| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | -| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | +| プロパティ名 | 型 | 説明 | 任意 | +| --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | +| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI provider) | +| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | +| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | ### 追加のHTTPプロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index 2afc35ae0f24b3..bb57ed880d46f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -そのためには元の `baseURL` をプロバイダーのものに変更し、必要であればそのサービスのAPI キーを使用するだけです。 +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## リモート -| プロバイダ | ベースURL | +| プロバイダ | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ja/ | https://api.mistral.ai/v1/ja | | https://www.deepseek.com/ja/ | https://api.deepseek.com/ja | @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | デフォルトのベースURL | ドキュメント | +| プロバイダ | Default baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index 06c467d9cc2b7b..18196a64eec1cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -また以下の例題も参照して下さい。 +See some examples below. #### チャット diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 33bc7539dc0b38..926a1d5f6e87d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        履歴 @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ You cannot directly trigger event function execution. Events are called automati :::info note Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| プロパティ | 型 | 説明 | Set by the developer | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | -| extraDescription | Object | Free information to set up | ◯ | -| seriousError | Boolean | Used only with validate events (see below).
      895. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      896. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      897. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | × | +| プロパティ | 型 | 説明 | Set by the developer | +| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | ◯ | +| extraDescription | Object | Free information to set up | ◯ | +| seriousError | Boolean | Used only with validate events (see below).
      898. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      899. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      900. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | × | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -139,7 +139,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 24fd10a739da75..c2d1e5f3a7cc99 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ title: OpenAI ## 設定プロパティ -| プロパティ名 | 型 | 説明 | 任意 | -| --------- | ---- | ---------------------------------------------------------- | ----------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | OpenAI では必須 | -| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | ◯ | -| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | -| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | +| プロパティ名 | 型 | 説明 | 任意 | +| --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | +| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI provider) | +| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | +| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | ### 追加のHTTPプロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index 2afc35ae0f24b3..bb57ed880d46f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -そのためには元の `baseURL` をプロバイダーのものに変更し、必要であればそのサービスのAPI キーを使用するだけです。 +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## リモート -| プロバイダ | ベースURL | +| プロバイダ | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ja/ | https://api.mistral.ai/v1/ja | | https://www.deepseek.com/ja/ | https://api.deepseek.com/ja | @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | デフォルトのベースURL | ドキュメント | +| プロバイダ | Default baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md index 06c467d9cc2b7b..18196a64eec1cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -また以下の例題も参照して下さい。 +See some examples below. #### チャット diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 2d483010e8a237..cd035c693e740d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        História @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ You cannot directly trigger event function execution. Events are called automati :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propriedade | Tipo | Descrição | Set by the developer | -| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| extraDescription | Object | Free information to set up | Sim | -| seriousError | Parâmetros | Used only with validate events (see below).
      901. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      902. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      903. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Não | +| Propriedade | Tipo | Descrição | Set by the developer | +| ------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| extraDescription | Object | Free information to set up | Sim | +| seriousError | Parâmetros | Used only with validate events (see below).
      904. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      905. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      906. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | Não | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 479fd15eac6a81..e529e68691a3c4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Configuration Properties -| Nome da propriedade | Tipo | Descrição | Opcional | -| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------- | -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Não para OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Sim | -| `organization` | Text | Your OpenAI Organization ID. | Sim | -| `project` | Text | Your OpenAI Project ID. | Sim | +| Nome da propriedade | Tipo | Descrição | Opcional | +| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI Platform) | +| `organization` | Text | Your OpenAI Organization ID. | Sim | +| `project` | Text | Your OpenAI Project ID. | Sim | ### Propriedades HTTP adicionais diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index 28426d8b6f12b8..7cb74f769f2d19 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remoto -| Provider | URL base | +| Provider | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | URL base padrão | Doc | +| Provider | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/overview.md index bac8cd22b06ec4..aed3c9f5dd59b6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -21,7 +21,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() O `$result` contém o `HTTPRequest`, um status de `sucess`, uma coleção de `erros` e outros. Ver [OpenAIResult](Classes/OpenAIResult.md) -Veja alguns exemplos abaixo. +See some examples below. #### Chat diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index 89f7200ce40369..75941c87ec6b55 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: ORDA Events +title: Entity Events ---
        História @@ -11,13 +11,13 @@ title: ORDA Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -25,7 +25,7 @@ ORDA events in the datastore are equivalent to triggers in the 4D database. Howe ### Event level -A event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). It can be set at the **entity** level and/or the **attribute** level (it includes [**computed attributes**](../ORDA/ordaClasses.md#computed-attributes)). In the first case, it will be triggered for any attributes of the entity; on the other case, it will only be triggered for the targeted attribute. @@ -49,7 +49,7 @@ With other remote configurations (i.e. Qodly applications, [REST API requests](. ### Summary table -The following table lists ORDA events along with their rules. +The following table lists ORDA entity events along with their rules. | Evento | Nível | Function name | (C/S) Executed on | | :------------------- | :------- | :------------------------------------------------------ | :------------------------------------------------------------------: | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 479fd15eac6a81..55feedcff520fe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Configuration Properties -| Nome da propriedade | Tipo | Descrição | Opcional | -| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------- | -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Não para OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Sim | -| `organization` | Text | Your OpenAI Organization ID. | Sim | -| `project` | Text | Your OpenAI Project ID. | Sim | +| Nome da propriedade | Tipo | Descrição | Opcional | +| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI provider) | +| `organization` | Text | Your OpenAI Organization ID. | Sim | +| `project` | Text | Your OpenAI Project ID. | Sim | ### Propriedades HTTP adicionais diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index 28426d8b6f12b8..7cb74f769f2d19 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remoto -| Provider | URL base | +| Provider | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | URL base padrão | Doc | +| Provider | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index bac8cd22b06ec4..aed3c9f5dd59b6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -21,7 +21,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() O `$result` contém o `HTTPRequest`, um status de `sucess`, uma coleção de `erros` e outros. Ver [OpenAIResult](Classes/OpenAIResult.md) -Veja alguns exemplos abaixo. +See some examples below. #### Chat diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 2d483010e8a237..22f3ae5c7dd484 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Events +title: Entity Events ---
        História @@ -12,7 +12,7 @@ title: Events
        -ORDA events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. +Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). You can write very simple events, and then make them more sophisticated. You cannot directly trigger event function execution. Events are called automatically by ORDA based on user actions or operations performed through code on entities and their attributes. @@ -24,7 +24,7 @@ You cannot directly trigger event function execution. Events are called automati :::info Compatibility note -ORDA events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. +ORDA entity events in the datastore are equivalent to triggers in the 4D database. However, actions triggered at the 4D database level using the 4D classic language commands or standard actions do not trigger ORDA events. ::: @@ -102,13 +102,13 @@ When an error occurs in an event, the other events are stopped at the first rais ### Error object properties -| Propriedade | Tipo | Descrição | Set by the developer | -| ------------------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | -| extraDescription | Object | Free information to set up | Sim | -| seriousError | Parâmetros | Used only with validate events (see below).
      907. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      908. creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      909. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | Não | +| Propriedade | Tipo | Descrição | Set by the developer | +| ------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| errCode | Integer | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| message | Text | Same as for [`Last errors`](../commands/last-errors.md) command | Sim | +| extraDescription | Object | Free information to set up | Sim | +| seriousError | Parâmetros | Used only with validate events (see below).
      910. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      911. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Adds the `dk status validation failed` status
      912. | Yes (default is false) | +| componentSignature | Text | Always "DBEV" | Não | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -139,7 +139,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 479fd15eac6a81..55feedcff520fe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. ## Configuration Properties -| Nome da propriedade | Tipo | Descrição | Opcional | -| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------- | -| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Não para OpenAI | -| `baseURL` | Text | Base URL for OpenAI API requests. | Sim | -| `organization` | Text | Your OpenAI Organization ID. | Sim | -| `project` | Text | Your OpenAI Project ID. | Sim | +| Nome da propriedade | Tipo | Descrição | Opcional | +| ------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | +| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider | +| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI provider) | +| `organization` | Text | Your OpenAI Organization ID. | Sim | +| `project` | Text | Your OpenAI Project ID. | Sim | ### Propriedades HTTP adicionais diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index 28426d8b6f12b8..7cb74f769f2d19 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: Providers Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. -To do so you just have to change the original `baseURL` by the provider one and use their api key if needed. +To do so you just have to set the `baseURL` to the provider one and use their api key if needed. ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -17,7 +17,7 @@ Some of them ## Remoto -| Provider | URL base | +| Provider | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | https://mistral.ai/ | https://api.mistral.ai/v1 | | https://www.deepseek.com/ | https://api.deepseek.com | @@ -31,7 +31,7 @@ Some of them ## Local -| Provider | URL base padrão | Doc | +| Provider | Default baseURL | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/overview.md index bac8cd22b06ec4..aed3c9f5dd59b6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -21,7 +21,7 @@ First of all, initialize the OpenAI client using your API key var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you can configure the server URL by setting the `baseURL` parameter. +For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() O `$result` contém o `HTTPRequest`, um status de `sucess`, uma coleção de `erros` e outros. Ver [OpenAIResult](Classes/OpenAIResult.md) -Veja alguns exemplos abaixo. +See some examples below. #### Chat From fac33c8f94fd6745f3f02944c3619c24f7c2756f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 14:38:56 +0200 Subject: [PATCH 094/119] Update SessionClass.md --- docs/API/SessionClass.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/API/SessionClass.md b/docs/API/SessionClass.md index ed2886e8de489f..fc6823efe170e6 100644 --- a/docs/API/SessionClass.md +++ b/docs/API/SessionClass.md @@ -99,7 +99,7 @@ This function does not remove **promoted privileges** from the web process, whet ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Example @@ -409,7 +409,7 @@ This function returns True for the *privilege* if called from a function that wa ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. From e1b0d814af0635583ab15624575c47817de4b133 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 15:30:44 +0200 Subject: [PATCH 095/119] fix p --- docs/FormEditor/formEditor.md | 2 +- versioned_docs/version-19/FormEditor/formEditor.md | 2 +- versioned_docs/version-20-R10/FormEditor/formEditor.md | 2 +- versioned_docs/version-20/FormEditor/formEditor.md | 2 +- versioned_docs/version-21/FormEditor/formEditor.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/FormEditor/formEditor.md b/docs/FormEditor/formEditor.md index faa838ac35febc..ac09eb25d6c578 100644 --- a/docs/FormEditor/formEditor.md +++ b/docs/FormEditor/formEditor.md @@ -56,7 +56,7 @@ The toolbar contains the following elements: |Icon |Name|Description | |---|---|---| |![](../assets/en/FormEditor/execute.png)| Execute the form| Used to test the execution of the form. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). The form is executed in the main process.| -|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.| |![](../assets/en/FormEditor/zOrder.png)| [Entry order](#data-entry-order)| Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | |![](../assets/en/FormEditor/moving.png)| [Moving](#moving-objects)| Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. The cursor takes the shape of a hand. This navigation mode is particularly useful when zooming in the form.| |![](../assets/en/FormEditor/zoom.png)| [Zoom](#zoom)| Allows modifying the form display percentage (100% by default). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. This feature is detailed in previous section.| diff --git a/versioned_docs/version-19/FormEditor/formEditor.md b/versioned_docs/version-19/FormEditor/formEditor.md index d51d56323e33a0..427cf8c83eab8c 100644 --- a/versioned_docs/version-19/FormEditor/formEditor.md +++ b/versioned_docs/version-19/FormEditor/formEditor.md @@ -56,7 +56,7 @@ The toolbar contains the following elements: |Icon |Name|Description | |---|---|---| |![](../assets/en/FormEditor/execute.png)| Execute the form| Used to test the execution of the form. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). The form is executed in the main process.| -|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.| |![](../assets/en/FormEditor/zOrder.png)| [Entry order](#data-entry-order)| Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | |![](../assets/en/FormEditor/moving.png)| [Moving](#moving-objects)| Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. The cursor takes the shape of a hand. This navigation mode is particularly useful when zooming in the form.| |![](../assets/en/FormEditor/zoom.png)| [Zoom](#zoom)| Allows modifying the form display percentage (100% by default). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. This feature is detailed in previous section.| diff --git a/versioned_docs/version-20-R10/FormEditor/formEditor.md b/versioned_docs/version-20-R10/FormEditor/formEditor.md index faa838ac35febc..ac09eb25d6c578 100644 --- a/versioned_docs/version-20-R10/FormEditor/formEditor.md +++ b/versioned_docs/version-20-R10/FormEditor/formEditor.md @@ -56,7 +56,7 @@ The toolbar contains the following elements: |Icon |Name|Description | |---|---|---| |![](../assets/en/FormEditor/execute.png)| Execute the form| Used to test the execution of the form. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). The form is executed in the main process.| -|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.| |![](../assets/en/FormEditor/zOrder.png)| [Entry order](#data-entry-order)| Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | |![](../assets/en/FormEditor/moving.png)| [Moving](#moving-objects)| Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. The cursor takes the shape of a hand. This navigation mode is particularly useful when zooming in the form.| |![](../assets/en/FormEditor/zoom.png)| [Zoom](#zoom)| Allows modifying the form display percentage (100% by default). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. This feature is detailed in previous section.| diff --git a/versioned_docs/version-20/FormEditor/formEditor.md b/versioned_docs/version-20/FormEditor/formEditor.md index d51d56323e33a0..427cf8c83eab8c 100644 --- a/versioned_docs/version-20/FormEditor/formEditor.md +++ b/versioned_docs/version-20/FormEditor/formEditor.md @@ -56,7 +56,7 @@ The toolbar contains the following elements: |Icon |Name|Description | |---|---|---| |![](../assets/en/FormEditor/execute.png)| Execute the form| Used to test the execution of the form. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). The form is executed in the main process.| -|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.| |![](../assets/en/FormEditor/zOrder.png)| [Entry order](#data-entry-order)| Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | |![](../assets/en/FormEditor/moving.png)| [Moving](#moving-objects)| Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. The cursor takes the shape of a hand. This navigation mode is particularly useful when zooming in the form.| |![](../assets/en/FormEditor/zoom.png)| [Zoom](#zoom)| Allows modifying the form display percentage (100% by default). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. This feature is detailed in previous section.| diff --git a/versioned_docs/version-21/FormEditor/formEditor.md b/versioned_docs/version-21/FormEditor/formEditor.md index faa838ac35febc..ac09eb25d6c578 100644 --- a/versioned_docs/version-21/FormEditor/formEditor.md +++ b/versioned_docs/version-21/FormEditor/formEditor.md @@ -56,7 +56,7 @@ The toolbar contains the following elements: |Icon |Name|Description | |---|---|---| |![](../assets/en/FormEditor/execute.png)| Execute the form| Used to test the execution of the form. When you click on this button, 4D opens a new window and displays the form in its context (list of records for a list form and current record page for a detail form). The form is executed in the main process.| -|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +|![](../assets/en/FormEditor/selection.png)| [Selection tool](#selecting-objects)|Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.| |![](../assets/en/FormEditor/zOrder.png)| [Entry order](#data-entry-order)| Switches to “Entry order” mode, where it is possible to view and change the current entry order of the form. Note that shields allow viewing the current entry order, while still working in the form. | |![](../assets/en/FormEditor/moving.png)| [Moving](#moving-objects)| Switches to “Move” mode, where it is possible to reach any part of the form quickly by using drag and drop in the window. The cursor takes the shape of a hand. This navigation mode is particularly useful when zooming in the form.| |![](../assets/en/FormEditor/zoom.png)| [Zoom](#zoom)| Allows modifying the form display percentage (100% by default). You can switch to “Zoom” mode by clicking on the magnifying glass or by clicking directly on the desired bar. This feature is detailed in previous section.| From db5d4df06e9051bc143ddede63408740cceadb33 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 15:42:50 +0200 Subject: [PATCH 096/119] fix p --- docs/FormEditor/formEditor.md | 26 ++++++++++--------- .../version-19/FormEditor/formEditor.md | 26 ++++++++++--------- .../version-20-R10/FormEditor/formEditor.md | 26 ++++++++++--------- .../version-20/FormEditor/formEditor.md | 26 ++++++++++--------- .../version-21/FormEditor/formEditor.md | 26 ++++++++++--------- 5 files changed, 70 insertions(+), 60 deletions(-) diff --git a/docs/FormEditor/formEditor.md b/docs/FormEditor/formEditor.md index ac09eb25d6c578..bea05b4840859b 100644 --- a/docs/FormEditor/formEditor.md +++ b/docs/FormEditor/formEditor.md @@ -148,11 +148,11 @@ Before you can perform any operation on an object (such as changing a line width To select an object using the toolbar: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Click the object you want to select. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Click the object you want to select. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) To select an object using the Property List: @@ -243,13 +243,13 @@ To group objects: 1. Select the objects that you want to group. 2. Choose **Group** from the Object menu. OR -Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        +Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. To ungroup an object: 1. Select the grouped object that you want to ungroup. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marks the boundaries of the individual objects with handles. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marks the boundaries of the individual objects with handles. ### Aligning objects @@ -277,9 +277,10 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        The example area displays the results of your selection. + +- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered. -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:

        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered.

        You can preview the results of the alignment by clicking the **Preview** button. The objects are then aligned in the Form editor but since the dialog box does not go away, you can still cancel or apply the alignment. @@ -316,7 +317,8 @@ To distribute objects with equal spacing: 1. Select three or more objects and click the desired Distribute tool. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. To distribute objects using the Align and Distribute dialog box: @@ -324,9 +326,9 @@ To distribute objects using the Align and Distribute dialog box: 2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. The following dialog box appears:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Standard horizontal distribution icon)

        The example area displays the results of your selection. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -381,11 +383,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr To view or change the entry order: -1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:
        ![](../assets/en/FormEditor/zOrder.png)
        The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. Viewing and changing the data entry order are the only actions you can perform until you click any tool in the Tools palette. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repeat step 2 as many times as necessary to set the data entry order you want. diff --git a/versioned_docs/version-19/FormEditor/formEditor.md b/versioned_docs/version-19/FormEditor/formEditor.md index 427cf8c83eab8c..b5f5e1ee8cc89d 100644 --- a/versioned_docs/version-19/FormEditor/formEditor.md +++ b/versioned_docs/version-19/FormEditor/formEditor.md @@ -146,11 +146,11 @@ Before you can perform any operation on an object (such as changing a line width To select an object using the toolbar: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Click the object you want to select. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Click the object you want to select. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) To select an object using the Property List: @@ -241,13 +241,13 @@ To group objects: 1. Select the objects that you want to group. 2. Choose **Group** from the Object menu. OR -Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        +Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. To ungroup an object: 1. Select the grouped object that you want to ungroup. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marks the boundaries of the individual objects with handles. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marks the boundaries of the individual objects with handles. ### Aligning objects @@ -275,9 +275,10 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        The example area displays the results of your selection. + +- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered. -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:

        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered.

        You can preview the results of the alignment by clicking the **Preview** button. The objects are then aligned in the Form editor but since the dialog box does not go away, you can still cancel or apply the alignment. @@ -314,7 +315,8 @@ To distribute objects with equal spacing: 1. Select three or more objects and click the desired Distribute tool. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. To distribute objects using the Align and Distribute dialog box: @@ -322,9 +324,9 @@ To distribute objects using the Align and Distribute dialog box: 2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. The following dialog box appears:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Standard horizontal distribution icon)

        The example area displays the results of your selection. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -379,11 +381,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr To view or change the entry order: -1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:
        ![](../assets/en/FormEditor/zOrder.png)
        The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. Viewing and changing the data entry order are the only actions you can perform until you click any tool in the Tools palette. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repeat step 2 as many times as necessary to set the data entry order you want. diff --git a/versioned_docs/version-20-R10/FormEditor/formEditor.md b/versioned_docs/version-20-R10/FormEditor/formEditor.md index ac09eb25d6c578..bea05b4840859b 100644 --- a/versioned_docs/version-20-R10/FormEditor/formEditor.md +++ b/versioned_docs/version-20-R10/FormEditor/formEditor.md @@ -148,11 +148,11 @@ Before you can perform any operation on an object (such as changing a line width To select an object using the toolbar: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Click the object you want to select. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Click the object you want to select. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) To select an object using the Property List: @@ -243,13 +243,13 @@ To group objects: 1. Select the objects that you want to group. 2. Choose **Group** from the Object menu. OR -Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        +Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. To ungroup an object: 1. Select the grouped object that you want to ungroup. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marks the boundaries of the individual objects with handles. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marks the boundaries of the individual objects with handles. ### Aligning objects @@ -277,9 +277,10 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        The example area displays the results of your selection. + +- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered. -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:

        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered.

        You can preview the results of the alignment by clicking the **Preview** button. The objects are then aligned in the Form editor but since the dialog box does not go away, you can still cancel or apply the alignment. @@ -316,7 +317,8 @@ To distribute objects with equal spacing: 1. Select three or more objects and click the desired Distribute tool. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. To distribute objects using the Align and Distribute dialog box: @@ -324,9 +326,9 @@ To distribute objects using the Align and Distribute dialog box: 2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. The following dialog box appears:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Standard horizontal distribution icon)

        The example area displays the results of your selection. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -381,11 +383,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr To view or change the entry order: -1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:
        ![](../assets/en/FormEditor/zOrder.png)
        The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. Viewing and changing the data entry order are the only actions you can perform until you click any tool in the Tools palette. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repeat step 2 as many times as necessary to set the data entry order you want. diff --git a/versioned_docs/version-20/FormEditor/formEditor.md b/versioned_docs/version-20/FormEditor/formEditor.md index 427cf8c83eab8c..b5f5e1ee8cc89d 100644 --- a/versioned_docs/version-20/FormEditor/formEditor.md +++ b/versioned_docs/version-20/FormEditor/formEditor.md @@ -146,11 +146,11 @@ Before you can perform any operation on an object (such as changing a line width To select an object using the toolbar: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Click the object you want to select. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Click the object you want to select. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) To select an object using the Property List: @@ -241,13 +241,13 @@ To group objects: 1. Select the objects that you want to group. 2. Choose **Group** from the Object menu. OR -Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        +Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. To ungroup an object: 1. Select the grouped object that you want to ungroup. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marks the boundaries of the individual objects with handles. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marks the boundaries of the individual objects with handles. ### Aligning objects @@ -275,9 +275,10 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        The example area displays the results of your selection. + +- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered. -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:

        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered.

        You can preview the results of the alignment by clicking the **Preview** button. The objects are then aligned in the Form editor but since the dialog box does not go away, you can still cancel or apply the alignment. @@ -314,7 +315,8 @@ To distribute objects with equal spacing: 1. Select three or more objects and click the desired Distribute tool. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. To distribute objects using the Align and Distribute dialog box: @@ -322,9 +324,9 @@ To distribute objects using the Align and Distribute dialog box: 2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. The following dialog box appears:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Standard horizontal distribution icon)

        The example area displays the results of your selection. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -379,11 +381,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr To view or change the entry order: -1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:
        ![](../assets/en/FormEditor/zOrder.png)
        The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. Viewing and changing the data entry order are the only actions you can perform until you click any tool in the Tools palette. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repeat step 2 as many times as necessary to set the data entry order you want. diff --git a/versioned_docs/version-21/FormEditor/formEditor.md b/versioned_docs/version-21/FormEditor/formEditor.md index ac09eb25d6c578..bea05b4840859b 100644 --- a/versioned_docs/version-21/FormEditor/formEditor.md +++ b/versioned_docs/version-21/FormEditor/formEditor.md @@ -148,11 +148,11 @@ Before you can perform any operation on an object (such as changing a line width To select an object using the toolbar: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Click the object you want to select. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Click the object you want to select. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) To select an object using the Property List: @@ -243,13 +243,13 @@ To group objects: 1. Select the objects that you want to group. 2. Choose **Group** from the Object menu. OR -Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        +Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No handles mark the boundary of any of the individual objects within the group. Now, when you modify the grouped object, you change all the objects that make up the group. To ungroup an object: 1. Select the grouped object that you want to ungroup. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marks the boundaries of the individual objects with handles. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marks the boundaries of the individual objects with handles. ### Aligning objects @@ -277,9 +277,10 @@ The Alignment Assistant allows you to perform any type of alignment and/or distr To display this dialog box, select the objects you want to align then choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        The example area displays the results of your selection. + +- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered. -- To perform an alignment that uses the standard anchor scheme, click **Preview** or **Apply**. In this case 4D uses the object that is the furthest in the alignment’s direction as the anchor and aligns the other objects to that object. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor. OR:

        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. In this case, the position of the reference object will not be altered.

        You can preview the results of the alignment by clicking the **Preview** button. The objects are then aligned in the Form editor but since the dialog box does not go away, you can still cancel or apply the alignment. @@ -316,7 +317,8 @@ To distribute objects with equal spacing: 1. Select three or more objects and click the desired Distribute tool. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. +4D distributes the objects accordingly. Objects are distributed using the distance to their centers and the largest distance between two consecutive objects is used as a reference. To distribute objects using the Align and Distribute dialog box: @@ -324,9 +326,9 @@ To distribute objects using the Align and Distribute dialog box: 2. Choose the **Alignment** command from the **Align** submenu in the **Object** menu or from the context menu of the editor. The following dialog box appears:![](../assets/en/FormEditor/alignmentAssistant.png) -3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Standard horizontal distribution icon)

        The example area displays the results of your selection. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). This option acts like a switch. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontally, the icons correspond to the following distributions: evenly with respect to left sides, centers (hor.) and right sides of the selected objects. - Vertically, the icons correspond to the following distributions: evenly with respect to top edges, centers (vert.) and bottom edges of the selected objects. @@ -381,11 +383,11 @@ This paragraph describes viewing and modifying the entry order using the “Entr To view or change the entry order: -1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Choose **Entry Order** from the **Form** menu or click on the Entry Order button in the toolbar of the window:
        ![](../assets/en/FormEditor/zOrder.png)
        The pointer turns into an entry order pointer and 4D draws a line in the form showing the order in which it selects objects during data entry. Viewing and changing the data entry order are the only actions you can perform until you click any tool in the Tools palette. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repeat step 2 as many times as necessary to set the data entry order you want. From 01a0face040c78c142482ad4c10a372539456f43 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 15:43:37 +0200 Subject: [PATCH 097/119] Update formEditor.md --- docs/FormEditor/formEditor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FormEditor/formEditor.md b/docs/FormEditor/formEditor.md index bea05b4840859b..c66e37efd28e53 100644 --- a/docs/FormEditor/formEditor.md +++ b/docs/FormEditor/formEditor.md @@ -159,7 +159,7 @@ To select an object using the Property List: 1. Choose the object’s name from the Object List drop-down list located at the top of the Property List. Using these two methods, you can select an object that is hidden by other objects or located outside the visible area of the current window. To deselect an object, click outside the object’s boundary or **Shift+click** the object. ->It is also possible to select objects by double-clicking them in the result window of ""Find in design" operation. +>It is also possible to select objects by double-clicking them in the result window of "Find in design" operation. ### Selecting multiple objects From 2acd44b58c200794d34722daf48f19efbcc89061 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 16:24:58 +0200 Subject: [PATCH 098/119] added link --- docs/Project/components.md | 2 +- versioned_docs/version-20-R10/Project/components.md | 2 +- versioned_docs/version-21/Project/components.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Project/components.md b/docs/Project/components.md index 25af5e563a0232..2d79126754eaab 100644 --- a/docs/Project/components.md +++ b/docs/Project/components.md @@ -366,7 +366,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note diff --git a/versioned_docs/version-20-R10/Project/components.md b/versioned_docs/version-20-R10/Project/components.md index b149e7e1faf406..56c1ed2475148a 100644 --- a/versioned_docs/version-20-R10/Project/components.md +++ b/versioned_docs/version-20-R10/Project/components.md @@ -363,7 +363,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note diff --git a/versioned_docs/version-21/Project/components.md b/versioned_docs/version-21/Project/components.md index fb4b3a96599988..397c118e34a070 100644 --- a/versioned_docs/version-21/Project/components.md +++ b/versioned_docs/version-21/Project/components.md @@ -350,7 +350,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note From d2b1cf9b0a8929adf4e9d1542d464527e1dd86d4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 20 Oct 2025 18:37:11 +0200 Subject: [PATCH 099/119] fixes in vector similarity --- docs/API/DataClassClass.md | 2 +- docs/REST/$filter.md | 6 +++--- versioned_docs/version-21/API/DataClassClass.md | 2 +- versioned_docs/version-21/REST/$filter.md | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/API/DataClassClass.md b/docs/API/DataClassClass.md index c6d6cb00f6fbbb..edcd003a94a757 100644 --- a/docs/API/DataClassClass.md +++ b/docs/API/DataClassClass.md @@ -1185,7 +1185,7 @@ In this case, the *value* parameter must be a **comparison vector object** conta |Property|Type|Description| |---|---|---| |vector|[4D.Vector](../API/VectorClass.md)|Mandatory. The vector to be compared| -|metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      913. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      914. `mk dot`: calculates the dot similarity of vectors.
      915. `mk euclidean`: calculates the Euclidean distance between vectors.| +|metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      916. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      917. `mk dot`: calculates the dot similarity of vectors.
      918. `mk euclidean`: calculates the Euclidean distance between vectors.| |threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| Only a subset of **comparator** symbols are supported. Note that they compare results to the threshold value: diff --git a/docs/REST/$filter.md b/docs/REST/$filter.md index 29bf2c20c502e8..50623cde869c9e 100644 --- a/docs/REST/$filter.md +++ b/docs/REST/$filter.md @@ -101,9 +101,9 @@ The *vectorComparison* parameter is a collection of the following elements: |Property|Type|Description| |---|---|---| -|[].vector|Collection of objects)|Mandatory. A collection that represents the vector to compare| -|[].metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      919. "cosine" (default if omitted): calculates the cosine distance between vectors.
      920. "dot": calculates the dot similarity of vectors.
      921. "euclidean": calculates the Euclidean distance between vectors.| -||[].threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| +|[].vector|Collection of numbers|Mandatory. A collection that represents the vector to compare| +|[].metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      922. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      923. "dot": calculates the dot similarity of vectors.
      924. "euclidean": calculates the Euclidean distance between vectors.| +|[].threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| Only a subset of **comparator** symbols are supported with vector comparisons. Note that they compare results to the threshold value: diff --git a/versioned_docs/version-21/API/DataClassClass.md b/versioned_docs/version-21/API/DataClassClass.md index c6d6cb00f6fbbb..edcd003a94a757 100644 --- a/versioned_docs/version-21/API/DataClassClass.md +++ b/versioned_docs/version-21/API/DataClassClass.md @@ -1185,7 +1185,7 @@ In this case, the *value* parameter must be a **comparison vector object** conta |Property|Type|Description| |---|---|---| |vector|[4D.Vector](../API/VectorClass.md)|Mandatory. The vector to be compared| -|metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      925. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      926. `mk dot`: calculates the dot similarity of vectors.
      927. `mk euclidean`: calculates the Euclidean distance between vectors.| +|metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      928. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      929. `mk dot`: calculates the dot similarity of vectors.
      930. `mk euclidean`: calculates the Euclidean distance between vectors.| |threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| Only a subset of **comparator** symbols are supported. Note that they compare results to the threshold value: diff --git a/versioned_docs/version-21/REST/$filter.md b/versioned_docs/version-21/REST/$filter.md index 29bf2c20c502e8..50623cde869c9e 100644 --- a/versioned_docs/version-21/REST/$filter.md +++ b/versioned_docs/version-21/REST/$filter.md @@ -101,9 +101,9 @@ The *vectorComparison* parameter is a collection of the following elements: |Property|Type|Description| |---|---|---| -|[].vector|Collection of objects)|Mandatory. A collection that represents the vector to compare| -|[].metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      931. "cosine" (default if omitted): calculates the cosine distance between vectors.
      932. "dot": calculates the dot similarity of vectors.
      933. "euclidean": calculates the Euclidean distance between vectors.| -||[].threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| +|[].vector|Collection of numbers|Mandatory. A collection that represents the vector to compare| +|[].metric|Text|Optional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      934. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      935. "dot": calculates the dot similarity of vectors.
      936. "euclidean": calculates the Euclidean distance between vectors.| +|[].threshold|Real|Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results.| Only a subset of **comparator** symbols are supported with vector comparisons. Note that they compare results to the threshold value: From 0ae66d228e5044e36aff94ced3f3185440791d5a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 21 Oct 2025 14:14:44 +0200 Subject: [PATCH 100/119] New Crowdin updates (#2971) * New translations develop-components.md (French) * New translations sessionclass.md (French) * New translations develop-components.md (French) * New translations forms.md (French) * New translations components.md (French) * New translations webarea_overview.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations classes.md (French) * New translations components.md (French) * New translations formeditor.md (French) * New translations formeditor.md (Spanish) * New translations formeditor.md (Japanese) * New translations formeditor.md (Portuguese, Brazilian) * New translations classes.md (French) * New translations formeditor.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations error-handling.md (French) * New translations formeditor.md (French) * New translations installation.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaichatcompletionsparameters.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations orda-events.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations develop-components.md (French) * New translations formeditor.md (French) * New translations pictures.md (French) * New translations properties_markers.md (French) * New translations installation.md (French) * New translations entities.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations vp-set-workbook-options.md (French) * New translations configuring.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations error-handling.md (French) * New translations develop-components.md (French) * New translations formeditor.md (French) * New translations forms.md (French) * New translations pictures.md (French) * New translations properties_markers.md (French) * New translations installation.md (French) * New translations entities.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations vp-set-workbook-options.md (French) * New translations configuring.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaichatcompletionsparameters.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations formeditor.md (Spanish) * New translations sessionclass.md (Spanish) * New translations formeditor.md (Spanish) * New translations forms.md (Spanish) * New translations privileges.md (Spanish) * New translations components.md (Spanish) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimessage.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations orda-events.md (Spanish) * New translations sessionclass.md (Spanish) * New translations formeditor.md (Spanish) * New translations orda-events.md (Spanish) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations openai.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations openaitool.md (Spanish) * New translations http-rules.md (Spanish) * New translations formeditor.md (Spanish) * New translations forms.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations orda-events.md (Spanish) * New translations privileges.md (Spanish) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimessage.md (Spanish) * New translations openaitool.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations formeditor.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaimessage.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaitool.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaichathelper.md (Japanese) * New translations openaimessage.md (Japanese) * New translations openaitool.md (Japanese) * New translations formeditor.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations formeditor.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations formeditor.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) --- .../current/API/SessionClass.md | 4 +- .../current/FormEditor/formEditor.md | 29 +++-- .../current/FormEditor/forms.md | 36 +++--- .../current/FormObjects/webArea_overview.md | 2 +- .../current/ORDA/orda-events.md | 52 ++++---- .../current/ORDA/privileges.md | 2 +- .../current/Project/components.md | 40 +++--- .../current/WebServer/http-request-handler.md | 2 +- .../current/WebServer/http-rules.md | 10 +- .../current/WritePro/managing-formulas.md | 2 +- .../current/aikit/Classes/OpenAI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 8 +- .../current/aikit/Classes/OpenAIChatHelper.md | 6 +- .../current/aikit/Classes/OpenAIMessage.md | 2 +- .../current/aikit/Classes/OpenAITool.md | 6 +- .../current/aikit/asynchronous-call.md | 2 +- .../current/aikit/compatible-openai.md | 2 +- .../version-19/FormEditor/formEditor.md | 28 ++-- .../version-20-R10/API/SessionClass.md | 2 +- .../version-20-R10/FormEditor/formEditor.md | 27 ++-- .../version-20-R10/ORDA/orda-events.md | 6 +- .../version-20-R10/Project/components.md | 34 ++--- .../WebServer/http-request-handler.md | 2 +- .../version-20-R10/aikit/Classes/OpenAI.md | 2 +- .../version-20-R10/aikit/compatible-openai.md | 2 +- .../version-20/FormEditor/formEditor.md | 28 ++-- .../version-21/FormEditor/formEditor.md | 27 ++-- .../version-21/FormEditor/forms.md | 34 ++--- .../FormObjects/webArea_overview.md | 2 +- .../version-21/ORDA/orda-events.md | 52 ++++---- .../version-21/ORDA/privileges.md | 2 +- .../version-21/Project/components.md | 40 +++--- .../WebServer/http-request-handler.md | 2 +- .../version-21/WebServer/http-rules.md | 10 +- .../version-21/WritePro/managing-formulas.md | 2 +- .../version-21/aikit/Classes/OpenAI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 8 +- .../aikit/Classes/OpenAIChatHelper.md | 6 +- .../version-21/aikit/Classes/OpenAIMessage.md | 2 +- .../version-21/aikit/Classes/OpenAITool.md | 6 +- .../version-21/aikit/asynchronous-call.md | 2 +- .../version-21/aikit/compatible-openai.md | 2 +- .../current/API/SessionClass.md | 24 ++-- .../current/Concepts/classes.md | 2 +- .../current/Concepts/error-handling.md | 6 +- .../current/Extensions/develop-components.md | 6 +- .../current/FormEditor/formEditor.md | 29 +++-- .../current/FormEditor/forms.md | 2 +- .../current/GettingStarted/Installation.md | 6 +- .../current/ORDA/orda-events.md | 42 +++--- .../current/ORDA/ordaClasses.md | 94 +++++++------- .../current/Project/components.md | 70 +++++----- .../current/aikit/Classes/OpenAI.md | 36 +++--- .../current/aikit/Classes/OpenAIChatAPI.md | 18 +-- .../OpenAIChatCompletionsParameters.md | 6 +- .../current/aikit/Classes/OpenAIMessage.md | 28 ++-- .../current/aikit/Classes/OpenAIParameters.md | 42 +++--- .../current/aikit/asynchronous-call.md | 18 +-- .../current/aikit/compatible-openai.md | 8 +- .../current/aikit/overview.md | 26 ++-- .../version-19/Concepts/classes.md | 2 +- .../version-19/Concepts/components.md | 2 +- .../version-19/FormEditor/formEditor.md | 28 ++-- .../version-20-R10/API/SessionClass.md | 2 +- .../version-20-R10/Concepts/classes.md | 2 +- .../Extensions/develop-components.md | 20 +-- .../version-20-R10/FormEditor/formEditor.md | 31 ++--- .../version-20-R10/FormEditor/pictures.md | 8 +- .../FormEditor/properties_Markers.md | 12 +- .../GettingStarted/Installation.md | 2 +- .../version-20-R10/ORDA/entities.md | 6 +- .../version-20-R10/ORDA/orda-events.md | 34 ++--- .../version-20-R10/ORDA/ordaClasses.md | 94 +++++++------- .../version-20-R10/Project/components.md | 80 ++++++------ .../commands/vp-set-workbook-options.md | 120 +++++++++--------- .../version-20-R10/ViewPro/configuring.md | 20 +-- .../version-20-R10/aikit/Classes/OpenAI.md | 46 +++---- .../aikit/Classes/OpenAIChatAPI.md | 18 +-- .../aikit/Classes/OpenAIMessage.md | 34 ++--- .../aikit/Classes/OpenAIParameters.md | 34 ++--- .../version-20-R10/aikit/asynchronous-call.md | 14 +- .../version-20-R10/aikit/compatible-openai.md | 8 +- .../version-20-R10/aikit/overview.md | 26 ++-- .../version-20/Concepts/classes.md | 2 +- .../Extensions/develop-components.md | 2 +- .../version-20/FormEditor/formEditor.md | 28 ++-- .../version-21/API/SessionClass.md | 24 ++-- .../version-21/Concepts/classes.md | 2 +- .../version-21/Concepts/error-handling.md | 6 +- .../Extensions/develop-components.md | 8 +- .../version-21/FormEditor/formEditor.md | 31 ++--- .../version-21/FormEditor/forms.md | 2 +- .../version-21/FormEditor/pictures.md | 8 +- .../FormEditor/properties_Markers.md | 12 +- .../version-21/GettingStarted/Installation.md | 6 +- .../version-21/ORDA/entities.md | 6 +- .../version-21/ORDA/orda-events.md | 42 +++--- .../version-21/ORDA/ordaClasses.md | 94 +++++++------- .../version-21/Project/components.md | 70 +++++----- .../commands/vp-set-workbook-options.md | 120 +++++++++--------- .../version-21/ViewPro/configuring.md | 20 +-- .../version-21/aikit/Classes/OpenAI.md | 46 +++---- .../version-21/aikit/Classes/OpenAIChatAPI.md | 18 +-- .../OpenAIChatCompletionsParameters.md | 6 +- .../version-21/aikit/Classes/OpenAIMessage.md | 28 ++-- .../aikit/Classes/OpenAIParameters.md | 42 +++--- .../version-21/aikit/asynchronous-call.md | 18 +-- .../version-21/aikit/compatible-openai.md | 8 +- .../version-21/aikit/overview.md | 26 ++-- .../current/API/DataClassClass.md | 2 +- .../current/API/SessionClass.md | 4 +- .../current/FormEditor/formEditor.md | 29 +++-- .../current/Project/components.md | 2 +- .../current/aikit/Classes/OpenAI.md | 12 +- .../current/aikit/Classes/OpenAIMessage.md | 56 ++++---- .../current/aikit/Classes/OpenAITool.md | 64 +++++----- .../version-19/FormEditor/formEditor.md | 62 ++++----- .../version-20-R10/FormEditor/formEditor.md | 27 ++-- .../version-20-R10/Project/components.md | 2 +- .../version-20-R10/aikit/Classes/OpenAI.md | 2 +- .../version-20/FormEditor/formEditor.md | 62 ++++----- .../version-21/API/DataClassClass.md | 2 +- .../version-21/FormEditor/formEditor.md | 27 ++-- .../version-21/Project/components.md | 2 +- .../version-21/aikit/Classes/OpenAI.md | 2 +- .../aikit/Classes/OpenAIChatHelper.md | 2 +- .../version-21/aikit/Classes/OpenAIMessage.md | 56 ++++---- .../version-21/aikit/Classes/OpenAITool.md | 64 +++++----- .../current/API/SessionClass.md | 4 +- .../current/FormEditor/formEditor.md | 29 +++-- .../current/Project/components.md | 2 +- .../version-19/FormEditor/formEditor.md | 28 ++-- .../version-20-R10/FormEditor/formEditor.md | 27 ++-- .../version-20-R10/Project/components.md | 2 +- .../version-20/FormEditor/formEditor.md | 28 ++-- 135 files changed, 1464 insertions(+), 1453 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 7b9392b7d194f3..b58fb0cca06e51 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,7 +89,7 @@ Esta función no elimina los **privilegios promovidos** del proceso web, tanto s ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Ejemplo @@ -388,7 +388,7 @@ Esta función devuelve True para el *privilegio* si se llama desde una función ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index d56a75b1db3be4..dea74525a9828c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barra de herramientas contiene los siguientes elementos: | Icono | Nombre | Descripción | | ------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Ejecutar el formulario | Se utiliza para probar la ejecución del formulario. Al presionar este botón, 4D abre una nueva ventana y muestra el formulario en su contexto (lista de registros para un formulario lista y página de registro actual para un formulario detallado). El formulario se ejecuta en el proceso principal. | -| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, desplazar y cambiar el tamaño de los objetos del formulario

        .**Nota**: cuando se selecciona un objeto de tipo Texto o Cuadro de Grupo, presionando la tecla **Enter** se pasa al modo edición.

        | +| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, desplazar y cambiar el tamaño de los objetos del formulario
        .**Nota**: cuando se selecciona un objeto de tipo Texto o Cuadro de Grupo, presionando la tecla **Enter** se pasa al modo edición. | | ![](../assets/en/FormEditor/zOrder.png) | [Orden de entrada](#data-entry-order) | Pasa al modo "Orden de entrada", donde es posible ver y cambiar el orden de entrada actual del formulario. Tenga en cuenta que las marcas permiten ver el orden de entrada actual, sin dejar de trabajar en el formulario. | | ![](../assets/en/FormEditor/moving.png) | [Mover](#mover-objetos) | Pasa al modo " Desplazamiento ", en el que es posible llegar rápidamente a cualquier parte del formulario utilizando la función de arrastrar y soltar en la ventana. El cursor toma la forma de una mano. Este modo de navegación es especialmente útil cuando se hace zoom en el formulario. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar la escala de visualización del formulario (100% por defecto). Puede pasar al modo "Zoom" haciendo clic en la lupa o pulsando directamente en la barra correspondiente a la escala deseada. Esta función se detalla en la sección anterior. | @@ -146,18 +146,18 @@ Antes de poder realizar cualquier operación en un objeto (como cambiar el ancho Para seleccionar un objeto utilizando la barra de herramientas: -1. Haz clic en la herramienta Flecha en la barra de herramientas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Haz clic en la herramienta Flecha en la barra de herramientas.
        ![](../assets/en/FormEditor/selection.png) -

        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Haga clic en el objeto que desea seleccionar. Las asas de redimensionamiento identifican el objeto seleccionado.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Haga clic en el objeto que desea seleccionar. Las asas de redimensionamiento identifican el objeto seleccionado.
        ![](../assets/en/FormEditor/selectResize.png) Para seleccionar un objeto utilizando la Lista de propiedades: 1. Seleccione el nombre del objeto en la lista desplegable de objetos situada en la parte superior de la lista de propiedades. Con estos dos métodos, puede seleccionar un objeto que esté oculto por otros objetos o que se encuentre fuera del área visible de la ventana actual. Para deseleccionar un objeto, haga clic fuera del límite del objeto o **Mayúsculas+clic** en el objeto. -> También es posible seleccionar objetos haciendo doble clic en la ventana de resultados de la operación "Buscar en diseño". +> It is also possible to select objects by double-clicking them in the result window of "Find in design" operation. ### Selección de múltiples objetos @@ -241,13 +241,13 @@ Para agrupar los objetos: 1. Seleccione los objetos que desea agrupar. 2. Elija **Agrupar** en el menú Objetos. O - Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:

        ![](../assets/en/FormEditor/group.png)

        + Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:
        ![](../assets/en/FormEditor/group.png) 4D marca el límite de los objetos recién agrupados con manijas. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Seleccione **Desagrupar** en el menú **Objeto**.

        O

        Haga clic en el botón **Desagrupar** (variante del botón **Agrupar**) en la barra de herramientas del editor de formularios.

        Si **Desagrupar** está atenuado, esto significa que el objeto seleccionado ya está separado en su forma más sencilla.

        4D marca los límites de los objetos individuales con manijas. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos @@ -275,9 +275,9 @@ El Asistente de Alineación permite realizar cualquier tipo de alineación y/o d Para mostrar esta caja de diálogo, seleccione los objetos que desee alinear y, a continuación, elija el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. -- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponda a la alineación que desee realizar.

        El área de ejemplo muestra los resultados de su selección.

        +- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponda a la alineación que desee realizar.
        El área de ejemplo muestra los resultados de su selección. -- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:

        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará.

        +- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:
        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará. Puede previsualizar los resultados de la alineación haciendo clic en el botón **Previsualización**. Los objetos se alinean entonces en el editor de formularios, pero como la caja de diálogo permanece en el primer plano, aún puede cancelar o aplicar la alineación. @@ -314,7 +314,8 @@ Para repartir los objetos con igual espacio: 1. Seleccione tres o más objetos y haga clic en la herramienta Distribuir correspondiente. -2. En la barra de herramientas, haga clic en la herramienta de distribución correspondiente a la distribución que desea aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        O

        Seleccione un comando de menú de distribución en el submenú **Alinear** del menú **Objeto** o en el menú contextual del editor.

        4D distribuye los objetos en consecuencia. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. ¡Aparece la siguiente caja de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Icono de distribución horizontal estándar)

        El área de ejemplo muestra los resultados de su selección. +3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Icono de distribución horizontal estándar)
        El área de ejemplo muestra los resultados de su selección. -4. Para realizar una distribución que utiliza el esquema estándar, haga clic en **Vista previa** o *Aplicar*.

        En este caso, 4D realizará una distribución estándar para que los objetos estén espaciados de manera equitativa entre ellos.

        O bien:

        para ejecutar una distribución específica, seleccione la opción **Distribuir** (por ejemplo, si desea distribuir los objetos en función de la distancia a su lado derecho). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:

        +4. Para realizar una distribución que utiliza el esquema estándar, haga clic en **Vista previa** o *Aplicar*.
        En este caso, 4D realizará una distribución estándar para que los objetos estén espaciados de manera equitativa entre ellos.
        O bien:
        para ejecutar una distribución específica, seleccione la opción **Distribuir** (por ejemplo, si desea distribuir los objetos en función de la distancia a su lado derecho). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
        - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdos, centros (hor.) y los lados derechos de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y los bordes inferiores de los objetos seleccionados. @@ -379,11 +380,11 @@ Este párrafo describe la visualización y la modificación del orden de entrada Para ver o cambiar el orden de entrada: -1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:
        ![](../assets/en/FormEditor/zOrder.png)
        El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. Para cambiar el orden de entrada de datos, ubique el puntero sobre un objeto del formulario y mientras mantiene presionado el botón del ratón, arrastre el puntero hasta el objeto que desee a continuación en el orden de entrada de datos..

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajustará el orden de entrada en consecuencia. +2. Para cambiar el orden de entrada de datos, ubique el puntero sobre un objeto del formulario y mientras mantiene presionado el botón del ratón, arrastre el puntero hasta el objeto que desee a continuación en el orden de entrada de datos..
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D ajustará el orden de entrada en consecuencia. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 90a26020484546..dd34615ea6612d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -96,64 +96,64 @@ No hay restricciones en el número de páginas que puede tener un formulario. El Un formulario multipáginas tiene una página de fondo y varias páginas de visualización. Los objetos que se colocan en la página de fondo pueden ser visibles en todas las páginas de visualización, pero sólo se pueden seleccionar y editar en la página de fondo. En los formularios multipágina, debe colocar su paleta de botones en la página de fondo. También es necesario incluir uno o más objetos en la página de fondo que ofrezcan las herramientas de navegación para el usuario. -## Fluent UI rendering (Developer Preview) +## Renderizado Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +En Windows, 4D soporta el renderizado de formularios **Fluent UI**, el moderno diseño gráfico de la interfaz de usuario de Microsoft, basado en la tecnología **WinUI 3**. **WinUI 3** es la base del Windows App SDK y representa las próximas interfaces gráficas de Windows. -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +La renderización Fluent UI ofrece controles modernos y atractivos, compatibilidad con los temas sistema dark/light, renderización más fluida optimizada para pantallas de alta resolución y una experiencia de usuario coherente y alineada con las aplicaciones recientes de Microsoft. -| Light theme | Dark theme | +| Tema claro | Tema oscuro | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | :::caution Vista previa para desarrolladores -Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. +La compatibilidad con Fluent UI se encuentra actualmente en fase Developer Preview. No debe utilizarse en producción. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Esta funcionalidad sólo se puede utilizar en Windows. En macOS, se ignora. ::: :::tip Entrada de blog relacionada -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) +[Modernice sus interfaces 4D con Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) ::: ### Requisitos -The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. +La renderización Fluent UI requiere que esté instalado [**Windows App SDK versión 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads). Debe instalar este SDK en cualquier máquina Windows que muestre sus formularios. -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si el Windows App SDK no está correctamente instalado, 4D renderizará todos sus formularios en modo clásico sin error. -### Enabling the Fluent UI rendering +### Activar el renderizado Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Puede activar el modo de renderizado Fluent UI a nivel de aplicación o a nivel de formulario. La configuración del formulario tiene prioridad sobre la configuración de la aplicación. -#### Application setting +#### Parámetros de la aplicación -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Seleccione la opción **Utilizar Fluent UI en Windows** en la página "Interfaz" de la caja de diálogo de las Propiedades. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +En este caso, el modo de renderizado Fluent UI se utilizará por defecto en Windows para todos los formularios. -#### Form setting +#### Parámetros del formulario -Each form can define its own rendering via the **Widget appearance** property. Las siguientes opciones están disponibles: +Cada formulario puede definir su propio renderizado a través de la propiedad **Apariencia de los Widgets**. Las siguientes opciones están disponibles: -- **Inherited**: inherits the global application setting (default), +- **Heredado**: hereda las propiedades globales de la aplicación (por defecto), - **Classic**: uses the classic Windows style, - **Fluent UI**: enables the modern rendering based on Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Specific behaviors +### Comportamientos específicos When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index 9ecdfb1282a9cb..75ae00ef3c98c9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -9,7 +9,7 @@ Es posible crear varias áreas web en el mismo formulario. Tenga en cuenta, sin Varias [acciones estándar](#standard-actions) dedicadas, numerosos [comandos de lenguaje](../category/web-area) así como [eventos de formulario](#form-events) genéricos y específicos permiten al desarrollador controlar el funcionamiento de las áreas web. Se pueden utilizar variables específicas para intercambiar información entre el área y el entorno 4D. -:::info Displaying Qodly pages +:::info Mostrar páginas Qodly In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). This feature allows you to design web-based interfaces for your client/server desktop applications. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 2502c9f919fd48..12b7b0d036ccbd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -8,7 +8,7 @@ title: Entity Events | Lanzamiento | Modificaciones | | ----------- | ----------------------------------------------------------------------------------------------------- | | 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| 20 R10 | se ha añadido un evento touched |
      937. @@ -58,21 +58,21 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests La siguiente tabla lista los eventos ORDA junto con sus reglas. -| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | -| :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | -| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | -| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | -| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | -| Before saving an entity | Atributo | `validateSave ()` | server | sí | -| | Entity | `validateSave()` | server | sí | -| When saving an entity | Atributo | `saving ()` | server | sí | -| | Entity | `saving()` | server | sí | -| After saving an entity | Entity | `afterSave()` | server | no | -| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | -| | Entity | `validateDrop()` | server | sí | -| When dropping an entity | Atributo | `dropping ()` | server | sí | -| | Entity | `dropping()` | server | sí | -| After dropping an entity | Entity | `afterDrop()` | server | no | +| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | +| :----------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | +| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | +| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| Antes de guardar una entidad | Atributo | `validateSave ()` | server | sí | +| | Entity | `validateSave()` | server | sí | +| Al guardar una entidad | Atributo | `saving ()` | server | sí | +| | Entity | `saving()` | server | sí | +| Después de guardar una entidad | Entity | `afterSave()` | server | no | +| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | +| | Entity | `validateDrop()` | server | sí | +| Al soltar una entidad | Atributo | `dropping ()` | server | sí | +| | Entity | `dropping()` | server | sí | +| After dropping an entity | Entity | `afterDrop()` | server | no | :::note @@ -100,15 +100,15 @@ Event functions accept a single *event* object as parameter. When the function i When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propiedades del objeto error -| Propiedad | Tipo | Descripción | Definido por el desarrollador | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | -| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | -| extraDescription | Object | Free information to set up | Sí | -| seriousError | Boolean | Used only with validate events (see below).
      938. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      939. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      940. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | No | +| Propiedad | Tipo | Descripción | Definido por el desarrollador | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | +| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| extraDescription | Object | Free information to set up | Sí | +| seriousError | Boolean | Used only with validate events (see below).
      941. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      942. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      943. | Sí (por defecto es false) | +| componentSignature | Text | Always "DBEV" | No | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -451,7 +451,7 @@ This event is useful after saving data to propagate the save action outside the The function receives an [*event* object](#event-parameter) as parameter. -- To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. +- To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. #### Ejemplo 1 @@ -644,7 +644,7 @@ This event is useful after dropping data to propagate the drop action outside th The function receives an [*event* object](#event-parameter) as parameter. -- To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. +- To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 2e61015157e2aa..5bb31631d97539 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -17,7 +17,7 @@ Si un usuario intenta ejecutar una acción y no tiene los derechos de acceso ade ![schema](../assets/en/ORDA/privileges-schema.png) -:::tip Related Blog posts +:::tip Entradas de blog relacionadas [**Filter access to your data with a complete system of permissions**](https://blog.4d.com/filter-access-to-your-data-with-a-complete-system-of-permissions/) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 360c11733574c2..05ff3c96923e4a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,11 +3,11 @@ id: components title: Dependencias --- -[La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). +[La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Los componentes están hechos de código 4D, mientras que los plug-ins pueden [construirse utilizando cualquier lenguaje](../Extensions/develop-plug-ins.md). Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\\\\\\\\\&type=Repositories). -Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. +Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. ## Componentes interpretados y compilados @@ -317,20 +317,20 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta ...donde `` puede ser "4D", "4D Server" o "tool4D". -### Automatic dependency resolution +### Resolución automática de las dependencias -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: +Cuando añade o actualiza un componente (ya sea [local](#local-components) o [desde GitHub](#components-stored-on-github)), 4D resuelve e instala automáticamente todas las dependencias requeridas por ese componente. Esto incluye: - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +El gestor de dependencias lee el archivo `dependencies.json` de cada componente e instala recursivamente todas las dependencias necesarias, respetando las especificaciones de versión siempre que sea posible. Esto elimina la necesidad de identificar y añadir manualmente las dependencias anidadas una por una. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Resolución de conflictos**: cuando varias dependencias requieren [versiones diferentes](#defining-a-github-dependency-version-range) del mismo componente, el gestor de dependencias intenta automáticamente resolver los conflictos encontrando una versión que satisfaga todos los rangos de versiones superpuestas. Si una dependencia primaria entra en conflicto con dependencias secundarias, la dependencia primaria tiene prioridad. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Los archivos `dependencies.json` se ignoran en los componentes cargados desde la carpeta [**Components**](architecture.md#components). ::: @@ -364,19 +364,19 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Todas**: todas las dependencias, incluidas las primarias (declaradas) y las secundarias (resueltas automáticamente) en forma de lista. +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. Esta pestaña le ayuda a distinguir entre las dependencias que ha añadido directamente y las que se han [resuelto automáticamente](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **Conflictos**: las dependencias que se cargan pero que sobrecargan al menos otra dependencia de un [nivel de prioridad](#priority) inferior. También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +El panel Dependencias muestra [**dependencias secundarias**](#automatic-dependency-resolution) con la `dependencia del componente` [origen](#dependency-origin): ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Cuando pasa el cursor sobre una dependencia secundaria, una descripción muestra la dependencia padre que la requiere. Una dependencia secundaria no se puede [eliminar](#removing-a-dependency) directamente, hay que eliminar o editar la dependencia primaria que la requiere. ### Estado de dependencias @@ -409,13 +409,13 @@ El panel Dependencias enumera todas las dependencias del proyecto, sea cual sea Las siguientes opciones de origen son posibles: -| Etiqueta de origen | Descripción | -| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | -| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | -| Declarado en el entorno | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | -| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | +| Etiqueta de origen | Descripción | +| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| Integrado a 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | +| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | +| Declarado en el entorno | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) y anulado en el archivo [`environment4d.json`](#environment4djson) | +| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | +| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | **Clic derecho** en una línea de dependencia y selecciona **Mostrar en el disco** para revelar la ubicación de una dependencia: @@ -469,7 +469,7 @@ Para añadir una [dependencia GitHub](#components-stored-on-github), haga clic e :::note -By default, [components developed by 4D](../Extensions/overview.md#components-developed-by-4d) are listed in the combo box, so that you can easily select and install these features in your environment: +Por defecto, los [componentes desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d) aparecen en el combo box, para que pueda seleccionarlos e instalarlos fácilmente en su entorno: ![dependency-default-git](../assets/en/Project/dependency-default.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index abf30606fa7f39..72aff3bfa10d5a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -73,7 +73,7 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern +- un patrón de URL a interceptar - a function and its class where the code is implemented to handle the listened URL pattern - the verbs with which the URL can be called to trigger the handler diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index fb6538d1b50df9..c362533f28a3d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -33,13 +33,13 @@ If the URI of the request does not match any of the RegEx patterns, the web serv The **HTTPRules.json** file or the [`.rules`](../API/WebServerClass.md#rules) property must contain a collection of **rule objects**. -A rule object is defined by: +Un objeto regla se define por: - a RegEx describing a URL pattern, e.g. "^(.\*\\.(jpg|jpeg|png|gif))" - the name of the action to execute for the HTTP response, e.g. "removeHeaders" - the value of the action, e.g. "X-Unwanted-Header1" -Other properties are ignored. +Las demás propiedades se ignoran. ### Patrones de la URL @@ -55,14 +55,14 @@ The following action keywords are supported: | Palabras clave | Tipo de valor | Descripción | | --------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `removeHeaders` | Text or Collection of texts | Header(s) to remove from the HTTP responses. If a header to remove does not exist in the response header, it is ignored. | +| `removeHeaders` | Texto o colección de textos | Header(s) to remove from the HTTP responses. If a header to remove does not exist in the response header, it is ignored. | | `addHeaders` | Object | Name (text) and value (text) of header(s) to add to the HTTP responses. | | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. If a header to modify does not exist in the response header, it is added. | | `denyAccess` | Boolean | true to deny access to the resource, false to allow access. When the access to a resource is denied, the web server returns a 403 status by default | | `redirect` | Text | Redirection URL. When a redirection is triggered, the web server returns a 302 status by default | | `status` | Number | Estado HTTP | -### Non-modifiable headers +### Encabezados no modificables Some headers could not be added, modified or removed: @@ -89,7 +89,7 @@ $rules:=WEB Server.rules //current rules Rules can be set using a `HTTPRules.json` file or the *settings* parameter of the [`.start()`](../API/WebServerClass.md#start) web server function. -### Using a HTTPRules.json file +### Utilización de un archivo HTTPRules.json ```json diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md index 608c443e16e75e..111fc3f6c16408 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md @@ -100,7 +100,7 @@ When used in a formula within the table, the **This** keyword gives access to di | En cualquier sitio | [This](../commands/this.md).table | Object | Tabla actual | | | [This](../commands/this.md).row | Object | Current table row element | | | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | -| Cuando se ha definido una fuente de datos para la tabla | [This](../commands/this.md).table.dataSource | Objet (fórmula) | Datasource as a formula | +| Cuando se ha definido una fuente de datos para la tabla | [This](../commands/this.md).table.dataSource | Objet (fórmula) | Fuente de datos como fórmula | | | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | table.dataSource evaluada | | In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Cualquiera | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | | | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index cdffaaba7869af..a2a69675bf98f7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -11,7 +11,7 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Nombre de la propiedad | Tipo | Descripción | Opcional | | ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Puede ser requerido por el proveedor | | `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI Platform) | | `organization` | Text | Su ID de organización OpenAI. | Sí | | `project` | Text | Su ID de proyecto OpenAI. | Sí | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index 3c088ca7ccd666..23279b40c9c82a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -42,9 +42,9 @@ See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. El parámetro `response_format` le permite especificar el formato que el modelo debe salir. This is particularly useful when you need structured data or want to ensure the response follows a specific format. -### Supported Response Format Types +### Tipos de formato de respuesta soportados -#### 1. Text Format (Default) +#### 1. Formato de texto (por defecto) The default response format returns plain text: @@ -55,7 +55,7 @@ var $params := cs.OpenAIChatCompletionsParameters.new({ \ }) ``` -#### 2. JSON Object Format +#### 2. Formato de objetos JSON Forces the model to respond with valid JSON: @@ -115,7 +115,7 @@ $messages.push({ role: "user"; content: "Generate information about a person nam $result := $client.chat.completions.create($messages; $params) ``` -### JSON Schema Properties +### Propiedades del esquema JSON Cuando se utiliza el tipo `json_schema`, puede especificar: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md index 0779745588607e..e138dcd16d9c4c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md @@ -74,14 +74,14 @@ $chatHelper.reset() // Clear all previous messages and tools Registers a tool with its handler function for automatic tool call handling. -The *handler* parameter can be: +El parámetro *handler* puede ser: - A **4D.Function**: Direct handler function - Un **Objeto**: un objeto que contiene una propiedad `formula` que coincide con el nombre de la función de la herramienta The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. -#### Register Tool Example +#### Ejemplo de herramienta de registro ```4D // Example 1: Simple registration with direct handler @@ -111,7 +111,7 @@ $chatHelper.registerTool($tool; $handlerObj) | ------------------- | ------- | -------------------------------------------------------- | | *toolsWithHandlers* | Variant | Object or Collection containing tools and their handlers | -Registers multiple tools at once. The parameter can be: +Registers multiple tools at once. El parámetro puede ser: - **Collection**: Array of tool objects (with handlers embedded or separate) - **Object**: Object with function names as keys mapping to tool definitions diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index 3d85542be120c4..ebb12bfbed10a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -48,7 +48,7 @@ var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) $message.addImageURL("http://example.com/image.jpg"; "high") ``` -### Respond to a tool call message +### Responder a un mensaje de llamada de herramienta When an assistant needs to use external functions, it generates a message with `tool_calls` to request function execution. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index dbe20d10764afa..e46e25346cc85a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -27,7 +27,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. | `name` | Text | The name of the tool, which works as an identifier. | | `descripción` | Text | Description of the tool to help the LLM decide when to use it. | -### Function-specific Properties +### Propiedades específicas de la función | Propiedad | Tipo | Descripción | | ------------ | ------ | -------------------------------------------------------------------------------- | @@ -48,7 +48,7 @@ Crea una nueva instancia de OpenAITool. The constructor accepts both simplified #### Formatos soportados -**Simplified format:** +**Formato simplificado:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -64,7 +64,7 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -**OpenAI API format:** +**Formato de la API OpenAI** ```4d var $tool := cs.OpenAITool.new({ \ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md index cea52c2b0979e3..ff565bb2601c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md @@ -11,7 +11,7 @@ To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. Ver ejemplos más abajo. -## Process Considerations +## Consideraciones sobre el proceso The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index a3c3f64be88879..5b5e136edec480 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Default baseURL | Doc | +| Proveedor | Base URL por defecto | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md index bfc77eab3e903f..8deb72f19dca7d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barra de herramientas contiene los siguientes elementos: | Icono | Nombre | Descripción | | ------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Ejecutar el formulario | Se utiliza para probar la ejecución del formulario. Al presionar este botón, 4D abre una nueva ventana y muestra el formulario en su contexto (lista de registros para un formulario lista y página de registro actual para un formulario detallado). El formulario se ejecuta en el proceso principal. | -| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.

        **Nota**: cuando se selecciona un objeto de tipo Texto o Área de Grupo, al presionar la tecla **Intro** se pasa al modo de edición.

        | +| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Orden de entrada](#data-entry-order) | Pasa al modo "Orden de entrada", donde es posible ver y cambiar el orden de entrada actual del formulario. Tenga en cuenta que las marcas permiten ver el orden de entrada actual, sin dejar de trabajar en el formulario. | | ![](../assets/en/FormEditor/moving.png) | [Desplazamiento](#moving-objects) | Pasa al modo " Desplazamiento ", en el que es posible llegar rápidamente a cualquier parte del formulario utilizando la función de arrastrar y soltar en la ventana. El cursor toma la forma de una mano. Este modo de navegación es especialmente útil cuando se hace zoom en el formulario. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar la escala de visualización del formulario (100% por defecto). Puede pasar al modo "Zoom" haciendo clic en la lupa o pulsando directamente en la barra correspondiente a la escala deseada. Esta función se detalla en la sección anterior. | @@ -146,11 +146,11 @@ Antes de poder realizar cualquier operación en un objeto (como cambiar el ancho Para seleccionar un objeto utilizando la barra de herramientas: -1. Haga clic en la herramienta Flecha de la barra de herramientas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Haga clic en la herramienta Flecha de la barra de herramientas.
        ![](../assets/en/FormEditor/selection.png) -

        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha

        . +
        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha. -2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
        ![](../assets/en/FormEditor/selectResize.png) Para seleccionar un objeto utilizando la Lista de propiedades: @@ -235,13 +235,12 @@ La agrupación sólo afecta a los objetos en el editor de formularios. Cuando se Para agrupar los objetos: 1. Seleccione los objetos que desea agrupar. -2. Elija **Agrupar** en el menú Objetos. OR Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        -4D marca el límite de los objetos recién agrupados con marcas. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. +2. Elija **Agrupar** en el menú Objetos. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Elija **Desagrupar** en el menú **Objetos**.

        O

        Haga clic en el botón **Desagrupar** (menú del botón **Agrupar**) de la barra de herramientas del editor de formularios.

        Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple.

        4D marca los bordes de los objetos individuales con marcas. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos @@ -268,9 +267,10 @@ El Asistente de Alineación permite realizar cualquier tipo de alineación y/o d Para mostrar esta caja de diálogo, seleccione los objetos que desee alinear y, a continuación, elija el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. -- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponde a la alineación que desea realizar.

        El área de ejemplo muestra los resultados de su selección.

        +- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponda a la alineación que desee realizar.
        El área de ejemplo muestra los resultados de su selección. + +- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. En este caso, la posición del objeto de referencia no se alterará. -- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.

        Para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará.

        Puede previsualizar los resultados de la alineación haciendo clic en el botón **Previsualización**. Los objetos se alinean entonces en el editor de formularios, pero como la caja de diálogo permanece en el primer plano, aún puede cancelar o aplicar la alineación. > Esta caja de diálogo le permite alinear y distribuir objetos en una sola operación. Para más información sobre cómo distribuir objetos, consulte [Repartir objetos](#distribuir-objetos). @@ -304,7 +304,7 @@ Para repartir los objetos con igual espacio: 1. Seleccione tres o más objetos y haga clic en la herramienta Distribuir correspondiente. -2. En la barra de herramientas, haga clic en la herramienta de distribución que corresponde a la distribución que desea aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        O

        Seleccione un comando del menú de distribución en el submenú **Alinear** del menú **Objeto** o en el menú contextual del editor.

        4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: @@ -312,9 +312,9 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. Aparece la siguiente caja de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Icono de distribución horizontal estándar)

        El área de ejemplo muestra los resultados de su selección. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Para efectuar una repartición estándar que utilice el esquema estándar, haga clic en **Previsualización** o *Aplicar*.

        En este caso, 4D realizará una distribución estándar, de modo que los objetos se dispongan con la misma cantidad de espacio entre ellos.

        For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.

        Para efectuar una distribución específica, seleccione la opción **Distribuir** (por ejemplo, si desea distribuir los objetos en función de la distancia a su lado derecho). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
        - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdo, central (hor.) y derecho de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y bordes inferiores de los objetos seleccionados. @@ -367,11 +367,11 @@ Este párrafo describe la visualización y la modificación del orden de entrada Para ver o cambiar el orden de entrada: -1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:
        ![](../assets/en/FormEditor/zOrder.png)
        El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. Para cambiar el orden de entrada de datos, sitúe el puntero sobre un objeto del formulario y, mientras mantiene presionado el botón del ratón, arrastre el puntero hasta el objeto que desee que siga en el orden de entrada de datos.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajustará la orden de entrada en consecuencia. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index f9fd60a5858123..e0e303e07ca47a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -120,7 +120,7 @@ $isGuest:=Session.isGuest() //$isGuest es True | Parámetros | Tipo | | Descripción | | ---------- | ------- | :-------------------------: | --------------------------------------------------- | | lifespan | Integer | -> | Duración de la vida del token de sesión en segundos | -| Resultado | Text | <- | UUID of the OTP token | +| Resultado | Text | <- | UUID del token OTP | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index eeff7b3fd312a1..f0be8595f7bb7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barra de herramientas contiene los siguientes elementos: | Icono | Nombre | Descripción | | ------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Ejecutar el formulario | Se utiliza para probar la ejecución del formulario. Al presionar este botón, 4D abre una nueva ventana y muestra el formulario en su contexto (lista de registros para un formulario lista y página de registro actual para un formulario detallado). El formulario se ejecuta en el proceso principal. | -| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.
        **Nota**: cuando se selecciona un objeto de tipo Texto o Área de Grupo, al presionar la tecla **Intro** se pasa al modo de edición. | | ![](../assets/en/FormEditor/zOrder.png) | [Orden de entrada](#data-entry-order) | Pasa al modo "Orden de entrada", donde es posible ver y cambiar el orden de entrada actual del formulario. Tenga en cuenta que las marcas permiten ver el orden de entrada actual, sin dejar de trabajar en el formulario. | | ![](../assets/en/FormEditor/moving.png) | [Mover](#mover-objetos) | Pasa al modo " Desplazamiento ", en el que es posible llegar rápidamente a cualquier parte del formulario utilizando la función de arrastrar y soltar en la ventana. El cursor toma la forma de una mano. Este modo de navegación es especialmente útil cuando se hace zoom en el formulario. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar la escala de visualización del formulario (100% por defecto). Puede pasar al modo "Zoom" haciendo clic en la lupa o pulsando directamente en la barra correspondiente a la escala deseada. Esta función se detalla en la sección anterior. | @@ -146,11 +146,11 @@ Antes de poder realizar cualquier operación en un objeto (como cambiar el ancho Para seleccionar un objeto utilizando la barra de herramientas: -1. Haga clic en la herramienta Flecha de la barra de herramientas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Haga clic en la herramienta Flecha de la barra de herramientas.
        ![](../assets/en/FormEditor/selection.png) -

        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
        ![](../assets/en/FormEditor/selectResize.png) Para seleccionar un objeto utilizando la Lista de propiedades: @@ -241,13 +241,13 @@ Para agrupar los objetos: 1. Seleccione los objetos que desea agrupar. 2. Elija **Agrupar** en el menú Objetos. O - Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:

        ![](../assets/en/FormEditor/group.png)

        + Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:
        ![](../assets/en/FormEditor/group.png) 4D marca el límite de los objetos recién agrupados con manijas. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marca los bordes de los objetos individuales con marcas. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos @@ -275,9 +275,9 @@ El Asistente de Alineación permite realizar cualquier tipo de alineación y/o d Para mostrar esta caja de diálogo, seleccione los objetos que desee alinear y, a continuación, elija el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        El área de ejemplo muestra los resultados de su selección.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        El área de ejemplo muestra los resultados de su selección. -- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:

        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará.

        +- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:
        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará. Puede previsualizar los resultados de la alineación haciendo clic en el botón **Previsualización**. Los objetos se alinean entonces en el editor de formularios, pero como la caja de diálogo permanece en el primer plano, aún puede cancelar o aplicar la alineación. @@ -314,7 +314,8 @@ Para repartir los objetos con igual espacio: 1. Seleccione tres o más objetos y haga clic en la herramienta Distribuir correspondiente. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. ¡Aparece la siguiente caja de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Icono de distribución horizontal estándar)

        El área de ejemplo muestra los resultados de su selección. +3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Icono de distribución horizontal estándar)
        El área de ejemplo muestra los resultados de su selección. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
        - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdos, centros (hor.) y los lados derechos de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y los bordes inferiores de los objetos seleccionados. @@ -379,11 +380,11 @@ Este párrafo describe la visualización y la modificación del orden de entrada Para ver o cambiar el orden de entrada: -1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:
        ![](../assets/en/FormEditor/zOrder.png)
        El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a366adf9f54881..b13d7f36544020 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -5,9 +5,9 @@ title: Entity Events
        Historia -| Lanzamiento | Modificaciones | -| ----------- | ------------------- | -| 20 R10 | touched event added | +| Lanzamiento | Modificaciones | +| ----------- | ------------------------------- | +| 20 R10 | se ha añadido un evento touched |
        diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index f158b4a86b6fd1..4278b5bd24df39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -330,20 +330,20 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta ...donde `` puede ser "4D", "4D Server" o "tool4D". -### Automatic dependency resolution +### Resolución automática de las dependencias -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: +Cuando añade o actualiza un componente (ya sea [local](#local-components) o [desde GitHub](#components-stored-on-github)), 4D resuelve e instala automáticamente todas las dependencias requeridas por ese componente. Esto incluye: - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +El gestor de dependencias lee el archivo `dependencies.json` de cada componente e instala recursivamente todas las dependencias necesarias, respetando las especificaciones de versión siempre que sea posible. Esto elimina la necesidad de identificar y añadir manualmente las dependencias anidadas una por una. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Resolución de conflictos**: cuando varias dependencias requieren [versiones diferentes](#defining-a-github-dependency-version-range) del mismo componente, el gestor de dependencias intenta automáticamente resolver los conflictos encontrando una versión que satisfaga todos los rangos de versiones superpuestas. Si una dependencia primaria entra en conflicto con dependencias secundarias, la dependencia primaria tiene prioridad. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Los archivos `dependencies.json` se ignoran en los componentes cargados desde la carpeta [**Components**](architecture.md#components). ::: @@ -377,19 +377,19 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Todas**: todas las dependencias, incluidas las primarias (declaradas) y las secundarias (resueltas automáticamente) en forma de lista. +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. Esta pestaña le ayuda a distinguir entre las dependencias que ha añadido directamente y las que se han [resuelto automáticamente](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **Conflictos**: las dependencias que se cargan pero que sobrecargan al menos otra dependencia de un [nivel de prioridad](#priority) inferior. También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +El panel Dependencias muestra [**dependencias secundarias**](#automatic-dependency-resolution) con la `dependencia del componente` [origen](#dependency-origin): ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Cuando pasa el cursor sobre una dependencia secundaria, una descripción muestra la dependencia padre que la requiere. Una dependencia secundaria no se puede [eliminar](#removing-a-dependency) directamente, hay que eliminar o editar la dependencia primaria que la requiere. ### Estado de dependencias @@ -422,13 +422,13 @@ El panel Dependencias enumera todas las dependencias del proyecto, sea cual sea Las siguientes opciones de origen son posibles: -| Etiqueta de origen | Descripción | -| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | -| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | -| Declarado en el entorno | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | -| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | +| Etiqueta de origen | Descripción | +| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| Integrado a 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | +| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | +| Declarado en el entorno | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) y anulado en el archivo [`environment4d.json`](#environment4djson) | +| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | +| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | **Clic derecho** en una línea de dependencia y selecciona **Mostrar en el disco** para revelar la ubicación de una dependencia: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 4dbc4001c1fdac..5a5143056222b6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -62,7 +62,7 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern +- un patrón de URL a interceptar - a function and its class where the code is implemented to handle the listened URL pattern - the verbs with which the URL can be called to trigger the handler diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 78314e72ed1705..b218df5a79d550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -11,7 +11,7 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Nombre de la propiedad | Tipo | Descripción | Opcional | | ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Puede ser requerido por el proveedor | | `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI provider) | | `organization` | Text | Su ID de organización OpenAI. | Sí | | `project` | Text | Su ID de proyecto OpenAI. | Sí | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index a3c3f64be88879..5b5e136edec480 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Default baseURL | Doc | +| Proveedor | Base URL por defecto | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md index bfc77eab3e903f..8deb72f19dca7d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barra de herramientas contiene los siguientes elementos: | Icono | Nombre | Descripción | | ------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Ejecutar el formulario | Se utiliza para probar la ejecución del formulario. Al presionar este botón, 4D abre una nueva ventana y muestra el formulario en su contexto (lista de registros para un formulario lista y página de registro actual para un formulario detallado). El formulario se ejecuta en el proceso principal. | -| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.

        **Nota**: cuando se selecciona un objeto de tipo Texto o Área de Grupo, al presionar la tecla **Intro** se pasa al modo de edición.

        | +| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Orden de entrada](#data-entry-order) | Pasa al modo "Orden de entrada", donde es posible ver y cambiar el orden de entrada actual del formulario. Tenga en cuenta que las marcas permiten ver el orden de entrada actual, sin dejar de trabajar en el formulario. | | ![](../assets/en/FormEditor/moving.png) | [Desplazamiento](#moving-objects) | Pasa al modo " Desplazamiento ", en el que es posible llegar rápidamente a cualquier parte del formulario utilizando la función de arrastrar y soltar en la ventana. El cursor toma la forma de una mano. Este modo de navegación es especialmente útil cuando se hace zoom en el formulario. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar la escala de visualización del formulario (100% por defecto). Puede pasar al modo "Zoom" haciendo clic en la lupa o pulsando directamente en la barra correspondiente a la escala deseada. Esta función se detalla en la sección anterior. | @@ -146,11 +146,11 @@ Antes de poder realizar cualquier operación en un objeto (como cambiar el ancho Para seleccionar un objeto utilizando la barra de herramientas: -1. Haga clic en la herramienta Flecha de la barra de herramientas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Haga clic en la herramienta Flecha de la barra de herramientas.
        ![](../assets/en/FormEditor/selection.png) -

        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha

        . +
        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha. -2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
        ![](../assets/en/FormEditor/selectResize.png) Para seleccionar un objeto utilizando la Lista de propiedades: @@ -235,13 +235,12 @@ La agrupación sólo afecta a los objetos en el editor de formularios. Cuando se Para agrupar los objetos: 1. Seleccione los objetos que desea agrupar. -2. Elija **Agrupar** en el menú Objetos. OR Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        -4D marca el límite de los objetos recién agrupados con marcas. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. +2. Elija **Agrupar** en el menú Objetos. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Elija **Desagrupar** en el menú **Objetos**.

        O

        Haga clic en el botón **Desagrupar** (menú del botón **Agrupar**) de la barra de herramientas del editor de formularios.

        Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple.

        4D marca los bordes de los objetos individuales con marcas. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos @@ -268,9 +267,10 @@ El Asistente de Alineación permite realizar cualquier tipo de alineación y/o d Para mostrar esta caja de diálogo, seleccione los objetos que desee alinear y, a continuación, elija el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. -- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponde a la alineación que desea realizar.

        El área de ejemplo muestra los resultados de su selección.

        +- En las áreas "Alineación izquierda/derecha" y/o "Alineación superior/inferior", haga clic en el icono que corresponda a la alineación que desee realizar.
        El área de ejemplo muestra los resultados de su selección. + +- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. En este caso, la posición del objeto de referencia no se alterará. -- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.

        Para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará.

        Puede previsualizar los resultados de la alineación haciendo clic en el botón **Previsualización**. Los objetos se alinean entonces en el editor de formularios, pero como la caja de diálogo permanece en el primer plano, aún puede cancelar o aplicar la alineación. > Esta caja de diálogo le permite alinear y distribuir objetos en una sola operación. Para más información sobre cómo distribuir objetos, consulte [Repartir objetos](#distribuir-objetos). @@ -304,7 +304,7 @@ Para repartir los objetos con igual espacio: 1. Seleccione tres o más objetos y haga clic en la herramienta Distribuir correspondiente. -2. En la barra de herramientas, haga clic en la herramienta de distribución que corresponde a la distribución que desea aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        O

        Seleccione un comando del menú de distribución en el submenú **Alinear** del menú **Objeto** o en el menú contextual del editor.

        4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: @@ -312,9 +312,9 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. Aparece la siguiente caja de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Icono de distribución horizontal estándar)

        El área de ejemplo muestra los resultados de su selección. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Para efectuar una repartición estándar que utilice el esquema estándar, haga clic en **Previsualización** o *Aplicar*.

        En este caso, 4D realizará una distribución estándar, de modo que los objetos se dispongan con la misma cantidad de espacio entre ellos.

        For instance, if you want to perform a right alignment on a set of objects, the rightmost object will be used as the anchor.

        Para efectuar una distribución específica, seleccione la opción **Distribuir** (por ejemplo, si desea distribuir los objetos en función de la distancia a su lado derecho). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
        - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdo, central (hor.) y derecho de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y bordes inferiores de los objetos seleccionados. @@ -367,11 +367,11 @@ Este párrafo describe la visualización y la modificación del orden de entrada Para ver o cambiar el orden de entrada: -1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:
        ![](../assets/en/FormEditor/zOrder.png)
        El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. Para cambiar el orden de entrada de datos, sitúe el puntero sobre un objeto del formulario y, mientras mantiene presionado el botón del ratón, arrastre el puntero hasta el objeto que desee que siga en el orden de entrada de datos.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajustará la orden de entrada en consecuencia. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index eeff7b3fd312a1..f0be8595f7bb7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barra de herramientas contiene los siguientes elementos: | Icono | Nombre | Descripción | | ------------------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Ejecutar el formulario | Se utiliza para probar la ejecución del formulario. Al presionar este botón, 4D abre una nueva ventana y muestra el formulario en su contexto (lista de registros para un formulario lista y página de registro actual para un formulario detallado). El formulario se ejecuta en el proceso principal. | -| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Herramienta de selección](#selecting-objects) | Permite seleccionar, mover y redimensionar los objetos del formulario.
        **Nota**: cuando se selecciona un objeto de tipo Texto o Área de Grupo, al presionar la tecla **Intro** se pasa al modo de edición. | | ![](../assets/en/FormEditor/zOrder.png) | [Orden de entrada](#data-entry-order) | Pasa al modo "Orden de entrada", donde es posible ver y cambiar el orden de entrada actual del formulario. Tenga en cuenta que las marcas permiten ver el orden de entrada actual, sin dejar de trabajar en el formulario. | | ![](../assets/en/FormEditor/moving.png) | [Mover](#mover-objetos) | Pasa al modo " Desplazamiento ", en el que es posible llegar rápidamente a cualquier parte del formulario utilizando la función de arrastrar y soltar en la ventana. El cursor toma la forma de una mano. Este modo de navegación es especialmente útil cuando se hace zoom en el formulario. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar la escala de visualización del formulario (100% por defecto). Puede pasar al modo "Zoom" haciendo clic en la lupa o pulsando directamente en la barra correspondiente a la escala deseada. Esta función se detalla en la sección anterior. | @@ -146,11 +146,11 @@ Antes de poder realizar cualquier operación en un objeto (como cambiar el ancho Para seleccionar un objeto utilizando la barra de herramientas: -1. Haga clic en la herramienta Flecha de la barra de herramientas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Haga clic en la herramienta Flecha de la barra de herramientas.
        ![](../assets/en/FormEditor/selection.png) -

        Cuando se mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
        ![](../assets/en/FormEditor/selectResize.png) Para seleccionar un objeto utilizando la Lista de propiedades: @@ -241,13 +241,13 @@ Para agrupar los objetos: 1. Seleccione los objetos que desea agrupar. 2. Elija **Agrupar** en el menú Objetos. O - Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:

        ![](../assets/en/FormEditor/group.png)

        + Haga clic en el botón Agrupar en la barra de herramientas del editor de formularios:
        ![](../assets/en/FormEditor/group.png) 4D marca el límite de los objetos recién agrupados con manijas. No hay marcas que delimiten ninguno de los objetos individuales del grupo. Ahora, al modificar el objeto agrupado, se modifican todos los objetos que componen el grupo. Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marca los bordes de los objetos individuales con marcas. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos @@ -275,9 +275,9 @@ El Asistente de Alineación permite realizar cualquier tipo de alineación y/o d Para mostrar esta caja de diálogo, seleccione los objetos que desee alinear y, a continuación, elija el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        El área de ejemplo muestra los resultados de su selección.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        El área de ejemplo muestra los resultados de su selección. -- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:

        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará.

        +- Para realizar una alineación que utilice el esquema de anclaje estándar, haga clic en **Ver** o **Aplicar**. En este caso, 4D utiliza el objeto que está más lejos en la dirección de la alineación como ancla y alinea los otros objetos a ese objeto. Por ejemplo, si quiere realizar una alineación a la derecha en un conjunto de objetos, el objeto más a la derecha se utilizará como ancla. O:
        para alinear los objetos a un objeto específico, seleccione la opción **Alinear en** y seleccione el objeto al que desea que se alineen los demás objetos de la lista de objetos. En este caso, la posición del objeto de referencia no se alterará. Puede previsualizar los resultados de la alineación haciendo clic en el botón **Previsualización**. Los objetos se alinean entonces en el editor de formularios, pero como la caja de diálogo permanece en el primer plano, aún puede cancelar o aplicar la alineación. @@ -314,7 +314,8 @@ Para repartir los objetos con igual espacio: 1. Seleccione tres o más objetos y haga clic en la herramienta Distribuir correspondiente. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribuye los objetos consecuentemente. Los objetos se distribuyen utilizando la distancia a sus centros y se utiliza como referencia la mayor distancia entre dos objetos consecutivos. Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. ¡Aparece la siguiente caja de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Icono de distribución horizontal estándar)

        El área de ejemplo muestra los resultados de su selección. +3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Icono de distribución horizontal estándar)
        El área de ejemplo muestra los resultados de su selección. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
        - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdos, centros (hor.) y los lados derechos de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y los bordes inferiores de los objetos seleccionados. @@ -379,11 +380,11 @@ Este párrafo describe la visualización y la modificación del orden de entrada Para ver o cambiar el orden de entrada: -1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Seleccione **Orden de entrada** en el menú **Formulario** o haga clic en el botón Orden de entrada en la barra de herramientas de la ventana:
        ![](../assets/en/FormEditor/zOrder.png)
        El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 90a26020484546..62fd87c2f3ffa9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -96,11 +96,11 @@ No hay restricciones en el número de páginas que puede tener un formulario. El Un formulario multipáginas tiene una página de fondo y varias páginas de visualización. Los objetos que se colocan en la página de fondo pueden ser visibles en todas las páginas de visualización, pero sólo se pueden seleccionar y editar en la página de fondo. En los formularios multipágina, debe colocar su paleta de botones en la página de fondo. También es necesario incluir uno o más objetos en la página de fondo que ofrezcan las herramientas de navegación para el usuario. -## Fluent UI rendering (Developer Preview) +## Renderizado Fluent UI (Developer Preview) -On Windows, 4D supports **Fluent UI** form rendering, Microsoft's modern graphical user interface design, based upon **WinUI 3** technology. **WinUI 3** is the foundation of the Windows App SDK and represents the upcoming Windows graphical interfaces. +En Windows, 4D soporta el renderizado de formularios **Fluent UI**, el moderno diseño gráfico de la interfaz de usuario de Microsoft, basado en la tecnología **WinUI 3**. **WinUI 3** es la base del Windows App SDK y representa las próximas interfaces gráficas de Windows. -Fluent UI rendering offers modern and attractive controls, support of dark/light system themes, smoother rendering optimized for high-resolution displays, and consistent user experience aligned with recent Microsoft applications. +La renderización Fluent UI ofrece controles modernos y atractivos, compatibilidad con los temas sistema dark/light, renderización más fluida optimizada para pantallas de alta resolución y una experiencia de usuario coherente y alineada con las aplicaciones recientes de Microsoft. | Light theme | Dark theme | | --------------------------------------- | -------------------------------------------- | @@ -108,52 +108,52 @@ Fluent UI rendering offers modern and attractive controls, support of dark/light :::caution Vista previa para desarrolladores -Fluent UI support is currently in the Developer Preview phase. No debe utilizarse en producción. +La compatibilidad con Fluent UI se encuentra actualmente en fase Developer Preview. No debe utilizarse en producción. ::: :::info macOS -This feature can only be used on Windows. On macOS, it is ignored. +Esta funcionalidad sólo se puede utilizar en Windows. En macOS, se ignora. ::: :::tip Entrada de blog relacionada -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) +[Modernice sus interfaces 4D con Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui) ::: ### Requisitos -The Fluent UI rendering requires that the [**Windows App SDK version 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) be installed. You need to install this SDK on any Windows machine displaying your forms. +La renderización Fluent UI requiere que esté instalado [**Windows App SDK versión 1.7.3**](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads). Debe instalar este SDK en cualquier máquina Windows que muestre sus formularios. -If the Windows App SDK is not properly installed, 4D will render all your forms in classic mode with no error. +Si el Windows App SDK no está correctamente instalado, 4D renderizará todos sus formularios en modo clásico sin error. -### Enabling the Fluent UI rendering +### Activar el renderizado Fluent UI -You can enable the Fluent UI rendering mode at the application level or at the form level. Form setting has priority over application setting. +Puede activar el modo de renderizado Fluent UI a nivel de aplicación o a nivel de formulario. La configuración del formulario tiene prioridad sobre la configuración de la aplicación. -#### Application setting +#### Parámetros de la aplicación -Check the **Use Fluent UI on Windows** option in the "Interface" page of the Settings dialog box. +Seleccione la opción **Utilizar Fluent UI en Windows** en la página "Interfaz" de la caja de diálogo de las Propiedades. ![](../assets/en/FormObjects/fluentui-setting.png) -In this case, the Fluent UI rendering mode will be used by default on Windows for all forms. +En este caso, el modo de renderizado Fluent UI se utilizará por defecto en Windows para todos los formularios. -#### Form setting +#### Parámetros del formulario -Each form can define its own rendering via the **Widget appearance** property. Las siguientes opciones están disponibles: +Cada formulario puede definir su propio renderizado a través de la propiedad **Apariencia de los Widgets**. Las siguientes opciones están disponibles: -- **Inherited**: inherits the global application setting (default), +- **Heredado**: hereda las propiedades globales de la aplicación (por defecto), - **Classic**: uses the classic Windows style, - **Fluent UI**: enables the modern rendering based on Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". -### Specific behaviors +### Comportamientos específicos When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md index 9ecdfb1282a9cb..75ae00ef3c98c9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md @@ -9,7 +9,7 @@ Es posible crear varias áreas web en el mismo formulario. Tenga en cuenta, sin Varias [acciones estándar](#standard-actions) dedicadas, numerosos [comandos de lenguaje](../category/web-area) así como [eventos de formulario](#form-events) genéricos y específicos permiten al desarrollador controlar el funcionamiento de las áreas web. Se pueden utilizar variables específicas para intercambiar información entre el área y el entorno 4D. -:::info Displaying Qodly pages +:::info Mostrar páginas Qodly In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). This feature allows you to design web-based interfaces for your client/server desktop applications. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index a4b9131253dbed..bdaddd77019819 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -8,7 +8,7 @@ title: Entity Events | Lanzamiento | Modificaciones | | ----------- | ----------------------------------------------------------------------------------------------------- | | 21 | Added events: validateSave / saving / afterSave / validateDrop / dropping / afterDrop | -| 20 R10 | touched event added | +| 20 R10 | se ha añadido un evento touched | @@ -58,21 +58,21 @@ Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests La siguiente tabla lista los eventos ORDA junto con sus reglas. -| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | -| :------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | -| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | -| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | -| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | -| Before saving an entity | Atributo | `validateSave ()` | server | sí | -| | Entity | `validateSave()` | server | sí | -| When saving an entity | Atributo | `saving ()` | server | sí | -| | Entity | `saving()` | server | sí | -| After saving an entity | Entity | `afterSave()` | server | no | -| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | -| | Entity | `validateDrop()` | server | sí | -| When dropping an entity | Atributo | `dropping ()` | server | sí | -| | Entity | `dropping()` | server | sí | -| After dropping an entity | Entity | `afterDrop()` | server | no | +| Evento | Nivel | Nombre de la función | (C/S) Ejecutado en | Can stop action by returning an error | +| :----------------------------- | :------- | :------------------------------------------------------ | :---------------------------------------------------------------------------: | ------------------------------------- | +| Instanciación de entidades | Entity | [`constructor()`](./ordaClasses.md#class-constructor-1) | client | no | +| Atributo tocado | Atributo | `event touched ()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| | Entity | `event touched()` | Depende de la palabra clave [`local`](../ORDA/ordaClasses.md#local-functions) | no | +| Antes de guardar una entidad | Atributo | `validateSave ()` | server | sí | +| | Entity | `validateSave()` | server | sí | +| Al guardar una entidad | Atributo | `saving ()` | server | sí | +| | Entity | `saving()` | server | sí | +| Después de guardar una entidad | Entity | `afterSave()` | server | no | +| Before dropping an entity | Atributo | `validateDrop ()` | server | sí | +| | Entity | `validateDrop()` | server | sí | +| Al soltar una entidad | Atributo | `dropping ()` | server | sí | +| | Entity | `dropping()` | server | sí | +| After dropping an entity | Entity | `afterDrop()` | server | no | :::note @@ -100,15 +100,15 @@ Event functions accept a single *event* object as parameter. When the function i When an error occurs in an event, the other events are stopped at the first raised error and the action (save or drop) is also stopped. This error is sent before other potential errors like [stamp has changed, entity locked](../API/EntityClass.md#save), etc. -### Error object properties +### Propiedades del objeto error -| Propiedad | Tipo | Descripción | Definido por el desarrollador | -| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | -| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | -| extraDescription | Object | Free information to set up | Sí | -| seriousError | Boolean | Used only with validate events (see below).
      944. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      945. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      946. | Yes (default is false) | -| componentSignature | Text | Always "DBEV" | No | +| Propiedad | Tipo | Descripción | Definido por el desarrollador | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | +| errCode | Integer | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| message | Text | Igual al comando [`Last errors`](../commands/last-errors.md) | Sí | +| extraDescription | Object | Información libre a definir | Sí | +| seriousError | Boolean | Used only with validate events (see below).
      947. `True`: creates a [serious (unpredictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) and triggers an exception. Adds the `dk status serious validation error` status
      948. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Añade el estado `dk status validation failed`.
      949. | Sí (por defecto es false) | +| componentSignature | Text | Always "DBEV" | No | - [Serious errors](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) are stacked in the `errors` collection property of the **Result object** returned by the [`save()`](../API/EntityClass.md#save) or [`drop()`](../API/EntityClass.md#drop) functions. - In case of an error triggered by a **validate** event, the `seriousError` property allows you to choose the level of the error to generate: @@ -451,7 +451,7 @@ This event is useful after saving data to propagate the save action outside the The function receives an [*event* object](#event-parameter) as parameter. -- To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. +- To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. #### Ejemplo 1 @@ -644,7 +644,7 @@ This event is useful after dropping data to propagate the drop action outside th The function receives an [*event* object](#event-parameter) as parameter. -- To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. +- To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 2e61015157e2aa..5bb31631d97539 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -17,7 +17,7 @@ Si un usuario intenta ejecutar una acción y no tiene los derechos de acceso ade ![schema](../assets/en/ORDA/privileges-schema.png) -:::tip Related Blog posts +:::tip Entradas de blog relacionadas [**Filter access to your data with a complete system of permissions**](https://blog.4d.com/filter-access-to-your-data-with-a-complete-system-of-permissions/) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index f8a5c66d2848e3..9c9aa3644752e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -3,11 +3,11 @@ id: components title: Dependencias --- -[La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). +[La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Los componentes están hechos de código 4D, mientras que los plug-ins pueden [construirse utilizando cualquier lenguaje](../Extensions/develop-plug-ins.md). Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\\\\\\\\\&type=Repositories). -Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. +Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. ## Componentes interpretados y compilados @@ -317,20 +317,20 @@ Los componentes GitHub a los que se hace referencia se descargan en una carpeta ...donde `` puede ser "4D", "4D Server" o "tool4D". -### Automatic dependency resolution +### Resolución automática de las dependencias -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Esto incluye: +Cuando añade o actualiza un componente (ya sea [local](#local-components) o [desde GitHub](#components-stored-on-github)), 4D resuelve e instala automáticamente todas las dependencias requeridas por ese componente. Esto incluye: - **Dependencias primarias**: componentes que declara explícitamente en su archivo `dependencies.json` - **Dependencias secundarias**: componentes requeridos por dependencias primarias u otras dependencias secundarias, que se resuelven e instalan automáticamente -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +El gestor de dependencias lee el archivo `dependencies.json` de cada componente e instala recursivamente todas las dependencias necesarias, respetando las especificaciones de versión siempre que sea posible. Esto elimina la necesidad de identificar y añadir manualmente las dependencias anidadas una por una. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Resolución de conflictos**: cuando varias dependencias requieren [versiones diferentes](#defining-a-github-dependency-version-range) del mismo componente, el gestor de dependencias intenta automáticamente resolver los conflictos encontrando una versión que satisfaga todos los rangos de versiones superpuestas. Si una dependencia primaria entra en conflicto con dependencias secundarias, la dependencia primaria tiene prioridad. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Los archivos `dependencies.json` se ignoran en los componentes cargados desde la carpeta [**Components**](architecture.md#components). ::: @@ -364,19 +364,19 @@ Por defecto, se listan todas las dependencias identificadas por el gestor de dep ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). +- **Todas**: todas las dependencias, incluidas las primarias (declaradas) y las secundarias (resueltas automáticamente) en forma de lista. +- **Declarado**: dependencias primarias que se declaran explícitamente en el archivo `dependencies.json`. Esta pestaña le ayuda a distinguir entre las dependencias que ha añadido directamente y las que se han [resuelto automáticamente](#automatic-dependency-resolution). - **Activo**: dependencias que están cargadas y pueden ser utilizadas en el proyecto. Incluye dependencias *overloading*, las cuales son realmente cargadas. Las dependencias *Overloaded* se enumeran en el panel **Conflicts** junto con todas las dependencias en conflicto. - **Inactivo**: dependencias que no están cargadas en el proyecto y no están disponibles. Hay muchas razones posibles para este estado: archivos que faltan, incompatibilidad de versiones... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. +- **Conflictos**: las dependencias que se cargan pero que sobrecargan al menos otra dependencia de un [nivel de prioridad](#priority) inferior. También se muestran las dependencias sobrecargadas para que pueda comprobar el origen del conflicto y tomar las medidas oportunas. ### Dependencias secundarias -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +El panel Dependencias muestra [**dependencias secundarias**](#automatic-dependency-resolution) con la `dependencia del componente` [origen](#dependency-origin): ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Cuando pasa el cursor sobre una dependencia secundaria, una descripción muestra la dependencia padre que la requiere. Una dependencia secundaria no se puede [eliminar](#removing-a-dependency) directamente, hay que eliminar o editar la dependencia primaria que la requiere. ### Estado de dependencias @@ -409,13 +409,13 @@ El panel Dependencias enumera todas las dependencias del proyecto, sea cual sea Las siguientes opciones de origen son posibles: -| Etiqueta de origen | Descripción | -| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | -| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | -| Declarado en el entorno | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | -| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | +| Etiqueta de origen | Descripción | +| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| Integrado a 4D | Componente 4D integrado, almacenado en la carpeta `Components` de la aplicación 4D | +| Declarado en proyecto | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) | +| Declarado en el entorno | Componente declarado en el archivo [`dependencies.json`](#dependenciesjson) y anulado en el archivo [`environment4d.json`](#environment4djson) | +| Carpeta Components | Componente ubicado en la carpeta [`Components`](architecture.md#components) | +| Dependencia de los componentes | Componente secundario ([requerido por otro componente](#automatic-dependency-resolution)) | **Clic derecho** en una línea de dependencia y selecciona **Mostrar en el disco** para revelar la ubicación de una dependencia: @@ -469,7 +469,7 @@ Para añadir una [dependencia GitHub](#components-stored-on-github), haga clic e :::note -By default, [components developed by 4D](../Extensions/overview.md#components-developed-by-4d) are listed in the combo box, so that you can easily select and install these features in your environment: +Por defecto, los [componentes desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d) aparecen en el combo box, para que pueda seleccionarlos e instalarlos fácilmente en su entorno: ![dependency-default-git](../assets/en/Project/dependency-default.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index abf30606fa7f39..72aff3bfa10d5a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -73,7 +73,7 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: -- a listened URL pattern +- un patrón de URL a interceptar - a function and its class where the code is implemented to handle the listened URL pattern - the verbs with which the URL can be called to trigger the handler diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index fb6538d1b50df9..c362533f28a3d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -33,13 +33,13 @@ If the URI of the request does not match any of the RegEx patterns, the web serv The **HTTPRules.json** file or the [`.rules`](../API/WebServerClass.md#rules) property must contain a collection of **rule objects**. -A rule object is defined by: +Un objeto regla se define por: - a RegEx describing a URL pattern, e.g. "^(.\*\\.(jpg|jpeg|png|gif))" - the name of the action to execute for the HTTP response, e.g. "removeHeaders" - the value of the action, e.g. "X-Unwanted-Header1" -Other properties are ignored. +Las demás propiedades se ignoran. ### Patrones de la URL @@ -55,14 +55,14 @@ The following action keywords are supported: | Palabras clave | Tipo de valor | Descripción | | --------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `removeHeaders` | Text or Collection of texts | Header(s) to remove from the HTTP responses. If a header to remove does not exist in the response header, it is ignored. | +| `removeHeaders` | Texto o colección de textos | Header(s) to remove from the HTTP responses. If a header to remove does not exist in the response header, it is ignored. | | `addHeaders` | Object | Name (text) and value (text) of header(s) to add to the HTTP responses. | | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. If a header to modify does not exist in the response header, it is added. | | `denyAccess` | Boolean | true to deny access to the resource, false to allow access. When the access to a resource is denied, the web server returns a 403 status by default | | `redirect` | Text | Redirection URL. When a redirection is triggered, the web server returns a 302 status by default | | `status` | Number | Estado HTTP | -### Non-modifiable headers +### Encabezados no modificables Some headers could not be added, modified or removed: @@ -89,7 +89,7 @@ $rules:=WEB Server.rules //current rules Rules can be set using a `HTTPRules.json` file or the *settings* parameter of the [`.start()`](../API/WebServerClass.md#start) web server function. -### Using a HTTPRules.json file +### Utilización de un archivo HTTPRules.json ```json diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 9aef2486715052..58f263aab85b56 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -100,7 +100,7 @@ When used in a formula within the table, the **This** keyword gives access to di | En cualquier sitio | [This](../commands/this.md).table | Object | Tabla actual | | | [This](../commands/this.md).row | Object | Current table row element | | | [This](../commands/this.md).rowIndex | Number | Index of the current row, starting from 1 | -| Cuando se ha definido una fuente de datos para la tabla | [This](../commands/this.md).table.dataSource | Objet (fórmula) | Datasource as a formula | +| Cuando se ha definido una fuente de datos para la tabla | [This](../commands/this.md).table.dataSource | Objet (fórmula) | Fuente de datos como fórmula | | | [This](../commands/this.md).tableData | Collection or Entity selection (usually) | table.dataSource evaluada | | In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Cualquiera | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | | | [This](../commands/this.md).itemIndex | Number | Index of the current item in the collection or entity selection, starting from 0 | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 78314e72ed1705..b218df5a79d550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -11,7 +11,7 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. | Nombre de la propiedad | Tipo | Descripción | Opcional | | ---------------------- | ---- | ---------------------------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Can be required by the provider | +| `apiKey` | Text | Su [llave OpenAI API](https://platform.openai.com/api-keys). | Puede ser requerido por el proveedor | | `baseURL` | Text | URL base para las peticiones de la API OpenAI. | Yes (if omitted = use OpenAI provider) | | `organization` | Text | Su ID de organización OpenAI. | Sí | | `project` | Text | Su ID de proyecto OpenAI. | Sí | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index 3c088ca7ccd666..23279b40c9c82a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -42,9 +42,9 @@ See [OpenAIParameters](./OpenAIParameters.md) for other callback properties. El parámetro `response_format` le permite especificar el formato que el modelo debe salir. This is particularly useful when you need structured data or want to ensure the response follows a specific format. -### Supported Response Format Types +### Tipos de formato de respuesta soportados -#### 1. Text Format (Default) +#### 1. Formato de texto (por defecto) The default response format returns plain text: @@ -55,7 +55,7 @@ var $params := cs.OpenAIChatCompletionsParameters.new({ \ }) ``` -#### 2. JSON Object Format +#### 2. Formato de objetos JSON Forces the model to respond with valid JSON: @@ -115,7 +115,7 @@ $messages.push({ role: "user"; content: "Generate information about a person nam $result := $client.chat.completions.create($messages; $params) ``` -### JSON Schema Properties +### Propiedades del esquema JSON Cuando se utiliza el tipo `json_schema`, puede especificar: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md index 0779745588607e..e138dcd16d9c4c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md @@ -74,14 +74,14 @@ $chatHelper.reset() // Clear all previous messages and tools Registers a tool with its handler function for automatic tool call handling. -The *handler* parameter can be: +El parámetro *handler* puede ser: - A **4D.Function**: Direct handler function - Un **Objeto**: un objeto que contiene una propiedad `formula` que coincide con el nombre de la función de la herramienta The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model. -#### Register Tool Example +#### Ejemplo de herramienta de registro ```4D // Example 1: Simple registration with direct handler @@ -111,7 +111,7 @@ $chatHelper.registerTool($tool; $handlerObj) | ------------------- | ------- | -------------------------------------------------------- | | *toolsWithHandlers* | Variant | Object or Collection containing tools and their handlers | -Registers multiple tools at once. The parameter can be: +Registers multiple tools at once. El parámetro puede ser: - **Collection**: Array of tool objects (with handlers embedded or separate) - **Object**: Object with function names as keys mapping to tool definitions diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index 3d85542be120c4..ebb12bfbed10a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -48,7 +48,7 @@ var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) $message.addImageURL("http://example.com/image.jpg"; "high") ``` -### Respond to a tool call message +### Responder a un mensaje de llamada de herramienta When an assistant needs to use external functions, it generates a message with `tool_calls` to request function execution. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md index dbe20d10764afa..e46e25346cc85a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md @@ -27,7 +27,7 @@ See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. | `name` | Text | The name of the tool, which works as an identifier. | | `descripción` | Text | Description of the tool to help the LLM decide when to use it. | -### Function-specific Properties +### Propiedades específicas de la función | Propiedad | Tipo | Descripción | | ------------ | ------ | -------------------------------------------------------------------------------- | @@ -48,7 +48,7 @@ Crea una nueva instancia de OpenAITool. The constructor accepts both simplified #### Formatos soportados -**Simplified format:** +**Formato simplificado:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -64,7 +64,7 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -**OpenAI API format:** +**Formato de la API OpenAI** ```4d var $tool := cs.OpenAITool.new({ \ diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md index cea52c2b0979e3..ff565bb2601c7b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md @@ -11,7 +11,7 @@ To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. Ver ejemplos más abajo. -## Process Considerations +## Consideraciones sobre el proceso The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index a3c3f64be88879..5b5e136edec480 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -31,7 +31,7 @@ Algunos de ellos ## Local -| Proveedor | Default baseURL | Doc | +| Proveedor | Base URL por defecto | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | 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 f80ce278d2aacb..259ec5056a7e4b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -94,10 +94,10 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend
        Historique -| Release | Modifications | -| ------- | -------------------------- | -| 21 | Support of remote sessions | -| 18 R6 | Ajout | +| Release | Modifications | +| ------- | -------------------------------------- | +| 21 | Prise en charge des sessions distantes | +| 18 R6 | Ajout |
        @@ -115,13 +115,13 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend :::note -This function does nothing and always returns **True** with stored procedure sessions and standalone sessions. +Cette fonction ne fait rien et renvoie toujours **True** avec les sessions de procédures stockées et les sessions autonomes. ::: La fonction `.clearPrivileges()` supprime tous les privilèges associés à la session (à l'exception des privilèges promus) et renvoie **True** si l'exécution a réussi. -Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Invité. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. +Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Guest. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. :::note @@ -129,7 +129,7 @@ Cette fonction ne supprime pas les **privilèges promus** du process web, qu'ils ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Exemple @@ -150,10 +150,10 @@ $isGuest:=Session.isGuest() //$isGuest est True
        Historique -| Release | Modifications | -| ------- | -------------------------- | -| 21 | Support of remote sessions | -| 20 R9 | Ajout | +| Release | Modifications | +| ------- | -------------------------------------- | +| 21 | Prise en charge des sessions distantes | +| 20 R9 | Ajout |
        @@ -428,7 +428,7 @@ Cette fonction renvoie True pour le *privilège* si elle est appelée depuis une ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md index bed1a52d892134..8d535e2cacc8ca 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -333,7 +333,7 @@ Function getRectArea($width : Integer; $height : Integer) : Integer :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/error-handling.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/error-handling.md index e04656ac811885..c068f22b8e9e84 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/error-handling.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/error-handling.md @@ -21,11 +21,11 @@ Il est fortement recommandé d'installer une méthode globale de gestion des err ::: -## Predictable vs unpredictable errors +## Erreurs prévisibles ou imprévisibles -Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. The error is only returned in the `status` and `statusText` properties of the returned object. It can be processed according to your business logic. +De nombreuses fonctions de classe de 4D, telles que [`entity.save()`](../API/EntityClass.md#save) ou [`transporter.send()`](../API/SMTPTransporterClass.md#send), renvoient un objet contenant des informations de *status*. Cet objet est utilisé pour gérer les erreurs **prévisibles** dans le contexte d'exécution, par exemple un mot de passe invalide, une entité verrouillée, etc. qui ne nécessitent pas l'arrêt de l'exécution du programme. Cette catégorie d'erreurs, également appelée **erreurs silencieuses**, peut être gérée par le code normal. Lorsque de telles erreurs se produisent dans un contexte d'interception des erreurs, c'est-à-dire un [`Try`](#tryexpression), un [`Try/Catch`](#trycatchend-try) ou une [méthode de gestion des erreurs](#installing-an-error-handling-method), elles n'interrompent pas l'exécution et ne déclenchent pas le traitement de l'erreur (par exemple, la partie `Catch` du [`Try/Catch`](#trycatchend-try) n'est pas exécutée). Elles ne sont pas listées dans la collection [`Last errors`](../commands/last-errors.md). L'erreur est uniquement renvoyée dans les propriétés `status` et `statusText` de l'objet retourné. Elle peut être traitée selon votre logique d'application. -The other category of errors are **unpredictable** errors, also named **serious errors**. They include disk write error, network failure, or in general any unexpected interruption. This category of errors generates exceptions defined by [a *code*, a *message* and a *signature*](#error-codes). They interrupt the execution and trigger the error processing of the [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or [error-handling method](#installing-an-error-handling-method) features. They are listed in the [`Last errors`](../commands/last-errors.md) collection. Note that serious errors can also return values in the `status` and `statusText` properties, e.g. `dk status serious error` - "Other error". +L'autre catégorie d'erreurs est celle des erreurs **imprévisibles**, également appelées **erreurs graves**. Il peut s'agir d'une erreur d'écriture sur le disque, d'une panne de réseau ou, plus généralement, de toute interruption inattendue. Cette catégorie d'erreurs génère des exceptions définies par [un *code*, un *message* et une *signature*](#error-codes). Elles interrompent l'exécution et déclenchent le traitement de l'erreur par les fonctions [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) ou la [méthode de gestion des erreurs](#installing-an-error-handling-method). Elles sont listées dans la collection [`Last errors`](../commands/last-errors.md). Notez que les erreurs graves peuvent également renvoyer des valeurs dans les propriétés `status` et `statusText`, par exemple `dk status serious error` - "Other error". ## Installer une méthode de gestion des erreurs 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 a884c0dbb73572..9b7891d73e7173 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 @@ -310,7 +310,7 @@ Dans ce cas, il est nécessaire d’utiliser la comparaison de pointeurs : An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En cas d'erreur générée par un composant, la méthode d'appel sur erreur `ON ERR CALL` du projet hôte n'est pas appelée, et inversement. -However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. +Cependant, vous pouvez installer un [gestionnaire d'erreurs de composants dans l'application hôte](../Concepts/error-handling.md#scope-and-components) pour gérer les erreurs non capturées des composants. However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. @@ -346,7 +346,7 @@ SAVE RECORD($tablepointer- ## Utilisation de tables et de champs -Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. +Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. Une base de données externe est un projet 4D indépendant du projet 4D principal, mais avec lequel vous pouvez travailler à partir du projet 4D principal. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. #### Exemple @@ -463,7 +463,7 @@ Ce fichier n'est pas obligatoire mais il est nécessaire pour construire des com Les clés prises en charge dans les fichiers `Info.plist` des composants sont principalement des [clés bundle d'Apple](https://developer.apple.com/documentation/bundleresources/information-property-list) qui sont ignorées sous Windows. Cependant, elles sont utilisés par le [Gestionnaire de dépendances](../Project/components.md#loading-components) sur toutes les plates-formes. -The following keys can be defined: +Les clés suivantes peuvent être définies : | key | Description | | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index ab068e2e3b205c..7db40c407bf53c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barre d’outils comporte les éléments suivants : | Icône | Nom | Description | | ------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Exécuter le formulaire | Permet de tester l’exécution du formulaire. Lorsque vous cliquez sur ce bouton, 4D ouvre une nouvelle fenêtre et affiche le formulaire dans son contexte (liste d’enregistrements pour un formulaire liste et enregistrement courant en page pour un formulaire détaillé). Le formulaire est exécuté dans le process principal. | -| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Permet la sélection, le déplacement et le redimensionnement des objets de formulaire.

        **Note** : Lorsqu'un objet de type Texte ou Box Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition.

        | +| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Permet la sélection, le déplacement et le redimensionnement des objets de formulaire.
        **Note** : Lorsqu'un objet de type Texte ou Box Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordre de saisie](#data-entry-order) | Passe en mode “Ordre de saisie”, dans lequel il est possible de visualiser et de modifier l’ordre de saisie courant du formulaire. A noter que vous pouvez également visualiser l’ordre de saisie courant tout en travaillant dans le formulaire. | | ![](../assets/en/FormEditor/moving.png) | [Déplacement](#déplacement-objets) | Passe en mode “Déplacement”, dans lequel il est possible d’atteindre rapidement n’importe quelle partie du formulaire en le faisant directement glisser dans la fenêtre. Le curseur prend la forme d’une main. Ce mode de navigation est particulièrement utile en cas de zoom dans le formulaire. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permet de modifier l’échelle d’affichage du formulaire (100% par défaut). Vous pouvez passer en mode “Zoom” en cliquant sur le bouton loupe ou en cliquant directement sur la barre correspondant à l’échelle désirée. Cette fonction est détaillée dans le paragraphe précédent. | @@ -146,18 +146,18 @@ Avant de pouvoir réaliser une opération sur un objet (comme le changement de l Pour sélectionner un objet à l’aide de la barre d’outils : -1. Cliquez sur l'outil Flèche dans la barre d'outils.

        ![](../assets/en/FormEditor/selection.png)

        +1. Cliquez sur l'outil Flèche dans la barre d'outils.
        ![](../assets/en/FormEditor/selection.png) -

        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Cliquez sur l’objet que vous souhaitez sélectionner. Les poignées de redimensionnement identifient l'objet sélectionné.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Cliquez sur l’objet que vous souhaitez sélectionner. Les poignées de redimensionnement identifient l'objet sélectionné.
        ![](../assets/en/FormEditor/selectResize.png) Pour sélectionner un objet à l’aide de la Liste des propriétés : 1. Sélectionnez le nom de l’objet dans la liste de sélection située en haut de la palette. De cette manière, vous pouvez sélectionner un objet masqué par d’autres objets ou situé en-dehors des limites de la fenêtre. Pour désélectionner un objet, cliquez hors de ses limites ou cliquez dessus en maintenant la touche **Majuscule** enfoncée. -> Il est également possible de sélectionner des objets en double-cliquant dans la fenêtre de résultat d’une recherche globale. +> It is also possible to select objects by double-clicking them in the result window of "Find in design" operation. ### Sélection de plusieurs objets @@ -241,13 +241,13 @@ Pour grouper les objets : 1. Sélectionnez les objets que vous souhaitez grouper. 2. Sélectionnez **Grouper** dans le menu Objets. OU - Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:

        ![](../assets/en/FormEditor/group.png)

        + Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:
        ![](../assets/en/FormEditor/group.png) 4D indique la limite des objets regroupés nouvellement avec des poignées. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. Pour dégrouper un groupe d’objets : 1. Sélectionnez le groupe que vous souhaitez dégrouper. -2. Choisissez **Dégrouper** dans le menu **Objet**.

        OU

        Cliquez sur le bouton **Dégrouper** (variante du bouton **Groupe**) dans la barre d'outils de l'éditeur de formulaire.

        Si **Ungroup** est estompé, cela signifie que l'objet sélectionné est déjà séparé dans sa forme la plus simple.

        4D marque les limites des objets individuels avec des poignées. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. ### Aligner des objets @@ -275,9 +275,9 @@ La boîte de dialogue d’alignement vous permet d’appliquer tout type d’ali Pour afficher cette boîte de dialogue, vous devez sélectionner les objets que vous souhaitez aligner puis choisir la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. -- Dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”, cliquez sur l’icône correspondant à l'alignement que vous souhaitez effectuer.

        La zone d'exemple affiche les résultats de votre sélection.

        +- Dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”, cliquez sur l’icône correspondant à l'alignement que vous souhaitez effectuer.
        La zone d'exemple affiche les résultats de votre sélection. -- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:

        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas.

        +- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:
        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas. Vous pouvez prévisualiser le résultat réel de vos paramétrages en cliquant sur le bouton **Prévisualisation**. Les objets sont ensuite alignés dans l'éditeur de formulaires, mais comme la boîte de dialogue ne disparaît pas, vous pouvez toujours annuler ou appliquer l'alignement. @@ -314,7 +314,8 @@ Pour répartir directement une sélection d’objets (verticalement ou horizonta 1. Sélectionnez les objets (au moins trois) que vous souhaitez répartir. -2. Dans la barre d'outils, cliquez sur l'outil de distribution qui correspond à la distribution que vous souhaitez appliquer.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Sélectionnez une commande de distribution dans le sous-menu **Aligner** du menu **Objet** ou dans le menu contextuel de l'éditeur.

        4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et répartition : @@ -322,9 +323,9 @@ Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et r 2. Choisissez la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. La boîte de dialogue suivante apparaît :![](../assets/en/FormEditor/alignmentAssistant.png) -3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)

        (icône standard de distribution horizontale)

        La zone d'exemple affiche les résultats de votre sélection. +3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)
        (icône standard de distribution horizontale)
        La zone d'exemple affiche les résultats de votre sélection. -4. Pour effectuer une distribution qui utilise le schéma standard, cliquez sur **Aperçu** ou *Appliquer*.

        Dans ce cas, 4D effectuera une distribution standard, de sorte que les objets soient répartis avec une quantité d'espace égale entre eux.

        OU :

        Pour exécuter une distribution spécifique, sélectionnez l'option **Distribuer** (par exemple, si vous souhaitez distribuer les objets en fonction de la distance par rapport à leur côté droit). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:

        +4. Pour effectuer une distribution qui utilise le schéma standard, cliquez sur **Aperçu** ou *Appliquer*.
        Dans ce cas, 4D effectuera une distribution standard, de sorte que les objets soient répartis avec une quantité d'espace égale entre eux.
        OU :
        Pour exécuter une distribution spécifique, sélectionnez l'option **Distribuer** (par exemple, si vous souhaitez distribuer les objets en fonction de la distance par rapport à leur côté droit). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:
        - Horizontalement, les icônes correspondent aux répartitions suivantes : équidistance des côtés gauches, des centres (hor.) et des côtés droits des objets sélectionnés. - Verticalement, les icônes correspondent aux répartitions suivantes : équidistance des bords supérieurs, des centres (vert.) et des bords inférieurs des objets sélectionnés. @@ -379,11 +380,11 @@ Ce paragraphe décrit la visualisation et la modification de l’ordre de saisie Pour visualiser ou modifier l’ordre de saisie : -1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :
        ![](../assets/en/FormEditor/zOrder.png)
        Le pointeur prend la forme d’un pointeur d’ordre, et 4D dessine une ligne qui permet de visualiser la séquence de l’ordre de saisie courant. Visualiser et modifier l’ordre de saisie sont les seules opérations que vous pouvez réaliser dans ce mode. -2. Pour changer l’ordre de saisie, positionnez le pointeur sur un objet dans le formulaire et, tout en maintenant le bouton de la souris enfoncé, faites glisser le pointeur vers l'objet que vous souhaitez ensuite dans l'ordre de saisie des données.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajustera automatiquement l'ordre de saisie. +2. Pour changer l’ordre de saisie, positionnez le pointeur sur un objet dans le formulaire et, tout en maintenant le bouton de la souris enfoncé, faites glisser le pointeur vers l'objet que vous souhaitez ensuite dans l'ordre de saisie des données.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D ajustera automatiquement l'ordre de saisie. 3. Répétez l’étape 2 autant de fois que nécessaire pour obtenir le nouvel ordre de saisie. 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 e092e3968aa951..b4c8d0fc186071 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -102,7 +102,7 @@ Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interfa Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -| Light theme | Dark theme | +| Thème clair | Thème sombre | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md b/i18n/fr/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md index 5f6e601f300fa6..d246dceb901e57 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md @@ -7,7 +7,7 @@ Bienvenue dans 4D ! Cette page regroupe toutes les informations nécessaires sur ## Configuration requise -La page [Téléchargements](https://us.4d.com/product-download) dut site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. +La page [Téléchargements](https://us.4d.com/product-download) du site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. Des détails techniques supplémentaires sont disponibles sur la [page Ressources](https://us.4d.com/resources/feature-release) du site web de 4D. @@ -32,8 +32,8 @@ Apparaît ensuite l'assistant de bienvenue : - Si vous souhaitez découvrir et explorer 4D, cliquez sur le lien **essai gratuit**. Il vous sera demandé de vous connecter ou de créer un compte 4D. - Si vous possédez déjà un compte 4D, cliquez sur le lien **Se connecter** sur le côté supérieur droit de l'assistant d'installation et saisissez les informations relatives à votre compte. - - Any already activated 4D products are automatically updated (or additional expansion packs loaded) on your machine. - - If no product is activated on the machine but there is a development license associated with the 4D account, a dialog box appears, prompting you to install it directly. + - Tous les produits 4D déjà activés sont automatiquement mis à jour (ou des packs d'extension supplémentaires sont chargés) sur votre machine. + - Si aucun produit n'est activé sur la machine mais qu'une licence de développement est associée au compte 4D, une boîte de dialogue apparaît, vous proposant de l'installer directement. Élargissez la zone **Ouvrir ou créer un projet d'application** et sélectionnez l'action que vous souhaitez exécuter : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index f7d498b3a4d1ec..641f0bf6dda050 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Entity Events +title: Évènements d'entité ---
        Historique @@ -12,7 +12,7 @@ title: Entity Events
        -Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Les événements d'entité sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entité sont touchés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. @@ -24,7 +24,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::info Note de compatibilité -ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +Les événements d'entité ORDA dans le magasin de données sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -102,13 +102,13 @@ Lorsqu'une erreur survient dans un événement, les autres événements sont sto ### Propriétés de l'objet error -| Propriété | Type | Description | Fixé par le développeur | -| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| extraDescription | Object | Informations libres à définir | Oui | -| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      950. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Adds the `dk status serious validation error` status
      951. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      952. | Oui (par défaut : False) | -| componentSignature | Text | Toujours "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      953. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      954. `False` : crée seulement une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      955. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | - Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). - Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : @@ -142,16 +142,16 @@ Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte un - en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. - avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. -If this function [throws](../commands/throw) an error, it will not stop the undergoing action. +Si cette fonction [génère](../commands/throw) une erreur, elle n'arrêtera pas l'action en cours. :::note -This event is also triggered: +Cet événement est également déclenché : -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- lorsque les attributs sont assignés par l'événement [`constructor()`](./ordaClasses.md#class-constructor-1), +- lorsque les attributs sont modifiés via l'[Explorateur de données](../Admin/dataExplorer.md). ::: @@ -329,7 +329,7 @@ This event is triggered each time an entity is about to be saved. - if you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - if you defined the function at the attribute level (second syntax), it is called only for this attribute. This function is **not** executed if the attribute has not been touched in the entity. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following functions: @@ -387,7 +387,7 @@ This event is triggered each time an entity is being saved. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). - If you defined the function at the attribute level (second syntax), it is called only for this attribute. The function is **not** executed if the attribute has not been touched in the entity. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following functions: @@ -449,7 +449,7 @@ This event is triggered just after an entity is saved in the data file, when at This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. For example, it can be used to send a confirmation email after data have been saved. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. @@ -494,7 +494,7 @@ This event is triggered each time an entity is about to be dropped. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following features: @@ -561,7 +561,7 @@ This event is triggered each time an entity is being dropped. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following features: @@ -642,7 +642,7 @@ This event is triggered just after an entity is dropped. This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. For example, it can be used to send a cancellation email after data have been dropped. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md index 84479ca7fefcae..d4738c0141b15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md @@ -306,52 +306,52 @@ Class constructor() :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: -An ORDA class constructor function is triggered just after a new entity is created in memory, [whatever the way it is created](#commands-that-trigger-the-class-constructor-functions). It is useful to set initial values for entity instantiation, for example a custom ID. +Une fonction de construction de classe ORDA est déclenchée juste après la création d'une nouvelle entité en mémoire, [quelle que soit la manière dont elle est créée](#commands-that-trigger-the-class-constructor-functions). Elle est utile pour définir des valeurs d'initialisation lors de l'instanciation de l'entité, par exemple un identifiant personnalisé. -This function can only be set at the [entity level](#entity-class). There can only be one constructor function in an entity class (otherwise an error is returned). +Cette fonction ne peut être définie qu'au [niveau de l'entité](#entity-class). Il ne peut y avoir qu'une seule fonction constructor dans une classe d'entité (sinon une erreur est renvoyée). -This ORDA class constructor function does not receive or return parameters. However, you can use it to initialize attribute values using [`This`](../commands/this.md). Note that values initialized by the constructor are overriden if corresponding attributes are filled by the code. +La fonction du constructeur de la classe ORDA ne reçoit ni ne renvoie de paramètres. Cependant, vous pouvez l'utiliser pour initialiser les valeurs des attributs en utilisant [`This`](../commands/this.md). Notez que les valeurs initialisées par le constructeur sont remplacées si les attributs correspondants sont remplis par le code. :::note -An ORDA class constructor function is similar to a [user class constructor function](../Concepts/classes.md#class-constructor), with the following differences: +Une fonction de construction de classe ORDA est similaire à une [fonction de construction de classe utilisateur](../Concepts/classes.md#class-constructor), avec les différences suivantes : -- you cannot pass parameters to the constructor, -- you cannot use `shared`, `session`, or `singleton` keywords, -- you cannot call the [`Super`](../Concepts/classes.md#super) keyword within the function, -- the class constructor cannot be called using the `new()` function on an entity (entities can only be created by specific functions, see below). +- vous ne pouvez pas passer de paramètres au constructeur, +- vous ne pouvez pas utiliser les mots-clés `shared`, `session`, ou `singleton`, +- vous ne pouvez pas appeler le mot-clé [`Super`](../Concepts/classes.md#super) à l'intérieur de la fonction, +- le constructeur de la classe ne peut pas être appelé en utilisant la fonction `new()` sur une entité (les entités ne peuvent être créées que par des fonctions spécifiques, voir ci-dessous). ::: -#### Commands that trigger the Class constructor functions +#### Commandes qui déclenchent les fonctions du constructeur de classe -The `Class constructor` function is triggered by the following commands and features: +La fonction `Class constructor` est déclenchée par les commandes et fonctionnalités suivantes : - [`dataClass.new()`](../API/DataClassClass.md#new) - [`dataClass.fromCollection()`](../API/DataClassClass#fromcollection) -- [REST API $method=update](../REST/$method.md#methodupdate) in a POST without the `__KEY` and `__STAMP` parameters -- the [Data Explorer](../Admin/dataExplorer.md#editing-data). +- [API REST $method=update](../REST/$method.md#methodupdate) dans un POST sans les paramètres `__KEY` et `__STAMP`. +- l'[Explorateur de données](../Admin/dataExplorer.md#editing-data). :::note Notes -- The [`entity.clone()`](../API/EntityClass.md#clone) function does not trigger the entity Class constructor. -- Records created at the 4D database level using 4D classic language commands or standard actions do not trigger the entity Class constructor. +- La fonction [`entity.clone()`](../API/EntityClass.md#clone) ne déclenche pas le constructeur de la classe de l'entité. +- Les enregistrements créés au niveau de la base de données 4D à l'aide de commandes du langage classique 4D ou d'actions standard ne déclenchent pas le constructeur de la classe de l'entité. ::: -#### Remote configurations +#### Configurations distantes -When using a remote configurations, you need to pay attention to the following principles: +Lorsque vous utilisez une configuration à distance, il convient de respecter les principes suivants : -- In **client/server** the function can be called on the client or on the server, depending on the location of the calling code. When it is called on the client, it is not triggered again when the client attempts to save the new entity and sends an update request to the server to create in memory on the server. +- En **client/serveur**, la fonction peut être appelée sur le client ou sur le serveur, en fonction de l'emplacement du code d'appel. Lorsqu'elle est appelée sur le client, elle n'est pas déclenchée à nouveau lorsque le client tente d'enregistrer la nouvelle entité et envoie une demande de mise à jour au serveur pour la créer en mémoire sur le serveur. :::warning -Since functions such as [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) can create a large number of entities and thus trigger the entity Class constructor consequently, you need to make sure the constructor code does not execute excessive time-consuming processings, for performance reasons. In remote configurations (see below), the code should not trigger multiple requests to the server. +Des fonctions telles que [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) pouvant créer un grand nombre d'entités et donc déclencher le constructeur de la classe d'entités en conséquence, vous devez vous assurer que le code du constructeur n'exécute pas de traitements qui prennent du temps, pour des raisons de performance. Dans les configurations distantes (voir ci-dessous), le code ne doit pas déclencher de requêtes multiples au serveur. ::: @@ -367,7 +367,7 @@ Class constructor() ``` -#### Example 2 (diagram): Client/server +#### Exemple 2 (diagramme) : Client/serveur ```mermaid @@ -386,7 +386,7 @@ Server-->>-Client: Success ``` -#### Example 3 (diagram): Qodly - Standard action +#### Exemple 3 (diagramme): Qodly - Action standard ```mermaid @@ -404,7 +404,7 @@ sequenceDiagram ``` -#### Example 4 (diagram): Qodly - Standard action and update value on the newly created entity +#### Exemple 4 (diagramme): Qodly - Action standard et mise à jour de valeur sur la nouvelle entité créée ```mermaid @@ -426,7 +426,7 @@ Note over Qodly page: product.creationDate is "06/17/25"
        and product.commen ``` -#### Example 5 (diagram): Qodly - Entity instanciated in a function +#### Exemple 5 (diagramme) : Qodly - Entité instanciée dans une fonction ```mermaid @@ -896,23 +896,23 @@ Exposed Alias studentName student.name //scalar value Vous pouvez alors exécuter les recherches suivantes : ```4d -// Find course named "Archaeology" +// Trouver le cours nommé "Archaeology" ds.Course.query("courseName = :1";"Archaeology") -// Find courses given by the professor Smith +// Trouver les cours du professeur Smith ds.Course.query("teacherName = :1";"Smith") -// Find courses where Student "Martin" assists +// Trouver les cours auxquels assiste l'étudiant "Martin" ds.Course.query("studentName = :1";"Martin") -// Find students who have M. Smith as teacher +// Trouver les étudiants qui ont le professeur Smith ds.Student.query("teachers.name = :1";"Smith") -// Find teachers who have M. Martin as Student +// Trouver les professeurs qui ont M. Martin comme étudiant ds.Teacher.query("students.name = :1";"Martin") -// Note that this very simple query string processes a complex -// query including a double join, as you can see in the queryPlan: -// "Join on Table : Course : Teacher.ID = Course.teacherID, +// Notez que cette chaîne très simple traite une requête complexe +// incluant une double jointure, comme vous pouvez le voir dans le queryPlan : +// "Join on Table : Course : Teacher.ID = Course.teacherID, // subquery:[ Join on Table : Student : Course.studentID = Student.ID, // subquery:[ Student.name === Martin]]" ``` @@ -986,59 +986,59 @@ $status:=$remoteDS.Schools.registerNewStudent($student) // OK $id:=$remoteDS.Schools.computeIDNumber() // Erreur "Unknown member method" ``` -## onHTTPGet keyword +## onHTTPGet -Use the `onHTTPGet` keyword to declare functions that can be called through HTTP requests using the `GET` verb. Such functions can return any web contents, for example using the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class. +Utilisez le mot-clé `onHTTPGet` pour déclarer des fonctions qui peuvent être appelées par des requêtes HTTP utilisant le verbe `GET`. Ces fonctions peuvent renvoyer n'importe quel contenu web, par exemple en utilisant la classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md). -The `onHTTPGet` keyword is available with: +Le mot-clé `onHTTPGet` est disponible avec : -- ORDA Data model class functions -- [Singletons class functions](../Concepts/classes.md#singleton-classes) +- les fonctions de classe du modèle de données ORDA +- les [fonctions de classe de singletons](../Concepts/classes.md#singleton-classes) La syntaxe formelle est la suivante : ```4d -// declare an onHTTPGet function +// déclarer une fonction onHTTPGet exposed onHTTPGet Function (params) : result ``` :::info -The `exposed` keyword must also be added in this case, otherwise an error will be generated. +Le mot-clé `exposed` doit également être ajouté dans ce cas, sinon une erreur sera générée. ::: :::caution -As this type of call is an easy offered action, the developer must ensure no sensitive action is done in such functions. +Comme ce type d'appel est une action facile d'accès, le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions. ::: ### params -A function with `onHTTPGet` keyword accepts [parameters](../Concepts/parameters.md). +Une fonction avec le mot-clé `onHTTPGet` accepte des [paramètres](../Concepts/parameters.md). -In the HTTP GET request, parameters must be passed directly in the URL and declared using the `$params` keyword (they must be enclosed in a collection). +Dans la requête HTTP GET, les paramètres doivent être passés directement dans l'URL et déclarés à l'aide du mot-clé `$params` (ils doivent être inclus dans une collection). ``` IP:port/rest//functionName?$params='[]' ``` -See the [Parameters](../REST/classFunctions#parameters) section in the REST server documentation. +Voir la section [Paramètres](../REST/classFunctions#parameters) dans la documentation du serveur REST. ### Résultat -A function with `onHTTPGet` keyword can return any value of a supported type (same as for REST [parameters](../REST/classFunctions#parameters)). +Une fonction avec le mot-clé `onHTTPGet` peut renvoyer n'importe quelle valeur d'un type supporté (comme pour les [paramètres REST](../REST/classFunctions#parameters)). :::info -You can return a value of the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class type to benefit from properties and functions to set the header, the body, and the status of the answer. +Vous pouvez renvoyer une valeur de type [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) pour bénéficier des propriétés et des fonctions permettant de définir l'en-tête, le corps et le statut de la réponse. ::: ### Exemple -You have defined the following function: +Vous avez défini la fonction suivante : ```4d Class extends DataClass @@ -1056,10 +1056,10 @@ exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height return $response ``` -It can be called by the following HTTP GET request: +Elle peut être appelée par la requête HTTP GET suivante : ``` -IP:port/rest/Products/getThumbnail?$params='["Yellow Pack",200,200]' +IP:port/rest/Products/getThumbnail ?$params='["Yellow Pack",200,200]' ``` ## Fonctions locales diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 0dd5ed8c4fdfbf..1dff99a10fce34 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,11 +3,11 @@ id: components title: Dépendances --- -[L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). +[L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Les composants sont constitués de code 4D, tandis que les plug-ins peuvent être [construits à l'aide de n'importe quel langage](../Extensions/develop-plug-ins.md). -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D qui se trouvent sur GitHub. +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). -Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. +Une fois installées dans votre environnement 4D, les extensions sont traitées comme des **dépendances** avec des propriétés spécifiques. ## Composants interprétés et compilés @@ -33,7 +33,7 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou ::: -## Component Locations +## Emplacements des composants :::note @@ -317,20 +317,20 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache ...où `` peut être "4D", "4D Server" ou "tool4D". -### Automatic dependency resolution +### Résolution automatique des dépendances -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : +Lorsque vous ajoutez ou mettez à jour un composant (qu'il soit [local](#local-components) ou [obtenu depuis GitHub](#components-stored-on-github)), 4D résout et installe automatiquement toutes les dépendances requises par ce composant. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- les **dépendances primaires** : Composants que vous déclarez explicitement dans votre fichier `dependencies.json`. +- les **dépendances secondaires** : Composants requis par des dépendances primaires ou d'autres dépendances secondaires, qui sont automatiquement résolues et installées. -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +Le gestionnaire de dépendances lit le fichier `dependencies.json` de chaque composant et installe récursivement toutes les dépendances nécessaires, en respectant les spécifications de version dans la mesure du possible. Il n'est donc pas nécessaire d'identifier et d'ajouter manuellement les dépendances imbriquées, une par une. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **les résolutions de conflits** : Lorsque plusieurs dépendances nécessitent [différentes versions](#defining-a-github-dependency-version-range) du même composant, le gestionnaire de dépendances tente automatiquement de résoudre les conflits en trouvant une version qui satisfait toutes les plages de versions qui se chevauchent. Si une dépendance primaire entre en conflit avec des dépendances secondaires, la dépendance primaire est prioritaire. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Les fichiers `dependencies.json` sont ignorés dans les composants chargés depuis le dossier [**Components**](architecture.md#components). ::: @@ -364,19 +364,19 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **Toutes** : Toutes les dépendances, y compris les dépendances primaires (déclarées) et secondaires (résolues automatiquement), sous forme de liste. +- **Déclarées** : Les dépendances primaires qui sont explicitement déclarées dans le fichier `dependencies.json`. Cet onglet vous aide à distinguer les dépendances que vous avez directement ajoutées de celles qui ont été [automatiquement résolues](#automatic-dependency-resolution). +- **Actives** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactives** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflits** : Les dépendances qui sont chargées mais qui surchargent au moins une autre dépendance à un [niveau de priorité](#priority) inférieur. Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. -### Secondary dependencies +### Dépendances secondaires -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +Le panneau Dépendances indique les [**dépendances secondaires**](#automatic-dependency-resolution) en affichant comme [origin](#dependency-origin) `Dépendance de composant` : ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Lorsque vous survolez une dépendance secondaire, une infobulle affiche la dépendance parente qui la requiert. Une dépendance secondaire ne peut pas être [supprimée](#removing-a-dependency) directement, vous devez supprimer ou modifier la dépendance primaire qui la requiert. ### Statut des dépendances @@ -403,19 +403,19 @@ Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissa ### Origine de la dépendance -Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine, c'est-à-dire d'où qu'elles viennent. L'origine de la dépendance est fournie par l'étiquette sous son nom : +Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine. L'origine de la dépendance est fournie par l'étiquette sous son nom : ![dependency-origin](../assets/en/Project/dependency-origin.png) Les options suivantes sont disponibles : -| Étiquette d'origine | Description | -| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | -| Declared in project | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | -| Declared in environment | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | -| Component dependency | Secondary component ([required by a another component](#automatic-dependency-resolution)) | +| Étiquette | Description | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| Intégré à 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | +| Déclaré dans le projet | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | +| Déclaré dans l'environnement | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) et surchargé dans le fichier [`environment4d.json`](#environment4djson) | +| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | +| Dépendance de composant | Composant secondaire ([requis par un autre composant](#automatic-dependency-resolution)) | **Cliquez avec le bouton droit de la souris** dans une ligne de dépendance et sélectionnez **Afficher sur le disque** pour révéler l'emplacement d'une dépendance : @@ -469,11 +469,11 @@ Pour ajouter une [dépendance GitHub](#components-stored-on-github), cliquez sur :::note -By default, [components developed by 4D](../Extensions/overview.md#components-developed-by-4d) are listed in the combo box, so that you can easily select and install these features in your environment: +Par défaut, les [composants développés par 4D](../Extensions/overview.md#components-developed-by-4d) sont répertoriés dans la liste, ce qui vous permet de sélectionner et d'installer facilement ces fonctionnalités dans votre environnement : ![dependency-default-git](../assets/en/Project/dependency-default.png) -Components already installed are not listed. +Les composants déjà installés ne sont pas dans la liste. ::: @@ -493,7 +493,7 @@ Définissez la [plage de versions des dépendances](#tags-and-versions) à utili Cliquez sur le bouton **Ajouter** pour ajouter la dépendance au projet. -The GitHub dependency is declared in the [**dependencies.json**](#dependenciesjson) file and added to the [inactive dependency list](#dependency-status) with the **Available at restart** status. Elle sera chargée une fois que l'application aura redémarré. +La dépendance GitHub est déclarée dans le fichier [**dependencies.json**](#dependenciesjson) et ajoutée à la [liste des dépendances inactives](#dependency-status) avec le statut **Disponible après redémarrage**. Elle sera chargée une fois que l'application aura redémarré. #### Définir une plage de versions pour une dépendance GitHub @@ -505,7 +505,7 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. -- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. This option is recommended for the [components developed by 4D](../Extensions/overview.md#components-developed-by-4d). +- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. Cette option est recommandée pour les [composants développés par 4D](../Extensions/overview.md#components-developed-by-4d). La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -513,7 +513,7 @@ La version courante de la dépendance GitHub est affichée sur le côté droit d #### Modifier la plage de versions des dépendances GitHub -You can modify the [version setting](#defining-a-github-dependency-version-range) for a listed GitHub dependency: select the dependency to modify and select **Edit the dependency...** from the contextual menu. In the "Edit the dependency" dialog box, edit the Dependency Rule menu and click **Apply**. +Vous pouvez modifier le [paramètre de version](#defining-a-github-dependency-version-range) pour une dépendance GitHub listée : sélectionnez la dépendance à modifier et sélectionnez **Editer la dépendance...** dans le menu contextuel. Dans la boîte de dialogue "Editer la dépendance", modifiez le menu Règle de dépendance et cliquez sur **Appliquer**. La modification de la plage de versions est utile par exemple si vous utilisez la fonction de mise à jour automatique et que vous souhaitez verrouiller une dépendance à un numéro de version spécifique. @@ -611,7 +611,7 @@ Pour supprimer une dépendance de la fenêtre Dépendances, sélectionnez la dé :::note -Only primary dependencies declared in the [**dependencies.json**](#dependenciesjson) file can be removed using the Dependencies panel. Secondary dependencies cannot be removed directly - to remove a secondary dependency, you must remove the primary dependency that requires it. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. +Seules les dépendances primaires déclarées dans le fichier [**dependencies.json**](#dependenciesjson) peuvent être supprimées dans la fenêtre Dépendances. Les dépendances secondaires ne peuvent pas être supprimées directement - pour supprimer une dépendance secondaire, vous devez supprimer la dépendance primaire qui la requiert. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. ::: @@ -621,7 +621,7 @@ Une boîte de dialogue de confirmation s'affiche. Si la dépendance a été déc Si vous confirmez la boîte de dialogue, le [statut](#dependency-status) de la dépendance supprimée est automatiquement modifié en "Déchargé après redémarrage". Elle sera chargée une fois que l'application aura redémarré. -#### Dependency usage warnings +#### Avertissements relatifs à l'utilisation des dépendances -When you attempt to remove a primary dependency that is required by other dependencies in your project, you will be warned that the dependency is still in use. The system will display which other dependencies require it and prompt you to confirm the removal, as removing it may cause those dependent components to stop working properly. +Lorsque vous tentez de supprimer une dépendance primaire qui est requise par d'autres dépendances dans votre projet, vous serez averti que la dépendance est toujours en cours d'utilisation. Le système affichera les autres dépendances qui la requièrent et vous demandera de confirmer la suppression, car celle-ci peut entraîner l'arrêt du fonctionnement de ces composants dépendants. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 2af0940c29c81b..729be9ccb55332 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -11,27 +11,27 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources | Nom de propriété | Type | Description | Optionnel | | ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Peut être requis par le fournisseur | | `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI Platform) | | `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | | `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires -| Nom de propriété | Type | Description | -| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `timeout` | Real | Time in seconds before timeout occurs. | -| `maxRetries` | Real | Maximum number of retry attempts in case of failure. | -| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | HTTP agent used for making requests. | -| `customHeaders` | Real | Custom headers to be included in the HTTP requests. | +| Nom de propriété | Type | Description | +| ---------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | +| `timeout` | Real | Délai en secondes avant l'expiration du délai. | +| `maxRetries` | Real | Nombre maximum de tentatives en cas d'échec. | +| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | Agent HTTP utilisé pour effectuer des requêtes. | +| `customHeaders` | Real | En-têtes personnalisés à inclure dans les requêtes HTTP. | ### Class constructor Créer une instance de la classe client OpenAI. -| Nom de l'argument | Type | Description | -| ------------------------- | ------------ | ------------------------------------------------------- | -| `apiKey or configuration` | Text, Object | apiKey if Text or configuration Object. | +| Nom de l'argument | Type | Description | +| ------------------------- | ------------ | ----------------------------------------------------------- | +| `apiKey` ou configuration | Text, Object | apiKey si Texte, ou objet de configuration. | #### Clé API @@ -58,15 +58,15 @@ $client.baseURL:="https://server.ai" ## Ressources API -L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Chaque ressource est encapsulée dans une classe d'API dédiée, offrant un moyen structuré et intuitif d'interagir avec les différentes fonctionnalités. -| Nom de propriété | Type | Description | -| ---------------- | ----------------------------------------------- | ---------------------------------------------- | -| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | -| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de Chat. | -| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | -| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | -| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Access to the Embeddings API. | +| Nom de propriété | Type | Description | +| ---------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- | +| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | +| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de discussion (Chat). | +| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | +| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | +| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Accès à l'API Embeddings (vectorisation). | ### Exemple d'utilisation diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md index 936135592b6429..85b9cc589d5ccc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md @@ -5,14 +5,14 @@ title: OpenAIChatAPI # OpenAIChatAPI -La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de chat de l'OpenAI, en tirant parti des capacités de complétion et de vision. +La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de discussion (*chat*) de l'OpenAI, en tirant parti des capacités de complétion et de vision. ## Propriétés -| Propriété | Type | Description | -| ------------- | ------------------------------------------------------- | ----------------------------------------------------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | An instance that handles chat completions requests. | -| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | +| Propriété | Type | Description | +| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Une instance qui gère les requêtes de complétion de la discussion. | +| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | ## Function @@ -20,10 +20,10 @@ La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la f **create**(*systemPrompt* : Text) : OpenAIChatHelper -| Paramètres | Type | Description | -| -------------- | --------------------------------------- | ----------------------------------------------------------------- | -| *systemPrompt* | Text | The system prompt to initialize the chat. | -| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | A helper instance for managing chat interactions. | +| Paramètres | Type | Description | +| -------------- | --------------------------------------- | -------------------------------------------------------------------------------------- | +| *systemPrompt* | Text | L'invite du système pour initialiser la discussion. | +| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | Une instance du helper pour gérer les interactions dans la discussion. | #### Exemple d'utilisation diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index d3a3e3cf405c79..c662fa21029b46 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -30,9 +30,9 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters ### Asynchronous Callback Properties -| Propriété | Type | Description | -| ------------------------------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| ------------------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Assurez-vous que le process courant ne se termine pas. | `onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index 918611abe323f1..25400a67a22838 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -12,16 +12,16 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, | Propriété | Type | Description | | -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `rôle` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenu` | Variant | The content of the message, which can be a text or a collection of objects. | -| `user` | Text | An optional property representing the user associated with the message. | +| `contenu` | Variant | Le contenu du message, qui peut être un texte ou une collection d'objets. | +| `user` | Text | Une propriété facultative représentant l'utilisateur associé au message. | | `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | | `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ---- | --------------------------------------------------------- | -| `text` | Text | A property representing the text message. | +| Propriété | Type | Description | +| --------- | ---- | -------------------------------------------------------------- | +| `text` | Text | Une propriété représentant le message textuel. | ## Fonctions @@ -29,23 +29,23 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, **addImageURL**(*imageURL* : Text; *detail* : Text) -| Paramètres | Type | Description | -| ---------- | ---- | ----------------------------------------------------------- | -| *imageURL* | Text | The URL of the image to add to the message. | -| *detail* | Text | Additional details about the image. | +| Paramètres | Type | Description | +| ---------- | ---- | ------------------------------------------------------ | +| *imageURL* | Text | L'URL de l'image à ajouter au message. | +| *detail* | Text | Détails supplémentaires sur l'image. | -Adds an image URL to the content of the message. +Ajoute une URL d'image au contenu du message. ## Exemple d'utilisation ### Create a simple message and attach an image ```4d -// Create an instance of OpenAIMessage -var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) +// Créer une instance d'OpenAIMessage +var $message:=cs.AIKit.OpenAIMessage({role : "user" ; content : "Hello !"}) -// Add an image URL with details -$message.addImageURL("http://example.com/image.jpg"; "high") +// Ajouter une image URL avec des détails +$message.addImageURL("http://example.com/image.jpg" ; "high") ``` ### Respond to a tool call message diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index ab0f9184839a4f..3e875d09183335 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -5,7 +5,7 @@ title: OpenAIParameters # OpenAIParameters -The `OpenAIParameters` class is designed to handle execution and request parameters for interacting with the OpenAI API. +La classe `OpenAIParameters` est conçue pour gérer les paramètres d'exécution et de requête pour interagir avec l'API OpenAI. ## Propriétés @@ -13,16 +13,16 @@ The `OpenAIParameters` class is designed to handle execution and request paramet Use this callback property to receive the result regardless of success or error: -| Propriété | Type | Description | -| -------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `onTerminate`
        (or `formula`) | 4D.Function | A function to be called asynchronously when finished. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| -------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onTerminate`
        (or `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée. Assurez-vous que le process courant ne se termine pas. | Use these callback properties for more granular control over success and error handling: -| Propriété | Type | Description | -| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Ensure that the current process does not terminate. | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Assurez-vous que le process courant ne se termine pas. | +| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Assurez-vous que le process courant ne se termine pas. | > The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. @@ -30,28 +30,28 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md ### Network Properties -| Propriété | Type | Description | -| -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `timeout` | Real | Overrides the client-level default timeout for the request, in seconds. Default is 0. | -| `httpAgent` | HTTPAgent | Overrides the client-level default HTTP agent for the request. | -| `maxRetries` | Integer | The maximum number of retries for the request. (Only if code not asynchrone ie. no function provided) | -| `extraHeaders` | Object | Extra headers to send with the request. | +| Propriété | Type | Description | +| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `timeout` | Real | Remplace le délai d'attente par défaut au niveau du client pour la requête, en secondes. Par défaut, 0. | +| `httpAgent` | HTTPAgent | Remplace l'agent HTTP par défaut au niveau du client pour la requête. | +| `maxRetries` | Integer | Nombre maximal de tentatives pour la requêtes. (Seulement si le code n'est pas asynchrone, c'est-à-dire s'il n'y a pas de fonction fournie) | +| `extraHeaders` | Object | En-têtes supplémentaires à envoyer avec la requête. | ### OpenAPI Properties -| Propriété | Type | Description | -| --------- | ---- | ----------------------------------------------------------------------------------------------------------- | -| `user` | Text | A unique identifier representing the end-user, which helps OpenAI monitor and detect abuse. | +| Propriété | Type | Description | +| --------- | ---- | ------------------------------------------------------------------------------------------------------------------------------- | +| `user` | Text | Un identifiant unique représentant l'utilisateur final, ce qui aide OpenAI à surveiller et à détecter les abus. | ### Others -| Propriété | Type | Description | -| --------- | ------- | ------------------------------------------------------------------------------------------------------------ | -| `throw` | Boolean | If true, throws an error if one occurs. Only if no formula callback defined. | +| Propriété | Type | Description | +| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `throw` | Boolean | Si true, faire un throw en cas d'erreur. Uniquement si aucune formule de callback n'est définie. | ## Classes héritées -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIParameters`: +Plusieurs classes héritent de `OpenAIParameters` pour étendre ses fonctionnalités à des cas d'utilisation spécifiques. Voici quelques-unes des classes qui étendent `OpenAIParameters` : - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md index c0c0c453eb7436..aa37bc3c85f2bb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md @@ -5,27 +5,27 @@ title: Appel asynchrone # Appel asynchrone -If you do not want to wait for the OpenAPI response when making a request to its API, you need to use asynchronous code. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) in the [OpenAIParameters](Classes/OpenAIParameters.md) object parameter to receive the result. +Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. -The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. Voir les exemples ci-dessous. +La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](Classes/OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. Voir les exemples ci-dessous. -## Process Considerations +## A propos des process -The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. +La méthode asynchrone est basée sur [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), ainsi la réponse sera reçue dans le process courant. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ Si votre process se termine à la fin de la méthode courante (par exemple, si vous utilisez New process ou l'éditeur de méthode), la formule de callback peut ne pas être appelée de manière asynchrone. Dans ce cas, il est nécessaire d'utiliser `CALL WORKER` ou `CALL FORM`. ## Exemples d’utilisation -### liste de modèles +### Liste de modèles ```4d $client.models.list({formula: Formula(MyReceiveMethod($1))}) ``` -`$1` sera une instance de [OpenAIModelListResult] (Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : +`$1` sera une instance de [OpenAIModelListResult](Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : ```4d #DECLARE($result: cs.AIKit.OpenAIModelListResult) @@ -41,7 +41,7 @@ Else End if ``` -### complétions de chat +### Complétions de chat ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index ba0522fda1b175..6f376ddde06727 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,15 +7,15 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +Pour ce faire, il suffit de passer l'adresse du fournisseur dans `baseURL` et d'utiliser sa clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" ``` -Some of them +Quelques-uns : -## Distant +## A distance | Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Default baseURL | Doc | +| Fournisseur | baseURL par défaut | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md index 853ce7579b49a0..27f37b8f05b508 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -11,7 +11,7 @@ title: 4D-AIKit ## OpenAI -La classe [`OpenAI`](Classes/OpenAI.md) vous permet de faire des demandes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). +La classe [`OpenAI`](Classes/OpenAI.md) vous permet d'envoyer des requêtes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). ### Configuration @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +Pour l'API d'un [founisseur compatible](compatible-openai.md), vous devez configurer l'URL du serveur en définissant le paramètre `baseURL`. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -33,7 +33,7 @@ ou $client.baseURL:="https://your.server.ai" ``` -### Formuler des demandes +### Formuler des requêtes `OpenAI` fournit différents points de terminaison appelés ressources, chacun offrant diverses fonctions. @@ -41,9 +41,9 @@ $client.baseURL:="https://your.server.ai" var $result:=$client..() ``` -Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) +Le résultat `$result` contient la requête `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -See some examples below. +Voir quelques exemples ci-dessous. #### Chat @@ -60,9 +60,9 @@ var $result:=$client.chat.completions.create($messages; {model: "gpt-4o-mini"}) // résultat dans $result.choice ``` -##### Assistant de chat +##### Helper de discussion (chat) -Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses d'assistants. +Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses de l'assistant. ```4d var $helper:=$client.chat.create("You are a helpful assistant.") @@ -71,9 +71,9 @@ $result:=$helper.prompt("and could you decompose this number") // conversation dans $helper.messages ``` -##### Assistant de vision +##### Helper de vision -Cet assistant permet l'analyse des images à travers le chat. +Cet assistant permet l'analyse des images à travers la discussion. ```4d var $result:=$client.chat.vision.create($imageUrl).prompt("give me a description of the image") @@ -113,13 +113,13 @@ var $moderation:=$client.moderations.create("This text contains inappropriate la #### Code asynchrone -Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de rappel. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de callback. Voir [documentation détaillée pour les exemples](asynchronous-call.md) ## Droits d'auteur -- This library is not affiliated with, endorsed by, or officially connected to OpenAI in any way. -- "OpenAI" and any related marks are trademarks or registered trademarks of OpenAI, LLC. All rights related to OpenAI's services, APIs, and technologies remain the property of OpenAI. -- This project simply provides an interface to OpenAI’s services and does not claim any ownership over their technology, branding, or intellectual property. +- Cette bibliothèque n'est pas affiliée à OpenAI, ni approuvée par elle, ni officiellement liée à elle de quelque manière que ce soit. +- "OpenAI" et toutes les marques associées sont des marques commerciales ou des marques déposées d'OpenAI, LLC. Tous les droits liés aux services, API et technologies de l'OpenAI restent la propriété de OpenAI. +- Ce projet fournit simplement une interface aux services d'OpenAI et ne revendique aucune propriété sur leur technologie, leur marque ou leur propriété intellectuelle. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md index b068509990a7b8..ba53cb648b9458 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/classes.md @@ -282,7 +282,7 @@ Class constructor({$parameterName : type; ...}) :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Il n'y a pas de mot-clé de fin pour le code d'une fonction. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Il n'y a pas de mot-clé de fin pour le code d'une fonction. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/components.md index 5118d0a7d8bbed..b2bbd2676e7739 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/components.md @@ -180,7 +180,7 @@ SAVE RECORD($tablepointer->) ## Utilisation de tables et de champs -Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. +Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. Une base de données externe est un projet 4D indépendant du projet 4D principal, mais avec lequel vous pouvez travailler à partir du projet 4D principal. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. ### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md index 76df3863376f97..34145b3195459d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barre d’outils comporte les éléments suivants : | Icône | Nom | Description | | ------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Exécuter le formulaire | Permet de tester l’exécution du formulaire. Lorsque vous cliquez sur ce bouton, 4D ouvre une nouvelle fenêtre et affiche le formulaire dans son contexte (liste d’enregistrements pour un formulaire liste et enregistrement courant en page pour un formulaire détaillé). Le formulaire est exécuté dans le process principal. | -| ![](../assets/en/FormEditor/selection.png) | [Flèche de sélection](#selecting-objects) | Permet de sélectionner, déplacer et redimensionner les objets du formulaire.

        **Note** : Lorsqu'un objet de type Texte ou Zone de Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition.

        | +| ![](../assets/en/FormEditor/selection.png) | [Flèche de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordre de saisie](#data-entry-order) | Passe en mode “Ordre de saisie”, dans lequel il est possible de visualiser et de modifier l’ordre de saisie courant du formulaire. A noter que vous pouvez également visualiser l’ordre de saisie courant tout en travaillant dans le formulaire. | | ![](../assets/en/FormEditor/moving.png) | [Déplacement](#moving-objects) | Passe en mode “Déplacement”, dans lequel il est possible d’atteindre rapidement n’importe quelle partie du formulaire en le faisant directement glisser dans la fenêtre. Le curseur prend la forme d’une main. Ce mode de navigation est particulièrement utile en cas de zoom dans le formulaire. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permet de modifier l’échelle d’affichage du formulaire (100% par défaut). Vous pouvez passer en mode “Zoom” en cliquant sur le bouton loupe ou en cliquant directement sur la barre correspondant à l’échelle désirée. Cette fonction est détaillée dans le paragraphe précédent. | @@ -146,11 +146,11 @@ Avant de pouvoir réaliser une opération sur un objet (comme le changement de l Pour sélectionner un objet à l’aide de la barre d’outils : -1. Cliquez sur l’outil Flèche dans la barre d’outils.

        ![](../assets/en/FormEditor/selection.png)

        +1. Cliquez sur l’outil Flèche dans la barre d’outils.
        ![](../assets/en/FormEditor/selection.png) -

        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard

        . +
        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard. -2. Cliquez sur l’objet que vous souhaitez sélectionner. Des poignées de sélection identifient l’objet sélectionné.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Cliquez sur l’objet que vous souhaitez sélectionner. Des poignées de sélection identifient l’objet sélectionné.
        ![](../assets/en/FormEditor/selectResize.png) Pour sélectionner un objet à l’aide de la Liste des propriétés : @@ -235,13 +235,12 @@ Grouper des objets n’a d’effet que dans l’éditeur de formulaires. Lors de Pour grouper les objets : 1. Sélectionnez les objets que vous souhaitez grouper. -2. Sélectionnez **Grouper** dans le menu Objets. OR Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        -4D matérialise les bordures du groupe avec des poignées. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. +2. Sélectionnez **Grouper** dans le menu Objets. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. Pour dégrouper un groupe d’objets : 1. Sélectionnez le groupe que vous souhaitez dégrouper. -2. Choisissez **Dégrouper** dans le menu **Objets**.

        OU

        Sélectionnez la commande **Dégrouper** (menu du bouton **Grouper**) dans la barre d’outils de l’éditeur de formulaires.

        Si la commande **Dégrouper** est désactivée, cela veut dire que l’objet sélectionné est déjà sous sa forme la plus simple.

        4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. ### Aligner des objets @@ -268,9 +267,10 @@ La boîte de dialogue d’alignement vous permet d’appliquer tout type d’ali Pour afficher cette boîte de dialogue, vous devez sélectionner les objets que vous souhaitez aligner puis choisir la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. -- Cliquez sur l’icône d’alignement de votre choix dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”.

        La zone d’exemple illustre le principe de l’opération sélectionnée.

        +- Dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”, cliquez sur l’icône correspondant à l'alignement que vous souhaitez effectuer.
        La zone d'exemple affiche les résultats de votre sélection. + +- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. Dans ce cas, la position de l’objet de référence ne variera pas. -- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU BIEN :

        Pour aligner des objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous souhaitez que les autres objets soient alignés dans la liste des objets. Dans ce cas, la position de l’objet de référence ne variera pas.

        Vous pouvez prévisualiser le résultat réel de vos paramétrages en cliquant sur le bouton **Prévisualisation**. Les objets sont ensuite alignés dans l'éditeur de formulaires, mais comme la boîte de dialogue ne disparaît pas, vous pouvez toujours annuler ou appliquer l'alignement. > Cette boîte de dialogue combine l’alignement d’objets et leur répartition. Pour plus d’informations sur la répartition, reportez-vous au paragraphe [Répartir des objets](#distributing-objects). @@ -304,7 +304,7 @@ Pour répartir directement une sélection d’objets (verticalement ou horizonta 1. Sélectionnez les objets (au moins trois) que vous souhaitez répartir. -2. Dans la barre d’outils, cliquez sur l’outil de répartition qui correspond la répartition que vous souhaitez appliquer.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Sélectionnez une commande de distribution dans le sous-menu **Alignement** du menu **Objet** ou dans le menu contextuel de l'éditeur.

        4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et répartition : @@ -312,9 +312,9 @@ Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et r 2. Choisissez la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. La boîte de dialogue suivante apparaît :![](../assets/en/FormEditor/alignmentAssistant.png) -3. Cliquez sur l’icône de répartition standard (horizontale ou verticale) de votre choix: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (icône de répartition horizontale standard)

        La zone d’exemple illustre le principe de l’opération sélectionnée. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Pour effectuer une répartition standard, cliquez sur le bouton **Prévisualisation** ou *Appliquer*.

        Dans ce cas, les objets seront répartis de manière à ce que leurs côtés soient équidistants (répartition standard).

        OU BIEN :

        Pour exécuter une distribution spécifique, sélectionnez l'option **Répartir** (par exemple si vous souhaitez répartir les objets en fonction de la distance de leur côté droit). Cette option agit comme un interrupteur. Lorsque l'option Répartir est cochée, les icônes situées au-dessous d’elle s’appliquent alors à la répartition :

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Lorsque l'option Répartir est cochée, les icônes situées au-dessous d’elle s’appliquent alors à la répartition :
        - Horizontalement, les icônes correspondent aux répartitions suivantes : équidistance des côtés gauches, des centres (hor.) et des côtés droits des objets sélectionnés. - Verticalement, les icônes correspondent aux répartitions suivantes : équidistance des bords supérieurs, des centres (vert.) et des bords inférieurs des objets sélectionnés. @@ -367,11 +367,11 @@ Ce paragraphe décrit la visualisation et la modification de l’ordre de saisie Pour visualiser ou modifier l’ordre de saisie : -1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :
        ![](../assets/en/FormEditor/zOrder.png)
        Le pointeur prend la forme d’un pointeur d’ordre, et 4D dessine une ligne qui permet de visualiser la séquence de l’ordre de saisie courant. Visualiser et modifier l’ordre de saisie sont les seules opérations que vous pouvez réaliser dans ce mode. -2. Pour changer l’ordre de saisie, placez le pointeur sur un objet, cliquez dessus et, tout en maintenant le bouton de la souris enfoncé, déplacez le pointeur vers l’objet qui doit le suivre dans l’ordre de saisie.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajuste l’ordre de saisie en conséquence. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Répétez l’étape 2 autant de fois que nécessaire pour obtenir le nouvel ordre de saisie. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md index 9c4ff9359a4f01..4d9f4368ef4fba 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/API/SessionClass.md @@ -80,7 +80,7 @@ Cette fonction ne fait rien et retourne toujours **True** avec les sessions clie La fonction `.clearPrivileges()` supprime tous les privilèges associés à la session (à l'exception des privilèges promus) et renvoie **True** si l'exécution a réussi. -Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Invité. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. +Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Guest. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md index c9dd9a9243b577..e1452bbeb57077 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/classes.md @@ -333,7 +333,7 @@ Function getRectArea($width : Integer; $height : Integer) : Integer :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md index 46767a27be495d..433926e8528b88 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/develop-components.md @@ -108,7 +108,7 @@ Un *namespace* garantit qu'aucun conflit n'émerge lorsqu'un projet hôte utilis ::: -Lorsque vous entrez une valeur, vous déclarez que les classes de composants seront disponibles dans la [user class store (**cs**)](../Concepts/classes.md#cs) du projet hôte ainsi que ses composants chargés, à travers les `cs.` espace de noms. Par exemple, si vous entrez "eGeometry" comme namespace, en supposant que vous avez créé une classe `Rectangle` contenant une fonction `getArea()`, une fois votre projet installé comme composant, le développeur du projet hôte peut écrire : +Lorsque vous entrez une valeur, vous déclarez que les classes de composants seront disponibles dans la [class store utilisateurs (**cs**)](../Concepts/classes.md#cs) du projet hôte ainsi que ses composants chargés, à travers les espaces de noms `cs.`. Par exemple, si vous entrez "eGeometry" comme namespace, en supposant que vous avez créé une classe `Rectangle` contenant une fonction `getArea()`, une fois votre projet installé comme composant, le développeur du projet hôte peut écrire : ```4d //dans le projet hôte ou l'une de ses composantes @@ -143,19 +143,19 @@ $rect:=cs.eGeometry._Rectangle.new(10;20) ## Modification des composants à partir de l'hôte -To facilitate component tuning in the actual context of host projects, you can directly modify and save the code of a loaded component from an interpreted host project. Le code du composant est modifiable lorsque les conditions suivantes sont remplies : +Pour faciliter la mise au point des composants dans le contexte réel des projets hôtes, vous pouvez modifier et sauvegarder directement le code d'un composant chargé depuis un projet hôte interprété. Le code du composant est modifiable lorsque les conditions suivantes sont remplies : -- the component has been [loaded in interpreted mode](../Project/components.md#interpreted-and-compiled-components), -- the component is not loaded from the [local cache of the Dependency manager](../Project/components.md#local-cache-for-dependencies), i.e. it is not [downloaded from GitHub](../Project/components.md#adding-a-github-dependency). +- le composant a été [chargé en mode interprété](../Project/components.md#interpreted-and-compiled-components), +- le composant n'est pas chargé à partir du [cache local du gestionnaire de dépendances](../Project/components.md#local-cache-for-dependencies), c'est-à-dire qu'il n'est pas [téléchargé depuis GitHub](../Project/components.md#adding-a-github-dependency). -In this case, you can open, edit, and save your component code in the Code editor on the host project, so that modifications are immediately taken into account. +Dans ce cas, vous pouvez ouvrir, éditer et enregistrer le code de votre composant dans l'éditeur de code du projet hôte, afin que les modifications soient immédiatement prises en compte. -In the Explorer, a specific icon indicates that the component code is editable:
        +Dans l'Explorateur, une icône spécifique indique que le code du composant est modifiable :
        ![](../assets/en/Develop/editable-component.png) :::warning -Only [exposed classes](#sharing-of-classes) and [shared methods](#sharing-of-project-methods) of your component can be edited. +Seules les [classes exposées](#sharing-of-classes) et les [méthodes partagées](#sharing-of-project-methods) de votre composant peuvent être modifiées. ::: @@ -237,7 +237,7 @@ Dans ce cas, il est nécessaire d’utiliser la comparaison de pointeurs : Une [méthode de gestion d'erreurs](Concepts/error-handling.md) installée par la commande `ON ERR CALL` s'applique à l'application en cours d'exécution uniquement. En cas d'erreur générée par un composant, la méthode d'appel sur erreur `ON ERR CALL` du projet hôte n'est pas appelée, et inversement. -However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. +Cependant, vous pouvez installer un [gestionnaire d'erreurs de composants dans l'application hôte](../Concepts/error-handling.md#scope-and-components) pour gérer les erreurs non capturées des composants. ## Accès aux tables du projet hôte @@ -267,7 +267,7 @@ SAVE RECORD($tablepointer- ## Utilisation de tables et de champs -Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. +Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. Une base de données externe est un projet 4D indépendant du projet 4D principal, mais avec lequel vous pouvez travailler à partir du projet 4D principal. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. ### Exemple @@ -384,7 +384,7 @@ Ce fichier n'est pas obligatoire mais il est nécessaire pour construire des com Les clés prises en charge dans les fichiers `Info.plist` des composants sont principalement des [clés bundle d'Apple](https://developer.apple.com/documentation/bundleresources/information-property-list) qui sont ignorées sous Windows. Cependant, elles sont utilisés par le [Gestionnaire de dépendances](../Project/components.md#loading-components) sur toutes les plates-formes. -The following keys can be defined: +Les clés suivantes peuvent être définies : | key | Description | | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index 2497cd8da5994e..b02e53afe34d53 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -56,12 +56,12 @@ La barre d’outils comporte les éléments suivants : | Icône | Nom | Description | | ------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Exécuter le formulaire | Permet de tester l’exécution du formulaire. Lorsque vous cliquez sur ce bouton, 4D ouvre une nouvelle fenêtre et affiche le formulaire dans son contexte (liste d’enregistrements pour un formulaire liste et enregistrement courant en page pour un formulaire détaillé). Le formulaire est exécuté dans le process principal. | -| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note** : Lorsqu'un objet de type Texte ou Zone de Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordre de saisie](#data-entry-order) | Passe en mode “Ordre de saisie”, dans lequel il est possible de visualiser et de modifier l’ordre de saisie courant du formulaire. A noter que vous pouvez également visualiser l’ordre de saisie courant tout en travaillant dans le formulaire. | | ![](../assets/en/FormEditor/moving.png) | [Déplacement](#déplacement-objets) | Passe en mode “Déplacement”, dans lequel il est possible d’atteindre rapidement n’importe quelle partie du formulaire en le faisant directement glisser dans la fenêtre. Le curseur prend la forme d’une main. Ce mode de navigation est particulièrement utile en cas de zoom dans le formulaire. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permet de modifier l’échelle d’affichage du formulaire (100% par défaut). Vous pouvez passer en mode “Zoom” en cliquant sur le bouton loupe ou en cliquant directement sur la barre correspondant à l’échelle désirée. Cette fonction est détaillée dans le paragraphe précédent. | -| ![](../assets/en/FormEditor/alignment.png) | [Alignement](#aligning-objects) | Ce bouton est associé à un menu permettant d’aligner les objets dans le formulaire. It is enabled (or not) depending on the objects selected.
        Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/distribution.png) | [Distribution](#distributing-objects) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. It is enabled (or not) depending on the objects selected.
        Disabled if one selected object position is locked by a CSS property | +| ![](../assets/en/FormEditor/alignment.png) | [Alignement](#aligning-objects) | Ce bouton est associé à un menu permettant d’aligner les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés.
        Désactivé si la position d'un objet sélectionné est verrouillée par une propriété CSS | +| ![](../assets/en/FormEditor/distribution.png) | [Distribution](#distributing-objects) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés.
        Désactivé si la position d'un objet sélectionné est verrouillée par une propriété CSS | | ![](../assets/en/FormEditor/level.png) | [Plan](#gérer-les-plans-des-objets) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés. | | ![](../assets/en/FormEditor/group.png) | [Grouper/Dégrouper](#grouping-objects) | Ce bouton est associé à un menu permettant de grouper et dégrouper la sélection d’objets du formulaire. Il est activé (ou non) en fonction des objets sélectionnés. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Affichage et gestion des pages](forms.html#form-pages) | Cette zone permet de passer d’une page du formulaire à une autre et d’ajouter des pages. Pour naviguer parmi les pages du formulaire, cliquez sur les boutons fléchés ou cliquez sur la zone centrale et choisissez la page à afficher dans le menu qui apparaît. Si vous cliquez sur le bouton fléché de droite alors que vous êtes sur la dernière page du formulaire, 4D vous permet d’ajouter une page. | @@ -146,11 +146,11 @@ Avant de pouvoir réaliser une opération sur un objet (comme le changement de l Pour sélectionner un objet à l’aide de la barre d’outils : -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Cliquez sur l’objet que vous souhaitez sélectionner. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Cliquez sur l’objet que vous souhaitez sélectionner. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) Pour sélectionner un objet à l’aide de la Liste des propriétés : @@ -241,13 +241,13 @@ Pour grouper les objets : 1. Sélectionnez les objets que vous souhaitez grouper. 2. Sélectionnez **Grouper** dans le menu Objets. OU - Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:

        ![](../assets/en/FormEditor/group.png)

        + Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:
        ![](../assets/en/FormEditor/group.png) 4D indique la limite des objets regroupés nouvellement avec des poignées. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. Pour dégrouper un groupe d’objets : 1. Sélectionnez le groupe que vous souhaitez dégrouper. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Si la commande **Dégrouper** est désactivée, cela veut dire que l’objet sélectionné est déjà sous sa forme la plus simple. 4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. ### Aligner des objets @@ -275,9 +275,9 @@ La boîte de dialogue d’alignement vous permet d’appliquer tout type d’ali Pour afficher cette boîte de dialogue, vous devez sélectionner les objets que vous souhaitez aligner puis choisir la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        La zone d’exemple illustre le principe de l’opération sélectionnée. -- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:

        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas.

        +- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:
        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas. Vous pouvez prévisualiser le résultat réel de vos paramétrages en cliquant sur le bouton **Prévisualisation**. Les objets sont ensuite alignés dans l'éditeur de formulaires, mais comme la boîte de dialogue ne disparaît pas, vous pouvez toujours annuler ou appliquer l'alignement. @@ -314,7 +314,8 @@ Pour répartir directement une sélection d’objets (verticalement ou horizonta 1. Sélectionnez les objets (au moins trois) que vous souhaitez répartir. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et répartition : @@ -322,9 +323,9 @@ Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et r 2. Choisissez la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. La boîte de dialogue suivante apparaît :![](../assets/en/FormEditor/alignmentAssistant.png) -3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)

        (icône standard de distribution horizontale)

        La zone d'exemple affiche les résultats de votre sélection. +3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)
        (icône standard de distribution horizontale)
        La zone d'exemple affiche les résultats de votre sélection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:
        - Horizontalement, les icônes correspondent aux répartitions suivantes : équidistance des côtés gauches, des centres (hor.) et des côtés droits des objets sélectionnés. - Verticalement, les icônes correspondent aux répartitions suivantes : équidistance des bords supérieurs, des centres (vert.) et des bords inférieurs des objets sélectionnés. @@ -379,11 +380,11 @@ Ce paragraphe décrit la visualisation et la modification de l’ordre de saisie Pour visualiser ou modifier l’ordre de saisie : -1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :
        ![](../assets/en/FormEditor/zOrder.png)
        Le pointeur prend la forme d’un pointeur d’ordre, et 4D dessine une ligne qui permet de visualiser la séquence de l’ordre de saisie courant. Visualiser et modifier l’ordre de saisie sont les seules opérations que vous pouvez réaliser dans ce mode. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Répétez l’étape 2 autant de fois que nécessaire pour obtenir le nouvel ordre de saisie. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/pictures.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/pictures.md index ea0e62531b19ed..cef951e302f09c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/pictures.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/pictures.md @@ -57,10 +57,10 @@ Les images haute résolution avec la convention @nx peuvent être utilisées dan Si 4D donne automatiquement la priorité à la résolution la plus élevée, il existe cependant des différences de comportement en fonction de la résolution de l'écran et de l'image *(\*)* et du format de l'image : -| Opération | Comportement | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Déposer ou Coller | If the picture has:
        • **72dpi or 96dpi** - The picture is "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatted and the object containing the picture has the same number of pixels.
        • **Other dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted and the object containing the picture is equal to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **No dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted.
        | -| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | If the picture's display format is:
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - The object containing the picture is resized according to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **Not scaled** - The object containing the picture has the same number of pixels as the picture.
        | +| Opération | Comportement | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Déposer ou Coller | Si l'image a :
        • **72dpi ou 96dpi** - L'image est formatée en "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" et l'objet contenant l'image a le même nombre de pixels.
        • **Autre dpi** - L'image est formatée en "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" et l'objet contenant l'image est égal au (nombre de pixels de l'image \* dpi) / (dpi) de l'image
        • **Pas de dpi** - L'image est formatée en "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
        | +| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | Si le format d'affichage de l'image est :
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - L'objet contenant l'image est redimensionné en fonction du (nombre de pixels de l'image \* dpi écran) / (dpi image
        • ) **Not scaled** - L'objet contenant l'image a le même nombre de pixels que l'image.
        | *(\*) Généralement, macOS = 72 dpi, Windows = 96 dpi* diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md index 59ce0d98af04cc..7d0eb15a2dd553 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md @@ -21,9 +21,9 @@ Vous agrandissez ou réduisez la zone de rupture en faisant glisser le taquet ve #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| markerBreak | integer | integer collection | Break marker position or collection of break marker positions in pixels.
        Valeur minimale : 0 | +| Nom | Type de données | Valeurs possibles | +| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| markerBreak | integer | integer collection | Position du taquet de rupture ou collection des positions de taquets de rupture en pixels.
        Valeur minimale : 0 | --- @@ -77,9 +77,9 @@ Zone de rupture Un en-tête de niveau 1 est imprimé juste avant que les enregis #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ------------ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| markerHeader | integer | integer collection | Header marker position or collection of header marker positions in pixels.
        Valeur minimale : 0 | +| Nom | Type de données | Valeurs possibles | +| ------------ | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| markerHeader | integer | integer collection | Position du taquet d'en-tête ou collection des positions de taquets d'en-tête en pixels.
        Valeur minimale : 0 | ## Zones supplémentaires diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/GettingStarted/Installation.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/GettingStarted/Installation.md index 836724a1316baa..ee7cb640813304 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/GettingStarted/Installation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/GettingStarted/Installation.md @@ -7,7 +7,7 @@ Bienvenue dans 4D ! Cette page regroupe toutes les informations nécessaires sur ## Configuration requise -La page [Téléchargements](https://us.4d.com/product-download) dut site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. +La page [Téléchargements](https://us.4d.com/product-download) du site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. Des détails techniques supplémentaires sont disponibles sur la [page Ressources](https://us.4d.com/resources/feature-release) du site web de 4D. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 307430b46754dd..304b4e4426c4d5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -564,11 +564,11 @@ Ce mécanisme automatique est basé sur le concept de "verrouillage optimiste" q Le diagramme suivant illustre le verrouillage optimiste : -1. Two processes load the same entity.

        ![](../assets/en/ORDA/optimisticLock1.png) +1. Deux process chargent la même entité.

        ![](../assets/en/ORDA/optimisticLock1.png) -2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Since they match, the entity is saved and its stamp value is incremented.

        ![](../assets/en/ORDA/optimisticLock2.png) +2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Puisqu'elles correspondent, l'entité est enregistrée et la valeur de son marqueur est incrémentée.

        ![](../assets/en/ORDA/optimisticLock2.png) -3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Since the stamp value of the modified entity does not match the one of the entity stored in the data, the save is not performed and an error is returned.

        ![](../assets/en/ORDA/optimisticLock3.png) +3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Puisque la valeur du marqueur de l'entité modifiée ne correspond pas à celle de l'entité stockée dans les données, la sauvegarde n'est pas effectuée et une erreur est retournée.

        ![](../assets/en/ORDA/optimisticLock3.png) Cela peut également être illustré par le code suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index a5eaa72234d8ca..369a06d7efda4f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Entity Events +title: Évènements d'entité ---
        Historique @@ -11,13 +11,13 @@ title: Entity Events
        -Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Les événements d'entité sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entité sont touchés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. :::info Note de compatibilité -ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +Les événements d'entité ORDA dans le magasin de données sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -25,7 +25,7 @@ ORDA entity events in the datastore are equivalent to triggers in the 4D databas ### Niveau de l'événement -A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Une fonction d'événement d'entité est toujours définie dans la [classe Entity](../ORDA/ordaClasses.md#entity-class). Un événement peut être défini au niveau de l'**entité** et/ou de l'**attribut** (y compris les [**attributs calculés**](../ORDA/ordaClasses.md#computed-attributes)). Dans le premier cas, il sera déclenché pour tous les attributs de l'entité ; dans l'autre cas, il ne sera déclenché que pour l'attribut ciblé. @@ -49,7 +49,7 @@ Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via ### Tableau de synthèse -The following table lists ORDA entity events along with their rules. +Le tableau suivant liste les événements d'entité ORDA ainsi que leurs principes. | Evénement | Niveau | Nom de la fonction | (C/S) Exécuté sur | | :--------------------- | :------- | :------------------------------------------------------ | :-----------------------------------------------------------------: | @@ -67,11 +67,11 @@ La fonction [`constructor()`](./ordaClasses.md#class-constructor-1) n'est pas en Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lorsque la fonction est appelée, le paramètre est rempli avec diverses propriétés : -| Nom de propriété | Disponibilité | Type | Description | -| :--------------- | :------------------------------------- | :----- | :--------------------------------------------------------------------------- | -| `kind` | Toujours | String | Nom de l'événement ("touched") | -| *attributeName* | Only for events involving an attribute | String | Nom de l'attribut (*ex.* "firstname") | -| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | +| Nom de propriété | Disponibilité | Type | Description | +| :--------------- | :---------------------------------------------------- | :----- | :--------------------------------------------------------------------------- | +| `kind` | Toujours | String | Nom de l'événement ("touched") | +| *attributeName* | Uniquement pour les événements impliquant un attribut | String | Nom de l'attribut (*ex.* "firstname") | +| *dataClassName* | Toujours | String | Nom du verre de données (*ex.* "Company") | ## Description des fonctions @@ -87,8 +87,8 @@ Les fonctions d'événement acceptent un seul objet *event* comme paramètre. Lo Cet événement est déclenché chaque fois qu'une valeur est modifiée dans l'entité. -- if you defined the function at the entity level (first syntax), it is triggered for modifications on any attribute of the entity. -- if you defined the function at the attribute level (second syntax), it is triggered only for modifications on this attribute. +- si vous avez défini la fonction au niveau de l'entité (première syntaxe), elle est déclenchée pour des modifications sur n'importe quel attribut de l'entité. +- si vous avez défini la fonction au niveau de l'attribut (deuxième syntaxe), elle n'est déclenchée que pour les modifications sur cet attribut. Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte une modification de la valeur de l'attribut qui peut être due aux actions suivantes : @@ -99,16 +99,16 @@ Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte un - en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. - avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. -If this event [throws](../commands-legacy/throw.md) an error, it will not stop the undergoing action. +Si cet événement [génère une erreur](../commands-legacy/throw.md), il n'arrêtera pas l'action en cours. :::note -This event is also triggered: +Cet événement est également déclenché : -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- lorsque les attributs sont assignés par l'événement [`constructor()`](./ordaClasses.md#class-constructor-1), +- lorsque les attributs sont modifiés via l'[Explorateur de données](../Admin/dataExplorer.md). ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/ordaClasses.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/ordaClasses.md index 84479ca7fefcae..d4738c0141b15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/ordaClasses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/ordaClasses.md @@ -306,52 +306,52 @@ Class constructor() :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: -An ORDA class constructor function is triggered just after a new entity is created in memory, [whatever the way it is created](#commands-that-trigger-the-class-constructor-functions). It is useful to set initial values for entity instantiation, for example a custom ID. +Une fonction de construction de classe ORDA est déclenchée juste après la création d'une nouvelle entité en mémoire, [quelle que soit la manière dont elle est créée](#commands-that-trigger-the-class-constructor-functions). Elle est utile pour définir des valeurs d'initialisation lors de l'instanciation de l'entité, par exemple un identifiant personnalisé. -This function can only be set at the [entity level](#entity-class). There can only be one constructor function in an entity class (otherwise an error is returned). +Cette fonction ne peut être définie qu'au [niveau de l'entité](#entity-class). Il ne peut y avoir qu'une seule fonction constructor dans une classe d'entité (sinon une erreur est renvoyée). -This ORDA class constructor function does not receive or return parameters. However, you can use it to initialize attribute values using [`This`](../commands/this.md). Note that values initialized by the constructor are overriden if corresponding attributes are filled by the code. +La fonction du constructeur de la classe ORDA ne reçoit ni ne renvoie de paramètres. Cependant, vous pouvez l'utiliser pour initialiser les valeurs des attributs en utilisant [`This`](../commands/this.md). Notez que les valeurs initialisées par le constructeur sont remplacées si les attributs correspondants sont remplis par le code. :::note -An ORDA class constructor function is similar to a [user class constructor function](../Concepts/classes.md#class-constructor), with the following differences: +Une fonction de construction de classe ORDA est similaire à une [fonction de construction de classe utilisateur](../Concepts/classes.md#class-constructor), avec les différences suivantes : -- you cannot pass parameters to the constructor, -- you cannot use `shared`, `session`, or `singleton` keywords, -- you cannot call the [`Super`](../Concepts/classes.md#super) keyword within the function, -- the class constructor cannot be called using the `new()` function on an entity (entities can only be created by specific functions, see below). +- vous ne pouvez pas passer de paramètres au constructeur, +- vous ne pouvez pas utiliser les mots-clés `shared`, `session`, ou `singleton`, +- vous ne pouvez pas appeler le mot-clé [`Super`](../Concepts/classes.md#super) à l'intérieur de la fonction, +- le constructeur de la classe ne peut pas être appelé en utilisant la fonction `new()` sur une entité (les entités ne peuvent être créées que par des fonctions spécifiques, voir ci-dessous). ::: -#### Commands that trigger the Class constructor functions +#### Commandes qui déclenchent les fonctions du constructeur de classe -The `Class constructor` function is triggered by the following commands and features: +La fonction `Class constructor` est déclenchée par les commandes et fonctionnalités suivantes : - [`dataClass.new()`](../API/DataClassClass.md#new) - [`dataClass.fromCollection()`](../API/DataClassClass#fromcollection) -- [REST API $method=update](../REST/$method.md#methodupdate) in a POST without the `__KEY` and `__STAMP` parameters -- the [Data Explorer](../Admin/dataExplorer.md#editing-data). +- [API REST $method=update](../REST/$method.md#methodupdate) dans un POST sans les paramètres `__KEY` et `__STAMP`. +- l'[Explorateur de données](../Admin/dataExplorer.md#editing-data). :::note Notes -- The [`entity.clone()`](../API/EntityClass.md#clone) function does not trigger the entity Class constructor. -- Records created at the 4D database level using 4D classic language commands or standard actions do not trigger the entity Class constructor. +- La fonction [`entity.clone()`](../API/EntityClass.md#clone) ne déclenche pas le constructeur de la classe de l'entité. +- Les enregistrements créés au niveau de la base de données 4D à l'aide de commandes du langage classique 4D ou d'actions standard ne déclenchent pas le constructeur de la classe de l'entité. ::: -#### Remote configurations +#### Configurations distantes -When using a remote configurations, you need to pay attention to the following principles: +Lorsque vous utilisez une configuration à distance, il convient de respecter les principes suivants : -- In **client/server** the function can be called on the client or on the server, depending on the location of the calling code. When it is called on the client, it is not triggered again when the client attempts to save the new entity and sends an update request to the server to create in memory on the server. +- En **client/serveur**, la fonction peut être appelée sur le client ou sur le serveur, en fonction de l'emplacement du code d'appel. Lorsqu'elle est appelée sur le client, elle n'est pas déclenchée à nouveau lorsque le client tente d'enregistrer la nouvelle entité et envoie une demande de mise à jour au serveur pour la créer en mémoire sur le serveur. :::warning -Since functions such as [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) can create a large number of entities and thus trigger the entity Class constructor consequently, you need to make sure the constructor code does not execute excessive time-consuming processings, for performance reasons. In remote configurations (see below), the code should not trigger multiple requests to the server. +Des fonctions telles que [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) pouvant créer un grand nombre d'entités et donc déclencher le constructeur de la classe d'entités en conséquence, vous devez vous assurer que le code du constructeur n'exécute pas de traitements qui prennent du temps, pour des raisons de performance. Dans les configurations distantes (voir ci-dessous), le code ne doit pas déclencher de requêtes multiples au serveur. ::: @@ -367,7 +367,7 @@ Class constructor() ``` -#### Example 2 (diagram): Client/server +#### Exemple 2 (diagramme) : Client/serveur ```mermaid @@ -386,7 +386,7 @@ Server-->>-Client: Success ``` -#### Example 3 (diagram): Qodly - Standard action +#### Exemple 3 (diagramme): Qodly - Action standard ```mermaid @@ -404,7 +404,7 @@ sequenceDiagram ``` -#### Example 4 (diagram): Qodly - Standard action and update value on the newly created entity +#### Exemple 4 (diagramme): Qodly - Action standard et mise à jour de valeur sur la nouvelle entité créée ```mermaid @@ -426,7 +426,7 @@ Note over Qodly page: product.creationDate is "06/17/25"
        and product.commen ``` -#### Example 5 (diagram): Qodly - Entity instanciated in a function +#### Exemple 5 (diagramme) : Qodly - Entité instanciée dans une fonction ```mermaid @@ -896,23 +896,23 @@ Exposed Alias studentName student.name //scalar value Vous pouvez alors exécuter les recherches suivantes : ```4d -// Find course named "Archaeology" +// Trouver le cours nommé "Archaeology" ds.Course.query("courseName = :1";"Archaeology") -// Find courses given by the professor Smith +// Trouver les cours du professeur Smith ds.Course.query("teacherName = :1";"Smith") -// Find courses where Student "Martin" assists +// Trouver les cours auxquels assiste l'étudiant "Martin" ds.Course.query("studentName = :1";"Martin") -// Find students who have M. Smith as teacher +// Trouver les étudiants qui ont le professeur Smith ds.Student.query("teachers.name = :1";"Smith") -// Find teachers who have M. Martin as Student +// Trouver les professeurs qui ont M. Martin comme étudiant ds.Teacher.query("students.name = :1";"Martin") -// Note that this very simple query string processes a complex -// query including a double join, as you can see in the queryPlan: -// "Join on Table : Course : Teacher.ID = Course.teacherID, +// Notez que cette chaîne très simple traite une requête complexe +// incluant une double jointure, comme vous pouvez le voir dans le queryPlan : +// "Join on Table : Course : Teacher.ID = Course.teacherID, // subquery:[ Join on Table : Student : Course.studentID = Student.ID, // subquery:[ Student.name === Martin]]" ``` @@ -986,59 +986,59 @@ $status:=$remoteDS.Schools.registerNewStudent($student) // OK $id:=$remoteDS.Schools.computeIDNumber() // Erreur "Unknown member method" ``` -## onHTTPGet keyword +## onHTTPGet -Use the `onHTTPGet` keyword to declare functions that can be called through HTTP requests using the `GET` verb. Such functions can return any web contents, for example using the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class. +Utilisez le mot-clé `onHTTPGet` pour déclarer des fonctions qui peuvent être appelées par des requêtes HTTP utilisant le verbe `GET`. Ces fonctions peuvent renvoyer n'importe quel contenu web, par exemple en utilisant la classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md). -The `onHTTPGet` keyword is available with: +Le mot-clé `onHTTPGet` est disponible avec : -- ORDA Data model class functions -- [Singletons class functions](../Concepts/classes.md#singleton-classes) +- les fonctions de classe du modèle de données ORDA +- les [fonctions de classe de singletons](../Concepts/classes.md#singleton-classes) La syntaxe formelle est la suivante : ```4d -// declare an onHTTPGet function +// déclarer une fonction onHTTPGet exposed onHTTPGet Function (params) : result ``` :::info -The `exposed` keyword must also be added in this case, otherwise an error will be generated. +Le mot-clé `exposed` doit également être ajouté dans ce cas, sinon une erreur sera générée. ::: :::caution -As this type of call is an easy offered action, the developer must ensure no sensitive action is done in such functions. +Comme ce type d'appel est une action facile d'accès, le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions. ::: ### params -A function with `onHTTPGet` keyword accepts [parameters](../Concepts/parameters.md). +Une fonction avec le mot-clé `onHTTPGet` accepte des [paramètres](../Concepts/parameters.md). -In the HTTP GET request, parameters must be passed directly in the URL and declared using the `$params` keyword (they must be enclosed in a collection). +Dans la requête HTTP GET, les paramètres doivent être passés directement dans l'URL et déclarés à l'aide du mot-clé `$params` (ils doivent être inclus dans une collection). ``` IP:port/rest//functionName?$params='[]' ``` -See the [Parameters](../REST/classFunctions#parameters) section in the REST server documentation. +Voir la section [Paramètres](../REST/classFunctions#parameters) dans la documentation du serveur REST. ### Résultat -A function with `onHTTPGet` keyword can return any value of a supported type (same as for REST [parameters](../REST/classFunctions#parameters)). +Une fonction avec le mot-clé `onHTTPGet` peut renvoyer n'importe quelle valeur d'un type supporté (comme pour les [paramètres REST](../REST/classFunctions#parameters)). :::info -You can return a value of the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class type to benefit from properties and functions to set the header, the body, and the status of the answer. +Vous pouvez renvoyer une valeur de type [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) pour bénéficier des propriétés et des fonctions permettant de définir l'en-tête, le corps et le statut de la réponse. ::: ### Exemple -You have defined the following function: +Vous avez défini la fonction suivante : ```4d Class extends DataClass @@ -1056,10 +1056,10 @@ exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height return $response ``` -It can be called by the following HTTP GET request: +Elle peut être appelée par la requête HTTP GET suivante : ``` -IP:port/rest/Products/getThumbnail?$params='["Yellow Pack",200,200]' +IP:port/rest/Products/getThumbnail ?$params='["Yellow Pack",200,200]' ``` ## Fonctions locales diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index a200cf127c27d5..1fbd39997f849f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: Dépendances Un composant 4D est un ensemble de code 4D et de formulaires représentant une ou plusieurs fonctionnalité(s) que vous pouvez installer et utiliser dans vos projets. Par exemple, le composant [4D SVG](https://github.com/4d/4D-SVG) ajoute des commandes avancées et un moteur de rendu intégré qui peut être utilisé pour afficher des fichiers SVG. -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D qui se trouvent sur GitHub. +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). Lorsque vous développez dans 4D, les fichiers de composants peuvent être stockés de manière transparente sur votre ordinateur ou sur un dépôt Github. @@ -31,20 +31,20 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou ::: -## Components made by 4D +## Composants développés par 4D -4D includes a set of components developed in-house. They can also be found in the [4D github repository](https://github.com/4d). +4D comprend un ensemble de composants développés en interne. Ces composants sont également présents sur le [dépôt github de 4D](https://github.com/4d). -| Composant | Description | Principales fonctionnalités | -| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| [4D AiIKit](https://github.com/4d/4D-AIKit) | Ensemble de classes permettant de se connecter à des API OpenAI tierces | `OpenAIChat`, `OpenAIImage`... | -| [4D Labels](https://github.com/4d/4D-Labels) | Composant interne requis pour la création de modèles de labels | | -| [4D NetKit](https://developer.4d.com/4D-NetKit) | Ensemble d'outils de services web permettant de se connecter à des API tierces | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | -| [4D Progress](https://github.com/4d/4D-Progress) | Ouverture d'une ou plusieurs barres de progression dans la même fenêtre | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | -| [4D SVG](https://github.com/4d/4D-SVG) | Création et manipulation d'objets graphiques svg courants | `SVGTool_Display_viewer`, multiple `SVG_` methods | -| [4D View Pro](ViewPro/getting-started.md) | Fonctions de tableur dans vos formulaires | Voir la [documentation de 4D View Pro](ViewPro/getting-started.md) | -| [4D Widgets](https://github.com/4d/4D-Widgets) | Gestion des widgets 4D DatePicker, TimePicker et SearchPicker | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | -| [4D Write Pro Interface](https://github.com/4d/4D-WritePro-Interface) | Manage [4D Write Pro palettes](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html) and [table wizard](../WritePro/writeprointerface.md#table-wizard) | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | +| Composant | Description | Principales fonctionnalités | +| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| [4D AiIKit](https://github.com/4d/4D-AIKit) | Ensemble de classes permettant de se connecter à des API OpenAI tierces | `OpenAIChat`, `OpenAIImage`... | +| [4D Labels](https://github.com/4d/4D-Labels) | Composant interne requis pour la création de modèles de labels | | +| [4D NetKit](https://developer.4d.com/4D-NetKit) | Ensemble d'outils de services web permettant de se connecter à des API tierces | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +| [4D Progress](https://github.com/4d/4D-Progress) | Ouverture d'une ou plusieurs barres de progression dans la même fenêtre | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +| [4D SVG](https://github.com/4d/4D-SVG) | Création et manipulation d'objets graphiques svg courants | `SVGTool_Display_viewer`, multiple `SVG_` methods | +| [4D View Pro](ViewPro/getting-started.md) | Fonctions de tableur dans vos formulaires | Voir la [documentation de 4D View Pro](ViewPro/getting-started.md) | +| [4D Widgets](https://github.com/4d/4D-Widgets) | Gestion des widgets 4D DatePicker, TimePicker et SearchPicker | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | +| [4D Write Pro Interface](https://github.com/4d/4D-WritePro-Interface) | Gestion des [palettes de 4D Write Pro](https://doc.4d.com/4Dv20R9/4D/20-R9/Entry-areas.300-7543821.en.html) et de [l'assistant de table](../WritePro/writeprointerface.md#table-wizard) | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | ## Chargement des composants @@ -330,20 +330,20 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache ...où `` peut être "4D", "4D Server" ou "tool4D". -### Automatic dependency resolution +### Résolution automatique des dépendances -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : +Lorsque vous ajoutez ou mettez à jour un composant (qu'il soit [local](#local-components) ou [obtenu depuis GitHub](#components-stored-on-github)), 4D résout et installe automatiquement toutes les dépendances requises par ce composant. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- les **dépendances primaires** : Composants que vous déclarez explicitement dans votre fichier `dependencies.json`. +- les **dépendances secondaires** : Composants requis par des dépendances primaires ou d'autres dépendances secondaires, qui sont automatiquement résolues et installées. -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +Le gestionnaire de dépendances lit le fichier `dependencies.json` de chaque composant et installe récursivement toutes les dépendances nécessaires, en respectant les spécifications de version dans la mesure du possible. Il n'est donc pas nécessaire d'identifier et d'ajouter manuellement les dépendances imbriquées, une par une. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **les résolutions de conflits** : Lorsque plusieurs dépendances nécessitent [différentes versions](#defining-a-github-dependency-version-range) du même composant, le gestionnaire de dépendances tente automatiquement de résoudre les conflits en trouvant une version qui satisfait toutes les plages de versions qui se chevauchent. Si une dépendance primaire entre en conflit avec des dépendances secondaires, la dépendance primaire est prioritaire. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Les fichiers `dependencies.json` sont ignorés dans les composants chargés depuis le dossier [**Components**](architecture.md#components). ::: @@ -377,19 +377,19 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **Toutes** : Toutes les dépendances, y compris les dépendances primaires (déclarées) et secondaires (résolues automatiquement), sous forme de liste. +- **Déclarées** : Les dépendances primaires qui sont explicitement déclarées dans le fichier `dependencies.json`. Cet onglet vous aide à distinguer les dépendances que vous avez directement ajoutées de celles qui ont été [automatiquement résolues](#automatic-dependency-resolution). +- **Actives** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactives** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflits** : Les dépendances qui sont chargées mais qui surchargent au moins une autre dépendance à un [niveau de priorité](#priority) inférieur. Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. -### Secondary dependencies +### Dépendances secondaires -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +Le panneau Dépendances indique les [**dépendances secondaires**](#automatic-dependency-resolution) en affichant comme [origin](#dependency-origin) `Dépendance de composant` : ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Lorsque vous survolez une dépendance secondaire, une infobulle affiche la dépendance parente qui la requiert. Une dépendance secondaire ne peut pas être [supprimée](#removing-a-dependency) directement, vous devez supprimer ou modifier la dépendance primaire qui la requiert. ### Statut des dépendances @@ -416,19 +416,19 @@ Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissa ### Origine de la dépendance -Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine, c'est-à-dire d'où qu'elles viennent. L'origine de la dépendance est fournie par l'étiquette sous son nom : +Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine. L'origine de la dépendance est fournie par l'étiquette sous son nom : ![dependency-origin](../assets/en/Project/dependency-origin.png) Les options suivantes sont disponibles : -| Étiquette d'origine | Description | -| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | -| Declared in project | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | -| Declared in environment | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | -| Component dependency | Secondary component ([required by a another component](#automatic-dependency-resolution)) | +| Étiquette | Description | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| Intégré à 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | +| Déclaré dans le projet | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | +| Déclaré dans l'environnement | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) et surchargé dans le fichier [`environment4d.json`](#environment4djson) | +| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | +| Dépendance de composant | Composant secondaire ([requis par un autre composant](#automatic-dependency-resolution)) | **Cliquez avec le bouton droit de la souris** dans une ligne de dépendance et sélectionnez **Afficher sur le disque** pour révéler l'emplacement d'une dépendance : @@ -496,7 +496,7 @@ Définissez la [plage de versions des dépendances](#tags-and-versions) à utili Cliquez sur le bouton **Ajouter** pour ajouter la dépendance au projet. -The GitHub dependency is declared in the [**dependencies.json**](#dependenciesjson) file and added to the [inactive dependency list](#dependency-status) with the **Available at restart** status. Elle sera chargée une fois que l'application aura redémarré. +La dépendance GitHub est déclarée dans le fichier [**dependencies.json**](#dependenciesjson) et ajoutée à la [liste des dépendances inactives](#dependency-status) avec le statut **Disponible après redémarrage**. Elle sera chargée une fois que l'application aura redémarré. #### Définir une plage de versions pour une dépendance GitHub @@ -614,7 +614,7 @@ Pour supprimer une dépendance de la fenêtre Dépendances, sélectionnez la dé :::note -Only primary dependencies declared in the [**dependencies.json**](#dependenciesjson) file can be removed using the Dependencies panel. Secondary dependencies cannot be removed directly - to remove a secondary dependency, you must remove the primary dependency that requires it. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. +Seules les dépendances primaires déclarées dans le fichier [**dependencies.json**](#dependenciesjson) peuvent être supprimées dans la fenêtre Dépendances. Les dépendances secondaires ne peuvent pas être supprimées directement - pour supprimer une dépendance secondaire, vous devez supprimer la dépendance primaire qui la requiert. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. ::: @@ -624,7 +624,7 @@ Une boîte de dialogue de confirmation s'affiche. Si la dépendance a été déc Si vous confirmez la boîte de dialogue, le [statut](#dependency-status) de la dépendance supprimée est automatiquement modifié en "Déchargé après redémarrage". Elle sera chargée une fois que l'application aura redémarré. -#### Dependency usage warnings +#### Avertissements relatifs à l'utilisation des dépendances -When you attempt to remove a primary dependency that is required by other dependencies in your project, you will be warned that the dependency is still in use. The system will display which other dependencies require it and prompt you to confirm the removal, as removing it may cause those dependent components to stop working properly. +Lorsque vous tentez de supprimer une dépendance primaire qui est requise par d'autres dépendances dans votre projet, vous serez averti que la dépendance est toujours en cours d'utilisation. Le système affichera les autres dépendances qui la requièrent et vous demandera de confirmer la suppression, car celle-ci peut entraîner l'arrêt du fonctionnement de ces composants dépendants. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md index 7407f3c7a4eb04..621644af08ae2f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md @@ -29,66 +29,66 @@ Les options modifiées du classeur sont enregistrées avec le document. Le tableau suivant répertorie les options de classeur disponibles : -| Propriété | Type | Description | -| ------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | -| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | -| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | -| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | -| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | -| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | -| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | -| allowUndo | boolean | L'annulation des modifications est autorisée. | -| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | -| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | -| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | -| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | -| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | -| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | -| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | -| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | -| backgroundImage | string / picture / file | Image de fond de la zone. | -| backgroundImageLayout | number | Comment l'image de fond s'affiche. Available values:
        ConstantValueDescription
        vk image layout center 1 In the center of the area.
        vk image layout none 3 In the upper left corner of the area with its original size.
        vk image layout stretch 0 Fills the area.
        vk image layout zoom 2 Displayed with its original aspect ratio.
        | -| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | -| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | -| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
        | -| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | -| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | -| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | -| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Clears cell values.
        vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
        vk auto fill type fill formatting only 2 Fills cells only with formatting.
        vk auto fill type fill series 1 Fills cells with series.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | -| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | -| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | -| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | -| highlightInvalidData | boolean | Les données non valides sont surlignées. | -| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | -| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | -| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | -| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | -| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | -| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | -| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Available values:
        ConstantValueDescription
        vk reference style A1 0 Use A1 style.
        vk reference style R1C1 1 Use R1C1 style
        | -| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
        | -| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | -| scrollbarAppearance | number | Apparence de la barre de défilement. Available values:
        ConstantValueDescription
        vk scrollbar appearance mobile1 Mobile scrollbar appearance.
        vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
        | -| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | -| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | -| scrollByPixel | boolean | Activer le défilement de précision par pixel. | -| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | -| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | -| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | -| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | -| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | -| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | -| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | -| showScrollTip | number | Comment afficher les info-bulles de défilement. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | -| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | -| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | -| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | -| tabStripPosition | number | Position de la barre d'onglets. Available values:
        ConstantValueDescription
        vk tab strip position bottom 0 Tab strip position is relative to the bottom of the workbook.
        vk tab strip position left 2 Tab strip position is relative to the left of the workbook.
        vk tab strip position right 3 Tab strip position is relative to the right of the workbook.
        vk tab strip position top 1 Tab strip position is relative to the top of the workbook.
        | -| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | -| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | -| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | -| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | +| Propriété | Type | Description | +| ------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | +| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | +| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | +| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | +| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | +| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | +| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | +| allowUndo | boolean | L'annulation des modifications est autorisée. | +| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | +| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | +| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | +| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | +| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | +| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | +| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | +| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | +| backgroundImage | string / picture / file | Image de fond de la zone. | +| backgroundImageLayout | number | Comment l'image de fond s'affiche. Valeurs disponibles :
        ConstanteValeurDescription
        vk image layout center 1 Au centre de la zone.
        vk mise en page d'image aucun 3 Dans le coin supérieur gauche de la zone à sa taille originale.
        vk image layout stretch 0 Remplit la zone.
        vk image layout zoom 2 Affiché avec son rapport d'aspect d'origine.
        | +| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | +| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | +| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Inclut les en-têtes de ligne sélectionnés lors de la copie des données ; surcharge les en-têtes de ligne sélectionnés lors du collage des données.
        | +| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | +| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | +| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | +| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Efface les valeurs des cellules.
        vk auto fill type copycells 0 Remplit les cellules avec tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        vk auto fill type fill formatting only 2 Remplit les cellules uniquement avec la mise en forme.
        vk auto fill type fill series 1 Remplit les cellules avec des séries.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | +| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | +| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | +| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | +| highlightInvalidData | boolean | Les données non valides sont surlignées. | +| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | +| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | +| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | +| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | +| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | +| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | +| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Valeurs disponibles :
        ConstanteValeurDescription
        vk reference style A10 Utilise le style A1.
        vk reference style R1C1 1 Utiliser le style R1C1
        | +| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Dessine deux lignes courtes lorsque la ligne ou la colonne est redimensionnée à zéro.
        | +| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | +| scrollbarAppearance | number | Apparence de la barre de défilement. Valeurs disponibles :
        ConstanteValeurDescription
        vk scrollbar appearance mobile1 Apparence de la barre de défilement mobile
        vk scrollbar appearance skin (default)0 Apparence classique de la barre de défilement, similaire à celle d'Excel.
        | +| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | +| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | +| scrollByPixel | boolean | Activer le défilement de précision par pixel. | +| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | +| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | +| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | +| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | +| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | +| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | +| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | +| showScrollTip | number | Comment afficher les info-bulles de défilement. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | +| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | +| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | +| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | +| tabStripPosition | number | Position de la barre d'onglets. Valeurs disponibles :
        ConstanteValeurDescription
        vk tab strip position bottom 0La position de la barre de tabulation est relative au bas du classeur.
        vk tab strip position left 2 La position de la barre de tabulation est relative à la gauche du classeur.
        vk tab strip position right 3 La position de la barre de tabulation est relative à la droite du classeur.
        vk tab strip position top 1 La position de la barre de tabulation est relative au haut du classeur.
        | +| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | +| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | +| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | +| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/configuring.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/configuring.md index 5cdbaa95105016..6648693d558630 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/configuring.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ViewPro/configuring.md @@ -332,16 +332,16 @@ Les attributs d'orientation sont utilisés pour spécifier la direction de la mi Les attributs de page sont utilisés pour spécifier les paramètres généraux d'impression du document. -| Propriété | Type | Description | -| --------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | -| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | -| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | -| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | -| pageRange | text | La plage de pages pour l'impression | -| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). The higher the quality factor, the better the printing quality, however printing performance may be affected.

        Default value = 2

        | -| useMax | boolean | Only columns and rows with data are printed.

        Default value = true

        | -| zoomFactor | réel | The amount to enlarge or reduce the printed page.

        Default value = 1

        | +| Propriété | Type | Description | +| --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | +| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | +| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | +| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | +| pageRange | text | La plage de pages pour l'impression | +| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). Plus le facteur de qualité est élevé, meilleure est la qualité d'impression, cependant les performances d'impression peuvent être affectées.

        Valeur par défaut = 2

        | +| useMax | boolean | Seules les colonnes et les lignes contenant des données sont imprimées.

        Valeur par défaut = true

        | +| zoomFactor | réel | Le montant pour agrandir ou réduire la page imprimée.

        Valeur par défaut = 1

        | ### Taille du papier diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 6734c9aefbc5f5..99425a010d3b25 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -9,29 +9,29 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources ## Propriétés de configuration -| Nom de propriété | Type | Description | Optionnel | -| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | -| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI provider) | -| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | -| `project` | Text | Votre identifiant de projet OpenAI. | Oui | +| Nom de propriété | Type | Description | Optionnel | +| ---------------- | ---- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------- | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Peut être requis par le fournisseur | +| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Oui (si omis = utiliser le fournisseur OpenAI) | +| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | +| `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires -| Nom de propriété | Type | Description | -| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `timeout` | Real | Time in seconds before timeout occurs. | -| `maxRetries` | Real | Maximum number of retry attempts in case of failure. | -| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | HTTP agent used for making requests. | -| `customHeaders` | Real | Custom headers to be included in the HTTP requests. | +| Nom de propriété | Type | Description | +| ---------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | +| `timeout` | Real | Délai en secondes avant l'expiration du délai. | +| `maxRetries` | Real | Nombre maximum de tentatives en cas d'échec. | +| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | Agent HTTP utilisé pour effectuer des requêtes. | +| `customHeaders` | Real | En-têtes personnalisés à inclure dans les requêtes HTTP. | ### Class constructor Créer une instance de la classe client OpenAI. -| Nom de l'argument | Type | Description | -| ------------------------- | ------------ | ------------------------------------------------------- | -| `apiKey or configuration` | Text, Object | apiKey if Text or configuration Object. | +| Nom de l'argument | Type | Description | +| ------------------------- | ------------ | ----------------------------------------------------------- | +| `apiKey` ou configuration | Text, Object | apiKey si Texte, ou objet de configuration. | #### Clé API @@ -58,15 +58,15 @@ $client.baseURL:="https://server.ai" ## Ressources API -L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Chaque ressource est encapsulée dans une classe d'API dédiée, offrant un moyen structuré et intuitif d'interagir avec les différentes fonctionnalités. -| Nom de propriété | Type | Description | -| ---------------- | ----------------------------------------------- | ---------------------------------------------- | -| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | -| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de Chat. | -| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | -| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | -| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Access to the Embeddings API. | +| Nom de propriété | Type | Description | +| ---------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- | +| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | +| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de discussion (Chat). | +| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | +| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | +| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Accès à l'API Embeddings (vectorisation). | ### Exemple d'utilisation diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatAPI.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatAPI.md index d0c5355b455496..a1488e72ea9acd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatAPI.md @@ -5,14 +5,14 @@ title: OpenAIChatAPI # OpenAIChatAPI -La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de chat de l'OpenAI, en tirant parti des capacités de complétion et de vision. +La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de discussion (*chat*) de l'OpenAI, en tirant parti des capacités de complétion et de vision. ## Propriétés -| Propriété | Type | Description | -| ------------- | ------------------------------------------------------- | ------------------------------------------------------------------------ | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | An instance that handles chat completions requests. | -| `vision` | [OpenAIVision](OpenAIVision.md) | An helper instance that handles vision-related requests. | +| Propriété | Type | Description | +| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Une instance qui gère les requêtes de complétion de la discussion. | +| `vision` | [OpenAIVision](OpenAIVision.md) | Une instance du helper qui traite les requêtes liées à la vision. | ## Function @@ -20,7 +20,7 @@ La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la f **create**(*systemPrompt* : Text) : OpenAIChatHelper -| Paramètres | Type | Description | -| -------------- | --------------------------------------- | ----------------------------------------------------------------- | -| *systemPrompt* | Text | The system prompt to initialize the chat. | -| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | A helper instance for managing chat interactions. | +| Paramètres | Type | Description | +| -------------- | --------------------------------------- | -------------------------------------------------------------------------------------- | +| *systemPrompt* | Text | L'invite du système pour initialiser la discussion. | +| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | Une instance du helper pour gérer les interactions dans la discussion. | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md index c304c356cd8402..d1191c46ad1afa 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md @@ -9,17 +9,17 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, ## Propriétés -| Propriété | Type | Description | -| --------- | ------- | ----------------------------------------------------------------------------------------------------------------------- | -| `rôle` | Text | The role of the message (e.g., "user", "assistant"). | -| `contenu` | Variant | The content of the message, which can be a text or a collection of objects. | -| `user` | Text | An optional property representing the user associated with the message. | +| Propriété | Type | Description | +| --------- | ------- | ----------------------------------------------------------------------------------------- | +| `role` | Text | Le rôle du message (par exemple, "user", "assistant"). | +| `content` | Variant | Le contenu du message, qui peut être un texte ou une collection d'objets. | +| `user` | Text | Une propriété facultative représentant l'utilisateur associé au message. | ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ---- | --------------------------------------------------------- | -| `text` | Text | A property representing the text message. | +| Propriété | Type | Description | +| --------- | ---- | -------------------------------------------------------------- | +| `text` | Text | Une propriété représentant le message textuel. | ## Fonctions @@ -27,19 +27,19 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, **addImageURL**(*imageURL* : Text; *detail* : Text) -| Paramètres | Type | Description | -| ---------- | ---- | ----------------------------------------------------------- | -| *imageURL* | Text | The URL of the image to add to the message. | -| *detail* | Text | Additional details about the image. | +| Paramètres | Type | Description | +| ---------- | ---- | ------------------------------------------------------ | +| *imageURL* | Text | L'URL de l'image à ajouter au message. | +| *detail* | Text | Détails supplémentaires sur l'image. | -Adds an image URL to the content of the message. +Ajoute une URL d'image au contenu du message. ## Exemple d'utilisation ```4d -// Create an instance of OpenAIMessage -var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) +// Créer une instance d'OpenAIMessage +var $message:=cs.AIKit.OpenAIMessage({role : "user" ; content : "Hello !"}) -// Add an image URL with details -$message.addImageURL("http://example.com/image.jpg"; "high") +// Ajouter une image URL avec des détails +$message.addImageURL("http://example.com/image.jpg" ; "high") ``` \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md index 1c7eba3b517b07..cee5dd07a2af68 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md @@ -5,39 +5,39 @@ title: OpenAIParameters # OpenAIParameters -The `OpenAIParameters` class is designed to handle execution and request parameters for interacting with the OpenAI API. +La classe `OpenAIParameters` est conçue pour gérer les paramètres d'exécution et de requête pour interagir avec l'API OpenAI. ## Propriétés ### Propriétés de la programmation asynchrone -| Propriété | Type | Description | -| -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `formula` or `onTerminate` | Function | A function to be called asynchronously when finished. Ensure that the current process does not terminate. | -| `onResponse` | Function | A function to be called asynchronously when the request finishes successfully. Ensure that the current process does not terminate. | -| `onError` | Function | A function to be called asynchronously when the request finishes with errors. Ensure that the current process does not terminate. | -| `throw` | Boolean | If true, throws an error if one occurs. Only if no formula callback defined. | +| Propriété | Type | Description | +| -------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `formula` or `onTerminate` | Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée. Assurez-vous que le process courant ne se termine pas. | +| `onResponse` | Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine avec succès. Assurez-vous que le process courant ne se termine pas. | +| `onError` | Function | Une fonction à appeler de manière asynchrone lorsque la requête rencontre des erreurs. Assurez-vous que le process courant ne se termine pas. | +| `throw` | Boolean | Si true, faire un throw en cas d'erreur. Uniquement si aucune formule de callback n'est définie. | Voir [documentation sur le code asynchrone](../asynchronous-call.md) ### Propriétés du réseau -| Propriété | Type | Description | -| -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `timeout` | Real | Overrides the client-level default timeout for the request, in seconds. Default is 0. | -| `httpAgent` | HTTPAgent | Overrides the client-level default HTTP agent for the request. | -| `maxRetries` | Integer | The maximum number of retries for the request. (Only if code not asynchrone ie. no function provided) | -| `extraHeaders` | Object | Extra headers to send with the request. | +| Propriété | Type | Description | +| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `timeout` | Real | Remplace le délai d'attente par défaut au niveau du client pour la requête, en secondes. Par défaut, 0. | +| `httpAgent` | HTTPAgent | Remplace l'agent HTTP par défaut au niveau du client pour la requête. | +| `maxRetries` | Integer | Nombre maximal de tentatives pour la requêtes. (Seulement si le code n'est pas asynchrone, c'est-à-dire s'il n'y a pas de fonction fournie) | +| `extraHeaders` | Object | En-têtes supplémentaires à envoyer avec la requête. | ### Propriétés OpenAPI -| Propriété | Type | Description | -| --------- | ---- | ----------------------------------------------------------------------------------------------------------- | -| `user` | Text | A unique identifier representing the end-user, which helps OpenAI monitor and detect abuse. | +| Propriété | Type | Description | +| --------- | ---- | ------------------------------------------------------------------------------------------------------------------------------- | +| `user` | Text | Un identifiant unique représentant l'utilisateur final, ce qui aide OpenAI à surveiller et à détecter les abus. | ## Classes héritées -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIParameters`: +Plusieurs classes héritent de `OpenAIParameters` pour étendre ses fonctionnalités à des cas d'utilisation spécifiques. Voici quelques-unes des classes qui étendent `OpenAIParameters` : - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md index 621c8e39e15906..670aff8802bd8c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/asynchronous-call.md @@ -5,23 +5,23 @@ title: Appel asynchrone # Appel asynchrone -If you do not want to wait for the OpenAPI response when making a request to its API, you need to use asynchronous code. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -You must provide a `4D.Formula` to receive the result. See [OpenAIParameters](Classes/OpenAIParameters.md) for a list of them. +Vous devez fournir une `4D.Formula` pour recevoir le résultat. Voir [OpenAIParameters](Classes/OpenAIParameters.md) pour une liste de ces paramètres. -The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. +La méthode asynchrone est basée sur [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), ainsi la réponse sera reçue dans le process courant. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ Si votre process se termine à la fin de la méthode courante (par exemple, si vous utilisez New process ou l'éditeur de méthode), la formule de callback peut ne pas être appelée de manière asynchrone. Dans ce cas, il est nécessaire d'utiliser `CALL WORKER` ou `CALL FORM`. ## Exemples d’utilisation -### liste de modèles +### Liste de modèles ```4d $client.models.list({formula: Formula(MyReceiveMethod($1))}) ``` -`$1` sera une instance de [OpenAIModelListResult] (Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : +`$1` sera une instance de [OpenAIModelListResult](Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : ```4d #DECLARE($result: cs.AIKit.OpenAIModelListResult) @@ -37,7 +37,7 @@ Else End if ``` -### complétions de chat +### Complétions de chat ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index ba0522fda1b175..6f376ddde06727 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,15 +7,15 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +Pour ce faire, il suffit de passer l'adresse du fournisseur dans `baseURL` et d'utiliser sa clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" ``` -Some of them +Quelques-uns : -## Distant +## A distance | Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Default baseURL | Doc | +| Fournisseur | baseURL par défaut | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index 853ce7579b49a0..27f37b8f05b508 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -11,7 +11,7 @@ title: 4D-AIKit ## OpenAI -La classe [`OpenAI`](Classes/OpenAI.md) vous permet de faire des demandes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). +La classe [`OpenAI`](Classes/OpenAI.md) vous permet d'envoyer des requêtes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). ### Configuration @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +Pour l'API d'un [founisseur compatible](compatible-openai.md), vous devez configurer l'URL du serveur en définissant le paramètre `baseURL`. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -33,7 +33,7 @@ ou $client.baseURL:="https://your.server.ai" ``` -### Formuler des demandes +### Formuler des requêtes `OpenAI` fournit différents points de terminaison appelés ressources, chacun offrant diverses fonctions. @@ -41,9 +41,9 @@ $client.baseURL:="https://your.server.ai" var $result:=$client..() ``` -Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) +Le résultat `$result` contient la requête `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -See some examples below. +Voir quelques exemples ci-dessous. #### Chat @@ -60,9 +60,9 @@ var $result:=$client.chat.completions.create($messages; {model: "gpt-4o-mini"}) // résultat dans $result.choice ``` -##### Assistant de chat +##### Helper de discussion (chat) -Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses d'assistants. +Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses de l'assistant. ```4d var $helper:=$client.chat.create("You are a helpful assistant.") @@ -71,9 +71,9 @@ $result:=$helper.prompt("and could you decompose this number") // conversation dans $helper.messages ``` -##### Assistant de vision +##### Helper de vision -Cet assistant permet l'analyse des images à travers le chat. +Cet assistant permet l'analyse des images à travers la discussion. ```4d var $result:=$client.chat.vision.create($imageUrl).prompt("give me a description of the image") @@ -113,13 +113,13 @@ var $moderation:=$client.moderations.create("This text contains inappropriate la #### Code asynchrone -Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de rappel. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de callback. Voir [documentation détaillée pour les exemples](asynchronous-call.md) ## Droits d'auteur -- This library is not affiliated with, endorsed by, or officially connected to OpenAI in any way. -- "OpenAI" and any related marks are trademarks or registered trademarks of OpenAI, LLC. All rights related to OpenAI's services, APIs, and technologies remain the property of OpenAI. -- This project simply provides an interface to OpenAI’s services and does not claim any ownership over their technology, branding, or intellectual property. +- Cette bibliothèque n'est pas affiliée à OpenAI, ni approuvée par elle, ni officiellement liée à elle de quelque manière que ce soit. +- "OpenAI" et toutes les marques associées sont des marques commerciales ou des marques déposées d'OpenAI, LLC. Tous les droits liés aux services, API et technologies de l'OpenAI restent la propriété de OpenAI. +- Ce projet fournit simplement une interface aux services d'OpenAI et ne revendique aucune propriété sur leur technologie, leur marque ou leur propriété intellectuelle. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md index 7ac69f9c6e48bc..52b0aba2e401f1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/classes.md @@ -307,7 +307,7 @@ Class constructor({$parameterName : type; ...}) :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Il n'y a pas de mot-clé de fin pour le code d'une fonction. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Il n'y a pas de mot-clé de fin pour le code d'une fonction. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Extensions/develop-components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Extensions/develop-components.md index b39dede63ecb1e..cbd6f5fc0cb8b4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Extensions/develop-components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Extensions/develop-components.md @@ -251,7 +251,7 @@ SAVE RECORD($tablepointer->) ## Utilisation de tables et de champs -Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. +Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. Une base de données externe est un projet 4D indépendant du projet 4D principal, mais avec lequel vous pouvez travailler à partir du projet 4D principal. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. ### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md index 76df3863376f97..34145b3195459d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md @@ -56,7 +56,7 @@ La barre d’outils comporte les éléments suivants : | Icône | Nom | Description | | ------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Exécuter le formulaire | Permet de tester l’exécution du formulaire. Lorsque vous cliquez sur ce bouton, 4D ouvre une nouvelle fenêtre et affiche le formulaire dans son contexte (liste d’enregistrements pour un formulaire liste et enregistrement courant en page pour un formulaire détaillé). Le formulaire est exécuté dans le process principal. | -| ![](../assets/en/FormEditor/selection.png) | [Flèche de sélection](#selecting-objects) | Permet de sélectionner, déplacer et redimensionner les objets du formulaire.

        **Note** : Lorsqu'un objet de type Texte ou Zone de Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition.

        | +| ![](../assets/en/FormEditor/selection.png) | [Flèche de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordre de saisie](#data-entry-order) | Passe en mode “Ordre de saisie”, dans lequel il est possible de visualiser et de modifier l’ordre de saisie courant du formulaire. A noter que vous pouvez également visualiser l’ordre de saisie courant tout en travaillant dans le formulaire. | | ![](../assets/en/FormEditor/moving.png) | [Déplacement](#moving-objects) | Passe en mode “Déplacement”, dans lequel il est possible d’atteindre rapidement n’importe quelle partie du formulaire en le faisant directement glisser dans la fenêtre. Le curseur prend la forme d’une main. Ce mode de navigation est particulièrement utile en cas de zoom dans le formulaire. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permet de modifier l’échelle d’affichage du formulaire (100% par défaut). Vous pouvez passer en mode “Zoom” en cliquant sur le bouton loupe ou en cliquant directement sur la barre correspondant à l’échelle désirée. Cette fonction est détaillée dans le paragraphe précédent. | @@ -146,11 +146,11 @@ Avant de pouvoir réaliser une opération sur un objet (comme le changement de l Pour sélectionner un objet à l’aide de la barre d’outils : -1. Cliquez sur l’outil Flèche dans la barre d’outils.

        ![](../assets/en/FormEditor/selection.png)

        +1. Cliquez sur l’outil Flèche dans la barre d’outils.
        ![](../assets/en/FormEditor/selection.png) -

        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard

        . +
        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard. -2. Cliquez sur l’objet que vous souhaitez sélectionner. Des poignées de sélection identifient l’objet sélectionné.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Cliquez sur l’objet que vous souhaitez sélectionner. Des poignées de sélection identifient l’objet sélectionné.
        ![](../assets/en/FormEditor/selectResize.png) Pour sélectionner un objet à l’aide de la Liste des propriétés : @@ -235,13 +235,12 @@ Grouper des objets n’a d’effet que dans l’éditeur de formulaires. Lors de Pour grouper les objets : 1. Sélectionnez les objets que vous souhaitez grouper. -2. Sélectionnez **Grouper** dans le menu Objets. OR Click the Group button in the toolbar of the Form editor:

        ![](../assets/en/FormEditor/group.png)

        -4D matérialise les bordures du groupe avec des poignées. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. +2. Sélectionnez **Grouper** dans le menu Objets. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. Pour dégrouper un groupe d’objets : 1. Sélectionnez le groupe que vous souhaitez dégrouper. -2. Choisissez **Dégrouper** dans le menu **Objets**.

        OU

        Sélectionnez la commande **Dégrouper** (menu du bouton **Grouper**) dans la barre d’outils de l’éditeur de formulaires.

        Si la commande **Dégrouper** est désactivée, cela veut dire que l’objet sélectionné est déjà sous sa forme la plus simple.

        4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. ### Aligner des objets @@ -268,9 +267,10 @@ La boîte de dialogue d’alignement vous permet d’appliquer tout type d’ali Pour afficher cette boîte de dialogue, vous devez sélectionner les objets que vous souhaitez aligner puis choisir la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. -- Cliquez sur l’icône d’alignement de votre choix dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”.

        La zone d’exemple illustre le principe de l’opération sélectionnée.

        +- Dans les zones “Alignement droite/gauche” et/ou “Alignement haut/bas”, cliquez sur l’icône correspondant à l'alignement que vous souhaitez effectuer.
        La zone d'exemple affiche les résultats de votre sélection. + +- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. Dans ce cas, la position de l’objet de référence ne variera pas. -- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU BIEN :

        Pour aligner des objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous souhaitez que les autres objets soient alignés dans la liste des objets. Dans ce cas, la position de l’objet de référence ne variera pas.

        Vous pouvez prévisualiser le résultat réel de vos paramétrages en cliquant sur le bouton **Prévisualisation**. Les objets sont ensuite alignés dans l'éditeur de formulaires, mais comme la boîte de dialogue ne disparaît pas, vous pouvez toujours annuler ou appliquer l'alignement. > Cette boîte de dialogue combine l’alignement d’objets et leur répartition. Pour plus d’informations sur la répartition, reportez-vous au paragraphe [Répartir des objets](#distributing-objects). @@ -304,7 +304,7 @@ Pour répartir directement une sélection d’objets (verticalement ou horizonta 1. Sélectionnez les objets (au moins trois) que vous souhaitez répartir. -2. Dans la barre d’outils, cliquez sur l’outil de répartition qui correspond la répartition que vous souhaitez appliquer.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Sélectionnez une commande de distribution dans le sous-menu **Alignement** du menu **Objet** ou dans le menu contextuel de l'éditeur.

        4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et répartition : @@ -312,9 +312,9 @@ Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et r 2. Choisissez la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. La boîte de dialogue suivante apparaît :![](../assets/en/FormEditor/alignmentAssistant.png) -3. Cliquez sur l’icône de répartition standard (horizontale ou verticale) de votre choix: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (icône de répartition horizontale standard)

        La zone d’exemple illustre le principe de l’opération sélectionnée. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Pour effectuer une répartition standard, cliquez sur le bouton **Prévisualisation** ou *Appliquer*.

        Dans ce cas, les objets seront répartis de manière à ce que leurs côtés soient équidistants (répartition standard).

        OU BIEN :

        Pour exécuter une distribution spécifique, sélectionnez l'option **Répartir** (par exemple si vous souhaitez répartir les objets en fonction de la distance de leur côté droit). Cette option agit comme un interrupteur. Lorsque l'option Répartir est cochée, les icônes situées au-dessous d’elle s’appliquent alors à la répartition :

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Lorsque l'option Répartir est cochée, les icônes situées au-dessous d’elle s’appliquent alors à la répartition :
        - Horizontalement, les icônes correspondent aux répartitions suivantes : équidistance des côtés gauches, des centres (hor.) et des côtés droits des objets sélectionnés. - Verticalement, les icônes correspondent aux répartitions suivantes : équidistance des bords supérieurs, des centres (vert.) et des bords inférieurs des objets sélectionnés. @@ -367,11 +367,11 @@ Ce paragraphe décrit la visualisation et la modification de l’ordre de saisie Pour visualiser ou modifier l’ordre de saisie : -1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :
        ![](../assets/en/FormEditor/zOrder.png)
        Le pointeur prend la forme d’un pointeur d’ordre, et 4D dessine une ligne qui permet de visualiser la séquence de l’ordre de saisie courant. Visualiser et modifier l’ordre de saisie sont les seules opérations que vous pouvez réaliser dans ce mode. -2. Pour changer l’ordre de saisie, placez le pointeur sur un objet, cliquez dessus et, tout en maintenant le bouton de la souris enfoncé, déplacez le pointeur vers l’objet qui doit le suivre dans l’ordre de saisie.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D ajuste l’ordre de saisie en conséquence. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Répétez l’étape 2 autant de fois que nécessaire pour obtenir le nouvel ordre de saisie. 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 80d7b88e1bdf8c..2c61f4b77ea0ec 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 @@ -102,10 +102,10 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend
        Historique -| Release | Modifications | -| ------- | -------------------------- | -| 21 | Support of remote sessions | -| 18 R6 | Ajout | +| Release | Modifications | +| ------- | -------------------------------------- | +| 21 | Prise en charge des sessions distantes | +| 18 R6 | Ajout |
        @@ -123,13 +123,13 @@ La disponibilité des propriétés et des fonctions de l'objet `Session` dépend :::note -This function does nothing and always returns **True** with stored procedure sessions and standalone sessions. +Cette fonction ne fait rien et renvoie toujours **True** avec les sessions de procédures stockées et les sessions autonomes. ::: La fonction `.clearPrivileges()` supprime tous les privilèges associés à la session (à l'exception des privilèges promus) et renvoie **True** si l'exécution a réussi. -Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Invité. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. +Hormis si vous êtes en mode ["forceLogin"](../REST/authUsers.md#force-login-mode), la session devient automatiquement une session Guest. En mode "forceLogin", `.clearPrivileges()` ne transforme pas la session en session Invité, elle efface seulement les privilèges de la session. :::note @@ -137,7 +137,7 @@ Cette fonction ne supprime pas les **privilèges promus** du process web, qu'ils ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +En ce qui concerne les sessions de clients distants, la fonction n'a d'impact que sur [le code accédant au serveur web](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). #### Exemple @@ -158,10 +158,10 @@ $isGuest:=Session.isGuest() //$isGuest est True
        Historique -| Release | Modifications | -| ------- | -------------------------- | -| 21 | Support of remote sessions | -| 20 R9 | Ajout | +| Release | Modifications | +| ------- | -------------------------------------- | +| 21 | Prise en charge des sessions distantes | +| 20 R9 | Ajout |
        @@ -436,7 +436,7 @@ Cette fonction renvoie True pour le *privilège* si elle est appelée depuis une ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +En ce qui concerne les sessions de clients distants, la fonction n'a d'impact que sur [le code accédant au serveur web](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/classes.md index c9dd9a9243b577..e1452bbeb57077 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/classes.md @@ -333,7 +333,7 @@ Function getRectArea($width : Integer; $height : Integer) : Integer :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index e04656ac811885..c068f22b8e9e84 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -21,11 +21,11 @@ Il est fortement recommandé d'installer une méthode globale de gestion des err ::: -## Predictable vs unpredictable errors +## Erreurs prévisibles ou imprévisibles -Many 4D class functions, such as [`entity.save()`](../API/EntityClass.md#save) or [`transporter.send()`](../API/SMTPTransporterClass.md#send), return a object containing *status* information. This object is used to store **predictable** errors in the runtime context, e.g. invalid password, locked entity, etc., that do not require to stop program execution. This category of errors, also named **silent errors** errors, can be handled by regular code. When such errors occur in an error handling context, i.e. a [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or an [error-handling method](#installing-an-error-handling-method), they do not interrupt the execution and do not trigger the error handling (e.g. the `Catch` part of the [`Try/Catch`](#trycatchend-try) is not executed). They are not listed in the [`Last errors`](../commands/last-errors.md) collection. The error is only returned in the `status` and `statusText` properties of the returned object. It can be processed according to your business logic. +De nombreuses fonctions de classe de 4D, telles que [`entity.save()`](../API/EntityClass.md#save) ou [`transporter.send()`](../API/SMTPTransporterClass.md#send), renvoient un objet contenant des informations de *status*. Cet objet est utilisé pour gérer les erreurs **prévisibles** dans le contexte d'exécution, par exemple un mot de passe invalide, une entité verrouillée, etc. qui ne nécessitent pas l'arrêt de l'exécution du programme. Cette catégorie d'erreurs, également appelée **erreurs silencieuses**, peut être gérée par le code normal. Lorsque de telles erreurs se produisent dans un contexte d'interception des erreurs, c'est-à-dire un [`Try`](#tryexpression), un [`Try/Catch`](#trycatchend-try) ou une [méthode de gestion des erreurs](#installing-an-error-handling-method), elles n'interrompent pas l'exécution et ne déclenchent pas le traitement de l'erreur (par exemple, la partie `Catch` du [`Try/Catch`](#trycatchend-try) n'est pas exécutée). Elles ne sont pas listées dans la collection [`Last errors`](../commands/last-errors.md). L'erreur est uniquement renvoyée dans les propriétés `status` et `statusText` de l'objet retourné. Elle peut être traitée selon votre logique d'application. -The other category of errors are **unpredictable** errors, also named **serious errors**. They include disk write error, network failure, or in general any unexpected interruption. This category of errors generates exceptions defined by [a *code*, a *message* and a *signature*](#error-codes). They interrupt the execution and trigger the error processing of the [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) or [error-handling method](#installing-an-error-handling-method) features. They are listed in the [`Last errors`](../commands/last-errors.md) collection. Note that serious errors can also return values in the `status` and `statusText` properties, e.g. `dk status serious error` - "Other error". +L'autre catégorie d'erreurs est celle des erreurs **imprévisibles**, également appelées **erreurs graves**. Il peut s'agir d'une erreur d'écriture sur le disque, d'une panne de réseau ou, plus généralement, de toute interruption inattendue. Cette catégorie d'erreurs génère des exceptions définies par [un *code*, un *message* et une *signature*](#error-codes). Elles interrompent l'exécution et déclenchent le traitement de l'erreur par les fonctions [`Try`](#tryexpression), [`Try/Catch`](#trycatchend-try) ou la [méthode de gestion des erreurs](#installing-an-error-handling-method). Elles sont listées dans la collection [`Last errors`](../commands/last-errors.md). Notez que les erreurs graves peuvent également renvoyer des valeurs dans les propriétés `status` et `statusText`, par exemple `dk status serious error` - "Other error". ## Installer une méthode de gestion des erreurs diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md index 18d3fa67a68ebd..af93886e74368b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Extensions/develop-components.md @@ -199,7 +199,7 @@ Un *namespace* garantit qu'aucun conflit n'émerge lorsqu'un projet hôte utilis ::: -Lorsque vous entrez une valeur, vous déclarez que les classes de composants seront disponibles dans la [user class store (**cs**)](../Concepts/classes.md#cs) du projet hôte ainsi que ses composants chargés, à travers les `cs.` espace de noms. Par exemple, si vous entrez "eGeometry" comme namespace, en supposant que vous avez créé une classe `Rectangle` contenant une fonction `getArea()`, une fois votre projet installé comme composant, le développeur du projet hôte peut écrire : +Lorsque vous entrez une valeur, vous déclarez que les classes de composants seront disponibles dans la [class store utilisateurs (**cs**)](../Concepts/classes.md#cs) du projet hôte ainsi que ses composants chargés, à travers les espaces de noms `cs.`. Par exemple, si vous entrez "eGeometry" comme namespace, en supposant que vous avez créé une classe `Rectangle` contenant une fonction `getArea()`, une fois votre projet installé comme composant, le développeur du projet hôte peut écrire : ```4d //dans le projet hôte ou l'une de ses composantes @@ -310,7 +310,7 @@ Dans ce cas, il est nécessaire d’utiliser la comparaison de pointeurs : An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR CALL`](../commands-legacy/on-err-call.md) command only applies to the running application. En cas d'erreur générée par un composant, la méthode d'appel sur erreur `ON ERR CALL` du projet hôte n'est pas appelée, et inversement. -However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents. +Cependant, vous pouvez installer un [gestionnaire d'erreurs de composants dans l'application hôte](../Concepts/error-handling.md#scope-and-components) pour gérer les erreurs non capturées des composants. ## Accès aux tables du projet hôte @@ -340,7 +340,7 @@ SAVE RECORD($tablepointer- ## Utilisation de tables et de champs -Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. +Un composant ne peut pas utiliser les tables et les champs définis dans la structure 4D du projet utilisé comme matrice. En revanche, il peut créer et utiliser des bases externes, et donc utiliser des tables et des champs en fonction de ses besoins. Les bases externes sont créées et gérées via le langage SQL. Une base de données externe est un projet 4D indépendant du projet 4D principal, mais avec lequel vous pouvez travailler à partir du projet 4D principal. Utiliser une base externe signifie désigner temporairement cette base comme base courante, c’est-à-dire comme base cible des requêtes SQL exécutées par 4D. Les bases externes sont créées à l'aide de la commande SQL `CREATE DATABASE`. #### Exemple @@ -457,7 +457,7 @@ Ce fichier n'est pas obligatoire mais il est nécessaire pour construire des com Les clés prises en charge dans les fichiers `Info.plist` des composants sont principalement des [clés bundle d'Apple](https://developer.apple.com/documentation/bundleresources/information-property-list) qui sont ignorées sous Windows. Cependant, elles sont utilisés par le [Gestionnaire de dépendances](../Project/components.md#loading-components) sur toutes les plates-formes. -The following keys can be defined: +Les clés suivantes peuvent être définies : | key | Description | | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index 2497cd8da5994e..b02e53afe34d53 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -56,12 +56,12 @@ La barre d’outils comporte les éléments suivants : | Icône | Nom | Description | | ------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Exécuter le formulaire | Permet de tester l’exécution du formulaire. Lorsque vous cliquez sur ce bouton, 4D ouvre une nouvelle fenêtre et affiche le formulaire dans son contexte (liste d’enregistrements pour un formulaire liste et enregistrement courant en page pour un formulaire détaillé). Le formulaire est exécuté dans le process principal. | -| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Outil de sélection](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note** : Lorsqu'un objet de type Texte ou Zone de Groupe est sélectionné, appuyez sur la touche **Entrée** pour passer en mode édition. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordre de saisie](#data-entry-order) | Passe en mode “Ordre de saisie”, dans lequel il est possible de visualiser et de modifier l’ordre de saisie courant du formulaire. A noter que vous pouvez également visualiser l’ordre de saisie courant tout en travaillant dans le formulaire. | | ![](../assets/en/FormEditor/moving.png) | [Déplacement](#déplacement-objets) | Passe en mode “Déplacement”, dans lequel il est possible d’atteindre rapidement n’importe quelle partie du formulaire en le faisant directement glisser dans la fenêtre. Le curseur prend la forme d’une main. Ce mode de navigation est particulièrement utile en cas de zoom dans le formulaire. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permet de modifier l’échelle d’affichage du formulaire (100% par défaut). Vous pouvez passer en mode “Zoom” en cliquant sur le bouton loupe ou en cliquant directement sur la barre correspondant à l’échelle désirée. Cette fonction est détaillée dans le paragraphe précédent. | -| ![](../assets/en/FormEditor/alignment.png) | [Alignement](#aligning-objects) | Ce bouton est associé à un menu permettant d’aligner les objets dans le formulaire. It is enabled (or not) depending on the objects selected.
        Disabled if one selected object position is locked by a CSS property | -| ![](../assets/en/FormEditor/distribution.png) | [Distribution](#distributing-objects) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. It is enabled (or not) depending on the objects selected.
        Disabled if one selected object position is locked by a CSS property | +| ![](../assets/en/FormEditor/alignment.png) | [Alignement](#aligning-objects) | Ce bouton est associé à un menu permettant d’aligner les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés.
        Désactivé si la position d'un objet sélectionné est verrouillée par une propriété CSS | +| ![](../assets/en/FormEditor/distribution.png) | [Distribution](#distributing-objects) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés.
        Désactivé si la position d'un objet sélectionné est verrouillée par une propriété CSS | | ![](../assets/en/FormEditor/level.png) | [Plan](#gérer-les-plans-des-objets) | Ce bouton est associé à un menu permettant de répartir les objets dans le formulaire. Il est activé (ou non) en fonction des objets sélectionnés. | | ![](../assets/en/FormEditor/group.png) | [Grouper/Dégrouper](#grouping-objects) | Ce bouton est associé à un menu permettant de grouper et dégrouper la sélection d’objets du formulaire. Il est activé (ou non) en fonction des objets sélectionnés. | | ![](../assets/en/FormEditor/displyAndPage.png) | [Affichage et gestion des pages](forms.html#form-pages) | Cette zone permet de passer d’une page du formulaire à une autre et d’ajouter des pages. Pour naviguer parmi les pages du formulaire, cliquez sur les boutons fléchés ou cliquez sur la zone centrale et choisissez la page à afficher dans le menu qui apparaît. Si vous cliquez sur le bouton fléché de droite alors que vous êtes sur la dernière page du formulaire, 4D vous permet d’ajouter une page. | @@ -146,11 +146,11 @@ Avant de pouvoir réaliser une opération sur un objet (comme le changement de l Pour sélectionner un objet à l’aide de la barre d’outils : -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        Lorsque vous le faites glisser au-dessus du formulaire, le pointeur prend la forme du pointeur standard

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Cliquez sur l’objet que vous souhaitez sélectionner. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Cliquez sur l’objet que vous souhaitez sélectionner. Resizing handles identify the selected object.
        ![](../assets/en/FormEditor/selectResize.png) Pour sélectionner un objet à l’aide de la Liste des propriétés : @@ -241,13 +241,13 @@ Pour grouper les objets : 1. Sélectionnez les objets que vous souhaitez grouper. 2. Sélectionnez **Grouper** dans le menu Objets. OU - Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:

        ![](../assets/en/FormEditor/group.png)

        + Cliquez sur le bouton Grouper dans la barre d'outils de l'éditeur de formulaire:
        ![](../assets/en/FormEditor/group.png) 4D indique la limite des objets regroupés nouvellement avec des poignées. Les objets du groupe ne sont plus marqués séparément par des poignées. Désormais, lorsque vous modifiez le groupe d’objets, vous modifiez tous les objets qui le composent. Pour dégrouper un groupe d’objets : 1. Sélectionnez le groupe que vous souhaitez dégrouper. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Si la commande **Dégrouper** est désactivée, cela veut dire que l’objet sélectionné est déjà sous sa forme la plus simple. 4D rematérialise les bordures des objets qui constituaient le groupe avec des poignées. ### Aligner des objets @@ -275,9 +275,9 @@ La boîte de dialogue d’alignement vous permet d’appliquer tout type d’ali Pour afficher cette boîte de dialogue, vous devez sélectionner les objets que vous souhaitez aligner puis choisir la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        La zone d’exemple illustre le principe de l’opération sélectionnée. -- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:

        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas.

        +- Pour effectuer un alignement standard des objets sélectionnés, cliquez sur le bouton **Prévisualisation** ou **Appliquer**. Dans ce cas, 4D utilisera l’objet le plus avancé dans la direction de l’alignement comme “ancre” sur laquelle tous les autres objets vont être alignés. Par exemple, si vous alignez un groupe d’objets à droite, les objets seront alignés sur le côté droit de l’objet situé le plus à droite du groupe. OU:
        Pour aligner les objets sur un objet spécifique, sélectionnez l'option **Aligner sur** et sélectionnez l'objet sur lequel vous voulez que les autres objets soient alignés dans la liste d'objets. Dans ce cas, la position de l’objet de référence ne variera pas. Vous pouvez prévisualiser le résultat réel de vos paramétrages en cliquant sur le bouton **Prévisualisation**. Les objets sont ensuite alignés dans l'éditeur de formulaires, mais comme la boîte de dialogue ne disparaît pas, vous pouvez toujours annuler ou appliquer l'alignement. @@ -314,7 +314,8 @@ Pour répartir directement une sélection d’objets (verticalement ou horizonta 1. Sélectionnez les objets (au moins trois) que vous souhaitez répartir. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribue les objets en conséquence. Les objets sont répartis en fonction de la distance entre leurs centres et la plus grande distance entre deux objets consécutifs est utilisée comme référence. Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et répartition : @@ -322,9 +323,9 @@ Pour répartir des objets à l’aide de la boîte de dialogue d'alignement et r 2. Choisissez la commande **Alignement...** dans le sous-menu **Aligner** du menu **Objets** ou du menu contextuel de l’éditeur. La boîte de dialogue suivante apparaît :![](../assets/en/FormEditor/alignmentAssistant.png) -3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)

        (icône standard de distribution horizontale)

        La zone d'exemple affiche les résultats de votre sélection. +3. Dans les zones Alignement gauche/droite et/ou haut/bas, cliquez sur l'icône de distribution standard : ![](../assets/en/FormEditor/horizontalDistribution.png)
        (icône standard de distribution horizontale)
        La zone d'exemple affiche les résultats de votre sélection. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Cette option agit comme un interrupteur. Si la case à cocher Répartir est sélectionnée, les icônes situées en dessous effectuent une fonction différente:
        - Horizontalement, les icônes correspondent aux répartitions suivantes : équidistance des côtés gauches, des centres (hor.) et des côtés droits des objets sélectionnés. - Verticalement, les icônes correspondent aux répartitions suivantes : équidistance des bords supérieurs, des centres (vert.) et des bords inférieurs des objets sélectionnés. @@ -379,11 +380,11 @@ Ce paragraphe décrit la visualisation et la modification de l’ordre de saisie Pour visualiser ou modifier l’ordre de saisie : -1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Sélectionnez **Ordre de saisie** dans le menu **Formulaire** ou cliquez sur le bouton dans la barre d’outils de la fenêtre :
        ![](../assets/en/FormEditor/zOrder.png)
        Le pointeur prend la forme d’un pointeur d’ordre, et 4D dessine une ligne qui permet de visualiser la séquence de l’ordre de saisie courant. Visualiser et modifier l’ordre de saisie sont les seules opérations que vous pouvez réaliser dans ce mode. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Répétez l’étape 2 autant de fois que nécessaire pour obtenir le nouvel ordre de saisie. 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 e092e3968aa951..b4c8d0fc186071 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 @@ -102,7 +102,7 @@ Sous Windows, 4D prend en charge le rendu de formulaire **Fluent UI**, l'interfa Le rendu Fluent UI offre des contrôles modernes et agréables, la prise en charge des thèmes système dark/light, un rendu plus fluide optimisé pour les écrans haute résolution et une expérience utilisateur cohérente alignée sur les applications Microsoft récentes. -| Light theme | Dark theme | +| Thème clair | Thème sombre | | --------------------------------------- | -------------------------------------------- | | ![](../assets/en/FormEditor/fluent.png) | ![](../assets/en/FormEditor/fluent-dark.png) | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md index ea0e62531b19ed..cef951e302f09c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/pictures.md @@ -57,10 +57,10 @@ Les images haute résolution avec la convention @nx peuvent être utilisées dan Si 4D donne automatiquement la priorité à la résolution la plus élevée, il existe cependant des différences de comportement en fonction de la résolution de l'écran et de l'image *(\*)* et du format de l'image : -| Opération | Comportement | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Déposer ou Coller | If the picture has:
        • **72dpi or 96dpi** - The picture is "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" formatted and the object containing the picture has the same number of pixels.
        • **Other dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted and the object containing the picture is equal to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **No dpi** - The picture is "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" formatted.
        | -| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | If the picture's display format is:
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - The object containing the picture is resized according to (picture's number of pixels \* screen dpi) / (picture's dpi)
        • **Not scaled** - The object containing the picture has the same number of pixels as the picture.
        | +| Opération | Comportement | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Déposer ou Coller | Si l'image a :
        • **72dpi ou 96dpi** - L'image est formatée en "[Center](FormObjects/properties_Picture.md#center--truncated-non-centered)" et l'objet contenant l'image a le même nombre de pixels.
        • **Autre dpi** - L'image est formatée en "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)" et l'objet contenant l'image est égal au (nombre de pixels de l'image \* dpi) / (dpi) de l'image
        • **Pas de dpi** - L'image est formatée en "[Scaled to fit](FormObjects/properties_Picture.md#scaled-to-fit)".
        | +| [Taille automatique](https://doc.4d.com/4Dv20/4D/20.2/Setting-object-display-properties.300-6750143.en.html#148057) (menu contextuel de l'éditeur de formulaires) | Si le format d'affichage de l'image est :
        • **[Scaled](FormObjects/properties_Picture.md#scaled-to-fit)** - L'objet contenant l'image est redimensionné en fonction du (nombre de pixels de l'image \* dpi écran) / (dpi image
        • ) **Not scaled** - L'objet contenant l'image a le même nombre de pixels que l'image.
        | *(\*) Généralement, macOS = 72 dpi, Windows = 96 dpi* diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md index 59ce0d98af04cc..7d0eb15a2dd553 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md @@ -21,9 +21,9 @@ Vous agrandissez ou réduisez la zone de rupture en faisant glisser le taquet ve #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| markerBreak | integer | integer collection | Break marker position or collection of break marker positions in pixels.
        Valeur minimale : 0 | +| Nom | Type de données | Valeurs possibles | +| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| markerBreak | integer | integer collection | Position du taquet de rupture ou collection des positions de taquets de rupture en pixels.
        Valeur minimale : 0 | --- @@ -77,9 +77,9 @@ Zone de rupture Un en-tête de niveau 1 est imprimé juste avant que les enregis #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ------------ | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| markerHeader | integer | integer collection | Header marker position or collection of header marker positions in pixels.
        Valeur minimale : 0 | +| Nom | Type de données | Valeurs possibles | +| ------------ | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| markerHeader | integer | integer collection | Position du taquet d'en-tête ou collection des positions de taquets d'en-tête en pixels.
        Valeur minimale : 0 | ## Zones supplémentaires diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/GettingStarted/Installation.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/GettingStarted/Installation.md index 5f6e601f300fa6..d246dceb901e57 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/GettingStarted/Installation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/GettingStarted/Installation.md @@ -7,7 +7,7 @@ Bienvenue dans 4D ! Cette page regroupe toutes les informations nécessaires sur ## Configuration requise -La page [Téléchargements](https://us.4d.com/product-download) dut site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. +La page [Téléchargements](https://us.4d.com/product-download) du site de 4D fournit des informations sur les pré-requis macOS / Windows nécessaires à la gamme 4D. Des détails techniques supplémentaires sont disponibles sur la [page Ressources](https://us.4d.com/resources/feature-release) du site web de 4D. @@ -32,8 +32,8 @@ Apparaît ensuite l'assistant de bienvenue : - Si vous souhaitez découvrir et explorer 4D, cliquez sur le lien **essai gratuit**. Il vous sera demandé de vous connecter ou de créer un compte 4D. - Si vous possédez déjà un compte 4D, cliquez sur le lien **Se connecter** sur le côté supérieur droit de l'assistant d'installation et saisissez les informations relatives à votre compte. - - Any already activated 4D products are automatically updated (or additional expansion packs loaded) on your machine. - - If no product is activated on the machine but there is a development license associated with the 4D account, a dialog box appears, prompting you to install it directly. + - Tous les produits 4D déjà activés sont automatiquement mis à jour (ou des packs d'extension supplémentaires sont chargés) sur votre machine. + - Si aucun produit n'est activé sur la machine mais qu'une licence de développement est associée au compte 4D, une boîte de dialogue apparaît, vous proposant de l'installer directement. Élargissez la zone **Ouvrir ou créer un projet d'application** et sélectionnez l'action que vous souhaitez exécuter : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 307430b46754dd..304b4e4426c4d5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -564,11 +564,11 @@ Ce mécanisme automatique est basé sur le concept de "verrouillage optimiste" q Le diagramme suivant illustre le verrouillage optimiste : -1. Two processes load the same entity.

        ![](../assets/en/ORDA/optimisticLock1.png) +1. Deux process chargent la même entité.

        ![](../assets/en/ORDA/optimisticLock1.png) -2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Since they match, the entity is saved and its stamp value is incremented.

        ![](../assets/en/ORDA/optimisticLock2.png) +2. Le premier process modifie l'entité et valide le changement. La méthode `entity.save()` est appelée. Le moteur 4D compare automatiquement la valeur du marqueur interne de l'entité modifiée avec celle de l'entité stockée dans les données. Puisqu'elles correspondent, l'entité est enregistrée et la valeur de son marqueur est incrémentée.

        ![](../assets/en/ORDA/optimisticLock2.png) -3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Since the stamp value of the modified entity does not match the one of the entity stored in the data, the save is not performed and an error is returned.

        ![](../assets/en/ORDA/optimisticLock3.png) +3. Le deuxième process modifie également l'entité chargée et valide ses modifications. La méthode `entity.save()` est appelée. Puisque la valeur du marqueur de l'entité modifiée ne correspond pas à celle de l'entité stockée dans les données, la sauvegarde n'est pas effectuée et une erreur est retournée.

        ![](../assets/en/ORDA/optimisticLock3.png) Cela peut également être illustré par le code suivant : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 0a86a7d9146613..ce305436ea120e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -1,6 +1,6 @@ --- id: orda-events -title: Entity Events +title: Évènements d'entité ---
        Historique @@ -12,7 +12,7 @@ title: Entity Events
        -Entity events are functions that are automatically invoked by ORDA each time entities and entity attributes are manipulated (added, deleted, or modified). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. +Les événements d'entité sont des fonctions qui sont automatiquement invoquées par ORDA chaque fois que des entités et des attributs d'entité sont touchés (ajoutés, supprimés ou modifiés). Vous pouvez écrire des événements très simples, puis les rendre plus sophistiqués. Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événement. Les événements sont appelés automatiquement par ORDA en fonction des actions de l'utilisateur ou des opérations effectuées par le code sur les entités et leurs attributs. @@ -24,7 +24,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::info Note de compatibilité -ORDA entity events in the datastore are equivalent to triggers in the 4D database. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. +Les événements d'entité ORDA dans le magasin de données sont équivalents aux triggers dans la base de données 4D. Cependant, les actions déclenchées au niveau de la base de données 4D à l'aide des commandes du langage classique 4D ou des actions standard ne déclenchent pas les événements ORDA. ::: @@ -102,13 +102,13 @@ Lorsqu'une erreur survient dans un événement, les autres événements sont sto ### Propriétés de l'objet error -| Propriété | Type | Description | Fixé par le développeur | -| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | -| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | -| extraDescription | Object | Informations libres à définir | Oui | -| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      956. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Adds the `dk status serious validation error` status
      957. `False`: creates only a [silent (predictable) error](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      958. | Oui (par défaut : False) | -| componentSignature | Text | Toujours "DBEV" | Non | +| Propriété | Type | Description | Fixé par le développeur | +| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| errCode | Integer | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| message | Text | Identique à la commande [`Last errors`](../commands/last-errors.md) | Oui | +| extraDescription | Object | Informations libres à définir | Oui | +| seriousError | Boolean | Utilisé uniquement avec les événements de validation (voir ci-dessous).
      959. `True` : crée une [erreur critique (imprévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) et déclenche une exception. Ajoute le statut `dk status serious validation error`
      960. `False` : crée seulement une [erreur silencieuse (prévisible)](../Concepts/error-handling.md#predictable-vs-unpredictable-errors). Ajoute le statut `dk status validation failed`.
      961. | Oui (par défaut : False) | +| componentSignature | Text | Toujours "DBEV" | Non | - Les [erreurs critiques](../Concepts/error-handling.md#predictable-vs-unpredictable-errors) sont empilées dans la collection de la propriété `errors` de l'objet **Result** renvoyé par les fonctions [`save()`](../API/EntityClass.md#save) ou [`drop()`](../API/EntityClass.md#drop). - Dans le cas d'une erreur déclenchée par un événement **validate**, la propriété `seriousError` permet de choisir le niveau d'erreur à générer : @@ -142,16 +142,16 @@ Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte un - en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.4d.com/qodly)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. - avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. -If this function [throws](../commands/throw) an error, it will not stop the undergoing action. +Si cette fonction [génère](../commands/throw) une erreur, elle n'arrêtera pas l'action en cours. :::note -This event is also triggered: +Cet événement est également déclenché : -- when attributes are assigned by the [`constructor()`](./ordaClasses.md#class-constructor-1) event, -- when attributes are edited through the [Data Explorer](../Admin/dataExplorer.md). +- lorsque les attributs sont assignés par l'événement [`constructor()`](./ordaClasses.md#class-constructor-1), +- lorsque les attributs sont modifiés via l'[Explorateur de données](../Admin/dataExplorer.md). ::: @@ -329,7 +329,7 @@ This event is triggered each time an entity is about to be saved. - if you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - if you defined the function at the attribute level (second syntax), it is called only for this attribute. This function is **not** executed if the attribute has not been touched in the entity. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following functions: @@ -387,7 +387,7 @@ This event is triggered each time an entity is being saved. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). - If you defined the function at the attribute level (second syntax), it is called only for this attribute. The function is **not** executed if the attribute has not been touched in the entity. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following functions: @@ -449,7 +449,7 @@ This event is triggered just after an entity is saved in the data file, when at This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. For example, it can be used to send a confirmation email after data have been saved. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. @@ -494,7 +494,7 @@ This event is triggered each time an entity is about to be dropped. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following features: @@ -561,7 +561,7 @@ This event is triggered each time an entity is being dropped. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. This event is triggered by the following features: @@ -642,7 +642,7 @@ This event is triggered just after an entity is dropped. This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. For example, it can be used to send a cancellation email after data have been dropped. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. -The function receives an [*event* object](#event-parameter) as parameter. +La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/ordaClasses.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/ordaClasses.md index 84479ca7fefcae..d4738c0141b15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/ordaClasses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/ordaClasses.md @@ -306,52 +306,52 @@ Class constructor() :::note -Il n'y a pas de mot-clé de fin pour le code d'une fonction class constructor. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. +Il n'y a pas de mot-clé de fin pour le code d'une fonction de constructeur de classe. Le langage 4D détecte automatiquement la fin du code d'une fonction par le mot clé `Function` suivant ou la fin du fichier de classe. ::: -An ORDA class constructor function is triggered just after a new entity is created in memory, [whatever the way it is created](#commands-that-trigger-the-class-constructor-functions). It is useful to set initial values for entity instantiation, for example a custom ID. +Une fonction de construction de classe ORDA est déclenchée juste après la création d'une nouvelle entité en mémoire, [quelle que soit la manière dont elle est créée](#commands-that-trigger-the-class-constructor-functions). Elle est utile pour définir des valeurs d'initialisation lors de l'instanciation de l'entité, par exemple un identifiant personnalisé. -This function can only be set at the [entity level](#entity-class). There can only be one constructor function in an entity class (otherwise an error is returned). +Cette fonction ne peut être définie qu'au [niveau de l'entité](#entity-class). Il ne peut y avoir qu'une seule fonction constructor dans une classe d'entité (sinon une erreur est renvoyée). -This ORDA class constructor function does not receive or return parameters. However, you can use it to initialize attribute values using [`This`](../commands/this.md). Note that values initialized by the constructor are overriden if corresponding attributes are filled by the code. +La fonction du constructeur de la classe ORDA ne reçoit ni ne renvoie de paramètres. Cependant, vous pouvez l'utiliser pour initialiser les valeurs des attributs en utilisant [`This`](../commands/this.md). Notez que les valeurs initialisées par le constructeur sont remplacées si les attributs correspondants sont remplis par le code. :::note -An ORDA class constructor function is similar to a [user class constructor function](../Concepts/classes.md#class-constructor), with the following differences: +Une fonction de construction de classe ORDA est similaire à une [fonction de construction de classe utilisateur](../Concepts/classes.md#class-constructor), avec les différences suivantes : -- you cannot pass parameters to the constructor, -- you cannot use `shared`, `session`, or `singleton` keywords, -- you cannot call the [`Super`](../Concepts/classes.md#super) keyword within the function, -- the class constructor cannot be called using the `new()` function on an entity (entities can only be created by specific functions, see below). +- vous ne pouvez pas passer de paramètres au constructeur, +- vous ne pouvez pas utiliser les mots-clés `shared`, `session`, ou `singleton`, +- vous ne pouvez pas appeler le mot-clé [`Super`](../Concepts/classes.md#super) à l'intérieur de la fonction, +- le constructeur de la classe ne peut pas être appelé en utilisant la fonction `new()` sur une entité (les entités ne peuvent être créées que par des fonctions spécifiques, voir ci-dessous). ::: -#### Commands that trigger the Class constructor functions +#### Commandes qui déclenchent les fonctions du constructeur de classe -The `Class constructor` function is triggered by the following commands and features: +La fonction `Class constructor` est déclenchée par les commandes et fonctionnalités suivantes : - [`dataClass.new()`](../API/DataClassClass.md#new) - [`dataClass.fromCollection()`](../API/DataClassClass#fromcollection) -- [REST API $method=update](../REST/$method.md#methodupdate) in a POST without the `__KEY` and `__STAMP` parameters -- the [Data Explorer](../Admin/dataExplorer.md#editing-data). +- [API REST $method=update](../REST/$method.md#methodupdate) dans un POST sans les paramètres `__KEY` et `__STAMP`. +- l'[Explorateur de données](../Admin/dataExplorer.md#editing-data). :::note Notes -- The [`entity.clone()`](../API/EntityClass.md#clone) function does not trigger the entity Class constructor. -- Records created at the 4D database level using 4D classic language commands or standard actions do not trigger the entity Class constructor. +- La fonction [`entity.clone()`](../API/EntityClass.md#clone) ne déclenche pas le constructeur de la classe de l'entité. +- Les enregistrements créés au niveau de la base de données 4D à l'aide de commandes du langage classique 4D ou d'actions standard ne déclenchent pas le constructeur de la classe de l'entité. ::: -#### Remote configurations +#### Configurations distantes -When using a remote configurations, you need to pay attention to the following principles: +Lorsque vous utilisez une configuration à distance, il convient de respecter les principes suivants : -- In **client/server** the function can be called on the client or on the server, depending on the location of the calling code. When it is called on the client, it is not triggered again when the client attempts to save the new entity and sends an update request to the server to create in memory on the server. +- En **client/serveur**, la fonction peut être appelée sur le client ou sur le serveur, en fonction de l'emplacement du code d'appel. Lorsqu'elle est appelée sur le client, elle n'est pas déclenchée à nouveau lorsque le client tente d'enregistrer la nouvelle entité et envoie une demande de mise à jour au serveur pour la créer en mémoire sur le serveur. :::warning -Since functions such as [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) can create a large number of entities and thus trigger the entity Class constructor consequently, you need to make sure the constructor code does not execute excessive time-consuming processings, for performance reasons. In remote configurations (see below), the code should not trigger multiple requests to the server. +Des fonctions telles que [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) pouvant créer un grand nombre d'entités et donc déclencher le constructeur de la classe d'entités en conséquence, vous devez vous assurer que le code du constructeur n'exécute pas de traitements qui prennent du temps, pour des raisons de performance. Dans les configurations distantes (voir ci-dessous), le code ne doit pas déclencher de requêtes multiples au serveur. ::: @@ -367,7 +367,7 @@ Class constructor() ``` -#### Example 2 (diagram): Client/server +#### Exemple 2 (diagramme) : Client/serveur ```mermaid @@ -386,7 +386,7 @@ Server-->>-Client: Success ``` -#### Example 3 (diagram): Qodly - Standard action +#### Exemple 3 (diagramme): Qodly - Action standard ```mermaid @@ -404,7 +404,7 @@ sequenceDiagram ``` -#### Example 4 (diagram): Qodly - Standard action and update value on the newly created entity +#### Exemple 4 (diagramme): Qodly - Action standard et mise à jour de valeur sur la nouvelle entité créée ```mermaid @@ -426,7 +426,7 @@ Note over Qodly page: product.creationDate is "06/17/25"
        and product.commen ``` -#### Example 5 (diagram): Qodly - Entity instanciated in a function +#### Exemple 5 (diagramme) : Qodly - Entité instanciée dans une fonction ```mermaid @@ -896,23 +896,23 @@ Exposed Alias studentName student.name //scalar value Vous pouvez alors exécuter les recherches suivantes : ```4d -// Find course named "Archaeology" +// Trouver le cours nommé "Archaeology" ds.Course.query("courseName = :1";"Archaeology") -// Find courses given by the professor Smith +// Trouver les cours du professeur Smith ds.Course.query("teacherName = :1";"Smith") -// Find courses where Student "Martin" assists +// Trouver les cours auxquels assiste l'étudiant "Martin" ds.Course.query("studentName = :1";"Martin") -// Find students who have M. Smith as teacher +// Trouver les étudiants qui ont le professeur Smith ds.Student.query("teachers.name = :1";"Smith") -// Find teachers who have M. Martin as Student +// Trouver les professeurs qui ont M. Martin comme étudiant ds.Teacher.query("students.name = :1";"Martin") -// Note that this very simple query string processes a complex -// query including a double join, as you can see in the queryPlan: -// "Join on Table : Course : Teacher.ID = Course.teacherID, +// Notez que cette chaîne très simple traite une requête complexe +// incluant une double jointure, comme vous pouvez le voir dans le queryPlan : +// "Join on Table : Course : Teacher.ID = Course.teacherID, // subquery:[ Join on Table : Student : Course.studentID = Student.ID, // subquery:[ Student.name === Martin]]" ``` @@ -986,59 +986,59 @@ $status:=$remoteDS.Schools.registerNewStudent($student) // OK $id:=$remoteDS.Schools.computeIDNumber() // Erreur "Unknown member method" ``` -## onHTTPGet keyword +## onHTTPGet -Use the `onHTTPGet` keyword to declare functions that can be called through HTTP requests using the `GET` verb. Such functions can return any web contents, for example using the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class. +Utilisez le mot-clé `onHTTPGet` pour déclarer des fonctions qui peuvent être appelées par des requêtes HTTP utilisant le verbe `GET`. Ces fonctions peuvent renvoyer n'importe quel contenu web, par exemple en utilisant la classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md). -The `onHTTPGet` keyword is available with: +Le mot-clé `onHTTPGet` est disponible avec : -- ORDA Data model class functions -- [Singletons class functions](../Concepts/classes.md#singleton-classes) +- les fonctions de classe du modèle de données ORDA +- les [fonctions de classe de singletons](../Concepts/classes.md#singleton-classes) La syntaxe formelle est la suivante : ```4d -// declare an onHTTPGet function +// déclarer une fonction onHTTPGet exposed onHTTPGet Function (params) : result ``` :::info -The `exposed` keyword must also be added in this case, otherwise an error will be generated. +Le mot-clé `exposed` doit également être ajouté dans ce cas, sinon une erreur sera générée. ::: :::caution -As this type of call is an easy offered action, the developer must ensure no sensitive action is done in such functions. +Comme ce type d'appel est une action facile d'accès, le développeur doit s'assurer qu'aucune action sensible n'est effectuée dans ces fonctions. ::: ### params -A function with `onHTTPGet` keyword accepts [parameters](../Concepts/parameters.md). +Une fonction avec le mot-clé `onHTTPGet` accepte des [paramètres](../Concepts/parameters.md). -In the HTTP GET request, parameters must be passed directly in the URL and declared using the `$params` keyword (they must be enclosed in a collection). +Dans la requête HTTP GET, les paramètres doivent être passés directement dans l'URL et déclarés à l'aide du mot-clé `$params` (ils doivent être inclus dans une collection). ``` IP:port/rest//functionName?$params='[]' ``` -See the [Parameters](../REST/classFunctions#parameters) section in the REST server documentation. +Voir la section [Paramètres](../REST/classFunctions#parameters) dans la documentation du serveur REST. ### Résultat -A function with `onHTTPGet` keyword can return any value of a supported type (same as for REST [parameters](../REST/classFunctions#parameters)). +Une fonction avec le mot-clé `onHTTPGet` peut renvoyer n'importe quelle valeur d'un type supporté (comme pour les [paramètres REST](../REST/classFunctions#parameters)). :::info -You can return a value of the [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) class type to benefit from properties and functions to set the header, the body, and the status of the answer. +Vous pouvez renvoyer une valeur de type [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) pour bénéficier des propriétés et des fonctions permettant de définir l'en-tête, le corps et le statut de la réponse. ::: ### Exemple -You have defined the following function: +Vous avez défini la fonction suivante : ```4d Class extends DataClass @@ -1056,10 +1056,10 @@ exposed onHTTPGet Function getThumbnail($name : Text; $width : Integer; $height return $response ``` -It can be called by the following HTTP GET request: +Elle peut être appelée par la requête HTTP GET suivante : ``` -IP:port/rest/Products/getThumbnail?$params='["Yellow Pack",200,200]' +IP:port/rest/Products/getThumbnail ?$params='["Yellow Pack",200,200]' ``` ## Fonctions locales diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index 463fc86bd23e53..d0bac014d46a03 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -3,11 +3,11 @@ id: components title: Dépendances --- -[L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). +[L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Les composants sont constitués de code 4D, tandis que les plug-ins peuvent être [construits à l'aide de n'importe quel langage](../Extensions/develop-plug-ins.md). -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D qui se trouvent sur GitHub. +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). -Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. +Une fois installées dans votre environnement 4D, les extensions sont traitées comme des **dépendances** avec des propriétés spécifiques. ## Composants interprétés et compilés @@ -33,7 +33,7 @@ L'architecture de dossier "Contents" est recommandée pour les composants si vou ::: -## Component Locations +## Emplacements des composants :::note @@ -317,20 +317,20 @@ Les composants GitHub référencés sont téléchargés dans un dossier de cache ...où `` peut être "4D", "4D Server" ou "tool4D". -### Automatic dependency resolution +### Résolution automatique des dépendances -When you add or update a component (whether [local](#local-components) or [from GitHub](#components-stored-on-github)), 4D automatically resolves and installs all dependencies required by that component. Cela inclut : +Lorsque vous ajoutez ou mettez à jour un composant (qu'il soit [local](#local-components) ou [obtenu depuis GitHub](#components-stored-on-github)), 4D résout et installe automatiquement toutes les dépendances requises par ce composant. Cela inclut : -- **Primary dependencies**: Components you explicitly declare in your `dependencies.json` file -- **Secondary dependencies**: Components required by primary dependencies or other secondary dependencies, which are automatically resolved and installed +- les **dépendances primaires** : Composants que vous déclarez explicitement dans votre fichier `dependencies.json`. +- les **dépendances secondaires** : Composants requis par des dépendances primaires ou d'autres dépendances secondaires, qui sont automatiquement résolues et installées. -The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. +Le gestionnaire de dépendances lit le fichier `dependencies.json` de chaque composant et installe récursivement toutes les dépendances nécessaires, en respectant les spécifications de version dans la mesure du possible. Il n'est donc pas nécessaire d'identifier et d'ajouter manuellement les dépendances imbriquées, une par une. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **les résolutions de conflits** : Lorsque plusieurs dépendances nécessitent [différentes versions](#defining-a-github-dependency-version-range) du même composant, le gestionnaire de dépendances tente automatiquement de résoudre les conflits en trouvant une version qui satisfait toutes les plages de versions qui se chevauchent. Si une dépendance primaire entre en conflit avec des dépendances secondaires, la dépendance primaire est prioritaire. :::note -`dependencies.json` files are ignored in components loaded from the [**Components** folder](architecture.md#components). +Les fichiers `dependencies.json` sont ignorés dans les composants chargés depuis le dossier [**Components**](architecture.md#components). ::: @@ -364,19 +364,19 @@ Par défaut, toutes les dépendances identifiées par le Gestionnaire de dépend ![dependency-tabs](../assets/en/Project/dependency-tabs.png) -- **All**: All dependencies including both primary (declared) and secondary (automatically resolved) dependencies in a flat list view. -- **Declared**: Primary dependencies that are explicitly declared in the `dependencies.json` file. This tab helps you distinguish between dependencies you've directly added and those that were [automatically resolved](#automatic-dependency-resolution). -- **Actifs** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. -- **Inactifs** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... -- **Conflicts**: Dependencies that are loaded but that overloads at least one other dependency at a lower [priority level](#priority). Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. +- **Toutes** : Toutes les dépendances, y compris les dépendances primaires (déclarées) et secondaires (résolues automatiquement), sous forme de liste. +- **Déclarées** : Les dépendances primaires qui sont explicitement déclarées dans le fichier `dependencies.json`. Cet onglet vous aide à distinguer les dépendances que vous avez directement ajoutées de celles qui ont été [automatiquement résolues](#automatic-dependency-resolution). +- **Actives** : Dépendances chargées et utilisables dans le projet. Il comprend des dépendances *overloading*, qui sont effectivement chargées. Les dépendances *overloaded* sont listées dans l'onglet **Conflits**, ainsi que toutes les dépendances conflictuelles. +- **Inactives** : Dépendances qui ne sont pas chargées dans le projet et qui ne sont pas disponibles. Diverses raisons peuvent expliquer ce statut : fichiers manquants, incompatibilité de version... +- **Conflits** : Les dépendances qui sont chargées mais qui surchargent au moins une autre dépendance à un [niveau de priorité](#priority) inférieur. Les dépendances surchargées sont également affichées afin que vous puissiez vérifier l'origine du conflit et prendre les mesures appropriées. -### Secondary dependencies +### Dépendances secondaires -The Dependencies panel displays [**secondary dependencies**](#automatic-dependency-resolution) with the `Component dependency` [origin](#dependency-origin): +Le panneau Dépendances indique les [**dépendances secondaires**](#automatic-dependency-resolution) en affichant comme [origin](#dependency-origin) `Dépendance de composant` : ![recursive-dependency](../assets/en/Project/recursive.png) -When you hover over a secondary dependency, a tooltip displays the parent dependency that requires it. A secondary dependency cannot be [removed](#removing-a-dependency) directly, you must remove or edit the primary dependency that requires it. +Lorsque vous survolez une dépendance secondaire, une infobulle affiche la dépendance parente qui la requiert. Une dépendance secondaire ne peut pas être [supprimée](#removing-a-dependency) directement, vous devez supprimer ou modifier la dépendance primaire qui la requiert. ### Statut des dépendances @@ -403,19 +403,19 @@ Une infobulle s'affiche lorsque vous survolez la ligne de dépendance, fournissa ### Origine de la dépendance -Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine, c'est-à-dire d'où qu'elles viennent. L'origine de la dépendance est fournie par l'étiquette sous son nom : +Le panneau Dépendances liste toutes les dépendances du projet, quelle que soit leur origine. L'origine de la dépendance est fournie par l'étiquette sous son nom : ![dependency-origin](../assets/en/Project/dependency-origin.png) Les options suivantes sont disponibles : -| Étiquette d'origine | Description | -| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Built in 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | -| Declared in project | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | -| Declared in environment | Component declared in the [`dependencies.json`](#dependenciesjson) file and overriden in the [`environment4d.json`](#environment4djson) file | -| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | -| Component dependency | Secondary component ([required by a another component](#automatic-dependency-resolution)) | +| Étiquette | Description | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| Intégré à 4D | Composant 4D intégré, stocké dans le dossier `Components` de l'application 4D | +| Déclaré dans le projet | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) | +| Déclaré dans l'environnement | Composant déclaré dans le fichier [`dependencies.json`](#dependenciesjson) et surchargé dans le fichier [`environment4d.json`](#environment4djson) | +| Dossier Components | Composant situé dans le dossier [`Components`](architecture.md#components) | +| Dépendance de composant | Composant secondaire ([requis par un autre composant](#automatic-dependency-resolution)) | **Cliquez avec le bouton droit de la souris** dans une ligne de dépendance et sélectionnez **Afficher sur le disque** pour révéler l'emplacement d'une dépendance : @@ -469,11 +469,11 @@ Pour ajouter une [dépendance GitHub](#components-stored-on-github), cliquez sur :::note -By default, [components developed by 4D](../Extensions/overview.md#components-developed-by-4d) are listed in the combo box, so that you can easily select and install these features in your environment: +Par défaut, les [composants développés par 4D](../Extensions/overview.md#components-developed-by-4d) sont répertoriés dans la liste, ce qui vous permet de sélectionner et d'installer facilement ces fonctionnalités dans votre environnement : ![dependency-default-git](../assets/en/Project/dependency-default.png) -Components already installed are not listed. +Les composants déjà installés ne sont pas dans la liste. ::: @@ -493,7 +493,7 @@ Définissez la [plage de versions des dépendances](#tags-and-versions) à utili Cliquez sur le bouton **Ajouter** pour ajouter la dépendance au projet. -The GitHub dependency is declared in the [**dependencies.json**](#dependenciesjson) file and added to the [inactive dependency list](#dependency-status) with the **Available at restart** status. Elle sera chargée une fois que l'application aura redémarré. +La dépendance GitHub est déclarée dans le fichier [**dependencies.json**](#dependenciesjson) et ajoutée à la [liste des dépendances inactives](#dependency-status) avec le statut **Disponible après redémarrage**. Elle sera chargée une fois que l'application aura redémarré. #### Définir une plage de versions pour une dépendance GitHub @@ -505,7 +505,7 @@ Vous pouvez définir l'option [règle de dépendance](#tags-and-versions) pour u - **Jusqu'à la version majeure suivante** : Définit une [plage sémantique de versions](#tags-and-versions) pour limiter les mises à jour à la version majeure suivante. - **Jusqu'à la prochaine version mineure** : De même, limite les mises à jour à la version mineure suivante. - **Version exacte (balise)** : Sélectionnez ou saisissez manuellement un [tag spécifique](#tags-and-versions) dans la liste disponible. -- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. This option is recommended for the [components developed by 4D](../Extensions/overview.md#components-developed-by-4d). +- **Suivre la version 4D** : Téléchargez la dernière version du composant compatible avec la version 4D courante. Vous ne pouvez utiliser cette règle de dépendance que si les tags de release des composants respectent la [convention de nommage](#naming-conventions-for-4d-version-tags) appropriée. Cette option est recommandée pour les [composants développés par 4D](../Extensions/overview.md#components-developed-by-4d). La version courante de la dépendance GitHub est affichée sur le côté droit de l'élément de la dépendance : @@ -513,7 +513,7 @@ La version courante de la dépendance GitHub est affichée sur le côté droit d #### Modifier la plage de versions des dépendances GitHub -You can modify the [version setting](#defining-a-github-dependency-version-range) for a listed GitHub dependency: select the dependency to modify and select **Edit the dependency...** from the contextual menu. In the "Edit the dependency" dialog box, edit the Dependency Rule menu and click **Apply**. +Vous pouvez modifier le [paramètre de version](#defining-a-github-dependency-version-range) pour une dépendance GitHub listée : sélectionnez la dépendance à modifier et sélectionnez **Editer la dépendance...** dans le menu contextuel. Dans la boîte de dialogue "Editer la dépendance", modifiez le menu Règle de dépendance et cliquez sur **Appliquer**. La modification de la plage de versions est utile par exemple si vous utilisez la fonction de mise à jour automatique et que vous souhaitez verrouiller une dépendance à un numéro de version spécifique. @@ -611,7 +611,7 @@ Pour supprimer une dépendance de la fenêtre Dépendances, sélectionnez la dé :::note -Only primary dependencies declared in the [**dependencies.json**](#dependenciesjson) file can be removed using the Dependencies panel. Secondary dependencies cannot be removed directly - to remove a secondary dependency, you must remove the primary dependency that requires it. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. +Seules les dépendances primaires déclarées dans le fichier [**dependencies.json**](#dependenciesjson) peuvent être supprimées dans la fenêtre Dépendances. Les dépendances secondaires ne peuvent pas être supprimées directement - pour supprimer une dépendance secondaire, vous devez supprimer la dépendance primaire qui la requiert. Si une dépendance sélectionnée ne peut pas être supprimée, le bouton **-** est désactivé et l'élément de menu **Supprimer la dépendance** est masqué. ::: @@ -621,7 +621,7 @@ Une boîte de dialogue de confirmation s'affiche. Si la dépendance a été déc Si vous confirmez la boîte de dialogue, le [statut](#dependency-status) de la dépendance supprimée est automatiquement modifié en "Déchargé après redémarrage". Elle sera chargée une fois que l'application aura redémarré. -#### Dependency usage warnings +#### Avertissements relatifs à l'utilisation des dépendances -When you attempt to remove a primary dependency that is required by other dependencies in your project, you will be warned that the dependency is still in use. The system will display which other dependencies require it and prompt you to confirm the removal, as removing it may cause those dependent components to stop working properly. +Lorsque vous tentez de supprimer une dépendance primaire qui est requise par d'autres dépendances dans votre projet, vous serez averti que la dépendance est toujours en cours d'utilisation. Le système affichera les autres dépendances qui la requièrent et vous demandera de confirmer la suppression, car celle-ci peut entraîner l'arrêt du fonctionnement de ces composants dépendants. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index 7407f3c7a4eb04..621644af08ae2f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -29,66 +29,66 @@ Les options modifiées du classeur sont enregistrées avec le document. Le tableau suivant répertorie les options de classeur disponibles : -| Propriété | Type | Description | -| ------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | -| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | -| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | -| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | -| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | -| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | -| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | -| allowUndo | boolean | L'annulation des modifications est autorisée. | -| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | -| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | -| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | -| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | -| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | -| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | -| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | -| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | -| backgroundImage | string / picture / file | Image de fond de la zone. | -| backgroundImageLayout | number | Comment l'image de fond s'affiche. Available values:
        ConstantValueDescription
        vk image layout center 1 In the center of the area.
        vk image layout none 3 In the upper left corner of the area with its original size.
        vk image layout stretch 0 Fills the area.
        vk image layout zoom 2 Displayed with its original aspect ratio.
        | -| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | -| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | -| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
        | -| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | -| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | -| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | -| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Clears cell values.
        vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
        vk auto fill type fill formatting only 2 Fills cells only with formatting.
        vk auto fill type fill series 1 Fills cells with series.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | -| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | -| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | -| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | -| highlightInvalidData | boolean | Les données non valides sont surlignées. | -| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | -| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | -| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | -| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | -| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | -| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | -| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Available values:
        ConstantValueDescription
        vk reference style A1 0 Use A1 style.
        vk reference style R1C1 1 Use R1C1 style
        | -| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
        | -| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | -| scrollbarAppearance | number | Apparence de la barre de défilement. Available values:
        ConstantValueDescription
        vk scrollbar appearance mobile1 Mobile scrollbar appearance.
        vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
        | -| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | -| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | -| scrollByPixel | boolean | Activer le défilement de précision par pixel. | -| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | -| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | -| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | -| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | -| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | -| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | -| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | -| showScrollTip | number | Comment afficher les info-bulles de défilement. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | -| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | -| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | -| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | -| tabStripPosition | number | Position de la barre d'onglets. Available values:
        ConstantValueDescription
        vk tab strip position bottom 0 Tab strip position is relative to the bottom of the workbook.
        vk tab strip position left 2 Tab strip position is relative to the left of the workbook.
        vk tab strip position right 3 Tab strip position is relative to the right of the workbook.
        vk tab strip position top 1 Tab strip position is relative to the top of the workbook.
        | -| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | -| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | -| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | -| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | +| Propriété | Type | Description | +| ------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | L'opération de fusion par glisser est autorisée (sélection des cellules et glisser de la sélection pour fusionner les cellules) | +| allowAutoCreateHyperlink | boolean | Permet la création automatique d'hyperliens dans la feuille de calcul. | +| allowContextMenu | boolean | Le menu contextuel intégré peut être ouvert. | +| allowCopyPasteExcelStyle | boolean | Les styles d'une feuille de calcul peuvent être copiés et collés dans Excel, et vice-versa. | +| allowDynamicArray | boolean | Active les tableaux dynamiques dans les feuilles de travail | +| allowExtendPasteRange | boolean | Étend la plage collée si la plage collée n'est pas suffisante pour les données collées | +| allowSheetReorder | boolean | La réorganisation de la feuille est autorisée | +| allowUndo | boolean | L'annulation des modifications est autorisée. | +| allowUserDeselect | boolean | La désélection de cellules spécifiques d'une sélection est autorisée. | +| allowUserDragDrop | boolean | Glisser-déposer des données de plage est autorisé | +| allowUserDragFill | boolean | Le remplissage par glisser est autorisé | +| allowUserEditFormula | boolean | Des formules peuvent être saisies dans les cellules | +| allowUserResize | boolean | Les colonnes et les lignes peuvent être redimensionnées | +| allowUserZoom | boolean | Le zoom (ctrl + molette de la souris) est autorisé | +| autoFitType | number | Le contenu est formaté pour tenir dans les cellules, les cellules et les en-têtes. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fit type cell 0 Le contenu ajuste automatiquement les cellules
        vk auto fit type cell with header 1 Le contenu ajuste automatiquement les cellules et les en-têtes
        | +| backColor | string | Chaîne de couleur utilisée pour représenter la couleur de fond de la zone, comme "rouge", "#FFFF00", "rgb(255,0,0)", "Accent 5". La couleur de fond initiale est masquée lorsqu'une image de fond est définie. | +| backgroundImage | string / picture / file | Image de fond de la zone. | +| backgroundImageLayout | number | Comment l'image de fond s'affiche. Valeurs disponibles :
        ConstanteValeurDescription
        vk image layout center 1 Au centre de la zone.
        vk mise en page d'image aucun 3 Dans le coin supérieur gauche de la zone à sa taille originale.
        vk image layout stretch 0 Remplit la zone.
        vk image layout zoom 2 Affiché avec son rapport d'aspect d'origine.
        | +| calcOnDemand | boolean | Les formules ne sont calculées que lorsqu'elles sont demandées. | +| columnResizeMode | number | Mode redimensionnement pour les colonnes. Valeurs disponibles :
        ConstanteValeurDescription
        vk resize mode normal 0 Utilise le mode de redimensionnement normal (c'est-à-dire que les colonnes restantes sont affectées)
        vk resize mode split 1 Utiliser le mode fractionné (les colonnes restantes ne sont pas affectées)
        | +| copyPasteHeaderOptions | number | En-têtes à inclure lorsque les données sont copiées ou collées. Available values:
        ConstantValueDescription
        vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
        vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
        vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
        vk copy paste header options row headers1 Inclut les en-têtes de ligne sélectionnés lors de la copie des données ; surcharge les en-têtes de ligne sélectionnés lors du collage des données.
        | +| customList | collection | Liste pour que les utilisateurs personnalisent le remplissage par glisser-déposer, en priorisant la correspondance de cette liste dans chaque remplissage. Chaque élément de collection est une collection de strings. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | +| cutCopyIndicatorBorderColor | string | Couleur de bordure de l'indicateur affiché lorsque l'utilisateur coupe ou copie la sélection. | +| cutCopyIndicatorVisible | boolean | Afficher un indicateur lors du copier ou du coller de l'élément sélectionné. | +| defaultDragFillType | number | Le type de remplissage par défaut du glisser-déposer. Valeurs disponibles :
        ConstanteValeurDescription
        vk auto fill type auto 5 Remplit automatiquement les cellules.
        vk auto fill type clear values 4 Efface les valeurs des cellules.
        vk auto fill type copycells 0 Remplit les cellules avec tous les objets de données, y compris les valeurs, la mise en forme et les formules.
        vk auto fill type fill formatting only 2 Remplit les cellules uniquement avec la mise en forme.
        vk auto fill type fill series 1 Remplit les cellules avec des séries.
        vk auto fill type fill without formatting 3 Remplit les cellules avec des valeurs sans les formater.
        | +| enableAccessibility | boolean | La prise en charge de l'accessibilité est activée dans la feuille de calcul. | +| enableFormulaTextbox | boolean | La zone de texte de la formule est activée. | +| grayAreaBackColor | string | Une chaîne de couleur utilisée pour représenter la couleur de fond de la zone grise, comme "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | +| highlightInvalidData | boolean | Les données non valides sont surlignées. | +| iterativeCalculation | boolean | Active le calcul itératif. Voir sur [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative). | +| iterativeCalculationMaximumChange | numérique | Montant maximum de changement entre deux valeurs de calcul. | +| iterativeCalculationMaximumIterations | numérique | Nombre de fois maximum que la formule doit recalculer. | +| newTabVisible | boolean | Afficher un onglet spécial pour permettre aux utilisateurs d'insérer de nouvelles feuilles. | +| numbersFitMode | number | Modifie le mode d'affichage lorsque la largeur des données date/nombre est plus longue que la largeur des colonnes. Valeurs disponibles : vk
        ConstanteValeurDescription
        vk numbers fit mode mask0 Remplace le contenu des données par "###" et affiche l'astuce
        numbers fit mode overflow 1 Affiche le contenu des données sous forme de chaîne de caractères. Si la cellule suivante est vide, le contenu est débordé.
        | +| pasteSkipInvisibleRange | boolean | Coller ou ne pas coller les données dans les plages invisibles :
        • False (par défaut) : coller les données
        • True : Ne pas coller les données dans les plages invisibles
        Voir [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) pour plus d'informations sur les plages invisibles. | +| referenceStyle | number | Style pour les références de cellules et de plages dans les formules de cellules. Valeurs disponibles :
        ConstanteValeurDescription
        vk reference style A10 Utilise le style A1.
        vk reference style R1C1 1 Utiliser le style R1C1
        | +| resizeZeroIndicator | number | Règle de dessin lorsque la ligne ou la colonne est redimensionnée à zéro. Available values:
        ConstantValueDescription
        vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
        vk resize zero indicator enhanced 1 Dessine deux lignes courtes lorsque la ligne ou la colonne est redimensionnée à zéro.
        | +| rowResizeMode | number | La façon dont les lignes sont redimensionnées. Les valeurs disponibles sont les mêmes que columnResizeMode | +| scrollbarAppearance | number | Apparence de la barre de défilement. Valeurs disponibles :
        ConstanteValeurDescription
        vk scrollbar appearance mobile1 Apparence de la barre de défilement mobile
        vk scrollbar appearance skin (default)0 Apparence classique de la barre de défilement, similaire à celle d'Excel.
        | +| scrollbarMaxAlign | boolean | La barre de défilement s'aligne sur la dernière ligne et la dernière colonne de la feuille courante. | +| scrollbarShowMax | boolean | Les barres de défilement affichées sont basées sur le nombre total de colonnes et de lignes dans la feuille. | +| scrollByPixel | boolean | Activer le défilement de précision par pixel. | +| scrollIgnoreHidden | boolean | La barre de défilement ignore les lignes ou colonnes cachées. | +| scrollPixel | integer | Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Définit le défilement par ce nombre de pixels lorsque scrollByPixel est true. Par exemple : le delta de défilement est de 3, scrollPixel est de 5, le défilement final de pixels est de 15. | +| showDragDropTip | boolean | Afficher l'info bulle de glisser-déposer. | +| showDragFillSmartTag | boolean | Afficher la boîte de dialogue de remplissage par glisser-déplacer. | +| showDragFillTip | boolean | Afficher l'info bulle de glisser-remplir. | +| showHorizontalScrollbar | boolean | Afficher la barre de défilement horizontale. | +| showResizeTip | number | Comment afficher l'info-bulle de redimensionnement. Available values:
        ConstantValueDescription
        vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
        vk show resize tip column 1 Only the horizontal resize tip is displayed.
        vk show resize tip none 0 No resize tip is displayed.
        vk show resize tip row 2 Only the vertical resize tip is displayed.
        | +| showScrollTip | number | Comment afficher les info-bulles de défilement. Available values:
        ConstantValueDescription
        vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
        vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
        vk show scroll tip none No scroll tip is displayed.
        vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
        | +| showVerticalScrollbar | boolean | Afficher la barre de défilement verticale. | +| tabEditable | boolean | La barre d'onglets de la feuille peut être modifiée. | +| tabNavigationVisible | boolean | Afficher l'onglet de navigation de la feuille. | +| tabStripPosition | number | Position de la barre d'onglets. Valeurs disponibles :
        ConstanteValeurDescription
        vk tab strip position bottom 0La position de la barre de tabulation est relative au bas du classeur.
        vk tab strip position left 2 La position de la barre de tabulation est relative à la gauche du classeur.
        vk tab strip position right 3 La position de la barre de tabulation est relative à la droite du classeur.
        vk tab strip position top 1 La position de la barre de tabulation est relative au haut du classeur.
        | +| tabStripRatio | number | Valeur de pourcentage (0.x) qui spécifie combien d'espace horizontal sera alloué à la barre d'onglets. Le reste de la zone horizontale (1 - 0.x) sera alloué à la barre de défilement horizontale. | +| tabStripVisible | boolean | Afficher la barre d'onglets de la feuille. | +| tabStripWidth | number | Largeur de la barre d'onglets lorsque la position est à gauche ou à droite. Par défaut et minimum 80. | +| useTouchLayout | boolean | Utiliser ou non le format tactile pour présenter le composant Spread. | ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md index 5cdbaa95105016..6648693d558630 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ViewPro/configuring.md @@ -332,16 +332,16 @@ Les attributs d'orientation sont utilisés pour spécifier la direction de la mi Les attributs de page sont utilisés pour spécifier les paramètres généraux d'impression du document. -| Propriété | Type | Description | -| --------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | -| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | -| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | -| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | -| pageRange | text | La plage de pages pour l'impression | -| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). The higher the quality factor, the better the printing quality, however printing performance may be affected.

        Default value = 2

        | -| useMax | boolean | Only columns and rows with data are printed.

        Default value = true

        | -| zoomFactor | réel | The amount to enlarge or reduce the printed page.

        Default value = 1

        | +| Propriété | Type | Description | +| --------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| blackAndWhite | boolean | Impression en noir et blanc seulement.

        Valeur par défaut = false

        **Note**: Les PDF ne sont pas affectés par cet attribut. Les couleurs en PDF restent.

        | +| centering | entier long | Comment le contenu est centré sur la page imprimée. Valeurs disponibles : `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (par défaut), `vk print centering vertical` | +| firstPageNumber | entier long | Le numéro de page à imprimer sur la première page. Valeur par défaut = 1 | +| pageOrder | entier long | L'ordre d'impression des pages. Valeurs disponibles : `vk print page order auto` (par défaut), `vk print page order down then over`, `vk print page order over then down`. | +| pageRange | text | La plage de pages pour l'impression | +| qualityFactor | entier long | Le facteur de qualité pour l'impression (1 - 8). Plus le facteur de qualité est élevé, meilleure est la qualité d'impression, cependant les performances d'impression peuvent être affectées.

        Valeur par défaut = 2

        | +| useMax | boolean | Seules les colonnes et les lignes contenant des données sont imprimées.

        Valeur par défaut = true

        | +| zoomFactor | réel | Le montant pour agrandir ou réduire la page imprimée.

        Valeur par défaut = 1

        | ### Taille du papier diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 6734c9aefbc5f5..99425a010d3b25 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -9,29 +9,29 @@ La classe OpenAI fournit un client permettant d'accéder à diverses ressources ## Propriétés de configuration -| Nom de propriété | Type | Description | Optionnel | -| ---------------- | ---- | ------------------------------------------------------------------------------ | --------------------------------------------------------- | -| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Can be required by the provider | -| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Yes (if omitted = use OpenAI provider) | -| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | -| `project` | Text | Votre identifiant de projet OpenAI. | Oui | +| Nom de propriété | Type | Description | Optionnel | +| ---------------- | ---- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------- | +| `apiKey` | Text | Votre [clé API OpenAI ](https://platform.openai.com/api-keys). | Peut être requis par le fournisseur | +| `baseURL` | Text | URL de base pour les requêtes de l'API OpenAI. | Oui (si omis = utiliser le fournisseur OpenAI) | +| `organisation` | Text | Votre identifiant d'organisation OpenAI. | Oui | +| `project` | Text | Votre identifiant de projet OpenAI. | Oui | ### Propriétés HTTP supplémentaires -| Nom de propriété | Type | Description | -| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `timeout` | Real | Time in seconds before timeout occurs. | -| `maxRetries` | Real | Maximum number of retry attempts in case of failure. | -| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | HTTP agent used for making requests. | -| `customHeaders` | Real | Custom headers to be included in the HTTP requests. | +| Nom de propriété | Type | Description | +| ---------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | +| `timeout` | Real | Délai en secondes avant l'expiration du délai. | +| `maxRetries` | Real | Nombre maximum de tentatives en cas d'échec. | +| `httpAgent` | [4D.HTTPAgent](https://developer.4d.com/docs/API/HTTPAgentClass) | Agent HTTP utilisé pour effectuer des requêtes. | +| `customHeaders` | Real | En-têtes personnalisés à inclure dans les requêtes HTTP. | ### Class constructor Créer une instance de la classe client OpenAI. -| Nom de l'argument | Type | Description | -| ------------------------- | ------------ | ------------------------------------------------------- | -| `apiKey or configuration` | Text, Object | apiKey if Text or configuration Object. | +| Nom de l'argument | Type | Description | +| ------------------------- | ------------ | ----------------------------------------------------------- | +| `apiKey` ou configuration | Text, Object | apiKey si Texte, ou objet de configuration. | #### Clé API @@ -58,15 +58,15 @@ $client.baseURL:="https://server.ai" ## Ressources API -L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +L'API donne accès à de multiples ressources qui permettent une interaction transparente avec les services de l'OpenAI. Chaque ressource est encapsulée dans une classe d'API dédiée, offrant un moyen structuré et intuitif d'interagir avec les différentes fonctionnalités. -| Nom de propriété | Type | Description | -| ---------------- | ----------------------------------------------- | ---------------------------------------------- | -| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | -| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de Chat. | -| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | -| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | -| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Access to the Embeddings API. | +| Nom de propriété | Type | Description | +| ---------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- | +| `models` | [OpenAIModelsAPI](OpenAIModelsAPI.md) | Accès à l'API des modèles. | +| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | Accès à l'API de discussion (Chat). | +| `images` | [OpenAIImagesAPI](OpenAIImagesAPI.md) | Accès à l'API Images. | +| `moderations` | [OpenAIModerationsAPI](OpenAIModerationsAPI.md) | Accès à l'API des modérations. | +| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Accès à l'API Embeddings (vectorisation). | ### Exemple d'utilisation diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md index 936135592b6429..85b9cc589d5ccc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md @@ -5,14 +5,14 @@ title: OpenAIChatAPI # OpenAIChatAPI -La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de chat de l'OpenAI, en tirant parti des capacités de complétion et de vision. +La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la fonctionnalité de discussion (*chat*) de l'OpenAI, en tirant parti des capacités de complétion et de vision. ## Propriétés -| Propriété | Type | Description | -| ------------- | ------------------------------------------------------- | ----------------------------------------------------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | An instance that handles chat completions requests. | -| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | +| Propriété | Type | Description | +| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Une instance qui gère les requêtes de complétion de la discussion. | +| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | ## Function @@ -20,10 +20,10 @@ La classe `OpenAIChatAPI` fournit une interface permettant d'interagir avec la f **create**(*systemPrompt* : Text) : OpenAIChatHelper -| Paramètres | Type | Description | -| -------------- | --------------------------------------- | ----------------------------------------------------------------- | -| *systemPrompt* | Text | The system prompt to initialize the chat. | -| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | A helper instance for managing chat interactions. | +| Paramètres | Type | Description | +| -------------- | --------------------------------------- | -------------------------------------------------------------------------------------- | +| *systemPrompt* | Text | L'invite du système pour initialiser la discussion. | +| Résultat | [OpenAIChatHelper](OpenAIChatHelper.md) | Une instance du helper pour gérer les interactions dans la discussion. | #### Exemple d'utilisation diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index d3a3e3cf405c79..c662fa21029b46 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -30,9 +30,9 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters ### Asynchronous Callback Properties -| Propriété | Type | Description | -| ------------------------------------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| ------------------------------------------ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Assurez-vous que le process courant ne se termine pas. | `onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index 918611abe323f1..25400a67a22838 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -12,16 +12,16 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, | Propriété | Type | Description | | -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `rôle` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenu` | Variant | The content of the message, which can be a text or a collection of objects. | -| `user` | Text | An optional property representing the user associated with the message. | +| `contenu` | Variant | Le contenu du message, qui peut être un texte ou une collection d'objets. | +| `user` | Text | Une propriété facultative représentant l'utilisateur associé au message. | | `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | | `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ---- | --------------------------------------------------------- | -| `text` | Text | A property representing the text message. | +| Propriété | Type | Description | +| --------- | ---- | -------------------------------------------------------------- | +| `text` | Text | Une propriété représentant le message textuel. | ## Fonctions @@ -29,23 +29,23 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, **addImageURL**(*imageURL* : Text; *detail* : Text) -| Paramètres | Type | Description | -| ---------- | ---- | ----------------------------------------------------------- | -| *imageURL* | Text | The URL of the image to add to the message. | -| *detail* | Text | Additional details about the image. | +| Paramètres | Type | Description | +| ---------- | ---- | ------------------------------------------------------ | +| *imageURL* | Text | L'URL de l'image à ajouter au message. | +| *detail* | Text | Détails supplémentaires sur l'image. | -Adds an image URL to the content of the message. +Ajoute une URL d'image au contenu du message. ## Exemple d'utilisation ### Create a simple message and attach an image ```4d -// Create an instance of OpenAIMessage -var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) +// Créer une instance d'OpenAIMessage +var $message:=cs.AIKit.OpenAIMessage({role : "user" ; content : "Hello !"}) -// Add an image URL with details -$message.addImageURL("http://example.com/image.jpg"; "high") +// Ajouter une image URL avec des détails +$message.addImageURL("http://example.com/image.jpg" ; "high") ``` ### Respond to a tool call message diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md index ab0f9184839a4f..3e875d09183335 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md @@ -5,7 +5,7 @@ title: OpenAIParameters # OpenAIParameters -The `OpenAIParameters` class is designed to handle execution and request parameters for interacting with the OpenAI API. +La classe `OpenAIParameters` est conçue pour gérer les paramètres d'exécution et de requête pour interagir avec l'API OpenAI. ## Propriétés @@ -13,16 +13,16 @@ The `OpenAIParameters` class is designed to handle execution and request paramet Use this callback property to receive the result regardless of success or error: -| Propriété | Type | Description | -| -------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| `onTerminate`
        (or `formula`) | 4D.Function | A function to be called asynchronously when finished. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| -------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onTerminate`
        (or `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée. Assurez-vous que le process courant ne se termine pas. | Use these callback properties for more granular control over success and error handling: -| Propriété | Type | Description | -| ------------ | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Ensure that the current process does not terminate. | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Ensure that the current process does not terminate. | +| Propriété | Type | Description | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Assurez-vous que le process courant ne se termine pas. | +| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Assurez-vous que le process courant ne se termine pas. | > The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. @@ -30,28 +30,28 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md ### Network Properties -| Propriété | Type | Description | -| -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `timeout` | Real | Overrides the client-level default timeout for the request, in seconds. Default is 0. | -| `httpAgent` | HTTPAgent | Overrides the client-level default HTTP agent for the request. | -| `maxRetries` | Integer | The maximum number of retries for the request. (Only if code not asynchrone ie. no function provided) | -| `extraHeaders` | Object | Extra headers to send with the request. | +| Propriété | Type | Description | +| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `timeout` | Real | Remplace le délai d'attente par défaut au niveau du client pour la requête, en secondes. Par défaut, 0. | +| `httpAgent` | HTTPAgent | Remplace l'agent HTTP par défaut au niveau du client pour la requête. | +| `maxRetries` | Integer | Nombre maximal de tentatives pour la requêtes. (Seulement si le code n'est pas asynchrone, c'est-à-dire s'il n'y a pas de fonction fournie) | +| `extraHeaders` | Object | En-têtes supplémentaires à envoyer avec la requête. | ### OpenAPI Properties -| Propriété | Type | Description | -| --------- | ---- | ----------------------------------------------------------------------------------------------------------- | -| `user` | Text | A unique identifier representing the end-user, which helps OpenAI monitor and detect abuse. | +| Propriété | Type | Description | +| --------- | ---- | ------------------------------------------------------------------------------------------------------------------------------- | +| `user` | Text | Un identifiant unique représentant l'utilisateur final, ce qui aide OpenAI à surveiller et à détecter les abus. | ### Others -| Propriété | Type | Description | -| --------- | ------- | ------------------------------------------------------------------------------------------------------------ | -| `throw` | Boolean | If true, throws an error if one occurs. Only if no formula callback defined. | +| Propriété | Type | Description | +| --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `throw` | Boolean | Si true, faire un throw en cas d'erreur. Uniquement si aucune formule de callback n'est définie. | ## Classes héritées -Several classes inherit from `OpenAIParameters` to extend its functionality for specific use cases. Below are some of the classes that extend `OpenAIParameters`: +Plusieurs classes héritent de `OpenAIParameters` pour étendre ses fonctionnalités à des cas d'utilisation spécifiques. Voici quelques-unes des classes qui étendent `OpenAIParameters` : - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md index c0c0c453eb7436..aa37bc3c85f2bb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md @@ -5,27 +5,27 @@ title: Appel asynchrone # Appel asynchrone -If you do not want to wait for the OpenAPI response when making a request to its API, you need to use asynchronous code. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) in the [OpenAIParameters](Classes/OpenAIParameters.md) object parameter to receive the result. +Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. -The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. Voir les exemples ci-dessous. +La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](Classes/OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. Voir les exemples ci-dessous. -## Process Considerations +## A propos des process -The asynchronous method is based on [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), so the response will be received within the current process. +La méthode asynchrone est basée sur [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass), ainsi la réponse sera reçue dans le process courant. -> ⚠️ If your process ends at the conclusion of the current method (e.g., using New process, or playing in the method editor), the callback formula might not be called asynchronously. In such cases, consider using `CALL WORKER` or `CALL FORM`. +> ⚠️ Si votre process se termine à la fin de la méthode courante (par exemple, si vous utilisez New process ou l'éditeur de méthode), la formule de callback peut ne pas être appelée de manière asynchrone. Dans ce cas, il est nécessaire d'utiliser `CALL WORKER` ou `CALL FORM`. ## Exemples d’utilisation -### liste de modèles +### Liste de modèles ```4d $client.models.list({formula: Formula(MyReceiveMethod($1))}) ``` -`$1` sera une instance de [OpenAIModelListResult] (Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : +`$1` sera une instance de [OpenAIModelListResult](Classes/OpenAIModelListResult.md), donc la méthode `MyReceiveMethod` pourrait être : ```4d #DECLARE($result: cs.AIKit.OpenAIModelListResult) @@ -41,7 +41,7 @@ Else End if ``` -### complétions de chat +### Complétions de chat ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index ba0522fda1b175..6f376ddde06727 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,15 +7,15 @@ title: Fournisseurs (Providers) De nombreux fournisseurs d'IA proposent une API de type OpenAI, vous pouvez donc utiliser ce projet pour vous y connecter. -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +Pour ce faire, il suffit de passer l'adresse du fournisseur dans `baseURL` et d'utiliser sa clé d'api si nécessaire. ```4d $client.baseURL:="https://api.mistral.ai/v1" ``` -Some of them +Quelques-uns : -## Distant +## A distance | Fournisseur | baseURL | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -31,7 +31,7 @@ Some of them ## Local -| Fournisseur | Default baseURL | Doc | +| Fournisseur | baseURL par défaut | Doc | | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md index 853ce7579b49a0..27f37b8f05b508 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -11,7 +11,7 @@ title: 4D-AIKit ## OpenAI -La classe [`OpenAI`](Classes/OpenAI.md) vous permet de faire des demandes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). +La classe [`OpenAI`](Classes/OpenAI.md) vous permet d'envoyer des requêtes à l'[API OpenAI](https://platform.openai.com/docs/api-reference/). ### Configuration @@ -21,7 +21,7 @@ Tout d'abord, initialisez le client OpenAI en utilisant votre clé API var $client:=cs.AIKit.OpenAI.new("your api key") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +Pour l'API d'un [founisseur compatible](compatible-openai.md), vous devez configurer l'URL du serveur en définissant le paramètre `baseURL`. ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "your api key"; baseURL: "https://your.server.ai"}) @@ -33,7 +33,7 @@ ou $client.baseURL:="https://your.server.ai" ``` -### Formuler des demandes +### Formuler des requêtes `OpenAI` fournit différents points de terminaison appelés ressources, chacun offrant diverses fonctions. @@ -41,9 +41,9 @@ $client.baseURL:="https://your.server.ai" var $result:=$client..() ``` -Le `$result` contient le `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) +Le résultat `$result` contient la requête `HTTPRequest`, un statut `success`, une collection de `errors` et plus encore. Voir [OpenAIResult](Classes/OpenAIResult.md) -See some examples below. +Voir quelques exemples ci-dessous. #### Chat @@ -60,9 +60,9 @@ var $result:=$client.chat.completions.create($messages; {model: "gpt-4o-mini"}) // résultat dans $result.choice ``` -##### Assistant de chat +##### Helper de discussion (chat) -Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses d'assistants. +Cet assistant vous permet de maintenir une liste de messages d'utilisateurs et de réponses de l'assistant. ```4d var $helper:=$client.chat.create("You are a helpful assistant.") @@ -71,9 +71,9 @@ $result:=$helper.prompt("and could you decompose this number") // conversation dans $helper.messages ``` -##### Assistant de vision +##### Helper de vision -Cet assistant permet l'analyse des images à travers le chat. +Cet assistant permet l'analyse des images à travers la discussion. ```4d var $result:=$client.chat.vision.create($imageUrl).prompt("give me a description of the image") @@ -113,13 +113,13 @@ var $moderation:=$client.moderations.create("This text contains inappropriate la #### Code asynchrone -Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de rappel. +Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. L'objet résultat sera reçu dans une fonction de callback. Voir [documentation détaillée pour les exemples](asynchronous-call.md) ## Droits d'auteur -- This library is not affiliated with, endorsed by, or officially connected to OpenAI in any way. -- "OpenAI" and any related marks are trademarks or registered trademarks of OpenAI, LLC. All rights related to OpenAI's services, APIs, and technologies remain the property of OpenAI. -- This project simply provides an interface to OpenAI’s services and does not claim any ownership over their technology, branding, or intellectual property. +- Cette bibliothèque n'est pas affiliée à OpenAI, ni approuvée par elle, ni officiellement liée à elle de quelque manière que ce soit. +- "OpenAI" et toutes les marques associées sont des marques commerciales ou des marques déposées d'OpenAI, LLC. Tous les droits liés aux services, API et technologies de l'OpenAI restent la propriété de OpenAI. +- Ce projet fournit simplement une interface aux services d'OpenAI et ne revendique aucune propriété sur leur technologie, leur marque ou leur propriété intellectuelle. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 81cf2b2f04aa40..7e34500526e8f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -1588,7 +1588,7 @@ var $employees:=ds.Employee.query("embedding > :1"; {vector: $vector; metric: mk // 明示的にコサイン計量を指定し、カスタムのしきい値を用いた検索 var $employees:=ds.Employee.query("embedding > :1"; {vector: $vector; metric: mk cosine; threshold: 0.9}) // フォーミュラを使用した検索 -var $employees:=ds.Employee.query(Formula(This.embdedding.cosineSimilarity($vector)>0.9)) +var $employees:=ds.Employee.query(Formula(This.embedding.cosineSimilarity($vector)>0.9)) ``` 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 dbdb9acd8d6eef..5aab05058e25ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,7 +89,7 @@ This function does nothing and always returns **True** with stored procedure ses ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### 例題 @@ -388,7 +388,7 @@ $privileges := Session.getPrivileges() ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index f8099807706dd3..9e5626f17ab4c2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -56,7 +56,7 @@ title: フォームエディター | アイコン | 名称 | 説明 | | ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択・移動・リサイズをおこないます。

        **注**: テキストやグループボックスタイプのオブジェクトが選択されている場合、**Enter**キーで編集モードになります。

        | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択・移動・リサイズをおこないます。
        **注**: テキストやグループボックスタイプのオブジェクトが選択されている場合、**Enter**キーで編集モードになります。 | | ![](../assets/en/FormEditor/zOrder.png) | [入力順](#データの入力順) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | | ![](../assets/en/FormEditor/moving.png) | [移動](#オブジェクトの移動) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | | ![](../assets/en/FormEditor/zoom.png) | [拡大](#拡大) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | @@ -146,11 +146,11 @@ title: フォームエディター ツールバーを使用してオブジェクトを選択するには: -1. ツールバーの矢印ツールをクリックします。

        ![](../assets/en/FormEditor/selection.png)

        +1. ツールバーの矢印ツールをクリックします。
        ![](../assets/en/FormEditor/selection.png) -

        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります

        。 +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。

        ![](../assets/en/FormEditor/selectResize.png)

        +2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。
        ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: @@ -158,7 +158,7 @@ title: フォームエディター オブジェクトの選択を解除するには、オブジェクト境界の外側をクリックするか、またはオブジェクト上で **Shift+クリック** します。 > "デザインモードを検索" の結果ウィンドウでオブジェクトをダブルクリックして選択することもできます。 -> "デザインモードを検索" の結果ウィンドウでオブジェクトをダブルクリックして選択することもできます。 +> It is also possible to select objects by double-clicking them in the result window of "Find in design" operation. ### 複数オブジェクトの選択 @@ -242,13 +242,13 @@ title: フォームエディター 1. グループ化したいオブジェクトを選択します。 2. オブジェクトメニューから **グループ化** を選択します。 または - フォームエディターのツールバーでグループ化ボタンをクリックします。

        ![](../assets/en/FormEditor/group.png)

        + フォームエディターのツールバーでグループ化ボタンをクリックします。
        ![](../assets/en/FormEditor/group.png) 4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 オブジェクトのグループ化を解除するには: 1. グループ化を解除したいグループオブジェクトを選択します。 -2. **オブジェクト** メニューから **グループ化解除** を選択します。
        または
        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。

        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。

        4D は個々のオブジェクトの境界をハンドルで表わします。 +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D は個々のオブジェクトの境界をハンドルで表わします。 ### オブジェクトの整列 @@ -276,9 +276,9 @@ title: フォームエディター このダイアログボックスを表示するには、揃えたいオブジェクトを選択し、**オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 -- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。

        見本エリアには、選択結果が表示されます。

        +- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
        見本エリアには、選択結果が表示されます。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:

        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。

        +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:
        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。 **プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 @@ -315,7 +315,8 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 -2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。

        ![](../assets/en/FormEditor/distributionTool.png)

        または

        **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから均等揃えメニューコマンドを選択します。

        4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: @@ -323,9 +324,9 @@ title: フォームエディター 2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 次のダイアログボックスが表示されます: [](../assets/en/FormEditor/alignmentAssistant.png) -3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (標準の横均等揃えアイコン)

        見本エリアには、選択結果が表示されます。 +3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (標準の横均等揃えアイコン)
        見本エリアには、選択結果が表示されます。 -4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。

        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。

        または:

        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:

        +4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。
        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。
        または:
        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
        - 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、 右辺で均等に揃えます。 - 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、 下辺で均等に揃えます。 @@ -380,11 +381,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 入力順モードに切り替え、入力順を変更するには: -1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
        ![](../assets/en/FormEditor/zOrder.png)
        ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 -2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。

        ![](../assets/en/FormEditor/entryOrder3.png)

        これに応じて、4D はデータ入力順を調整します。 +2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。
        ![](../assets/en/FormEditor/entryOrder3.png)
        これに応じて、4D はデータ入力順を調整します。 3. 入力順を設定したいだけ、ステップ2 を繰り返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index 5979f2a6997c4c..ec4b08fc2b4273 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -326,7 +326,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 依存関係マネージャは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-github-dependency-version-range) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 54c039039cd54c..6c40ad19f207fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -9,12 +9,12 @@ title: OpenAI ## 設定プロパティ -| プロパティ名 | 型 | 説明 | 任意 | -| --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | -| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI Platform) | -| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | -| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | +| プロパティ名 | 型 | 説明 | 任意 | +| --------- | ---- | ---------------------------------------------------------- | ------------------------------------------------ | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | プロバイダーによっては必須 | +| `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | 任意 (省略時 = OpenAI プラットフォームを使用) | +| `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | +| `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | ### 追加のHTTPプロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index 8c840ac2ac5c0a..71ac6fa0763f7e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ title: OpenAIMessage ## プロパティ -| プロパティ | 型 | 説明 | -| -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `role` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `内容` | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | -| `user` | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| プロパティ | 型 | 説明 | +| -------------- | ---------- | ----------------------------------------------------------------------------------- | +| `role` | Text | メッセージの役割(例: "user"、"assistant"、"system"、"tool")。 | +| `内容` | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | +| `user` | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | +| `tool_calls` | Collection | アシスタントからリクエストされたツール呼び出しのコレクション。 各ツール呼び出しには `id`、`type`、`function` オブジェクトが含まれます。 | +| `tool_call_id` | Text | このメッセージが返答しているツール呼び出しのID (`role` が "tool"の場合に使用されます)。 | ## 計算プロパティ @@ -38,7 +38,7 @@ title: OpenAIMessage ## 使用例 -### Create a simple message and attach an image +### シンプルなメッセージを作成し画像を添付する ```4d // OpenAIMessage のインスタンスを作成 @@ -48,11 +48,11 @@ var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) $message.addImageURL("http://example.com/image.jpg"; "high") ``` -### Respond to a tool call message +### ツール呼び出しメッセージに応答する -When an assistant needs to use external functions, it generates a message with `tool_calls` to request function execution. +アシスタントが外部関数を使用する必要がある場合、関数の実行をリクエストするための、`tool_calls` を持ったメッセージを生成します。 -**Assistant message requesting tool calls:** +**ツール呼び出しをリクエストするアシスタントメッセージ:** ```json { @@ -70,41 +70,41 @@ When an assistant needs to use external functions, it generates a message with ` } ``` -**Handling the tool call:** +**ツール呼び出しを管理する:** -When you receive a tool call message, you need to: +ツール呼び出しメッセージを受信した場合、以下のことを行う必要があります: -1. **Extract the function information:** - - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` - - `id`: The unique identifier for this specific tool call +1. **関数の情報を抽出する:** + - `function.name`: 呼び出す関数の名前([OpenAITool](OpenAITool.md) 内で定義されている関数と合致する必要があります- この名前に応じて実行するコードを選択することができます) + - `function.arguments`: `JSON Parse` でパースされる必要のある、関数の引数を格納したJSON 文字列 + - `id`: この特定のツール呼び出しのための固有の識別子 -2. **Execute the function:** - Parse the arguments (which is a JSON string) and call the corresponding function that you defined in your OpenAITool configuration. +2. **関数を実行する:** + (JSON 文字列になっている)引数をパースし、OpenAITool 設定内で定義された対応する関数を呼び出します。 -3. **Respond with the tool result:** - Create a response message using the exact `tool_call_id` from the original request. +3. **ツールの結果で応答する:** + オリジナルのリクエストの`tool_call_id` を使用してレスポンスメッセージを作成します。 -**Example tool response:** +**ツールのレスポンスの一例:** ```4d -// Parse the function arguments (if any) +// 関数の引数をパースする(あれば) var $arguments : Object := JSON Parse($toolCall.function.arguments) -// Execute your code corresponding to "get_database_tables" +// "get_database_tables" に対応するコードを実行する var $tableNames: Text := OB Keys(ds).join(", ") -// Create the tool response message with the required tool_call_id +// 必要な tool_call_id を持ったツールレスポンスメッセージを作成する var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \ role: "tool"; \ tool_call_id: "call_12345"; \ content: $tableNames \ }) -// Add it to the conversation and continue +// 会話にそれを追加して続行する ``` -**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. This allows the AI model to correctly associate your response with the specific function call that was made. +**重要:** レスポンス内の`tool_call_id` は、元のツール呼び出しの`id` と完全に一致している必要があります。 これによってAI モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。 ## 参照 -- [OpenAITool](OpenAITool.md) - For tool definition \ No newline at end of file +- [OpenAITool](OpenAITool.md) - ツール定義に必要 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index c6d1be78b53a00..a34a35bd12d990 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -5,50 +5,50 @@ title: OpenAITool # OpenAITool -The `OpenAITool` class represents a tool that can be called by the OpenAI model during a conversation. Tools allow the AI to perform specific functions and interact with external systems or retrieve information. +`OpenAITool` クラスは会話の途中でOpenAI モデルによって呼び出されうるツールを表します。 ツールを使用するとAI に特定の機能を実行させたり、外部システムとやりとりしたり、情報を取得したりといったことが可能になります。 -See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. +ツール呼び出しに応答する方法については、[OpenAIMessage](OpenAIMessage.md) を参照して下さい。 -> **Note:** The tool calls are handled automatically when using [OpenAIChatHelper](OpenAIChatHelper.md) with `autoHandleToolCalls` enabled. +> **注意:** [OpenAIChatHelper](OpenAIChatHelper.md) を`autoHandleToolCalls` を有効化して使用した場合には、ツール呼び出しは自動的に管理されます。 ## プロパティ -### Root Properties +### ルートプロパティ -| プロパティ | 型 | デフォルト | 説明 | -| -------- | ------- | ------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `type` | Text | `"function"` | The type of tool. Currently supports `"function"`, `"custom"`, and other built-in types. | -| `strict` | Boolean | `false` | Whether to enforce strict schema validation for function parameters. | +| プロパティ | 型 | デフォルト | 説明 | +| -------- | ------- | ------------ | ---------------------------------------------------------------- | +| `type` | Text | `"function"` | ツールのタイプ。 現在サポートされているのは`"function"`、`"custom"`、そしてその他のビルトインタイプです。 | +| `strict` | Boolean | `false` | 関数の引数に対して厳格なスキーマ検証を強制するかどうかを指定します。 | -### Common Properties +### 共通プロパティ -| プロパティ | 型 | 説明 | -| ------------- | ---- | ------------------------------------------------------------------------------ | -| `名称` | Text | The name of the tool, which works as an identifier. | -| `description` | Text | Description of the tool to help the LLM decide when to use it. | +| プロパティ | 型 | 説明 | +| ------------- | ---- | --------------------------------- | +| `名称` | Text | ツール名。識別子として機能します。 | +| `description` | Text | LLM がツールをいつ使うかを決定する手助けとなる、ツールの説明。 | -### Function-specific Properties +### 関数特有のプロパティ -| プロパティ | 型 | 説明 | -| ------------ | ------ | -------------------------------------------------------------------------------- | -| `parameters` | Object | Parameters definition for the function using JSON schema format. | +| プロパティ | 型 | 説明 | +| ------------ | ------ | ---------------------------- | +| `parameters` | Object | JSON スキーマフォーマットを使用した関数の引数宣言。 | -## Constructor +## コンストラクター ### new() **new**(*object* : Object) : OpenAITool -| 引数 | 型 | 説明 | -| --------- | ---------- | --------------------------------- | -| *options* | Object | Configuration object for the tool | -| 戻り値 | OpenAITool | New instance of OpenAITool | +| 引数 | 型 | 説明 | +| --------- | ---------- | -------------------- | +| *options* | Object | ツールの設定オブジェクト | +| 戻り値 | OpenAITool | OpenAITool の新規インスタンス | -Creates a new OpenAITool instance. The constructor accepts both simplified format and OpenAI API format. +新しい OpenAITool インスタンスを作成します。 このコンストラクターは簡易フォーマットとOpenAI API フォーマットの両方を受け入れます。 -#### Supported formats +#### サポートされるフォーマット -**Simplified format:** +**簡易フォーマット:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -64,7 +64,7 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -**OpenAI API format:** +**OpenAI API フォーマット:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -84,9 +84,9 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -## Integration with Chat Completions +## チャット補完との統合 -Tools are typically used with the `OpenAIChatCompletionsParameters.tools` property: +ツールは通常`OpenAIChatCompletionsParameters.tools` プロパティで使用されます: ```4d var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ @@ -95,10 +95,10 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ }) ``` -> **Note:** You can pass plain objects directly - they will be automatically converted to `OpenAITool` instances. There's no need to explicitly create `OpenAITool` objects. +> **注意:** プレーンなオブジェクトを直接渡すこともできます - 渡したオブジェクトは自動的に`OpenAITool` インスタンスに変換されます。 明示的に `OpenAITool` オブジェクトを作成する必要はありません。 ## 参照 -- [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - For tool configuration -- [OpenAIChatHelper](OpenAIChatHelper.md) - For automatic tool call handling -- [OpenAIMessage](OpenAIMessage.md) - For tool call responses \ No newline at end of file +- [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - ツール設定用 +- [OpenAIChatHelper](OpenAIChatHelper.md) - 自動ツール呼び出し管理用 +- [OpenAIMessage](OpenAIMessage.md) - ツール呼び出しレスポンス用 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md index c5b1e8bee004a5..62c02ed59851a0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md @@ -53,24 +53,24 @@ title: フォームエディター ツールバーには以下の要素があります: -| アイコン | 名称 | 説明 | -| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#selecting-objects) | フォームオブジェクトの選択・移動・リサイズをおこないます。

        **注**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter**キーを押すことで編集モードになります。

        | -| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#data-entry-order) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | -| ![](../assets/en/FormEditor/moving.png) | [移動](#moving-objects) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | -| ![](../assets/en/FormEditor/zoom.png) | [拡大](#zoom) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | -| ![](../assets/en/FormEditor/alignment.png) | [整列](#aligning-objects) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#distributing-objects) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/level.png) | [レベル](#layering-objects) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#grouping-objects) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#form-pages) | このエリアを使用して、フォームページ間の移動やページの追加ができます。 フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。 最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | -| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#css-preview) | このボタンで、使用する CSSモードを選択します。 | -| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#views) | このボタンは、ビューパレットの表示や非表示をおこないます。 この機能については "オブジェクトビューを使用する" で説明しています。 | -| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#shields) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。 また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | -| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | -| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#list-box-builder) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | -| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#insert-fields) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | +| アイコン | 名称 | 説明 | +| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | +| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#data-entry-order) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | +| ![](../assets/en/FormEditor/moving.png) | [移動](#moving-objects) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | +| ![](../assets/en/FormEditor/zoom.png) | [拡大](#zoom) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | +| ![](../assets/en/FormEditor/alignment.png) | [整列](#aligning-objects) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#distributing-objects) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/level.png) | [レベル](#layering-objects) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#grouping-objects) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#form-pages) | このエリアを使用して、フォームページ間の移動やページの追加ができます。 フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。 最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | +| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#css-preview) | このボタンで、使用する CSSモードを選択します。 | +| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#views) | このボタンは、ビューパレットの表示や非表示をおこないます。 この機能については "オブジェクトビューを使用する" で説明しています。 | +| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#shields) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。 また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | +| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | +| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#list-box-builder) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | +| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#insert-fields) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | ### オブジェクトバー @@ -146,11 +146,11 @@ title: フォームエディター ツールバーを使用してオブジェクトを選択するには: -1. ツールバーの矢印ツールをクリックします。

        ![](../assets/en/FormEditor/selection.png)

        +1. ツールバーの矢印ツールをクリックします。
        ![](../assets/en/FormEditor/selection.png) -

        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります

        。 +
        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります。 -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。

        ![](../assets/en/FormEditor/selectResize.png)

        +2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。
        ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: @@ -235,13 +235,12 @@ title: フォームエディター オブジェクトをグループ化するには: 1. グループ化したいオブジェクトを選択します。 -2. オブジェクトメニューから **グループ化** を選択します。 または フォームエディターのツールバーでグループ化ボタンをクリックします。

        ![](../assets/en/FormEditor/group.png)

        -4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 +2. オブジェクトメニューから **グループ化** を選択します。 OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 オブジェクトのグループ化を解除するには: 1. グループ化を解除したいグループオブジェクトを選択します。 -2. **オブジェクト** メニューから **グループ化解除** を選択します。

        OR

        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。

        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。

        4D は個々のオブジェクトの境界をハンドルで表わします。 +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D は個々のオブジェクトの境界をハンドルで表わします。 ### オブジェクトの整列 @@ -268,9 +267,10 @@ title: フォームエディター このダイアログボックスを表示するには、揃えたいオブジェクトを選択し、**オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 -- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。

        見本エリアには、選択結果が表示されます。

        +- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
        見本エリアには、選択結果が表示されます。 + +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. この場合、基準オブジェクトの位置は変わりません。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:

        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。

        **プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 > このダイアログボックスでは、整列と均等配置を合わせて実行することができます。 整列に関する詳細は [オブジェクトの整列](#オブジェクトの整列) を参照ください。 @@ -304,7 +304,7 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 -2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから均等揃えメニューコマンドを選択します。

        4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: @@ -312,9 +312,9 @@ title: フォームエディター 2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 以下のダイアログボックスが表示されます:![](../assets/en/FormEditor/alignmentAssistant.png) -3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (標準の横均等揃えアイコン)

        見本エリアには、選択結果が表示されます。 +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。

        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。

        または:

        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
        - 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、右辺で均等に揃えます。 - 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、下辺で均等に揃えます。 @@ -367,11 +367,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 入力順モードに切り替え、入力順を変更するには: -1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
        ![](../assets/en/FormEditor/zOrder.png)
        ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 -2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。

        ![](../assets/en/FormEditor/entryOrder3.png)

        これに応じて、4D はデータ入力順を調整します。 +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. 入力順を設定したいだけ、ステップ2 を繰り返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index ec48521b51969e..bf66478c6aaa1d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -56,7 +56,7 @@ title: フォームエディター | アイコン | 名称 | 説明 | | ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択、移動、そしてリサイズを行います。

        **注意**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter** キーを押すことで編集モードになります。

        | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択、移動、そしてリサイズを行います。
        **注**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter**キーを押すことで編集モードになります。 | | ![](../assets/en/FormEditor/zOrder.png) | [入力順](#データの入力順) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | | ![](../assets/en/FormEditor/moving.png) | [移動](#オブジェクトの移動) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | | ![](../assets/en/FormEditor/zoom.png) | [拡大](#拡大) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | @@ -146,11 +146,11 @@ title: フォームエディター ツールバーを使用してオブジェクトを選択するには: -1. ツールバーの矢印ツールをクリックします。

        ![](../assets/en/FormEditor/selection.png)

        +1. ツールバーの矢印ツールをクリックします。
        ![](../assets/en/FormEditor/selection.png) -

        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります

        。 +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表します。

        ![](../assets/en/FormEditor/selectResize.png)

        +2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表します。
        ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: @@ -242,13 +242,13 @@ title: フォームエディター 1. グループ化したいオブジェクトを選択します。 2. オブジェクトメニューから **グループ化** を選択します。 または - フォームエディターのツールバーでグループ化ボタンをクリックします。

        ![](../assets/en/FormEditor/group.png)

        + フォームエディターのツールバーでグループ化ボタンをクリックします。
        ![](../assets/en/FormEditor/group.png) 4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 オブジェクトのグループ化を解除するには: 1. グループ化を解除したいグループオブジェクトを選択します。 -2. **オブジェクト**メニューから**グループ解除** を選択します。

        あるいは

        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。

        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。

        4D は個々のオブジェクトの境界をハンドルで表わします。 +2. **オブジェクト**メニューから**グループ解除** を選択します。
        あるいは
        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。
        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。 4D は個々のオブジェクトの境界をハンドルで表わします。 ### オブジェクトの整列 @@ -276,9 +276,9 @@ title: フォームエディター このダイアログボックスを表示するには、揃えたいオブジェクトを選択し、**オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 -- “左/右整列” や “上/下整列” エリアで、実行しようとする整列に対応する整列アイコンをクリックします。

        見本エリアには、選択結果が表示されます。

        +- “左/右整列” や “上/下整列” エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
        見本エリアには、選択結果が表示されます。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:

        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。

        +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:
        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。 **プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 @@ -315,7 +315,8 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 -2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。

        ![](../assets/en/FormEditor/distributionTool.png)

        あるいは

        **オブジェクト**メニュー内の**整列** サブメニュー、またはエディターのコンテキストメニューから分配メニューコマンドを選択します。

        4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 +2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: @@ -323,9 +324,9 @@ title: フォームエディター 2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 次のダイアログボックスが表示されます: [](../assets/en/FormEditor/alignmentAssistant.png) -3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (標準の横均等揃えアイコン)

        見本エリアには、選択結果が表示されます。 +3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (標準の横均等揃えアイコン)
        見本エリアには、選択結果が表示されます。 -4. 標準の均等配置を実行するには、**プレビュー** または **適用** をクリックします。

        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。

        あるいは:

        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:

        +4. 標準の均等配置を実行するには、**プレビュー** または **適用** をクリックします。
        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。
        あるいは:
        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
        - 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、 右辺で均等に揃えます。 - 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、 下辺で均等に揃えます。 @@ -380,11 +381,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 入力順モードに切り替え、入力順を変更するには: -1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
        ![](../assets/en/FormEditor/zOrder.png)
        ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 -2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D はそれに応じて入力順を調整します。 +2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D はそれに応じて入力順を調整します。 3. 入力順を設定したいだけ、ステップ2 を繰り返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index c5e22a805f5c67..ac467cef8235cb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -339,7 +339,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 依存関係マネージャは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-github-dependency-version-range) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index c2d1e5f3a7cc99..0d340f0e28706e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -11,7 +11,7 @@ title: OpenAI | プロパティ名 | 型 | 説明 | 任意 | | --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | プロバイダーによっては必須 | | `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI provider) | | `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | | `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md index c5b1e8bee004a5..62c02ed59851a0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md @@ -53,24 +53,24 @@ title: フォームエディター ツールバーには以下の要素があります: -| アイコン | 名称 | 説明 | -| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#selecting-objects) | フォームオブジェクトの選択・移動・リサイズをおこないます。

        **注**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter**キーを押すことで編集モードになります。

        | -| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#data-entry-order) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | -| ![](../assets/en/FormEditor/moving.png) | [移動](#moving-objects) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | -| ![](../assets/en/FormEditor/zoom.png) | [拡大](#zoom) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | -| ![](../assets/en/FormEditor/alignment.png) | [整列](#aligning-objects) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#distributing-objects) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/level.png) | [レベル](#layering-objects) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#grouping-objects) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#form-pages) | このエリアを使用して、フォームページ間の移動やページの追加ができます。 フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。 最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | -| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#css-preview) | このボタンで、使用する CSSモードを選択します。 | -| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#views) | このボタンは、ビューパレットの表示や非表示をおこないます。 この機能については "オブジェクトビューを使用する" で説明しています。 | -| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#shields) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。 また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | -| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | -| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#list-box-builder) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | -| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#insert-fields) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | +| アイコン | 名称 | 説明 | +| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | +| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#data-entry-order) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | +| ![](../assets/en/FormEditor/moving.png) | [移動](#moving-objects) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | +| ![](../assets/en/FormEditor/zoom.png) | [拡大](#zoom) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | +| ![](../assets/en/FormEditor/alignment.png) | [整列](#aligning-objects) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#distributing-objects) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
        選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/level.png) | [レベル](#layering-objects) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#grouping-objects) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#form-pages) | このエリアを使用して、フォームページ間の移動やページの追加ができます。 フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。 最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | +| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#css-preview) | このボタンで、使用する CSSモードを選択します。 | +| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#views) | このボタンは、ビューパレットの表示や非表示をおこないます。 この機能については "オブジェクトビューを使用する" で説明しています。 | +| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#shields) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。 また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | +| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | +| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#list-box-builder) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | +| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#insert-fields) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | ### オブジェクトバー @@ -146,11 +146,11 @@ title: フォームエディター ツールバーを使用してオブジェクトを選択するには: -1. ツールバーの矢印ツールをクリックします。

        ![](../assets/en/FormEditor/selection.png)

        +1. ツールバーの矢印ツールをクリックします。
        ![](../assets/en/FormEditor/selection.png) -

        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります

        。 +
        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります。 -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。

        ![](../assets/en/FormEditor/selectResize.png)

        +2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。
        ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: @@ -235,13 +235,12 @@ title: フォームエディター オブジェクトをグループ化するには: 1. グループ化したいオブジェクトを選択します。 -2. オブジェクトメニューから **グループ化** を選択します。 または フォームエディターのツールバーでグループ化ボタンをクリックします。

        ![](../assets/en/FormEditor/group.png)

        -4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 +2. オブジェクトメニューから **グループ化** を選択します。 OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 オブジェクトのグループ化を解除するには: 1. グループ化を解除したいグループオブジェクトを選択します。 -2. **オブジェクト** メニューから **グループ化解除** を選択します。

        OR

        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。

        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。

        4D は個々のオブジェクトの境界をハンドルで表わします。 +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D は個々のオブジェクトの境界をハンドルで表わします。 ### オブジェクトの整列 @@ -268,9 +267,10 @@ title: フォームエディター このダイアログボックスを表示するには、揃えたいオブジェクトを選択し、**オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 -- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。

        見本エリアには、選択結果が表示されます。

        +- "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
        見本エリアには、選択結果が表示されます。 + +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. この場合、基準オブジェクトの位置は変わりません。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:

        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。

        **プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 > このダイアログボックスでは、整列と均等配置を合わせて実行することができます。 整列に関する詳細は [オブジェクトの整列](#オブジェクトの整列) を参照ください。 @@ -304,7 +304,7 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 -2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから均等揃えメニューコマンドを選択します。

        4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: @@ -312,9 +312,9 @@ title: フォームエディター 2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 以下のダイアログボックスが表示されます:![](../assets/en/FormEditor/alignmentAssistant.png) -3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (標準の横均等揃えアイコン)

        見本エリアには、選択結果が表示されます。 +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。

        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。

        または:

        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
        - 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、右辺で均等に揃えます。 - 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、下辺で均等に揃えます。 @@ -367,11 +367,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 入力順モードに切り替え、入力順を変更するには: -1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
        ![](../assets/en/FormEditor/zOrder.png)
        ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 -2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。

        ![](../assets/en/FormEditor/entryOrder3.png)

        これに応じて、4D はデータ入力順を調整します。 +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. 入力順を設定したいだけ、ステップ2 を繰り返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 8812a3e7f7f275..84c53958a0def8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1588,7 +1588,7 @@ var $employees:=ds.Employee.query("embedding > :1"; {vector: $vector; metric: mk // 明示的にコサイン計量を指定し、カスタムのしきい値を用いた検索 var $employees:=ds.Employee.query("embedding > :1"; {vector: $vector; metric: mk cosine; threshold: 0.9}) // フォーミュラを使用した検索 -var $employees:=ds.Employee.query(Formula(This.embdedding.cosineSimilarity($vector)>0.9)) +var $employees:=ds.Employee.query(Formula(This.embedding.cosineSimilarity($vector)>0.9)) ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index ec48521b51969e..bf66478c6aaa1d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -56,7 +56,7 @@ title: フォームエディター | アイコン | 名称 | 説明 | | ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択、移動、そしてリサイズを行います。

        **注意**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter** キーを押すことで編集モードになります。

        | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択、移動、そしてリサイズを行います。
        **注**: テキストやグループボックスタイプのオブジェクトを選択すると、**Enter**キーを押すことで編集モードになります。 | | ![](../assets/en/FormEditor/zOrder.png) | [入力順](#データの入力順) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | | ![](../assets/en/FormEditor/moving.png) | [移動](#オブジェクトの移動) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | | ![](../assets/en/FormEditor/zoom.png) | [拡大](#拡大) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | @@ -146,11 +146,11 @@ title: フォームエディター ツールバーを使用してオブジェクトを選択するには: -1. ツールバーの矢印ツールをクリックします。

        ![](../assets/en/FormEditor/selection.png)

        +1. ツールバーの矢印ツールをクリックします。
        ![](../assets/en/FormEditor/selection.png) -

        マウスカーソルをフォームエリアに移動すると、カーソルは標準の矢印の形をしたポインターに変わります

        。 +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表します。

        ![](../assets/en/FormEditor/selectResize.png)

        +2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表します。
        ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: @@ -242,13 +242,13 @@ title: フォームエディター 1. グループ化したいオブジェクトを選択します。 2. オブジェクトメニューから **グループ化** を選択します。 または - フォームエディターのツールバーでグループ化ボタンをクリックします。

        ![](../assets/en/FormEditor/group.png)

        + フォームエディターのツールバーでグループ化ボタンをクリックします。
        ![](../assets/en/FormEditor/group.png) 4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 これ以降、グループ化されたオブジェクトを編集すると、グループを構成する全オブジェクトが変更されます。 オブジェクトのグループ化を解除するには: 1. グループ化を解除したいグループオブジェクトを選択します。 -2. **オブジェクト**メニューから**グループ解除** を選択します。

        あるいは

        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。

        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。

        4D は個々のオブジェクトの境界をハンドルで表わします。 +2. **オブジェクト**メニューから**グループ解除** を選択します。
        あるいは
        フォームエディターのツールバーで **グループ化解除** ボタン (**グループ化** ボタンのサブ項目) をクリックします。
        **グループ化解除** が選択不可の場合、選択したオブジェクトはグループに属していないことを意味します。 4D は個々のオブジェクトの境界をハンドルで表わします。 ### オブジェクトの整列 @@ -276,9 +276,9 @@ title: フォームエディター このダイアログボックスを表示するには、揃えたいオブジェクトを選択し、**オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 -- “左/右整列” や “上/下整列” エリアで、実行しようとする整列に対応する整列アイコンをクリックします。

        見本エリアには、選択結果が表示されます。

        +- “左/右整列” や “上/下整列” エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
        見本エリアには、選択結果が表示されます。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:

        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。

        +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:
        特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。 **プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 @@ -315,7 +315,8 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 -2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。

        ![](../assets/en/FormEditor/distributionTool.png)

        あるいは

        **オブジェクト**メニュー内の**整列** サブメニュー、またはエディターのコンテキストメニューから分配メニューコマンドを選択します。

        4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 +2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: @@ -323,9 +324,9 @@ title: フォームエディター 2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 次のダイアログボックスが表示されます: [](../assets/en/FormEditor/alignmentAssistant.png) -3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (標準の横均等揃えアイコン)

        見本エリアには、選択結果が表示されます。 +3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (標準の横均等揃えアイコン)
        見本エリアには、選択結果が表示されます。 -4. 標準の均等配置を実行するには、**プレビュー** または **適用** をクリックします。

        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。

        あるいは:

        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:

        +4. 標準の均等配置を実行するには、**プレビュー** または **適用** をクリックします。
        この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。
        あるいは:
        特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
        - 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、 右辺で均等に揃えます。 - 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、 下辺で均等に揃えます。 @@ -380,11 +381,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 入力順モードに切り替え、入力順を変更するには: -1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
        ![](../assets/en/FormEditor/zOrder.png)
        ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 -2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D はそれに応じて入力順を調整します。 +2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D はそれに応じて入力順を調整します。 3. 入力順を設定したいだけ、ステップ2 を繰り返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 9ec1cc2e38ce55..76f679bb238d05 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -326,7 +326,7 @@ GitHubでリリースが作成されると、そこに**タグ**と**バージ 依存関係マネージャは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-github-dependency-version-range) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index c2d1e5f3a7cc99..0d340f0e28706e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -11,7 +11,7 @@ title: OpenAI | プロパティ名 | 型 | 説明 | 任意 | | --------- | ---- | ---------------------------------------------------------- | --------------------------------------------------------- | -| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | Can be required by the provider | +| `apiKey` | Text | あなたの [OpenAI API キー](https://platform.openai.com/api-keys) | プロバイダーによっては必須 | | `baseURL` | Text | OpenAI API リクエストのためのベースURL。 | Yes (if omitted = use OpenAI provider) | | `組織` | Text | あなたの OpenAI 組織 ID。 | ◯ | | `project` | Text | あなたの OpenAI プロジェクト ID。 | ◯ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md index bbba82dc0590c0..c2dd0059375cd0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatHelper.md @@ -20,7 +20,7 @@ title: OpenAIChatHelper | `autoHandleToolCalls` | Boolean | true | 登録されたツールを使用してツール呼び出しを自動的に管理するかどうかをあらわすブール値。 | | `lastErrors` | Collection | - | チャット操作中に発生した最後のエラーを格納したコレクション。 | -## Constructor +## コンストラクター 新しい `OpenAIChatHelper` インスタンスを作成するためには、[OpenAI クライアントのチャットAPI](OpenAIChatAPI.md)の `create()` メソッドを使用するのが最適です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index 8c840ac2ac5c0a..71ac6fa0763f7e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ title: OpenAIMessage ## プロパティ -| プロパティ | 型 | 説明 | -| -------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `role` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `内容` | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | -| `user` | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Each tool call contains an `id`, `type`, and a `function` object. | -| `tool_call_id` | Text | The ID of the tool call that this message is responding to (used when `role` is "tool"). | +| プロパティ | 型 | 説明 | +| -------------- | ---------- | ----------------------------------------------------------------------------------- | +| `role` | Text | メッセージの役割(例: "user"、"assistant"、"system"、"tool")。 | +| `内容` | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | +| `user` | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | +| `tool_calls` | Collection | アシスタントからリクエストされたツール呼び出しのコレクション。 各ツール呼び出しには `id`、`type`、`function` オブジェクトが含まれます。 | +| `tool_call_id` | Text | このメッセージが返答しているツール呼び出しのID (`role` が "tool"の場合に使用されます)。 | ## 計算プロパティ @@ -38,7 +38,7 @@ title: OpenAIMessage ## 使用例 -### Create a simple message and attach an image +### シンプルなメッセージを作成し画像を添付する ```4d // OpenAIMessage のインスタンスを作成 @@ -48,11 +48,11 @@ var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"}) $message.addImageURL("http://example.com/image.jpg"; "high") ``` -### Respond to a tool call message +### ツール呼び出しメッセージに応答する -When an assistant needs to use external functions, it generates a message with `tool_calls` to request function execution. +アシスタントが外部関数を使用する必要がある場合、関数の実行をリクエストするための、`tool_calls` を持ったメッセージを生成します。 -**Assistant message requesting tool calls:** +**ツール呼び出しをリクエストするアシスタントメッセージ:** ```json { @@ -70,41 +70,41 @@ When an assistant needs to use external functions, it generates a message with ` } ``` -**Handling the tool call:** +**ツール呼び出しを管理する:** -When you receive a tool call message, you need to: +ツール呼び出しメッセージを受信した場合、以下のことを行う必要があります: -1. **Extract the function information:** - - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` - - `id`: The unique identifier for this specific tool call +1. **関数の情報を抽出する:** + - `function.name`: 呼び出す関数の名前([OpenAITool](OpenAITool.md) 内で定義されている関数と合致する必要があります- この名前に応じて実行するコードを選択することができます) + - `function.arguments`: `JSON Parse` でパースされる必要のある、関数の引数を格納したJSON 文字列 + - `id`: この特定のツール呼び出しのための固有の識別子 -2. **Execute the function:** - Parse the arguments (which is a JSON string) and call the corresponding function that you defined in your OpenAITool configuration. +2. **関数を実行する:** + (JSON 文字列になっている)引数をパースし、OpenAITool 設定内で定義された対応する関数を呼び出します。 -3. **Respond with the tool result:** - Create a response message using the exact `tool_call_id` from the original request. +3. **ツールの結果で応答する:** + オリジナルのリクエストの`tool_call_id` を使用してレスポンスメッセージを作成します。 -**Example tool response:** +**ツールのレスポンスの一例:** ```4d -// Parse the function arguments (if any) +// 関数の引数をパースする(あれば) var $arguments : Object := JSON Parse($toolCall.function.arguments) -// Execute your code corresponding to "get_database_tables" +// "get_database_tables" に対応するコードを実行する var $tableNames: Text := OB Keys(ds).join(", ") -// Create the tool response message with the required tool_call_id +// 必要な tool_call_id を持ったツールレスポンスメッセージを作成する var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \ role: "tool"; \ tool_call_id: "call_12345"; \ content: $tableNames \ }) -// Add it to the conversation and continue +// 会話にそれを追加して続行する ``` -**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. This allows the AI model to correctly associate your response with the specific function call that was made. +**重要:** レスポンス内の`tool_call_id` は、元のツール呼び出しの`id` と完全に一致している必要があります。 これによってAI モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。 ## 参照 -- [OpenAITool](OpenAITool.md) - For tool definition \ No newline at end of file +- [OpenAITool](OpenAITool.md) - ツール定義に必要 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md index c6d1be78b53a00..a34a35bd12d990 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAITool.md @@ -5,50 +5,50 @@ title: OpenAITool # OpenAITool -The `OpenAITool` class represents a tool that can be called by the OpenAI model during a conversation. Tools allow the AI to perform specific functions and interact with external systems or retrieve information. +`OpenAITool` クラスは会話の途中でOpenAI モデルによって呼び出されうるツールを表します。 ツールを使用するとAI に特定の機能を実行させたり、外部システムとやりとりしたり、情報を取得したりといったことが可能になります。 -See [OpenAIMessage](OpenAIMessage.md) to see how to responds to a tool call. +ツール呼び出しに応答する方法については、[OpenAIMessage](OpenAIMessage.md) を参照して下さい。 -> **Note:** The tool calls are handled automatically when using [OpenAIChatHelper](OpenAIChatHelper.md) with `autoHandleToolCalls` enabled. +> **注意:** [OpenAIChatHelper](OpenAIChatHelper.md) を`autoHandleToolCalls` を有効化して使用した場合には、ツール呼び出しは自動的に管理されます。 ## プロパティ -### Root Properties +### ルートプロパティ -| プロパティ | 型 | デフォルト | 説明 | -| -------- | ------- | ------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `type` | Text | `"function"` | The type of tool. Currently supports `"function"`, `"custom"`, and other built-in types. | -| `strict` | Boolean | `false` | Whether to enforce strict schema validation for function parameters. | +| プロパティ | 型 | デフォルト | 説明 | +| -------- | ------- | ------------ | ---------------------------------------------------------------- | +| `type` | Text | `"function"` | ツールのタイプ。 現在サポートされているのは`"function"`、`"custom"`、そしてその他のビルトインタイプです。 | +| `strict` | Boolean | `false` | 関数の引数に対して厳格なスキーマ検証を強制するかどうかを指定します。 | -### Common Properties +### 共通プロパティ -| プロパティ | 型 | 説明 | -| ------------- | ---- | ------------------------------------------------------------------------------ | -| `名称` | Text | The name of the tool, which works as an identifier. | -| `description` | Text | Description of the tool to help the LLM decide when to use it. | +| プロパティ | 型 | 説明 | +| ------------- | ---- | --------------------------------- | +| `名称` | Text | ツール名。識別子として機能します。 | +| `description` | Text | LLM がツールをいつ使うかを決定する手助けとなる、ツールの説明。 | -### Function-specific Properties +### 関数特有のプロパティ -| プロパティ | 型 | 説明 | -| ------------ | ------ | -------------------------------------------------------------------------------- | -| `parameters` | Object | Parameters definition for the function using JSON schema format. | +| プロパティ | 型 | 説明 | +| ------------ | ------ | ---------------------------- | +| `parameters` | Object | JSON スキーマフォーマットを使用した関数の引数宣言。 | -## Constructor +## コンストラクター ### new() **new**(*object* : Object) : OpenAITool -| 引数 | 型 | 説明 | -| --------- | ---------- | --------------------------------- | -| *options* | Object | Configuration object for the tool | -| 戻り値 | OpenAITool | New instance of OpenAITool | +| 引数 | 型 | 説明 | +| --------- | ---------- | -------------------- | +| *options* | Object | ツールの設定オブジェクト | +| 戻り値 | OpenAITool | OpenAITool の新規インスタンス | -Creates a new OpenAITool instance. The constructor accepts both simplified format and OpenAI API format. +新しい OpenAITool インスタンスを作成します。 このコンストラクターは簡易フォーマットとOpenAI API フォーマットの両方を受け入れます。 -#### Supported formats +#### サポートされるフォーマット -**Simplified format:** +**簡易フォーマット:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -64,7 +64,7 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -**OpenAI API format:** +**OpenAI API フォーマット:** ```4d var $tool := cs.OpenAITool.new({ \ @@ -84,9 +84,9 @@ var $tool := cs.OpenAITool.new({ \ }) ``` -## Integration with Chat Completions +## チャット補完との統合 -Tools are typically used with the `OpenAIChatCompletionsParameters.tools` property: +ツールは通常`OpenAIChatCompletionsParameters.tools` プロパティで使用されます: ```4d var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ @@ -95,10 +95,10 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ }) ``` -> **Note:** You can pass plain objects directly - they will be automatically converted to `OpenAITool` instances. There's no need to explicitly create `OpenAITool` objects. +> **注意:** プレーンなオブジェクトを直接渡すこともできます - 渡したオブジェクトは自動的に`OpenAITool` インスタンスに変換されます。 明示的に `OpenAITool` オブジェクトを作成する必要はありません。 ## 参照 -- [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - For tool configuration -- [OpenAIChatHelper](OpenAIChatHelper.md) - For automatic tool call handling -- [OpenAIMessage](OpenAIMessage.md) - For tool call responses \ No newline at end of file +- [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - ツール設定用 +- [OpenAIChatHelper](OpenAIChatHelper.md) - 自動ツール呼び出し管理用 +- [OpenAIMessage](OpenAIMessage.md) - ツール呼び出しレスポンス用 \ No newline at end of file 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 6ea1fd129e4c34..c26001d78e0d51 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -89,7 +89,7 @@ This function does not remove **promoted privileges** from the web process, whet ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Exemplo @@ -388,7 +388,7 @@ This function returns True for the *privilege* if called from a function that wa ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index cbe997c6971a80..86e4cbdff0d795 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -56,7 +56,7 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Permite selecionar, mover e redimensionar objetos de formulário

        : Quando um objeto do tipo Text ou Group Box é selecionado, pressionar a tecla **Enter** permite alternar para o modo de edição.

        | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Permite selecionar, mover e redimensionar objetos de formulário
        : Quando um objeto do tipo Text ou Group Box é selecionado, pressionar a tecla **Enter** permite alternar para o modo de edição. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#data-entry-order) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | | ![](../assets/en/FormEditor/moving.png) | [Moving](#objetos-em-movimento) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | @@ -146,18 +146,18 @@ Antes de executar qualquer operação em um objeto (como alterar a largura ou a Para selecionar um objeto usando a barra de ferramentas: -1. Clique na ferramenta Seta na barra de ferramentas

        ![](../assets/en/FormEditor/selection.png)

        +1. Clique na ferramenta Seta na barra de ferramentas
        ![](../assets/en/FormEditor/selection.png) -

        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Clique no objecto que deseja selecionar. As alças de redimensionamento identificam o objeto selecionado

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Clique no objecto que deseja selecionar. As alças de redimensionamento identificam o objeto selecionado
        ![](../assets/en/FormEditor/selectResize.png) Para selecionar um objecto utilizando a Lista de Propriedades: 1. Escolher o nome do objecto na lista pendente da Lista de Objectos localizada no topo da Lista de Propriedades. Usando estes dois métodos, pode seleccionar um objecto que esteja escondido por outros objectos ou localizado fora da área visível da janela actual. Para cancelar a seleção de um objeto, clique fora do limite do objeto ou **Shift+clique** no objeto. -> Também é possível selecionar objetos clicando duas vezes neles na janela de resultados da operação "Localizar no design". +> It is also possible to select objects by double-clicking them in the result window of "Find in design" operation. ### Selecção de múltiplos objectos @@ -241,13 +241,13 @@ Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. 2. Elija **Agrupar** en el menú Objetos. OU - Clique no botão Group (Agrupar

        )

        na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        + Clique no botão Group (Agrupar
        ) na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        4D marca o limite dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Escolha **Ungroup** no menu **Object**

        .OUClique no

        botão **Ungroup** (variante do botão **Group**) na barra de ferramentas do editor de formulários.

        Se **Ungroup** estiver esmaecido, isso significa que o objeto selecionado já está separado em sua forma mais simples.

        4D marca os limites dos objetos individuais com alças. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -275,9 +275,9 @@ O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamen Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e escolha o comando **Alinhamento** no submenu **Alinhar** do menu **Objeto** ou no menu de contexto do editor. -- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

        A área de exemplo exibe os resultados da sua seleção.

        +- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.
        A área de exemplo exibe os resultados da sua seleção. -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

        +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:
        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada. Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -314,7 +314,8 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Selecione um comando de menu de distribuição no submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor.

        4D distribui os objetos apropriadamente. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (ícone padrão de distribuição horizontal)

        A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (ícone padrão de distribuição horizontal)
        A área de exemplo exibe os resultados da sua seleção. -4. Para executar uma distribuição que use o esquema padrão, clique em **Preview** ou *Apply*.

        Nesse caso, o 4D executará uma distribuição padrão, de modo que os objetos sejam dispostos com uma quantidade igual de espaço entre eles

        . OU:

        Para executar uma distribuição específica, selecione a opção **Distribute** (por exemplo, se quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. Para executar uma distribuição que use o esquema padrão, clique em **Preview** ou *Apply*.
        Nesse caso, o 4D executará uma distribuição padrão, de modo que os objetos sejam dispostos com uma quantidade igual de espaço entre eles
        . OU:
        Para executar uma distribuição específica, selecione a opção **Distribute** (por exemplo, se quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdos, centros (hor.) e os lados direito dos objetos selecionados. - Verticalmente, os ícones correspondem às seguintes distribuições: uniformemente em relação às bordas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. @@ -379,11 +380,11 @@ Este parágrafo descreve a visualização e a modificação da ordem de entrada Para ver ou alterar a ordem de entrada: -1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:
        ![](../assets/en/FormEditor/zOrder.png)
        O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. Para mudar a ordem de entrada de dados, posicione o ponteiro em um objeto no formulário e, enquanto mantém pressionado o botão do mouse, arraste o ponteiro para o objeto que deseja na ordem de entrada de dados.4D ajustará a ordem de entrada de acordo. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index b6c05fefa599fc..0e1b416ff79da9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -326,7 +326,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md index 36e1ccb3d6e8be..46d70881a67b8e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/FormEditor/formEditor.md @@ -56,7 +56,7 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

        **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição.

        | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#selecting-objects) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | | ![](../assets/en/FormEditor/moving.png) | [Deslocamento](#moving-objects) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | @@ -146,11 +146,11 @@ Antes de executar qualquer operação em um objeto (como alterar a largura ou a Para selecionar um objeto usando a barra de ferramentas: -1. Clique na ferramenta Seta na barra de ferramentas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Clique na ferramenta Seta na barra de ferramentas.
        ![](../assets/en/FormEditor/selection.png) -

        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

        . +
        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta. -2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.

        ../assets/en/FormEditor/selectResize.png

        +2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.
        ![](../assets/en/FormEditor/selectResize.png) Para selecionar um objecto utilizando a Lista de Propriedades: @@ -235,13 +235,12 @@ O agrupamento só afeta os objetos no editor de formulários. Quando o formulár Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. -2. Selecione **Grupo** no menu Objeto. OU Clique no botão do Grupo na barra de ferramentas no editor de formulário:

        ![](../assets/en/FormEditor/group.png)

        -4D marca a borda dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. +2. Selecione **Grupo** no menu Objeto. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Escolher **Desagrupar** a partir do menu **Objetos**.

        OU

        Clique no botão **Desagrupamento** (variante do botão **Grupo**) na barra de ferramentas do editor do formulário.

        Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples.

        4D marca os limites dos objetos individuais com alças. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -268,9 +267,10 @@ O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamen Para exibir esta caixa de diálogo, selecione os objetos que você deseja alinhar e escolha o comando **Alinhamento** a partir do menu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. -- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

        A área de exemplo apresenta os resultados da sua seleção.

        +- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.
        A área de exemplo exibe os resultados da sua seleção. + +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. Neste caso, a posição do objeto de referência não será alterada. -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

        Pode pré-visualizar os resultados do alinhamento clicando no botão **Pré-visualização**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. > Esta caixa de diálogo permite-lhe alinhar e distribuir objetos numa única operação. Para mais informações sobre como distribuir objetos, consultar [Distribuir objetos](#distributing-objects). @@ -304,7 +304,7 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

        4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -312,9 +312,9 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Escolha o comando **Alinhamento** do submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas Alinhamento Esquerdo/Direita e/ou Alinhamento Superior/Inferior, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Ícone de distribuição horizontal standard)

        A área de exemplo apresenta os resultados da sua seleção. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Para realizar uma distribuição que use o esquema padrão, clique em **Pré-visualizar** ou *Aplicar*.

        Neste caso 4D irá executar uma distribuição padrão, de modo que os objetos sejam definidos com a mesma quantidade de espaço entre eles.

        OU:

        Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. Se a caixa de seleção Distribui for selecionada, os ícones localizados abaixo dele executam uma função diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. Se a caixa de seleção Distribui for selecionada, os ícones localizados abaixo dele executam uma função diferente:
        - Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdo, centros (hor.) e lados direito dos objetos selecionados. - Verticalmente, os ícones correspondem às seguintes distribuições: igualmente com respeito às arestas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. @@ -367,11 +367,11 @@ Este parágrafo descreve a visualização e a modificação da ordem de entrada Para ver ou alterar a ordem de entrada: -1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:
        ![](../assets/en/FormEditor/zOrder.png)
        O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. Para alterar a ordem de entrada de dados, posicionar o ponteiro sobre um objeto na forma e, mantendo pressionado o botão do rato, arrastar o ponteiro para o objeto que se pretende a seguir na ordem de entrada de dados.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D irá ajustar a ordem de entrada em conformidade. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index a4e7b6b79650c0..ade39d9cdc748e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -56,7 +56,7 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#data-entry-order) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | | ![](../assets/en/FormEditor/moving.png) | [Moving](#objetos-em-movimento) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | @@ -146,11 +146,11 @@ Antes de executar qualquer operação em um objeto (como alterar a largura ou a Para selecionar um objeto usando a barra de ferramentas: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Clique no objecto que deseja selecionar. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Clique no objecto que deseja selecionar. Resizing handles identify the selected object.
        ../assets/en/FormEditor/selectResize.png Para selecionar um objecto utilizando a Lista de Propriedades: @@ -241,13 +241,13 @@ Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. 2. Elija **Agrupar** en el menú Objetos. OU - Clique no botão Group (Agrupar

        )

        na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        + Clique no botão Group (Agrupar
        ) na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        4D marca o limite dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marca os limites dos objetos individuais com alças. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples. 4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -275,9 +275,9 @@ O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamen Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e escolha o comando **Alinhamento** no submenu **Alinhar** do menu **Objeto** ou no menu de contexto do editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        A área de exemplo apresenta os resultados da sua seleção. -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

        +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:
        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada. Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -314,7 +314,8 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (ícone padrão de distribuição horizontal)

        A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (ícone padrão de distribuição horizontal)
        A área de exemplo exibe os resultados da sua seleção. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdos, centros (hor.) e os lados direito dos objetos selecionados. - Verticalmente, os ícones correspondem às seguintes distribuições: uniformemente em relação às bordas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. @@ -379,11 +380,11 @@ Este parágrafo descreve a visualização e a modificação da ordem de entrada Para ver ou alterar a ordem de entrada: -1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:
        ![](../assets/en/FormEditor/zOrder.png)
        O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index c78e4286cff83c..ed14c5233d5e9e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -339,7 +339,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md index 6fc8ffbf196945..5be02280470198 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/formEditor.md @@ -56,7 +56,7 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Permite selecionar, mover e redimensionar os objetos do formulário.

        **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição.

        | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de selecção](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#selecting-objects) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | | ![](../assets/en/FormEditor/moving.png) | [Deslocamento](#moving-objects) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | @@ -146,11 +146,11 @@ Antes de executar qualquer operação em um objeto (como alterar a largura ou a Para selecionar um objeto usando a barra de ferramentas: -1. Clique na ferramenta Seta na barra de ferramentas.

        ![](../assets/en/FormEditor/selection.png)

        +1. Clique na ferramenta Seta na barra de ferramentas.
        ![](../assets/en/FormEditor/selection.png) -

        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

        . +
        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta. -2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.

        ../assets/en/FormEditor/selectResize.png

        +2. Clique no objecto que deseja selecionar. As pegas de redimensionamento identificam o objeto selecionado.
        ![](../assets/en/FormEditor/selectResize.png) Para selecionar um objecto utilizando a Lista de Propriedades: @@ -235,13 +235,12 @@ O agrupamento só afeta os objetos no editor de formulários. Quando o formulár Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. -2. Selecione **Grupo** no menu Objeto. OU Clique no botão do Grupo na barra de ferramentas no editor de formulário:

        ![](../assets/en/FormEditor/group.png)

        -4D marca a borda dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. +2. Selecione **Grupo** no menu Objeto. OR Click the Group button in the toolbar of the Form editor:
        ![](../assets/en/FormEditor/group.png) 4D marks the boundary of the newly grouped objects with handles. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Escolher **Desagrupar** a partir do menu **Objetos**.

        OU

        Clique no botão **Desagrupamento** (variante do botão **Grupo**) na barra de ferramentas do editor do formulário.

        Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples.

        4D marca os limites dos objetos individuais com alças. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form. 4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -268,9 +267,10 @@ O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamen Para exibir esta caixa de diálogo, selecione os objetos que você deseja alinhar e escolha o comando **Alinhamento** a partir do menu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. -- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.

        A área de exemplo apresenta os resultados da sua seleção.

        +- Nas áreas "Alinhamento Esquerda/Direita" e/ou "Alinhamento Superior/Inferior", clique no ícone que corresponde ao alinhamento que você deseja executar.
        A área de exemplo exibe os resultados da sua seleção. + +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OR:
        To align objects to a specific object, select the **Align on** option and select the object to which you want the other objects to be aligned from the object list. Neste caso, a posição do objeto de referência não será alterada. -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Prévia** ou **Aplicar**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada.

        Pode pré-visualizar os resultados do alinhamento clicando no botão **Pré-visualização**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. > Esta caixa de diálogo permite-lhe alinhar e distribuir objetos numa única operação. Para mais informações sobre como distribuir objetos, consultar [Distribuir objetos](#distributing-objects). @@ -304,7 +304,7 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. Na barra de ferramentas, clique na ferramenta de distribuição que corresponde à distribuição que você deseja aplicar.

        ![](../assets/en/FormEditor/distributionTool.png)

        OU

        Selecione um comando de distribuição no submenu **Alinear** do menu **Objeto** ou no menu contextual do editor.

        4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. 4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -312,9 +312,9 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Escolha o comando **Alinhamento** do submenu **Alinhar** no menu **Objeto** ou no menu de contexto do editor. Aparece a seguinte caixa de diálogo:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas Alinhamento Esquerdo/Direita e/ou Alinhamento Superior/Inferior, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (Ícone de distribuição horizontal standard)

        A área de exemplo apresenta os resultados da sua seleção. +3. In the Left/Right Alignment and/or Top/Bottom Alignment areas, click the standard distribution icon: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (Standard horizontal distribution icon)
        The example area displays the results of your selection. -4. Para realizar uma distribuição que use o esquema padrão, clique em **Pré-visualizar** ou *Aplicar*.

        Neste caso 4D irá executar uma distribuição padrão, de modo que os objetos sejam definidos com a mesma quantidade de espaço entre eles.

        OU:

        Para executar uma distribuição específica, selecione a opção **Distribuir** (por exemplo, se você quiser distribuir os objetos com base na distância até o lado direito). Esta opção funciona como um interruptor. Se a caixa de seleção Distribui for selecionada, os ícones localizados abaixo dele executam uma função diferente:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. Se a caixa de seleção Distribui for selecionada, os ícones localizados abaixo dele executam uma função diferente:
        - Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdo, centros (hor.) e lados direito dos objetos selecionados. - Verticalmente, os ícones correspondem às seguintes distribuições: igualmente com respeito às arestas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. @@ -367,11 +367,11 @@ Este parágrafo descreve a visualização e a modificação da ordem de entrada Para ver ou alterar a ordem de entrada: -1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Escolha **Ordem de Entrada** a partir do menu **Formulário** ou clique no botão da Ordem de Entrada na barra de ferramentas da janela:
        ![](../assets/en/FormEditor/zOrder.png)
        O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. Para alterar a ordem de entrada de dados, posicionar o ponteiro sobre um objeto na forma e, mantendo pressionado o botão do rato, arrastar o ponteiro para o objeto que se pretende a seguir na ordem de entrada de dados.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D irá ajustar a ordem de entrada em conformidade. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. From 61c7d09b5c714563602430d73f2fda3ccc3843cf Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 21 Oct 2025 14:19:51 +0200 Subject: [PATCH 101/119] link --- docs/Develop/field-properties.md | 2 +- versioned_docs/version-20-R10/Develop/field-properties.md | 2 +- versioned_docs/version-21/Develop/field-properties.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Develop/field-properties.md b/docs/Develop/field-properties.md index 5815691e0f4bc4..09d937dfc69136 100644 --- a/docs/Develop/field-properties.md +++ b/docs/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/versioned_docs/version-20-R10/Develop/field-properties.md b/versioned_docs/version-20-R10/Develop/field-properties.md index 5815691e0f4bc4..09d937dfc69136 100644 --- a/versioned_docs/version-20-R10/Develop/field-properties.md +++ b/versioned_docs/version-20-R10/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/versioned_docs/version-21/Develop/field-properties.md b/versioned_docs/version-21/Develop/field-properties.md index 5815691e0f4bc4..09d937dfc69136 100644 --- a/versioned_docs/version-21/Develop/field-properties.md +++ b/versioned_docs/version-21/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class From 688f3658170881592b3fe928b80ff134d53150e5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 21 Oct 2025 14:54:23 +0200 Subject: [PATCH 102/119] triggers and transactions --- docs/Develop-legacy/transactions.md | 2 ++ docs/Develop-legacy/triggers.md | 2 ++ .../current/Develop-legacy/transactions.md | 2 ++ .../version-20-R10/Develop-legacy/transactions.md | 2 ++ .../version-21/Develop-legacy/transactions.md | 2 ++ .../current/Develop-legacy/transactions.md | 2 ++ .../version-20-R10/Develop-legacy/transactions.md | 2 ++ .../version-21/Develop-legacy/transactions.md | 2 ++ .../current/Develop-legacy/transactions.md | 2 ++ .../version-20-R10/Develop-legacy/transactions.md | 2 ++ .../version-21/Develop-legacy/transactions.md | 2 ++ sidebars.js | 1 - versioned_docs/version-20-R10/Develop-legacy/transactions.md | 2 ++ versioned_docs/version-21/Develop-legacy/transactions.md | 2 ++ 14 files changed, 26 insertions(+), 1 deletion(-) diff --git a/docs/Develop-legacy/transactions.md b/docs/Develop-legacy/transactions.md index ec3fc9d7f4065d..39380e9e23e4a7 100644 --- a/docs/Develop-legacy/transactions.md +++ b/docs/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/docs/Develop-legacy/triggers.md b/docs/Develop-legacy/triggers.md index 9766ec6846296f..c79d5bcdeabaee 100644 --- a/docs/Develop-legacy/triggers.md +++ b/docs/Develop-legacy/triggers.md @@ -1,6 +1,8 @@ --- id: triggers title: Triggers +slug: /Develop/triggers +displayed_sidebar: docs --- diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md index 84adbd9996a1cd..fd68d3056cb3bb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md index 84adbd9996a1cd..fd68d3056cb3bb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Descripción diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md index 84adbd9996a1cd..fd68d3056cb3bb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Descripción diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md index ed7b6e7559eddd..f863fc241bac86 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md index ed7b6e7559eddd..f863fc241bac86 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md index ed7b6e7559eddd..f863fc241bac86 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md index 33293b4f3746fd..5d1a6166262a90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md index 33293b4f3746fd..5d1a6166262a90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md index 33293b4f3746fd..5d1a6166262a90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/sidebars.js b/sidebars.js index c805bc9728d0c1..9663597dc8da9b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -311,7 +311,6 @@ module.exports = ] }, "Develop-legacy/transactions", - "Develop-legacy/triggers", "Tags/transformation-tags", "Project/date-time-formats" ] diff --git a/versioned_docs/version-20-R10/Develop-legacy/transactions.md b/versioned_docs/version-20-R10/Develop-legacy/transactions.md index ec3fc9d7f4065d..39380e9e23e4a7 100644 --- a/versioned_docs/version-20-R10/Develop-legacy/transactions.md +++ b/versioned_docs/version-20-R10/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description diff --git a/versioned_docs/version-21/Develop-legacy/transactions.md b/versioned_docs/version-21/Develop-legacy/transactions.md index ec3fc9d7f4065d..39380e9e23e4a7 100644 --- a/versioned_docs/version-21/Develop-legacy/transactions.md +++ b/versioned_docs/version-21/Develop-legacy/transactions.md @@ -1,6 +1,8 @@ --- id: transactions title: Transactions +slug: /Develop/transactions +displayed_sidebar: docs --- ## Description From 92811cf0dd2c385ef32ed85c78a8982e14809eac Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 21 Oct 2025 14:56:01 +0200 Subject: [PATCH 103/119] Update triggers-new.md --- docs/Develop/triggers-new.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Develop/triggers-new.md b/docs/Develop/triggers-new.md index a40afb77231567..4b2e9ac1246669 100644 --- a/docs/Develop/triggers-new.md +++ b/docs/Develop/triggers-new.md @@ -3,6 +3,8 @@ id: triggers-new title: Triggers --- +to import + ## Triggers vs ORDA entity events From d2858d6d35f67e522cdd1a571643613c3ddff4f7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 21 Oct 2025 15:21:24 +0200 Subject: [PATCH 104/119] New Crowdin updates (#2972) * New translations develop-components.md (French) * New translations sessionclass.md (French) * New translations develop-components.md (French) * New translations forms.md (French) * New translations components.md (French) * New translations webarea_overview.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations classes.md (French) * New translations components.md (French) * New translations formeditor.md (French) * New translations formeditor.md (Spanish) * New translations formeditor.md (Japanese) * New translations formeditor.md (Portuguese, Brazilian) * New translations classes.md (French) * New translations formeditor.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations error-handling.md (French) * New translations formeditor.md (French) * New translations installation.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaichatcompletionsparameters.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations orda-events.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations develop-components.md (French) * New translations formeditor.md (French) * New translations pictures.md (French) * New translations properties_markers.md (French) * New translations installation.md (French) * New translations entities.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations vp-set-workbook-options.md (French) * New translations configuring.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations sessionclass.md (French) * New translations classes.md (French) * New translations error-handling.md (French) * New translations develop-components.md (French) * New translations formeditor.md (French) * New translations forms.md (French) * New translations pictures.md (French) * New translations properties_markers.md (French) * New translations installation.md (French) * New translations entities.md (French) * New translations orda-events.md (French) * New translations ordaclasses.md (French) * New translations components.md (French) * New translations vp-set-workbook-options.md (French) * New translations configuring.md (French) * New translations openai.md (French) * New translations openaichatapi.md (French) * New translations openaichatcompletionsparameters.md (French) * New translations openaimessage.md (French) * New translations openaiparameters.md (French) * New translations asynchronous-call.md (French) * New translations compatible-openai.md (French) * New translations overview.md (French) * New translations formeditor.md (Spanish) * New translations sessionclass.md (Spanish) * New translations formeditor.md (Spanish) * New translations forms.md (Spanish) * New translations privileges.md (Spanish) * New translations components.md (Spanish) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimessage.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations orda-events.md (Spanish) * New translations sessionclass.md (Spanish) * New translations formeditor.md (Spanish) * New translations orda-events.md (Spanish) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations openai.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations openaitool.md (Spanish) * New translations http-rules.md (Spanish) * New translations formeditor.md (Spanish) * New translations forms.md (Spanish) * New translations webarea_overview.md (Spanish) * New translations orda-events.md (Spanish) * New translations privileges.md (Spanish) * New translations components.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (Spanish) * New translations managing-formulas.md (Spanish) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations openaichathelper.md (Spanish) * New translations openaimessage.md (Spanish) * New translations openaitool.md (Spanish) * New translations asynchronous-call.md (Spanish) * New translations compatible-openai.md (Spanish) * New translations formeditor.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaimessage.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaitool.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations formeditor.md (Japanese) * New translations components.md (Japanese) * New translations openai.md (Japanese) * New translations openaichathelper.md (Japanese) * New translations openaimessage.md (Japanese) * New translations openaitool.md (Japanese) * New translations formeditor.md (Portuguese, Brazilian) * New translations sessionclass.md (Portuguese, Brazilian) * New translations formeditor.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations formeditor.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) * New translations formeditor.md (Portuguese, Brazilian) * New translations components.md (Portuguese, Brazilian) --- .../version-21/FormEditor/formEditor.md | 27 ++++++++++--------- .../version-21/Project/components.md | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index a4e7b6b79650c0..ade39d9cdc748e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -56,7 +56,7 @@ A barra de ferramentas contém os seguintes elementos: | Ícone | Nome | Descrição | | ------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ![](../assets/en/FormEditor/execute.png) | Executar o formulário | Utilizado para testar a execução do formulário. Ao clicar nesse botão, 4D abre uma nova janela e exibe o formulário em seu contexto (lista de registros para um formulário de lista e página de registro atual para um formulário detalhado). O formulário é executado no processo principal. | -| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Allows selecting, moving and resizing form objects.

        **Note**: When an object of the Text or Group Box type is selected, pressing the **Enter** key lets you switch to editing mode.

        | +| ![](../assets/en/FormEditor/selection.png) | [Ferramenta de seleção](#selecting-objects) | Allows selecting, moving and resizing form objects.
        **Nota**: quando um objeto do tipo Texto ou Group Box é selecionado, pressionando a tecla **Enter** permite que você mude para o modo de edição. | | ![](../assets/en/FormEditor/zOrder.png) | [Ordem de entrada](#data-entry-order) | Alterna para o modo "Ordem de entrada", onde é possível visualizar e alterar a ordem de entrada atual do formulário. Observe que os escudos permitem a visualização da ordem de entrada atual, enquanto você ainda trabalha no formulário. | | ![](../assets/en/FormEditor/moving.png) | [Moving](#objetos-em-movimento) | Alterne para o modo "Mover", onde for possível alcançar qualquer parte do formulário rapidamente usando arrastar e soltar na janela. O cursor assume a forma de uma mão. Este modo de navegação é particularmente útil ao ampliar o formulário. | | ![](../assets/en/FormEditor/zoom.png) | [Zoom](#zoom) | Permite modificar a percentagem de visualização do formulário (100% por padrão). Você pode alternar para o modo "Zoom" clicando na lupa ou clicando diretamente na barra desejada. Esta função é descrita em pormenor na secção anterior. | @@ -146,11 +146,11 @@ Antes de executar qualquer operação em um objeto (como alterar a largura ou a Para selecionar um objeto usando a barra de ferramentas: -1. Click the Arrow tool in the toolbar.

        ![](../assets/en/FormEditor/selection.png)

        +1. Click the Arrow tool in the toolbar.
        ![](../assets/en/FormEditor/selection.png) -

        Quando você move o ponteiro para a área do formulário, ele se torna um ponteiro padrão em forma de seta

        . +
        When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. -2. Clique no objecto que deseja selecionar. Resizing handles identify the selected object.

        ![](../assets/en/FormEditor/selectResize.png)

        +2. Clique no objecto que deseja selecionar. Resizing handles identify the selected object.
        ../assets/en/FormEditor/selectResize.png Para selecionar um objecto utilizando a Lista de Propriedades: @@ -241,13 +241,13 @@ Para agrupar objectos: 1. Selecione o objecto agrupado que pretende desagrupar. 2. Elija **Agrupar** en el menú Objetos. OU - Clique no botão Group (Agrupar

        )

        na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        + Clique no botão Group (Agrupar
        ) na barra de ferramentas do editor de formulários:

        ![](../assets/en/FormEditor/group.png)

        4D marca o limite dos objetos recém-agrupados com alças. Nenhum manipulador marca o limite de nenhum dos objetos individuais no grupo. Agora, quando você modifica o objeto agrupado, altere todos os objetos que compõem o grupo. Para desagrupar objetos: 1. Seleccione o objecto ou objectos que pretende duplicar. -2. Choose **Ungroup** from the **Object** menu.

        OR

        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.

        If **Ungroup** is dimmed, this means that the selected object is already separated into its simplest form.

        4D marca os limites dos objetos individuais com alças. +2. Choose **Ungroup** from the **Object** menu.
        OR
        Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
        Se **Desagrupamento** for escurecido, isso significa que o objeto selecionado já está separado em sua forma mais simples. 4D marca os limites dos objetos individuais com alças. ### Alinhamento de objetos @@ -275,9 +275,9 @@ O Assistente de Alinhamento permite que você execute qualquer tipo de alinhamen Para exibir essa caixa de diálogo, selecione os objetos que deseja alinhar e escolha o comando **Alinhamento** no submenu **Alinhar** do menu **Objeto** ou no menu de contexto do editor. -- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.

        The example area displays the results of your selection.

        +- In the “Left/Right Alignment” and/or “Top/Bottom Alignment” areas, click the icon that corresponds to the alignment you want to perform.
        A área de exemplo apresenta os resultados da sua seleção. -- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:

        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. In this case, the position of the reference object will not be altered.

        +- Para executar um alinhamento que use o esquema de âncora padrão, clique em **Preview** ou **Apply**. Nesse caso, 4D usa o objeto que está mais distante na direção do alinhamento como âncora e alinha os outros objetos a esse objeto. Por exemplo, se quiser realizar um alinhamento correcto num conjunto de objectos, o objecto mais à direita será utilizado como âncora. OU:
        Para alinhar objetos a um objeto específico, selecione a opção **Alinhar em** e selecione o objeto ao qual você deseja que os outros objetos sejam alinhados na lista de objetos. Neste caso, a posição do objeto de referência não será alterada. Você pode visualizar os resultados do alinhamento clicando no botão **Preview**. Os objetos são então alinhados no editor de formulários, mas como a caixa de diálogo não desaparece, ainda é possível cancelar ou aplicar o alinhamento. @@ -314,7 +314,8 @@ Para distribuir objetos com igual espaçamento: 1. Selecione três ou mais objetos e clique na ferramenta Distribuir pretendida. -2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.

        ![](../assets/en/FormEditor/distributionTool.png)

        OR

        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor.

        4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. +2. In the toolbar, click on the distribution tool that corresponds to the distribution you want to apply.
        ![](../assets/en/FormEditor/distributionTool.png)
        OR
        Select a distribution menu command from the **Align** submenu in the **Object** menu or from the context menu of the editor. + 4D distribui os objetos em conformidade. Os objetos são distribuídos usando a distância para seus centros, e a maior distância entre dois objetos consecutivos é usada como referência. Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: @@ -322,9 +323,9 @@ Para distribuir objetos utilizando a caixa de diálogo Alinhar e distribuir: 2. Seleccione el comando **Alineación** del submenú **Alinear** del menú **Objeto** o del menú contextual del editor. A seguinte caixa de diálogo é exibida:![](../assets/en/FormEditor/alignmentAssistant.png) -3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)

        (ícone padrão de distribuição horizontal)

        A área de exemplo exibe os resultados da sua seleção. +3. Nas áreas de Alinhamento Esquerdo/Direita e/ou Topo/Bottom Alinhamento, clique no ícone de distribuição padrão: ![](../assets/en/FormEditor/horizontalDistribution.png)
        (ícone padrão de distribuição horizontal)
        A área de exemplo exibe os resultados da sua seleção. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.

        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.

        OR:

        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:

        +4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
        In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
        OR:
        To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opção funciona como um interruptor. If the Distribute check box is selected, the icons located below it perform a different function:
        - Horizontalmente, os ícones correspondem às seguintes distribuições: igualmente com relação aos lados esquerdos, centros (hor.) e os lados direito dos objetos selecionados. - Verticalmente, os ícones correspondem às seguintes distribuições: uniformemente em relação às bordas superiores, centros (vert.) e as bordas inferiores dos objetos selecionados. @@ -379,11 +380,11 @@ Este parágrafo descreve a visualização e a modificação da ordem de entrada Para ver ou alterar a ordem de entrada: -1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:

        ![](../assets/en/FormEditor/zOrder.png)

        +1. Selecione **Pedido de entrada** no menu **Formulário** ou clique no botão na barra de ferramentas da janela:
        ![](../assets/en/FormEditor/zOrder.png)
        O ponteiro se transforma em um ponteiro de ordem de entrada e 4D desenha uma linha na forma mostrando a ordem em que ele seleciona objetos durante a entrada de dados. A visualização e alteração da ordem de introdução de dados são as únicas acções que pode realizar até clicar em qualquer ferramenta na paleta Ferramentas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.

        ![](../assets/en/FormEditor/entryOrder3.png)

        4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
        ![](../assets/en/FormEditor/entryOrder3.png)
        4D will adjust the entry order accordingly. 3. Repita a etapa 2 tantas vezes quantas forem necessárias para definir a ordem de introdução de dados que desejar. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index 4c8dfc2ede1a2e..4abdc5190be21e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -326,7 +326,7 @@ When you add or update a component (whether [local](#local-components) or [from The Dependency manager reads each component's own `dependencies.json` file and recursively installs all required dependencies, respecting version specifications whenever possible. This eliminates the need to manually identify and add nested dependencies one by one. -- **Conflict resolution**: When multiple dependencies require [different versions](#) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. +- **Conflict resolution**: When multiple dependencies require [different versions](#defining-a-github-dependency-version-range) of the same component, the Dependency manager automatically attempts to resolve conflicts by finding a version that satisfies all overlapping version ranges. If a primary dependency conflicts with secondary dependencies, the primary dependency takes precedence. :::note From 2c51fb41745620a693c32d5767d2e258e207c173 Mon Sep 17 00:00:00 2001 From: mouna-elmaazouzi Date: Tue, 21 Oct 2025 15:30:50 +0100 Subject: [PATCH 105/119] note updated in Form Editor(Layering objects) --- docs/FormEditor/formEditor.md | 8 +++++++- versioned_docs/version-19/FormEditor/formEditor.md | 8 +++++++- versioned_docs/version-20-R10/FormEditor/formEditor.md | 8 +++++++- versioned_docs/version-20/FormEditor/formEditor.md | 8 +++++++- versioned_docs/version-21/FormEditor/formEditor.md | 8 +++++++- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/docs/FormEditor/formEditor.md b/docs/FormEditor/formEditor.md index c66e37efd28e53..b633180ffedb88 100644 --- a/docs/FormEditor/formEditor.md +++ b/docs/FormEditor/formEditor.md @@ -351,7 +351,13 @@ To move an object to another level, select it and choose: ![](../assets/en/FormEditor/level2.png) ->When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. + +:::note + +In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. + +::: When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. diff --git a/versioned_docs/version-19/FormEditor/formEditor.md b/versioned_docs/version-19/FormEditor/formEditor.md index b5f5e1ee8cc89d..f66b76c6a61f30 100644 --- a/versioned_docs/version-19/FormEditor/formEditor.md +++ b/versioned_docs/version-19/FormEditor/formEditor.md @@ -349,7 +349,13 @@ To move an object to another level, select it and choose: ![](../assets/en/FormEditor/level2.png) ->When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. + +:::note + +In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. + +::: When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. diff --git a/versioned_docs/version-20-R10/FormEditor/formEditor.md b/versioned_docs/version-20-R10/FormEditor/formEditor.md index bea05b4840859b..1ddd5c165b7b8c 100644 --- a/versioned_docs/version-20-R10/FormEditor/formEditor.md +++ b/versioned_docs/version-20-R10/FormEditor/formEditor.md @@ -351,7 +351,13 @@ To move an object to another level, select it and choose: ![](../assets/en/FormEditor/level2.png) ->When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. + +:::note + +In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. + +::: When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. diff --git a/versioned_docs/version-20/FormEditor/formEditor.md b/versioned_docs/version-20/FormEditor/formEditor.md index b5f5e1ee8cc89d..f66b76c6a61f30 100644 --- a/versioned_docs/version-20/FormEditor/formEditor.md +++ b/versioned_docs/version-20/FormEditor/formEditor.md @@ -349,7 +349,13 @@ To move an object to another level, select it and choose: ![](../assets/en/FormEditor/level2.png) ->When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. + +:::note + +In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. + +::: When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. diff --git a/versioned_docs/version-21/FormEditor/formEditor.md b/versioned_docs/version-21/FormEditor/formEditor.md index bea05b4840859b..1ddd5c165b7b8c 100644 --- a/versioned_docs/version-21/FormEditor/formEditor.md +++ b/versioned_docs/version-21/FormEditor/formEditor.md @@ -351,7 +351,13 @@ To move an object to another level, select it and choose: ![](../assets/en/FormEditor/level2.png) ->When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. +When several objects are superimposed, the **Ctrl+Shift+click** / **Command+Shift+click** shortcut can be used to select each object successively by going down a layer with each click. + +:::note + +In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. + +::: When ordering different levels, 4D always goes from the background to the foreground. As a result, the previous level moves the selection of objects one level towards the background. The next level moves the selection one level towards the foreground of the form. From 99ef2243a35897602c0480b2e0f6c91fa2266bb4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 22 Oct 2025 09:35:47 +0200 Subject: [PATCH 106/119] New Crowdin updates (#2973) * New translations dataclassclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations parameters.md (French) * New translations parameters.md (Spanish) * New translations parameters.md (Japanese) * New translations parameters.md (Portuguese, Brazilian) * New translations entities.md (French) * New translations entities.md (Spanish) * New translations entities.md (Japanese) * New translations entities.md (Portuguese, Brazilian) * New translations $filter.md (French) * New translations $filter.md (Spanish) * New translations $filter.md (Japanese) * New translations $filter.md (Portuguese, Brazilian) * New translations field-properties.md (French) * New translations field-properties.md (Spanish) * New translations field-properties.md (Japanese) * New translations field-properties.md (Portuguese, Brazilian) * New translations field-properties.md (French) * New translations field-properties.md (Spanish) * New translations field-properties.md (Japanese) * New translations field-properties.md (Portuguese, Brazilian) * New translations properties_action.md (French) * New translations properties_action.md (Spanish) * New translations properties_action.md (Japanese) * New translations properties_action.md (Portuguese, Brazilian) * New translations entities.md (French) * New translations entities.md (Spanish) * New translations entities.md (Japanese) * New translations entities.md (Portuguese, Brazilian) * New translations dataclassclass.md (French) * New translations dataclassclass.md (Spanish) * New translations dataclassclass.md (Japanese) * New translations dataclassclass.md (Portuguese, Brazilian) * New translations field-properties.md (French) * New translations field-properties.md (Spanish) * New translations field-properties.md (Japanese) * New translations field-properties.md (Portuguese, Brazilian) * New translations properties_action.md (French) * New translations properties_action.md (Spanish) * New translations properties_action.md (Japanese) * New translations properties_action.md (Portuguese, Brazilian) * New translations entities.md (French) * New translations entities.md (Spanish) * New translations entities.md (Japanese) * New translations entities.md (Portuguese, Brazilian) * New translations $filter.md (French) * New translations $filter.md (Spanish) * New translations $filter.md (Japanese) * New translations $filter.md (Portuguese, Brazilian) * New translations triggers-new.md (French) * New translations triggers-new.md (Spanish) * New translations triggers-new.md (Japanese) * New translations triggers-new.md (Portuguese, Brazilian) * New translations collectionclass.md (Japanese) * New translations dataclassclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) * New translations collectionclass.md (Japanese) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) * New translations collectionclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations compatible-openai.md (Japanese) * New translations overview.md (Japanese) --- .../current/API/DataClassClass.md | 10 +++--- .../current/Concepts/parameters.md | 6 ---- .../current/Develop/field-properties.md | 2 +- .../current/Develop/triggers-new.md | 15 ++++---- .../current/ORDA/entities.md | 2 +- .../current/REST/$filter.md | 10 +++--- .../Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-20-R10/ORDA/entities.md | 2 +- .../version-21/API/DataClassClass.md | 10 +++--- .../version-21/Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-21/ORDA/entities.md | 2 +- .../version-21/REST/$filter.md | 10 +++--- .../current/API/DataClassClass.md | 10 +++--- .../current/Concepts/parameters.md | 6 ---- .../current/Develop/field-properties.md | 22 ++++++------ .../current/Develop/triggers-new.md | 5 ++- .../current/ORDA/entities.md | 2 +- .../current/REST/$filter.md | 10 +++--- .../Develop/field-properties.md | 22 ++++++------ .../FormObjects/properties_Action.md | 8 ++--- .../version-20-R10/ORDA/entities.md | 2 +- .../version-21/API/DataClassClass.md | 10 +++--- .../version-21/Develop/field-properties.md | 22 ++++++------ .../FormObjects/properties_Action.md | 8 ++--- .../version-21/ORDA/entities.md | 2 +- .../version-21/REST/$filter.md | 10 +++--- .../current/API/CollectionClass.md | 10 +++--- .../current/API/DataClassClass.md | 10 +++--- .../current/API/EntityClass.md | 36 +++++++++---------- .../current/Concepts/parameters.md | 6 ---- .../current/Develop/field-properties.md | 2 +- .../current/Develop/triggers-new.md | 5 ++- .../current/ORDA/entities.md | 2 +- .../current/REST/$filter.md | 10 +++--- .../current/aikit/compatible-openai.md | 4 +-- .../current/aikit/overview.md | 4 +-- .../version-20-R10/API/CollectionClass.md | 10 +++--- .../Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-20-R10/ORDA/entities.md | 2 +- .../version-20-R10/aikit/compatible-openai.md | 4 +-- .../version-20-R10/aikit/overview.md | 4 +-- .../version-21/API/CollectionClass.md | 10 +++--- .../version-21/API/DataClassClass.md | 10 +++--- .../version-21/API/EntityClass.md | 36 +++++++++---------- .../version-21/Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-21/ORDA/entities.md | 2 +- .../version-21/REST/$filter.md | 10 +++--- .../version-21/aikit/compatible-openai.md | 4 +-- .../version-21/aikit/overview.md | 4 +-- .../current/API/DataClassClass.md | 10 +++--- .../current/Concepts/parameters.md | 6 ---- .../current/Develop/field-properties.md | 2 +- .../current/Develop/triggers-new.md | 5 ++- .../current/ORDA/entities.md | 2 +- .../current/REST/$filter.md | 10 +++--- .../Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-20-R10/ORDA/entities.md | 2 +- .../version-21/API/DataClassClass.md | 10 +++--- .../version-21/Develop/field-properties.md | 2 +- .../FormObjects/properties_Action.md | 8 ++--- .../version-21/ORDA/entities.md | 2 +- .../version-21/REST/$filter.md | 10 +++--- 67 files changed, 250 insertions(+), 262 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md index b4ddd2e7957dac..08f4b68da0bcd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -1187,11 +1187,11 @@ Si *attributePath* designa un atributo que almacena [**objetos vectores**](../AP En este caso, el parámetro *value* debe ser un **objeto vectorial de comparación** que contenga las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | -| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Puede utilizar una de las siguientes constantes (Texto)
      962. :`mk cosine` (por defecto si se omite): calcula la distancia coseno entre vectores.
      963. `mk dot`: calcula la similitud punto de los vectores.
      964. `mk euclidean`: calcula la distancia euclideana entre vectores. | -| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| --------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | +| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      965. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      966. `mk dot`: calculates the dot similarity of vectors.
      967. `mk euclidean`: calculates the Euclidean distance between vectors. | +| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Sólo se admite un subconjunto de símbolos **comparadores**. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md index 3a78e87c6b82f8..8f1aa078d11999 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -295,12 +295,6 @@ La sintaxis heredada para declarar parámetros variadicos (`C_TEXT(${4})`) está ::: -## Triggers y On Drag Over - -Algunos contextos no soportan la declaración en un método "Compiler_", por lo que se tratan de forma específica: - -- Triggers - El parámetro $0 (Entero largo), que es el resultado de un trigger, será digitado por el compilador si el parámetro no ha sido declarado explícitamente. Sin embargo, si quiere declararlo, debe hacerlo en el propio trigger. - ## Tipo de parámetro equivocado Llamar a un parámetro con un tipo incorrecto o una clase incorrecta (para parámetros de objeto) es un [error](error-handling.md) que impide la correcta ejecución. Por ejemplo, si escribe los siguientes métodos: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md index d486ff3d6bbabd..7efd3ff28141a8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Propiedades de los campos --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index a40afb77231567..9c6e8d2308a770 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -3,16 +3,19 @@ id: triggers-new title: Triggers --- +para importar + -## Triggers vs ORDA entity events +## Triggers vs eventos entidad ORDA + +Los **triggers** (también conocidos como eventos base de datos) y los [**eventos entidad ORDA**](../ORDA/orda-events.md) tienen propósitos similares: establecen reglas para controlar las operaciones fundamentales sobre los datos (crear, editar o eliminar). Sin embargo, no funcionan al mismo nivel: -**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: -- triggers are handled at the database level, which is the lowest level, -- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. +- los triggers se gestionan a nivel de base de datos, que es el nivel más bajo, +- Los eventos de entidad ORDA se gestionan en el nivel [datastore](../ORDA/dsMapping.md#datastore), que está relacionado con su lógica de negocio. -Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. +Las acciones sobre los datos ejecutadas a través del almacén de datos, como [`.save()`](../API/EntityClass.md#save) o [`.drop`](../API/EntityClass.md#drop), llamarán a los triggers, si los hubiera. -On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. +Por otra parte, las acciones se activaron a nivel de base de datos 4D usando los comandos de lenguaje clásico 4D, tal como [`SAVE RECORD`](../commands/save-record) o [acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) NO activará eventos de entidades ORDA. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md index 2ac6f5af37a028..759037097c7260 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta función se llama cada vez que se solicita una selección de entidades o una entidad de la dataclass. El filtro se ejecuta una vez, cuando se crea la selección de entidades. -El filtro debe devolver una selección de entidades de la clase de datos. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +El filtro debe devolver una selección de entidades de la clase de datos. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md index 42725545b33289..ca52f5579fa456 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propiedad | Tipo | Descripción | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Colección de objetos) | Obligatorio. Una colección que representa el vector a comparar | | -| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
      968. "cosine" (default if omitted): calculates the cosine distance between vectors.
      969. "dot": calculates the dot similarity of vectors.
      970. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| -------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obligatorio. Una colección que representa el vector a comparar | +| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
      971. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      972. "dot": calculates the dot similarity of vectors.
      973. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Only a subset of **comparator** symbols are supported with vector comparisons. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index d486ff3d6bbabd..7efd3ff28141a8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Propiedades de los campos --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md index 1e4635722fa0b1..879812bdbe3360 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md @@ -189,15 +189,15 @@ En otros casos (list box basados en selecciones temporales, columnas asociadas a ## Acción estándar -Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. +Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Puede asignar al mismo tiempo una acción estándar y un método proyecto de un objeto. En este caso, la acción estándar suele ejecutarse después del método y 4D utiliza esta acción para activar/desactivar el objeto según el contexto actual. Cuando se desactiva un objeto, no se puede ejecutar el método proyecto asociado. #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| action | string | El nombre de una [acción estándar válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nombre | Tipos de datos | Valores posibles | +| ------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objetos soportados diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 7a2db28e32c11f..1d3ac2bbf5320c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta función se llama cada vez que se solicita una selección de entidades o una entidad de la dataclass. El filtro se ejecuta una vez, cuando se crea la selección de entidades. -El filtro debe devolver una selección de entidades de la clase de datos. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +El filtro debe devolver una selección de entidades de la clase de datos. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 11ce46e883e739..d300006546e7b0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ Si *attributePath* designa un atributo que almacena [**objetos vectores**](../AP En este caso, el parámetro *value* debe ser un **objeto vectorial de comparación** que contenga las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | -| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      974. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      975. `mk dot`: calcula la similitud en puntos de los vectores.
      976. `mk euclidean`: calcula la distancia euclidiana entre vectores. | -| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| --------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar | +| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
      977. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      978. `mk dot`: calcula la similitud en puntos de los vectores.
      979. `mk euclidean`: calcula la distancia euclidiana entre vectores. | +| threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Sólo se admite un subconjunto de símbolos **comparadores**. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index d486ff3d6bbabd..7efd3ff28141a8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Propiedades de los campos --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md index 1e4635722fa0b1..879812bdbe3360 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md @@ -189,15 +189,15 @@ En otros casos (list box basados en selecciones temporales, columnas asociadas a ## Acción estándar -Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. +Actividades típicas que deben realizar los objetos activos (\*por ejemplo, permitir al usuario aceptar, cancelar o eliminar registros, desplazarse entre registros o de una página a otra en un formulario multipágina, etc.) han sido predefinidas por 4D como acciones estándar. Se describen con detalle en la sección [Acciones estándar](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) de la *manual de Diseño*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Puede asignar al mismo tiempo una acción estándar y un método proyecto de un objeto. En este caso, la acción estándar suele ejecutarse después del método y 4D utiliza esta acción para activar/desactivar el objeto según el contexto actual. Cuando se desactiva un objeto, no se puede ejecutar el método proyecto asociado. #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| action | string | El nombre de una [acción estándar válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nombre | Tipos de datos | Valores posibles | +| ------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objetos soportados diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 7a2db28e32c11f..1d3ac2bbf5320c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta función se llama cada vez que se solicita una selección de entidades o una entidad de la dataclass. El filtro se ejecuta una vez, cuando se crea la selección de entidades. -El filtro debe devolver una selección de entidades de la clase de datos. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +El filtro debe devolver una selección de entidades de la clase de datos. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 42725545b33289..ca52f5579fa456 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propiedad | Tipo | Descripción | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Colección de objetos) | Obligatorio. Una colección que representa el vector a comparar | | -| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
      980. "cosine" (default if omitted): calculates the cosine distance between vectors.
      981. "dot": calculates the dot similarity of vectors.
      982. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| -------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obligatorio. Una colección que representa el vector a comparar | +| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
      983. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      984. "dot": calculates the dot similarity of vectors.
      985. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | Only a subset of **comparator** symbols are supported with vector comparisons. Tenga en cuenta que comparan los resultados con el valor umbral: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md index f52b45daec58b3..f625372d8bc7fb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -1181,11 +1181,11 @@ Si *attributePath* désigne un attribut stockant des [**objets vecteurs**](../AP Dans ce cas, le paramètre *value* doit être un **objet vecteur de comparaison** contenant les propriétés suivantes : -| Propriété | Type | Description | -| --------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | -| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Vous pouvez utiliser l'une des constantes (texte) suivantes
      986. :`mk cosine` (par défaut si omis) : calcule la distance en cosinus entre les vecteurs.
      987. `mk dot` : calcule la similarité en points des vecteurs.
      988. `mk euclidean` : calcule la distance euclidienne entre les vecteurs. | -| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | +| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | +| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. You can use one of the following (Text) constants:
      989. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      990. `mk dot`: calculates the dot similarity of vectors.
      991. `mk euclidean`: calculates the Euclidean distance between vectors. | +| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Seul un sous-ensemble de symboles **comparateurs** est pris en charge. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : 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 3e106c0ff30907..126ca42643bd67 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -295,12 +295,6 @@ L'ancienne syntaxe de déclaration des paramètres variadiques (`C_TEXT(${4})`) ::: -## Triggers et On Drag Over - -Certains contextes ne prennent pas en charge la déclaration dans une méthode "Compiler_", ils sont donc gérés de manière spécifique : - -- Triggers - Le paramètre $0 (Entier long), qui résulte d'un trigger, sera typé par le compilateur si le paramètre n'a pas été explicitement déclaré. Néanmoins, si vous souhaitez le déclarer, vous devez le faire dans le trigger lui-même. - ## Type de paramètre erroné L'appel d'un paramètre d'un mauvais type ou d'une mauvaise classe (pour les paramètres objet) est une [erreur](error-handling.md) qui empêche une exécution correcte. Par exemple, si vous écrivez les méthodes suivantes : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/field-properties.md index e8cbe982173df0..c3ca0c1e72ffd8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -3,34 +3,34 @@ id: field-properties title: Propriétés des champs --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class ![](../assets/en/Develop/inspector-class.png) -This property is available for fields of type **Object** (in 4D projects only). It allows you to define a **class-typed object field**, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. +Cette propriété est disponible pour les champs de type **Objet** (dans les projets 4D uniquement). Elle vous permet de définir un **champ de type classe d'objet**, ce qui améliore la complétion de code, la vérification syntaxique et la validation d'exécution lors de la saisie de code impliquant des champs objet. -You can enter any valid class name in this property, including: +Vous pouvez saisir n'importe quel nom de classe valide dans cette propriété, y compris : -- User classes (e.g. `cs.MyClass`) -- Built-in 4D classes (e.g. `4D.File`, `4D.Folder`) -- [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) +- des classes utilisateurs (par exemple `cs.MyClass`) +- des classes 4D intégrées (par exemple `4D.File`, `4D.Folder`) +- des classes [exposées](../Extensions/develop-components.md#sharing-of-classes) définies par les composants (par exemple `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si vous saisissez un nom de classe non valide, la saisie est rejetée. :::note -**Non-streamable classes** such as [ORDA Data Model classes](../ORDA/ordaClasses.md), [file handles](../API/FileHandleClass.md), [web server](../API/WebServerClass.md)... cannot be associated to object fields. +Les **classes non *streamables*** telles que les [classes du modèle de données ORDA](../ORDA/ordaClasses.md), la classe [FileHandle](../API/FileHandleClass.md), [WebServer](../API/WebServerClass.md)... ne peuvent pas être associées à des champs objets. ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. If not or if the object has no class, an error is triggered. Accessing unknown attributes will also raise syntax errors. +Dans votre code, lors de l'affectation d'une valeur à un champ de type classe d'objet, 4D vérifie qu'elle appartient à la classe déclarée. Si ce n'est pas le cas ou si l'objet n'a pas de classe, une erreur est déclenchée. L'accès à des attributs inconnus entraîne également des erreurs de syntaxe. -To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. +Pour récupérer le nom de la classe associée lors de l'exécution, utilisez la propriété [`classID`](../API/DataClassClass.md#attributename), par exemple `ds.MyTable.MyField.classID`. ### Voir également -- [Blog post: Stricter class-based typing for objects](https://blog.4d.com/stricter-class-based-typing-for-objects/) +- [Article de blog : Un typage plus strict des objets basé sur les classes](https://blog.4d.com/stricter-class-based-typing-for-objects/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index a40afb77231567..268972c12a12f8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -3,16 +3,19 @@ id: triggers-new title: Triggers --- +to import + ## Triggers vs ORDA entity events **Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: + - triggers are handled at the database level, which is the lowest level, - ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. -On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md index bee47dac9df190..bf8083100bc9ed 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Cette fonction est appelée chaque fois qu'une entity selection ou une entité de la dataclass est demandée. Le filtre est exécuté une seule fois, lors de la création de l'entity selection. -Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d'une entity selection basée sur une recherche, stockée dans le [`Storage`], etc. +Le filtre doit retourner une entity selection de la dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$filter.md index 225bb92db1df45..a94eeffc58ee5b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propriété | Type | Description | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Collection d'objets) | Obligatoire. A collection that represents the vector to compare | | -| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Supported values:
      992. "cosine" (default if omitted): calculates the cosine distance between vectors.
      993. "dot": calculates the dot similarity of vectors.
      994. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | +| -------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obligatoire. A collection that represents the vector to compare | +| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Supported values:
      995. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      996. "dot": calculates the dot similarity of vectors.
      997. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Only a subset of **comparator** symbols are supported with vector comparisons. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index e8cbe982173df0..c3ca0c1e72ffd8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -3,34 +3,34 @@ id: field-properties title: Propriétés des champs --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class ![](../assets/en/Develop/inspector-class.png) -This property is available for fields of type **Object** (in 4D projects only). It allows you to define a **class-typed object field**, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. +Cette propriété est disponible pour les champs de type **Objet** (dans les projets 4D uniquement). Elle vous permet de définir un **champ de type classe d'objet**, ce qui améliore la complétion de code, la vérification syntaxique et la validation d'exécution lors de la saisie de code impliquant des champs objet. -You can enter any valid class name in this property, including: +Vous pouvez saisir n'importe quel nom de classe valide dans cette propriété, y compris : -- User classes (e.g. `cs.MyClass`) -- Built-in 4D classes (e.g. `4D.File`, `4D.Folder`) -- [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) +- des classes utilisateurs (par exemple `cs.MyClass`) +- des classes 4D intégrées (par exemple `4D.File`, `4D.Folder`) +- des classes [exposées](../Extensions/develop-components.md#sharing-of-classes) définies par les composants (par exemple `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si vous saisissez un nom de classe non valide, la saisie est rejetée. :::note -**Non-streamable classes** such as [ORDA Data Model classes](../ORDA/ordaClasses.md), [file handles](../API/FileHandleClass.md), [web server](../API/WebServerClass.md)... cannot be associated to object fields. +Les **classes non *streamables*** telles que les [classes du modèle de données ORDA](../ORDA/ordaClasses.md), la classe [FileHandle](../API/FileHandleClass.md), [WebServer](../API/WebServerClass.md)... ne peuvent pas être associées à des champs objets. ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. If not or if the object has no class, an error is triggered. Accessing unknown attributes will also raise syntax errors. +Dans votre code, lors de l'affectation d'une valeur à un champ de type classe d'objet, 4D vérifie qu'elle appartient à la classe déclarée. Si ce n'est pas le cas ou si l'objet n'a pas de classe, une erreur est déclenchée. L'accès à des attributs inconnus entraîne également des erreurs de syntaxe. -To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. +Pour récupérer le nom de la classe associée lors de l'exécution, utilisez la propriété [`classID`](../API/DataClassClass.md#attributename), par exemple `ds.MyTable.MyField.classID`. ### Voir également -- [Blog post: Stricter class-based typing for objects](https://blog.4d.com/stricter-class-based-typing-for-objects/) +- [Article de blog : Un typage plus strict des objets basé sur les classes](https://blog.4d.com/stricter-class-based-typing-for-objects/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md index 35f9af9007f7a2..2405612664b108 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md @@ -191,15 +191,15 @@ Dans d'autres cas (list box basées sur des sélections nommées, colonnes assoc ## Action standard -Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. +Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Vous pouvez associer à la fois une action standard et une méthode projet à un objet. Dans ce cas, l'action standard est généralement exécutée après la méthode et 4D utilise cette action pour activer/désactiver l'objet en fonction du contexte courant. Lorsqu’un objet est désactivé, la méthode projet associée ne peut être exécutée. #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| action | string | Le nom d'une [action standard valide](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nom | Type de données | Valeurs possibles | +| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objets pris en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 304b4e4426c4d5..460a8d4b10f780 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Cette fonction est appelée chaque fois qu'une entity selection ou une entité de la dataclass est demandée. Le filtre est exécuté une seule fois, lors de la création de l'entity selection. -Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d'une entity selection basée sur une recherche, stockée dans le [`Storage`], etc. +Le filtre doit retourner une entity selection de la dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index b19e8e8e1e63c4..a38923d1b9c912 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1181,11 +1181,11 @@ Si *attributePath* désigne un attribut stockant des [**objets vecteurs**](../AP Dans ce cas, le paramètre *value* doit être un **objet vecteur de comparaison** contenant les propriétés suivantes : -| Propriété | Type | Description | -| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | -| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Vous pouvez utiliser l'une des constantes (texte) suivantes
      998. :`mk cosine` (par défaut si omis) : calcule la distance cosinus entre les vecteurs.
      999. `mk dot` : calcule la similarité en points des vecteurs.
      1000. `mk euclidean` : calcule la distance euclidienne entre les vecteurs. | -| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | +| --------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obligatoire. Le vecteur à comparer | +| metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. You can use one of the following (Text) constants:
      1001. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      1002. `mk dot` : calcule la similarité en points des vecteurs.
      1003. `mk euclidean` : calcule la distance euclidienne entre les vecteurs. | +| threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Seul un sous-ensemble de symboles **comparateurs** est pris en charge. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index e8cbe982173df0..c3ca0c1e72ffd8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -3,34 +3,34 @@ id: field-properties title: Propriétés des champs --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class ![](../assets/en/Develop/inspector-class.png) -This property is available for fields of type **Object** (in 4D projects only). It allows you to define a **class-typed object field**, enhancing code completion, syntax checking, and runtime validation when typing code that involves object fields. +Cette propriété est disponible pour les champs de type **Objet** (dans les projets 4D uniquement). Elle vous permet de définir un **champ de type classe d'objet**, ce qui améliore la complétion de code, la vérification syntaxique et la validation d'exécution lors de la saisie de code impliquant des champs objet. -You can enter any valid class name in this property, including: +Vous pouvez saisir n'importe quel nom de classe valide dans cette propriété, y compris : -- User classes (e.g. `cs.MyClass`) -- Built-in 4D classes (e.g. `4D.File`, `4D.Folder`) -- [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) +- des classes utilisateurs (par exemple `cs.MyClass`) +- des classes 4D intégrées (par exemple `4D.File`, `4D.Folder`) +- des classes [exposées](../Extensions/develop-components.md#sharing-of-classes) définies par les composants (par exemple `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si vous saisissez un nom de classe non valide, la saisie est rejetée. :::note -**Non-streamable classes** such as [ORDA Data Model classes](../ORDA/ordaClasses.md), [file handles](../API/FileHandleClass.md), [web server](../API/WebServerClass.md)... cannot be associated to object fields. +Les **classes non *streamables*** telles que les [classes du modèle de données ORDA](../ORDA/ordaClasses.md), la classe [FileHandle](../API/FileHandleClass.md), [WebServer](../API/WebServerClass.md)... ne peuvent pas être associées à des champs objets. ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. If not or if the object has no class, an error is triggered. Accessing unknown attributes will also raise syntax errors. +Dans votre code, lors de l'affectation d'une valeur à un champ de type classe d'objet, 4D vérifie qu'elle appartient à la classe déclarée. Si ce n'est pas le cas ou si l'objet n'a pas de classe, une erreur est déclenchée. L'accès à des attributs inconnus entraîne également des erreurs de syntaxe. -To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. +Pour récupérer le nom de la classe associée lors de l'exécution, utilisez la propriété [`classID`](../API/DataClassClass.md#attributename), par exemple `ds.MyTable.MyField.classID`. ### Voir également -- [Blog post: Stricter class-based typing for objects](https://blog.4d.com/stricter-class-based-typing-for-objects/) +- [Article de blog : Un typage plus strict des objets basé sur les classes](https://blog.4d.com/stricter-class-based-typing-for-objects/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md index 35f9af9007f7a2..2405612664b108 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md @@ -191,15 +191,15 @@ Dans d'autres cas (list box basées sur des sélections nommées, colonnes assoc ## Action standard -Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. +Les actions types effectuées par les objets actifs (par exemple, permettre à l'utilisateur d'accepter, d'annuler ou de supprimer des enregistrements, de passer d'un enregistrement à l'autre ou d'une page à l'autre dans un formulaire à plusieurs pages, etc.) ont été prédéfinies par 4D comme des actions standard. Elles sont décrites en détail dans la section [Actions standard](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) du *manuel de développement*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Vous pouvez associer à la fois une action standard et une méthode projet à un objet. Dans ce cas, l'action standard est généralement exécutée après la méthode et 4D utilise cette action pour activer/désactiver l'objet en fonction du contexte courant. Lorsqu’un objet est désactivé, la méthode projet associée ne peut être exécutée. #### Grammaire JSON -| Nom | Type de données | Valeurs possibles | -| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| action | string | Le nom d'une [action standard valide](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nom | Type de données | Valeurs possibles | +| ------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objets pris en charge diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 304b4e4426c4d5..460a8d4b10f780 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -462,7 +462,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Cette fonction est appelée chaque fois qu'une entity selection ou une entité de la dataclass est demandée. Le filtre est exécuté une seule fois, lors de la création de l'entity selection. -Le filtre doit retourner une entity selection de la dataclass. Il peut s'agir d'une entity selection basée sur une recherche, stockée dans le [`Storage`], etc. +Le filtre doit retourner une entity selection de la dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 34fb6f7e9a251a..e17f1cb10ba4d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propriété | Type | Description | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Collection d'objets) | Obligatoire. A collection that represents the vector to compare | | -| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Valeurs prises en charge :
      1004. "cosine" (valeur par défaut si omis) : calcule la distance cosinus entre les vecteurs.
      1005. "dot" : calcule la similarité de points des vecteurs.
      1006. "euclidean" : calcule la distance euclidienne entre les vecteurs. | | -| | [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | +| Propriété | Type | Description | +| -------------------------------------------------------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obligatoire. A collection that represents the vector to compare | +| [].metric | Text | Optionnel. [Calcul vectoriel](../API/VectorClass.md#understanding-the-different-vector-computations) à utiliser pour la recherche. Supported values:
      1007. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      1008. "dot" : calcule la similarité de points des vecteurs.
      1009. "euclidean" : calcule la distance euclidienne entre les vecteurs. | +| [].threshold | Real | Facultatif (valeur par défaut : 0,5). Valeur seuil utilisée pour filtrer les comparaisons de vecteurs sur la base de leur score de similarité cosinus, point ou euclidienne selon la "métrique" sélectionnée. Il est fortement recommandé de choisir une similitude qui corresponde le mieux à votre cas d'utilisation spécifique pour des résultats optimaux. | Only a subset of **comparator** symbols are supported with vector comparisons. Notez qu'ils comparent les résultats à la valeur de seuil (threshold) : diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md index e4e4c9dc5dc0fe..490bac9a2b2ca8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md @@ -3220,15 +3220,15 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 > このコマンドは、元のコレクションを変更します。 引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 -You can also pass one of the following constants in the *ascOrDesc* parameter: +*ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: ``` -|Constant| Type|Value|Comment| +|定数| 型|値|詳細| |---|---|---|---| -|ck ascending|Integer|0|Elements are ordered in ascending order (default)| -|ck descending|Integer|1|Elements are ordered in descending order| +|ck ascending|Integer|0|要素は昇順に並んでいます(デフォルト)| +|ck descending|Integer|1|要素は降順に並んでいます| -This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). +このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 ``` コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 7e34500526e8f9..8212f0fcefa73a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -1187,11 +1187,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" この場合、*value* 引数は、以下のプロパティを格納した**比較ベクトルオブジェクト** である必要があります: -| プロパティ | 型 | 説明 | -| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | -| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキストの)定数のいずれか一つを使用することができます:
      1010. `mk cosine` (省略時にデフォルト): ベクトル間のコサイン距離を計算します。
      1011. `mk dot`: ベクトル間のドット類似度を計算します。
      1012. `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | -| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| --------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | +| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキストの)定数のいずれか一つを使用することができます:
      1013. `mk cosine` (省略時にデフォルト): ベクトル間のコサイン類似度を計算します。
      1014. `mk dot`: ベクトル間のドット類似度を計算します。
      1015. `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | +| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | **comparator** 記号の、一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md index ee2f4b82093a42..2284f00693599d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -338,10 +338,10 @@ vCompareResult1 (すべての差異が返されています):
        履歴 -| リリース | 内容 | -| ---- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | 追加 | +| リリース | 内容 | +| ---- | ----------- | +| 21 | ステータス7と8を追加 | +| 17 | 追加 |
        @@ -368,7 +368,7 @@ vCompareResult1 (すべての差異が返されています): **戻り値** -The object returned by `.drop()` contains the following properties: +`.drop()` によって返されるオブジェクトには以下のプロパティが格納されます: | プロパティ | | 型 | 説明 | | --------------------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | @@ -393,15 +393,15 @@ The object returned by `.drop()` contains the following properties: (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1016. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1017. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
      1018. **Associated statusText**: "Entity does not exist anymore" | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "Already locked" (既にロックされています) | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1019. with `.save()`: error only if the `dk auto merge` option is not used
      1020. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1021. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      1022. **Associated statusText**: "Stamp has changed"
      1023. | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1024. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1025. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop() を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。
      1026. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "Already locked" (既にロックされています) | +| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1027. with `.save()`: error only if the `dk auto merge` option is not used
      1028. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1029. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      1030. **Associated statusText**: "Stamp has changed"
      1031. | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1214,10 +1214,10 @@ $info:=$address.getRemoteContextAttributes()
        履歴 -| リリース | 内容 | -| ---- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | 追加 | +| リリース | 内容 | +| ---- | ----------- | +| 21 | ステータス7と8を追加 | +| 17 | 追加 |
        diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md index a9acfddec12d2b..7d8c30b7a7a56f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -295,12 +295,6 @@ $total3:=SumNumbers(1; 2; "hello"; 4; 5) // エラー ::: -## トリガーと On Drag Over - -コンテキストによっては、"Compiler_" メソッドでの宣言をサポートしていないため、別途処理されます: - -- トリガー - トリガーの結果である $0 パラメーター (倍長整数) は、明確に定義されていなければコンパイラーによって型指定されます。 定義する場合は、トリガーの中でおこなう必要があります。 - ## 引数の型間違い 間違った型の引数、または(オブジェクト型引数に対して)間違ったクラスの引数を呼び出すことは、正しい実行を妨げる [エラー](error-handling.md) となります。 たとえば、次のようなメソッドを書いたとします: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/field-properties.md index 668003a8ccf9e7..a3dee0bff39419 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: フィールドプロパティ --- -他のフィールドプロパティについては、[doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.ja.html#5523008) を参照してください。 +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index a40afb77231567..268972c12a12f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -3,16 +3,19 @@ id: triggers-new title: Triggers --- +to import + ## Triggers vs ORDA entity events **Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: + - triggers are handled at the database level, which is the lowest level, - ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. -On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md index 29e1132a0df443..eb60ae72c2ff5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -469,7 +469,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection この関数は、データクラスのエンティティセレクションまたはエンティティが要求されるたびに呼び出されます。 フィルターは、エンティティセレクションが作成されたときに一度だけ実行されます。 -フィルターは、データクラスのエンティティセレクションを返さなければなりません。 戻り値のエンティティセレクションには、クエリの結果や、[`Storage`] に格納されているものなどが使えます。 +フィルターは、データクラスのエンティティセレクションを返さなければなりません。 It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md index 28f0596b8c40dc..e7d79b10f1bfdd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -89,11 +89,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| プロパティ | 型 | 説明 | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [].vector | Object の Collection) | 必須設定です。 A collection that represents the vector to compare | | -| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 Supported values:
      1032. "cosine" (default if omitted): calculates the cosine distance between vectors.
      1033. "dot": calculates the dot similarity of vectors.
      1034. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| -------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | 必須設定です。 A collection that represents the vector to compare | +| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 Supported values:
      1035. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      1036. "dot": calculates the dot similarity of vectors.
      1037. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | Only a subset of **comparator** symbols are supported with vector comparisons. これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index bb57ed880d46f3..c7f6e6cc20e6a8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +そのためには元の `baseURL` をプロバイダーのものに設定し、必要であればそのサービスのAPI キーを使用するだけです。 ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | Default baseURL | ドキュメント | +| プロバイダ | デフォルトの baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md index 18196a64eec1cf..06c467d9cc2b7b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -See some examples below. +また以下の例題も参照して下さい。 #### チャット diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md index b073eab4be9478..a1e68f21ebc952 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md @@ -3220,15 +3220,15 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 > このコマンドは、元のコレクションを変更します。 引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 -You can also pass one of the following constants in the *ascOrDesc* parameter: +*ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: ``` - |Constant| Type|Value|Comment| + |定数| 型|値|詳細| |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |ck ascending|Integer|0|要素は昇順に並んでいます(デフォルト)| + |ck descending|Integer|1|要素は降順に並んでいます| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 ``` コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index 668003a8ccf9e7..a3dee0bff39419 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: フィールドプロパティ --- -他のフィールドプロパティについては、[doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.ja.html#5523008) を参照してください。 +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md index aad5530955644b..36a6abaf633cf6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md @@ -212,15 +212,15 @@ title: 動作 ## 標準アクション -アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 +アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). フォームオブジェクトには、標準アクションとメソッドの両方を割り当てることができます。 この場合、標準アクションは通常、メソッドの後に実行されます。また、4D はこのアクションを使用して、カレントコンテキストに応じてオブジェクトを有効化/無効化します。 フォームオブジェクトが無効化されていた場合、関連づけられたメソッドは実行されません。 #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------ | ------ | ------------------------------------------------------------------------------------ | -| action | string | 有効な [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) | +| 名称 | データタイプ | とりうる値 | +| ------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### 対象オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 29e1132a0df443..eb60ae72c2ff5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -469,7 +469,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection この関数は、データクラスのエンティティセレクションまたはエンティティが要求されるたびに呼び出されます。 フィルターは、エンティティセレクションが作成されたときに一度だけ実行されます。 -フィルターは、データクラスのエンティティセレクションを返さなければなりません。 戻り値のエンティティセレクションには、クエリの結果や、[`Storage`] に格納されているものなどが使えます。 +フィルターは、データクラスのエンティティセレクションを返さなければなりません。 It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index bb57ed880d46f3..c7f6e6cc20e6a8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +そのためには元の `baseURL` をプロバイダーのものに設定し、必要であればそのサービスのAPI キーを使用するだけです。 ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | Default baseURL | ドキュメント | +| プロバイダ | デフォルトの baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md index 18196a64eec1cf..06c467d9cc2b7b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -See some examples below. +また以下の例題も参照して下さい。 #### チャット diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index b073eab4be9478..a1e68f21ebc952 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3220,15 +3220,15 @@ $r:=$c.reduceRight(Formula($1.accumulator*=$1.value); 1) // 戻り値は 86400 > このコマンドは、元のコレクションを変更します。 引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 -You can also pass one of the following constants in the *ascOrDesc* parameter: +*ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: ``` - |Constant| Type|Value|Comment| + |定数| 型|値|詳細| |---|---|---|---| - |ck ascending|Integer|0|Elements are ordered in ascending order (default)| - |ck descending|Integer|1|Elements are ordered in descending order| + |ck ascending|Integer|0|要素は昇順に並んでいます(デフォルト)| + |ck descending|Integer|1|要素は降順に並んでいます| - This syntax orders scalar values in the collection only (other element types such as objects or collections are returned unordered). + このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 ``` コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 84c53958a0def8..c6ce0426d6b2c3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1187,11 +1187,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" この場合、*value* 引数は、以下のプロパティを格納した**比較ベクトルオブジェクト** である必要があります: -| プロパティ | 型 | 説明 | -| --------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | -| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキスト)定数のいずれか一つを使用できます:
      1038. `mk cosine` (省略時のデフォルト): ベクトル間のコサイン距離を計算します。
      1039. `mk dot`: ベクトルのドット類似度を計算します。
      1040. `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | -| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 比較するベクトル | +| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 You can use one of the following (Text) constants:
      1041. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      1042. `mk dot`: ベクトルのドット類似度を計算します。
      1043. `mk euclidean`: ベクトル間のユークリッド距離を計算します。 | +| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | **comparator** 記号の、一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 392e5216fdd387..74b3a87a3d52ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -338,10 +338,10 @@ vCompareResult1 (すべての差異が返されています):
        履歴 -| リリース | 内容 | -| ---- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | 追加 | +| リリース | 内容 | +| ---- | ----------- | +| 21 | ステータス7と8を追加 | +| 17 | 追加 |
        @@ -368,7 +368,7 @@ vCompareResult1 (すべての差異が返されています): **戻り値** -The object returned by `.drop()` contains the following properties: +`.drop()` によって返されるオブジェクトには以下のプロパティが格納されます: | プロパティ | | 型 | 説明 | | --------------------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | @@ -393,15 +393,15 @@ The object returned by `.drop()` contains the following properties: (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1044. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1045. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. entity.lock() を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
      1046. **割り当てられた statusText**: "エンティティはもう存在しません" | -| `dk status locked` | 3 | エンティティはペシミスティックロックによってロックされています。
        **割り当てられた statusText**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1047. `entity.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1048. `entity.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1049. `entity.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー
      1050. **割り当てられた statusText**: "Stamp has changed"
      1051. | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1052. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1053. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop() を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock() を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
      1054. **割り当てられた statusText**: "エンティティはもう存在しません" | +| `dk status locked` | 3 | エンティティはペシミスティックロックによってロックされています。
        **割り当てられた statusText**: "Already locked" | +| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | +| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1055. `entity.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1056. `entity.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1057. `entity.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー
      1058. **割り当てられた statusText**: "Stamp has changed"
      1059. | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1214,10 +1214,10 @@ $info:=$address.getRemoteContextAttributes()
        履歴 -| リリース | 内容 | -| ---- | -------------------- | -| 21 | Added status 7 and 8 | -| 17 | 追加 | +| リリース | 内容 | +| ---- | ----------- | +| 21 | ステータス7と8を追加 | +| 17 | 追加 |
        diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index 668003a8ccf9e7..a3dee0bff39419 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: フィールドプロパティ --- -他のフィールドプロパティについては、[doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.ja.html#5523008) を参照してください。 +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md index aad5530955644b..36a6abaf633cf6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md @@ -212,15 +212,15 @@ title: 動作 ## 標準アクション -アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 +アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) の章を参照ください。 There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). フォームオブジェクトには、標準アクションとメソッドの両方を割り当てることができます。 この場合、標準アクションは通常、メソッドの後に実行されます。また、4D はこのアクションを使用して、カレントコンテキストに応じてオブジェクトを有効化/無効化します。 フォームオブジェクトが無効化されていた場合、関連づけられたメソッドは実行されません。 #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------ | ------ | ------------------------------------------------------------------------------------ | -| action | string | 有効な [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html) | +| 名称 | データタイプ | とりうる値 | +| ------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### 対象オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 29e1132a0df443..eb60ae72c2ff5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -469,7 +469,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection この関数は、データクラスのエンティティセレクションまたはエンティティが要求されるたびに呼び出されます。 フィルターは、エンティティセレクションが作成されたときに一度だけ実行されます。 -フィルターは、データクラスのエンティティセレクションを返さなければなりません。 戻り値のエンティティセレクションには、クエリの結果や、[`Storage`] に格納されているものなどが使えます。 +フィルターは、データクラスのエンティティセレクションを返さなければなりません。 It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 1c45add9710b90..bf6aa412bbfee3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -89,11 +89,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| プロパティ | 型 | 説明 | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [].vector | Object の Collection) | 必須設定です。 A collection that represents the vector to compare | | -| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 サポートされる値:
      1060. "cosine" (省略時のデフォルト): ベクトル間のコサイン距離を計算します。
      1061. "dot": ベクトルのドット類似度を計算します。
      1062. "euclidean": ベクトル間のユークリッド距離を計算します。 | | -| | [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| -------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | 必須設定です。 A collection that represents the vector to compare | +| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 Supported values:
      1063. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      1064. "dot": ベクトルのドット類似度を計算します。
      1065. "euclidean": ベクトル間のユークリッド距離を計算します。 | +| [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | Only a subset of **comparator** symbols are supported with vector comparisons. これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index bb57ed880d46f3..c7f6e6cc20e6a8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -7,7 +7,7 @@ title: プロバイダ 多くのAI プロバイダがOpenAI に似たAPI を提供しているので、このプロジェクトを使用してそれらに接続することができます。 -To do so you just have to set the `baseURL` to the provider one and use their api key if needed. +そのためには元の `baseURL` をプロバイダーのものに設定し、必要であればそのサービスのAPI キーを使用するだけです。 ```4d $client.baseURL:="https://api.mistral.ai/v1" @@ -31,7 +31,7 @@ $client.baseURL:="https://api.mistral.ai/v1" ## ローカル -| プロバイダ | Default baseURL | ドキュメント | +| プロバイダ | デフォルトの baseURL | ドキュメント | | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | https://ollama.com/ja/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility | | https://lmstudio.ai/ja/ | http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md index 18196a64eec1cf..06c467d9cc2b7b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/aikit/overview.md @@ -21,7 +21,7 @@ title: 4D-AIKit var $client:=cs.AIKit.OpenAI.new("あなたの API キー") ``` -For a [compatible provider](compatible-openai.md) API, you need to configure the server URL by setting the `baseURL` parameter. +[互換性のあるプロバイダー](compatible-openai.md) API に対しては、 `baseURL` 引数を設定することでサーバーURL を設定することができます。 ```4d var $client:=cs.AIKit.OpenAI.new({apiKey: "あなたの API キー"; baseURL: "https://your.server.ai"}) @@ -43,7 +43,7 @@ var $result:=$client..() `$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 -See some examples below. +また以下の例題も参照して下さい。 #### チャット diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 0dac13535e077a..d50fb79572fb50 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -1182,11 +1182,11 @@ If *attributePath* designates an attribute storing [**vector objects**](../API/V In this case, the *value* parameter must be a **comparison vector object** containing the following properties: -| Propriedade | Tipo | Descrição | -| ----------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| vector | [4D.Vector](../API/VectorClass.md) | Obrigatório. The vector to be compared | -| metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      1066. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      1067. `mk dot`: calculates the dot similarity of vectors.
      1068. `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | +| Propriedade | Tipo | Descrição | +| ----------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obrigatório. The vector to be compared | +| metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      1069. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      1070. `mk dot`: calculates the dot similarity of vectors.
      1071. `mk euclidean`: calculates the Euclidean distance between vectors. | +| threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | Only a subset of **comparator** symbols are supported. Note that they compare results to the threshold value: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/parameters.md index e445ba05f5e050..1a932939fb4e6c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -295,12 +295,6 @@ The legacy syntax for declaring variadic parameters (`C_TEXT(${4})`) is deprecat ::: -## Triggers e On Drag Over - -Alguns contextos não suportam a declaração em um método "Compiler_", portanto, são tratados especificamente: - -- Triggers - O parâmetro $0 (Longint), o resultado de um trigger, será tipado pelo compilador se o parâmetro não tiver sido declarado explicitamente. Entretanto, se quiser declará-lo, deve fazer isso no próprio trigger. - ## Tipo de parámetro equivocado Calling a parameter with an wrong type or a wrong class (for object parameters) is an [error](error-handling.md) that prevents correct execution. Por exemplo se executar os métodos diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/field-properties.md index 0d96fcfcb26f13..b0213ba5a93a84 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index a40afb77231567..268972c12a12f8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -3,16 +3,19 @@ id: triggers-new title: Triggers --- +to import + ## Triggers vs ORDA entity events **Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: + - triggers are handled at the database level, which is the lowest level, - ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. -On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. +On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/entities.md index 647fe5f0082093..07c4d294a07e89 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -463,7 +463,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta função é chamada sempre que uma seleção de entidade ou uma entidade da classe de dados é solicitada. O filtro é executado uma vez, quando a entity selection é criada. -O filtro deve retornar uma seleção de entidade da dataclass. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +O filtro deve retornar uma seleção de entidade da dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$filter.md index 095aab2c43c2a8..01f9c75981cdbe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propriedade | Tipo | Descrição | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Uma coleção de objetos) | Obrigatório. A collection that represents the vector to compare | | -| [].metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      1072. "cosine" (default if omitted): calculates the cosine distance between vectors.
      1073. "dot": calculates the dot similarity of vectors.
      1074. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | +| Propriedade | Tipo | Descrição | +| -------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obrigatório. A collection that represents the vector to compare | +| [].metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      1075. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      1076. "dot": calculates the dot similarity of vectors.
      1077. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | Only a subset of **comparator** symbols are supported with vector comparisons. Note that they compare results to the threshold value: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index 0d96fcfcb26f13..b0213ba5a93a84 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md index cbf8415a3b5a49..9abf540b4ddac0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Action.md @@ -191,15 +191,15 @@ Em outros casos (list box baseados em seleções nomeadas, colunas associadas co ## Ação padrão -Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. +Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Você pode atribuir uma ação padrão e um método projeto de um objeto. Neste caso, a ação padrão é geralmente executada depois que o método e o 4D usa esta ação para ativar/desativar o objeto conforme o contexto atual. Quando um objeto é desativado, o método projeto associado não pode ser executado. #### Gramática JSON -| Nome | Tipo de dados | Valores possíveis | -| ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------- | -| action | string | O nome de uma [ação padrão válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nome | Tipo de dados | Valores possíveis | +| ------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objectos suportados diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 0ab195287b1363..e03a8ca21a49cf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -463,7 +463,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta função é chamada sempre que uma seleção de entidade ou uma entidade da classe de dados é solicitada. O filtro é executado uma vez, quando a entity selection é criada. -O filtro deve retornar uma seleção de entidade da dataclass. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +O filtro deve retornar uma seleção de entidade da dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md index 59ef8f0eddf9b7..53d16f66e9a596 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/DataClassClass.md @@ -1182,11 +1182,11 @@ If *attributePath* designates an attribute storing [**vector objects**](../API/V In this case, the *value* parameter must be a **comparison vector object** containing the following properties: -| Propriedade | Tipo | Descrição | -| ----------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| vector | [4D.Vector](../API/VectorClass.md) | Obrigatório. The vector to be compared | -| metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      1078. `mk cosine` (default if omitted): calculates the cosine distance between vectors.
      1079. `mk dot`: calculates the dot similarity of vectors.
      1080. `mk euclidean`: calculates the Euclidean distance between vectors. | -| threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | +| Propriedade | Tipo | Descrição | +| ----------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | Obrigatório. The vector to be compared | +| metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. You can use one of the following (Text) constants:
      1081. `mk cosine` (default if omitted): calculates the cosine similarity between vectors.
      1082. `mk dot`: calculates the dot similarity of vectors.
      1083. `mk euclidean`: calculates the Euclidean distance between vectors. | +| threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | Only a subset of **comparator** symbols are supported. Note that they compare results to the threshold value: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index 0d96fcfcb26f13..b0213ba5a93a84 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -3,7 +3,7 @@ id: field-properties title: Field properties --- -For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv20R10/4D/20-R10/Field-properties.300-7543749.en.html#5523008). +For other field properties, please refer to [doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Field-properties.300-7676763.en.html). ## Class diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md index cbf8415a3b5a49..9abf540b4ddac0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Action.md @@ -191,15 +191,15 @@ Em outros casos (list box baseados em seleções nomeadas, colunas associadas co ## Ação padrão -Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. +Atividades típicas a serem executadas por objetos ativos (\*e.g., permitindo que o usuário aceite, cancele ou exclua registros, mova entre registros ou de página para página em um formulário multi-páginas, etc.) foi predefinido por 4D como ações padrão. Eles são descritos em detalhes na seção [Ações padrão](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) do *manual de Desenho*. There are also [standard actions specific to 4D Write Pro areas](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). Você pode atribuir uma ação padrão e um método projeto de um objeto. Neste caso, a ação padrão é geralmente executada depois que o método e o 4D usa esta ação para ativar/desativar o objeto conforme o contexto atual. Quando um objeto é desativado, o método projeto associado não pode ser executado. #### Gramática JSON -| Nome | Tipo de dados | Valores possíveis | -| ------ | ------------- | -------------------------------------------------------------------------------------------------------------------------- | -| action | string | O nome de uma [ação padrão válida](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html). | +| Nome | Tipo de dados | Valores possíveis | +| ------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | The name of a valid [standard action](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html) or [4D Write Pro standard action](../WritePro/user-legacy/defining-a-4d-write-pro-area.md#standard-actions). | #### Objectos suportados diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 0ab195287b1363..e03a8ca21a49cf 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -463,7 +463,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection Esta função é chamada sempre que uma seleção de entidade ou uma entidade da classe de dados é solicitada. O filtro é executado uma vez, quando a entity selection é criada. -O filtro deve retornar uma seleção de entidade da dataclass. Puede ser una selección de entidades creada a partir de una consulta, almacenada en el [`Storage`], etc. +O filtro deve retornar uma seleção de entidade da dataclass. It can be an entity selection built upon a query, stored in the [`Storage`](../API/SessionClass.md#storage), etc. :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 095aab2c43c2a8..01f9c75981cdbe 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -90,11 +90,11 @@ Use the `params` property to provide the filter with the vector comparison param The *vectorComparison* parameter is a collection of the following elements: -| Propriedade | Tipo | Descrição | | -| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Uma coleção de objetos) | Obrigatório. A collection that represents the vector to compare | | -| [].metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      1084. "cosine" (default if omitted): calculates the cosine distance between vectors.
      1085. "dot": calculates the dot similarity of vectors.
      1086. "euclidean": calculates the Euclidean distance between vectors. | | -| | [].threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | +| Propriedade | Tipo | Descrição | +| -------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Collection of numbers | Obrigatório. A collection that represents the vector to compare | +| [].metric | Text | Opcional. [Vector computation](../API/VectorClass.md#understanding-the-different-vector-computations) to use for the query. Supported values:
      1087. "cosine" (default if omitted): calculates the cosine similarity between vectors.
      1088. "dot": calculates the dot similarity of vectors.
      1089. "euclidean": calculates the Euclidean distance between vectors. | +| [].threshold | Real | Optional (default: 0.5). A threshold value used to filter vector comparisons based on their cosine, dot or euclidean similarity score according to the selected "metric". It is highly recommended to choose a similarity that best fits your specific use case for optimal results. | Only a subset of **comparator** symbols are supported with vector comparisons. Note that they compare results to the threshold value: From 08e9128b4138874ed7a282eaea55f1493b5f2156 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 22 Oct 2025 10:02:21 +0200 Subject: [PATCH 107/119] Update SessionClass.md --- versioned_docs/version-21/API/SessionClass.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versioned_docs/version-21/API/SessionClass.md b/versioned_docs/version-21/API/SessionClass.md index 1ad435a7823c29..b7fa2f61dde550 100644 --- a/versioned_docs/version-21/API/SessionClass.md +++ b/versioned_docs/version-21/API/SessionClass.md @@ -103,7 +103,7 @@ This function does not remove **promoted privileges** from the web process, whet ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Example @@ -413,7 +413,7 @@ This function returns True for the *privilege* if called from a function that wa ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. From 1e612e808566bc86297393e60c7ca17ece68b3ff Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 22 Oct 2025 17:46:10 +0200 Subject: [PATCH 108/119] fixed orda event examples --- docs/ORDA/orda-events.md | 247 ++++++------------ versioned_docs/version-21/ORDA/orda-events.md | 245 ++++++----------- 2 files changed, 167 insertions(+), 325 deletions(-) diff --git a/docs/ORDA/orda-events.md b/docs/ORDA/orda-events.md index 6056eb98f21689..f661164ca4e23c 100644 --- a/docs/ORDA/orda-events.md +++ b/docs/ORDA/orda-events.md @@ -20,7 +20,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -60,7 +60,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -159,7 +159,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) @@ -379,26 +379,21 @@ It is not recommended to update the entity within this function (using `This`). #### Example -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -441,32 +436,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Example -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` @@ -490,30 +488,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Example 1 - -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +#### Example +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` @@ -546,44 +539,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Example 1 +#### Example -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Example 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` @@ -620,54 +593,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Example 1 +#### Example -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Example 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -694,50 +644,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Example 1 +#### Example -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Example 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/versioned_docs/version-21/ORDA/orda-events.md b/versioned_docs/version-21/ORDA/orda-events.md index cb9dc1cacb71ea..f661164ca4e23c 100644 --- a/versioned_docs/version-21/ORDA/orda-events.md +++ b/versioned_docs/version-21/ORDA/orda-events.md @@ -20,7 +20,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -60,7 +60,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -379,26 +379,21 @@ It is not recommended to update the entity within this function (using `This`). #### Example -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -441,32 +436,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Example -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` @@ -490,30 +488,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Example 1 - -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +#### Example +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` @@ -546,44 +539,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Example 1 +#### Example -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Example 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` @@ -620,54 +593,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Example 1 +#### Example -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Example 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -694,50 +644,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Example 1 +#### Example -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Example 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` From eeaa5e569922657c329ce4b2cd1ee3ab012726ce Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 22 Oct 2025 17:43:05 +0200 Subject: [PATCH 109/119] New Crowdin updates (#2974) * New translations entityclass.md (Japanese) * New translations sessionclass.md (Japanese) * New translations webserverclass.md (Japanese) * New translations entityclass.md (Japanese) * New translations sessionclass.md (French) * New translations sessionclass.md (Spanish) * New translations sessionclass.md (Japanese) * New translations sessionclass.md (Portuguese, Brazilian) * New translations webserverclass.md (Japanese) * New translations triggers-new.md (Japanese) --- .../version-21/API/SessionClass.md | 4 +- .../version-21/API/SessionClass.md | 4 +- .../current/API/EntityClass.md | 46 +++++------ .../current/API/SessionClass.md | 82 +++++++++---------- .../current/API/WebServerClass.md | 18 ++-- .../current/Develop/triggers-new.md | 14 ++-- .../version-21/API/EntityClass.md | 44 +++++----- .../version-21/API/SessionClass.md | 82 +++++++++---------- .../version-21/API/WebServerClass.md | 18 ++-- .../version-21/API/SessionClass.md | 4 +- 10 files changed, 158 insertions(+), 158 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 7b9392b7d194f3..b58fb0cca06e51 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 @@ -89,7 +89,7 @@ Esta función no elimina los **privilegios promovidos** del proceso web, tanto s ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Ejemplo @@ -388,7 +388,7 @@ Esta función devuelve True para el *privilegio* si se llama desde una función ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. 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 2c61f4b77ea0ec..310fc4b378299a 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 @@ -137,7 +137,7 @@ Cette fonction ne supprime pas les **privilèges promus** du process web, qu'ils ::: -En ce qui concerne les sessions de clients distants, la fonction n'a d'impact que sur [le code accédant au serveur web](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Exemple @@ -436,7 +436,7 @@ Cette fonction renvoie True pour le *privilège* si elle est appelée depuis une ::: -En ce qui concerne les sessions de clients distants, la fonction n'a d'impact que sur [le code accédant au serveur web](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md index 2284f00693599d..cf75b0474d0159 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -397,10 +397,10 @@ vCompareResult1 (すべての差異が返されています): | ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1090. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1091. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop() を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。
      1092. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "Already locked" (既にロックされています) | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1093. with `.save()`: error only if the `dk auto merge` option is not used
      1094. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1095. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      1096. **Associated statusText**: "Stamp has changed"
      1097. | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1098. `entity.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1099. `entity.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1100. `entity.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー
      1101. **割り当てられた statusText**: "Stamp has changed"
      1102. | | `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1016,12 +1016,12 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1103. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1104. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1105. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1106. with `.save()`: error only if the `dk auto merge` option is not used
      1107. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1108. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      1109. **Associated statusText**: "Stamp has changed" | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1110. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1111. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1112. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1113. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1114. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1115. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1116. **割り当てられた statusText**: "Stamp has changed" | #### 例題 1 @@ -1182,10 +1182,10 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1117. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1118. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1119. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        ***割り当てられた statusText***: "その他のエラー" | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1120. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1121. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1122. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        ***割り当てられた statusText***: "その他のエラー" | #### 例題 @@ -1277,16 +1277,16 @@ $info:=$address.getRemoteContextAttributes() エラー時には Result オブジェクトの `status` あるいは `statusText` プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **Associated statusText**: "Auto merge failed" | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1123. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1124. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1125. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。 **割り当てられた statusText**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1126. with `.save()`: error only if the `dk auto merge` option is not used
      1127. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1128. with `.lock()`: error only if the `dk reload if stamp changed` option is not used

      1129. **Associated statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。 **割り当てられた statusText**: "自動マージ失敗" | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1130. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1131. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1132. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。 **割り当てられた statusText**: "Already locked" | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。 **割り当てられた statusText**: "その他のエラー" | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1133. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1134. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1135. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1136. **割り当てられた statusText**: "Stamp has changed" | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 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 5aab05058e25ec..740722a59c202f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -54,10 +54,10 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド
        履歴 -| リリース | 内容 | -| ----- | -------------------------- | -| 21 | Support of remote sessions | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------- | +| 21 | リモートセッションのサポート | +| 18 R6 | 追加 |
        @@ -75,7 +75,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド :::note -This function does nothing and always returns **True** with stored procedure sessions and standalone sessions. +この関数は、すトアドプロシージャーセッションおよびスタンドアロンセッションでは何もせず、常に **True** を返します。 ::: @@ -89,7 +89,7 @@ This function does nothing and always returns **True** with stored procedure ses ::: -Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 #### 例題 @@ -110,10 +110,10 @@ $isGuest:=Session.isGuest() // $isGuest は true
        履歴 -| リリース | 内容 | -| ----- | -------------------------- | -| 21 | Support of remote sessions | -| 20 R9 | 追加 | +| リリース | 内容 | +| ----- | -------------- | +| 21 | リモートセッションのサポート | +| 20 R9 | 追加 |
        @@ -124,7 +124,7 @@ $isGuest:=Session.isGuest() // $isGuest は true | 引数 | 型 | | 説明 | | -------- | ------- | :-------------------------: | ------------------------------------ | | lifespan | Integer | -> | セッショントークンの有効期限(秒) | -| 戻り値 | Text | <- | UUID of the token | +| 戻り値 | Text | <- | トークンの UUID | @@ -132,7 +132,7 @@ $isGuest:=Session.isGuest() // $isGuest は true :::note -This function is available with web user sessions and remote sessions. It returns an empty string in stored procedure and standalone sessions. +この関数はWeb ユーザーセッションとリモートセッションにおいて利用可能です。 ストアドプロシージャーとスタンドアロンセッションでは空の文字列を返します。 ::: @@ -140,14 +140,14 @@ This function is available with web user sessions and remote sessions. It return OTP トークンについてのより詳細な情報については、[こちらの章](../WebServer/sessions.md#セッショントークンotp)を参照して下さい。 -*lifespan* に秒単位の値を渡すことで、カスタムのタイムアウト時間を設定することができます。 If an expired token is used to restore a session, it is ignored. By default, if the *lifespan* parameter is omitted: +*lifespan* に秒単位の値を渡すことで、カスタムのタイムアウト時間を設定することができます。 セッションを復元するために失効したトークンを使用した場合、それは無視されます。 *lifespan* 引数が省略された場合はデフォルトで: -- with web user sessions, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. -- with remote sessions, the token is created with a 10 seconds lifespan. +- Web ユーザーセッションの場合、トークンはセッションの[`.idleTimeOut`](#idletimeout) と同じ有効期限を持って作成されます。 +- リモートセッションの場合、トークンは10秒の有効期限を持って作成されます。 -For **web user sessions**, the returned token can be used in exchanges with third-party applications or websites to securely identify the session. 例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 +**Web ユーザーセッション** の場合、返されたトークンは、サードパーティアプリケーションや他のWebサイトとのやり取りで使用することでセッションを安全に特定することができます。 例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 -For **remote sessions**, the returned token can be used on 4D Server to identitfy requests coming from a [remote 4D running Qodly forms in a Web area](../Desktop/clientServer.md#remote-user-sessions). +**リモートセッション** の場合、返されたトークンを4D Server 上で使用することで[Web エリアでQodly フォームを実行しているリモート 4D](../Desktop/clientServer.md#リモートユーザーセッション) からのリクエストを識別することができます。 #### 例題 @@ -262,10 +262,10 @@ $expiration:=Session.expirationDate // 例: "2021-11-05T17:10:42Z"
        履歴 -| リリース | 内容 | -| ----- | --------------------------------- | -| 21 | Support of remote client sessions | -| 20 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------------- | +| 21 | リモートクライアントセッションのサポート | +| 20 R6 | 追加 |
        @@ -289,9 +289,9 @@ $expiration:=Session.expirationDate // 例: "2021-11-05T17:10:42Z" ::: -With remote client sessions, the privileges only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションでは、権限は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 -With stored procedure sessions and standalone sessions, this function returns a collection only containing "WebAdmin". +ストアドプロシージャーセッションとスタンドアロンセッションでは、この関数は"WebAdmin" のみを格納したコレクションを返します。 #### 例題 @@ -360,10 +360,10 @@ $privileges := Session.getPrivileges()
        履歴 -| リリース | 内容 | -| ----- | ----------------------------------------------------------------------- | -| 21 | Returns True for promoted privileges, Support of remote client sessions | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | ------------------------------------- | +| 21 | 昇格した権限ならTrue を返す、リモートクライアントセッションのサポート | +| 18 R6 | 追加 |
        @@ -388,9 +388,9 @@ $privileges := Session.getPrivileges() ::: -Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 -With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. +ストアドプロシージャーセッションとスタンドアロンセッションの場合、この関数は*privilege* に関わらず必ずTrue を返します。 #### 例題 @@ -728,11 +728,11 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage
        履歴 -| リリース | 内容 | -| ----- | --------------------------------- | -| 21 | Support of remote client sessions | -| 19 R8 | roles プロパティをサポート | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------------- | +| 21 | リモートクライアントセッションのサポート | +| 19 R8 | roles プロパティをサポート | +| 18 R6 | 追加 |
        @@ -753,7 +753,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage :::note -This function does nothing and always returns **False** with stored procedure sessions and standalone sessions. +この関数は、ストアドプロシージャーセッションおよびスタンドアロンセッションでは何もせず、常に**False** を返します。 ::: @@ -763,11 +763,11 @@ This function does nothing and always returns **False** with stored procedure se - *privileges* には、アクセス権の名称を文字列のコレクションとして渡します。 - *settings* には、以下のプロパティを持つオブジェクトを渡します: -| プロパティ | 型 | 説明 | -| ---------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| privileges | Text または Collection |
      1137. アクセス権名の文字列
      1138. アクセス権名のコレクション
      1139. | -| roles | Text または Collection |
      1140. ロールの文字列
      1141. ロールの文字列のコレクション
      1142. | -| userName | Text | User name to associate to the session (optional, web sessions only). Not available in remote client sessions (ignored). | +| プロパティ | 型 | 説明 | +| ---------- | ------------------- | --------------------------------------------------------------------------------------------------------- | +| privileges | Text または Collection |
      1143. アクセス権名の文字列
      1144. アクセス権名のコレクション
      1145. | +| roles | Text または Collection |
      1146. ロールの文字列
      1147. ロールの文字列のコレクション
      1148. | +| userName | Text | セッションに関連づけるユーザー名(任意、Web セッションのみ)。 リモートクライアントセッションでは利用できません(無視されます)。 | :::note @@ -781,7 +781,7 @@ This function does nothing and always returns **False** with stored procedure se [`userName`](#username) プロパティは Session オブジェクトレベルで利用可能です (読み取り専用)。 -Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md index e6c5e7c17d1183..c9d3286c25e7fa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -185,9 +185,9 @@ The HTTPリクエストログファ **.handlers** : Collection -*内容* +*読み取り専用プロパティ* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +カスタムHTTP ハンドラオブジェクトのコレクション。 HTTP ハンドラオブジェクトには聞いているURL パターン、管理される動詞(メソッド)、そして呼び出されるべきコードが格納されています。 HTTP ハンドラはHTTPHandlers.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。 詳細については[HTTP リクエストハンドラ](../WebServer/http-request-handler.md) のページを参照してください。 @@ -340,7 +340,7 @@ A collection of custom HTTP handler **.isRunning** : Boolean -*内容* +*読み取り専用プロパティ* Webサーバーで旧式セッションが有効されている場合に true、それ以外は false。 @@ -439,7 +439,7 @@ A collection of custom HTTP handler **.name** : Text -*内容* +*読み取り専用プロパティ* Webサーバーアプリケーションの名称。 @@ -451,7 +451,7 @@ A collection of custom HTTP handler **.openSSLVersion** : Text -*内容* +*読み取り専用プロパティ* 使用されている OpenSSLライブラリのバージョン。 @@ -463,7 +463,7 @@ A collection of custom HTTP handler **.perfectForwardSecrecy** : Boolean -*内容* +*読み取り専用プロパティ* サーバーの PFS利用可否状況。 @@ -493,9 +493,9 @@ A collection of custom HTTP handler **.rules** : Collection -*内容* +*読み取り専用プロパティ* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション。 ルールオブジェクトには"regexPattern" プロパティに加え、アクション名と値が格納されています。 HTTP ルールはHTTPRules.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。 詳細については[HTTP ルール](../WebServer/http-rules.md) のページを参照してください。 @@ -531,7 +531,7 @@ A collection of rule objects currently セッションID の保存に使用されるセッションcookie の名称。 -*内容* +*読み取り専用プロパティ* diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index 268972c12a12f8..bc38806a21ae11 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -1,21 +1,21 @@ --- id: triggers-new -title: Triggers +title: トリガ --- to import -## Triggers vs ORDA entity events +## トリガとORDAエンティティイベントの比較 -**Triggers** (aka database events) and [**ORDA entity events**](../ORDA/orda-events.md) have similar purposes: they establish rules to control fundamental operations on the data (create, edit, or delete). However, they do not operate at the same level: +**トリガ** (別名データベースイベント) と[**ORDA エンティティイベント**](../ORDA/orda-events.md) には類似した目的があります。どちらもデータに対する基礎的な操作(作成、編集、削除)を管理するためのルールを設定するということです。 しかしながら、両者は同じレベルでは動作しません: -- triggers are handled at the database level, which is the lowest level, -- ORDA entity events are handled at the [datastore](../ORDA/dsMapping.md#datastore) level, which is related to your business logic. +- トリガはデータベースレベルで管理されます。これはもっとも低いレベルに当たります。 +- ORDA エンティティイベントは[データストア](../ORDA/dsMapping.md#datastore) レベルで管理されます。これはあなたのビジネスロジックに関連しています。 -Actions on data executed through the datastore, such as [`.save()`](../API/EntityClass.md#save) or [`.drop`](../API/EntityClass.md#drop), will call the triggers, if any. +[`.save()`](../API/EntityClass.md#save) や [`.drop`](../API/EntityClass.md#drop)などの、データストアを通して実行されたデータに対するアクションは、設定されていればトリガを呼び出します。 -On the other hand, actions triggered at the 4D database level using the 4D classic language commands, such as [`SAVE RECORD`](../commands/save-record) or [standard actions](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.en.html#3371159) will NOT trigger ORDA entity events. +その一方で、[`SAVE RECORD`](../commands/save-record) あるいは [標準アクション](https://doc.4d.com/4Dv20/4D/20.2/Standard-actions.300-6750239.ja.html#4682827) などの4D のクラシック言語を使用した4D データベースレベルでトリガーされたアクションは、ORDA エンティティイベントは**呼び出しません**。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 74b3a87a3d52ef..9286847f81b575 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -397,9 +397,9 @@ vCompareResult1 (すべての差異が返されています): | ----------------------------------------- | - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1149. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1150. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop() を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock() を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
      1151. **割り当てられた statusText**: "エンティティはもう存在しません" | | `dk status locked` | 3 | エンティティはペシミスティックロックによってロックされています。
        **割り当てられた statusText**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1152. `entity.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1153. `entity.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1154. `entity.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー
      1155. **割り当てられた statusText**: "Stamp has changed"
      1156. | | `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | @@ -1016,12 +1016,12 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1157. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1158. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when dk force drop if stamp changed option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1159. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1160. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1161. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1162. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1163. **割り当てられた statusText**: "Stamp has changed" | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1164. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1165. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1166. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
        **割り当てられた statusText**: "既にロックされています" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        **割り当てられた statusText**: "Other error" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1167. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1168. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1169. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1170. **割り当てられた statusText**: "Stamp has changed" | #### 例題 1 @@ -1182,10 +1182,10 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1171. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1172. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1173. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        ***割り当てられた statusText***: "Other error" | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1174. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1175. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1176. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
        ***割り当てられた statusText***: "Other error" | #### 例題 @@ -1277,16 +1277,16 @@ $info:=$address.getRemoteContextAttributes() エラー時には Result オブジェクトの `status` あるいは `statusText` プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **Associated statusText**: "Auto merge failed" | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1177. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1178. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1179. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。 **割り当てられた statusText**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1180. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1181. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1182. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1183. **割り当てられた statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。 **割り当てられた statusText**: "自動マージ失敗" | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
      1184. エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
      1185. エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload drop if stamp changed` オプションを使用した場合に返されることがあります。

      1186. **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。 **割り当てられた statusText**: "Already locked" | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。 **割り当てられた statusText**: "その他のエラー" | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
      1187. `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
      1188. `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
      1189. `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

      1190. **割り当てられた statusText**: "Stamp has changed" | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 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 dbdb9acd8d6eef..740722a59c202f 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 @@ -54,10 +54,10 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド
        履歴 -| リリース | 内容 | -| ----- | -------------------------- | -| 21 | Support of remote sessions | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------- | +| 21 | リモートセッションのサポート | +| 18 R6 | 追加 |
        @@ -75,7 +75,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド :::note -This function does nothing and always returns **True** with stored procedure sessions and standalone sessions. +この関数は、すトアドプロシージャーセッションおよびスタンドアロンセッションでは何もせず、常に **True** を返します。 ::: @@ -89,7 +89,7 @@ This function does nothing and always returns **True** with stored procedure ses ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 #### 例題 @@ -110,10 +110,10 @@ $isGuest:=Session.isGuest() // $isGuest は true
        履歴 -| リリース | 内容 | -| ----- | -------------------------- | -| 21 | Support of remote sessions | -| 20 R9 | 追加 | +| リリース | 内容 | +| ----- | -------------- | +| 21 | リモートセッションのサポート | +| 20 R9 | 追加 |
        @@ -124,7 +124,7 @@ $isGuest:=Session.isGuest() // $isGuest は true | 引数 | 型 | | 説明 | | -------- | ------- | :-------------------------: | ------------------------------------ | | lifespan | Integer | -> | セッショントークンの有効期限(秒) | -| 戻り値 | Text | <- | UUID of the token | +| 戻り値 | Text | <- | トークンの UUID | @@ -132,7 +132,7 @@ $isGuest:=Session.isGuest() // $isGuest は true :::note -This function is available with web user sessions and remote sessions. It returns an empty string in stored procedure and standalone sessions. +この関数はWeb ユーザーセッションとリモートセッションにおいて利用可能です。 ストアドプロシージャーとスタンドアロンセッションでは空の文字列を返します。 ::: @@ -140,14 +140,14 @@ This function is available with web user sessions and remote sessions. It return OTP トークンについてのより詳細な情報については、[こちらの章](../WebServer/sessions.md#セッショントークンotp)を参照して下さい。 -*lifespan* に秒単位の値を渡すことで、カスタムのタイムアウト時間を設定することができます。 If an expired token is used to restore a session, it is ignored. By default, if the *lifespan* parameter is omitted: +*lifespan* に秒単位の値を渡すことで、カスタムのタイムアウト時間を設定することができます。 セッションを復元するために失効したトークンを使用した場合、それは無視されます。 *lifespan* 引数が省略された場合はデフォルトで: -- with web user sessions, the token is created with the same lifespan as the [`.idleTimeOut`](#idletimeout) of the session. -- with remote sessions, the token is created with a 10 seconds lifespan. +- Web ユーザーセッションの場合、トークンはセッションの[`.idleTimeOut`](#idletimeout) と同じ有効期限を持って作成されます。 +- リモートセッションの場合、トークンは10秒の有効期限を持って作成されます。 -For **web user sessions**, the returned token can be used in exchanges with third-party applications or websites to securely identify the session. 例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 +**Web ユーザーセッション** の場合、返されたトークンは、サードパーティアプリケーションや他のWebサイトとのやり取りで使用することでセッションを安全に特定することができます。 例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 -For **remote sessions**, the returned token can be used on 4D Server to identitfy requests coming from a [remote 4D running Qodly forms in a Web area](../Desktop/clientServer.md#remote-user-sessions). +**リモートセッション** の場合、返されたトークンを4D Server 上で使用することで[Web エリアでQodly フォームを実行しているリモート 4D](../Desktop/clientServer.md#リモートユーザーセッション) からのリクエストを識別することができます。 #### 例題 @@ -262,10 +262,10 @@ $expiration:=Session.expirationDate // 例: "2021-11-05T17:10:42Z"
        履歴 -| リリース | 内容 | -| ----- | --------------------------------- | -| 21 | Support of remote client sessions | -| 20 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------------- | +| 21 | リモートクライアントセッションのサポート | +| 20 R6 | 追加 |
        @@ -289,9 +289,9 @@ $expiration:=Session.expirationDate // 例: "2021-11-05T17:10:42Z" ::: -With remote client sessions, the privileges only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションでは、権限は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 -With stored procedure sessions and standalone sessions, this function returns a collection only containing "WebAdmin". +ストアドプロシージャーセッションとスタンドアロンセッションでは、この関数は"WebAdmin" のみを格納したコレクションを返します。 #### 例題 @@ -360,10 +360,10 @@ $privileges := Session.getPrivileges()
        履歴 -| リリース | 内容 | -| ----- | ----------------------------------------------------------------------- | -| 21 | Returns True for promoted privileges, Support of remote client sessions | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | ------------------------------------- | +| 21 | 昇格した権限ならTrue を返す、リモートクライアントセッションのサポート | +| 18 R6 | 追加 |
        @@ -388,9 +388,9 @@ $privileges := Session.getPrivileges() ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 -With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. +ストアドプロシージャーセッションとスタンドアロンセッションの場合、この関数は*privilege* に関わらず必ずTrue を返します。 #### 例題 @@ -728,11 +728,11 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage
        履歴 -| リリース | 内容 | -| ----- | --------------------------------- | -| 21 | Support of remote client sessions | -| 19 R8 | roles プロパティをサポート | -| 18 R6 | 追加 | +| リリース | 内容 | +| ----- | -------------------- | +| 21 | リモートクライアントセッションのサポート | +| 19 R8 | roles プロパティをサポート | +| 18 R6 | 追加 |
        @@ -753,7 +753,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage :::note -This function does nothing and always returns **False** with stored procedure sessions and standalone sessions. +この関数は、ストアドプロシージャーセッションおよびスタンドアロンセッションでは何もせず、常に**False** を返します。 ::: @@ -763,11 +763,11 @@ This function does nothing and always returns **False** with stored procedure se - *privileges* には、アクセス権の名称を文字列のコレクションとして渡します。 - *settings* には、以下のプロパティを持つオブジェクトを渡します: -| プロパティ | 型 | 説明 | -| ---------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| privileges | Text または Collection |
      1191. アクセス権名の文字列
      1192. アクセス権名のコレクション
      1193. | -| roles | Text または Collection |
      1194. ロールの文字列
      1195. ロールの文字列のコレクション
      1196. | -| userName | Text | User name to associate to the session (optional, web sessions only). Not available in remote client sessions (ignored). | +| プロパティ | 型 | 説明 | +| ---------- | ------------------- | --------------------------------------------------------------------------------------------------------- | +| privileges | Text または Collection |
      1197. アクセス権名の文字列
      1198. アクセス権名のコレクション
      1199. | +| roles | Text または Collection |
      1200. ロールの文字列
      1201. ロールの文字列のコレクション
      1202. | +| userName | Text | セッションに関連づけるユーザー名(任意、Web セッションのみ)。 リモートクライアントセッションでは利用できません(無視されます)。 | :::note @@ -781,7 +781,7 @@ This function does nothing and always returns **False** with stored procedure se [`userName`](#username) プロパティは Session オブジェクトレベルで利用可能です (読み取り専用)。 -Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). +リモートクライアントセッションにおいては、この関数は[Web エリアを通して送信されたWeb リクエスト](../Desktop/clientServer.md#webエリア内のqodlyページ内でセッションを共有する) のコンテキストで実行されたコンテキストのみに関係します。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index e6c5e7c17d1183..c9d3286c25e7fa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -185,9 +185,9 @@ The HTTPリクエストログファ **.handlers** : Collection -*内容* +*読み取り専用プロパティ* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +カスタムHTTP ハンドラオブジェクトのコレクション。 HTTP ハンドラオブジェクトには聞いているURL パターン、管理される動詞(メソッド)、そして呼び出されるべきコードが格納されています。 HTTP ハンドラはHTTPHandlers.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。 詳細については[HTTP リクエストハンドラ](../WebServer/http-request-handler.md) のページを参照してください。 @@ -340,7 +340,7 @@ A collection of custom HTTP handler **.isRunning** : Boolean -*内容* +*読み取り専用プロパティ* Webサーバーで旧式セッションが有効されている場合に true、それ以外は false。 @@ -439,7 +439,7 @@ A collection of custom HTTP handler **.name** : Text -*内容* +*読み取り専用プロパティ* Webサーバーアプリケーションの名称。 @@ -451,7 +451,7 @@ A collection of custom HTTP handler **.openSSLVersion** : Text -*内容* +*読み取り専用プロパティ* 使用されている OpenSSLライブラリのバージョン。 @@ -463,7 +463,7 @@ A collection of custom HTTP handler **.perfectForwardSecrecy** : Boolean -*内容* +*読み取り専用プロパティ* サーバーの PFS利用可否状況。 @@ -493,9 +493,9 @@ A collection of custom HTTP handler **.rules** : Collection -*内容* +*読み取り専用プロパティ* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション。 ルールオブジェクトには"regexPattern" プロパティに加え、アクション名と値が格納されています。 HTTP ルールはHTTPRules.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。 詳細については[HTTP ルール](../WebServer/http-rules.md) のページを参照してください。 @@ -531,7 +531,7 @@ A collection of rule objects currently セッションID の保存に使用されるセッションcookie の名称。 -*内容* +*読み取り専用プロパティ* 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 6ea1fd129e4c34..c26001d78e0d51 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 @@ -89,7 +89,7 @@ This function does not remove **promoted privileges** from the web process, whet ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). #### Exemplo @@ -388,7 +388,7 @@ This function returns True for the *privilege* if called from a function that wa ::: -Regarding remote client sessions, the function only impacts [code accessing the web server](../WebServer/preemptiveWeb.md#writing-thread-safe-web-server-code). +Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. From 72730a2006c3d959beaea28edd3e4bb48f8462c7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 23 Oct 2025 10:34:55 +0200 Subject: [PATCH 110/119] fix triggers slug --- .../current/Develop-legacy/triggers.md | 2 ++ .../current/Develop-legacy/triggers.md | 2 ++ .../current/Develop-legacy/triggers.md | 2 ++ .../current/Develop-legacy/triggers.md | 2 ++ 4 files changed, 8 insertions(+) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md index 07fd36d89ed482..9b6a74baf7ac34 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -1,6 +1,8 @@ --- id: triggers title: Triggers +slug: /Develop/triggers +displayed_sidebar: docs --- diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md index c9d7edbfd184e8..004cb537ab3cfc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -1,6 +1,8 @@ --- id: triggers title: Triggers +slug: /Develop/triggers +displayed_sidebar: docs --- Un **trigger** est une méthode associée à une table. C'est une propriété d'une table. Vous n'appelez pas un trigger, les triggers sont appelés automatiquement par le moteur de 4D à chaque fois qu'un enregistrement de la table est manipulé (ajout, suppression et modification). Les triggers sont des méthodes qui peuvent éviter des opérations “illégales” dans votre base. Par exemple, dans une facturation, vous pouvez empêcher qu'un utilisateur crée une facture sans spécifier à qui elle doit être adressée. Les triggers sont un outil puissant permettant de contrôler les opérations sur les tables, et d'éviter des pertes de données accidentelles. Vous pouvez créer des triggers très simples et les rendre de plus en plus sophistiqués. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md index 4647100a289355..893d11956e2bc0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -1,6 +1,8 @@ --- id: triggers title: トリガ +slug: /Develop/triggers +displayed_sidebar: docs --- diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md index 2681f34a0af02f..a645035d2390bd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop-legacy/triggers.md @@ -1,6 +1,8 @@ --- id: triggers title: Triggers +slug: /Develop/triggers +displayed_sidebar: docs --- From b1dbdc9c3b588a05f07e3f76d9d0f9ff34e26018 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 23 Oct 2025 11:50:48 +0200 Subject: [PATCH 111/119] Add update instructions for 4D NetKit Added instructions for updating 4D NetKit. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 68116eb4ad00ca..f51721521ae236 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,11 @@ Sur github, faire une PR de docs4d/docs/main sur 4d/docs/main ### Algolia (4D only) Aller dans l'interface Algolia et lancer un reindex de la doc +## Mise à jour 4D NetKit +1. Synchro avec prod (4D/4DNetKit) +2. Pull request vers prod : Main pour version en ligne +3. Pull request vers prod : version qui shippe pour doc embedded + ## Mise à jour prod 1. Créer une nouvelle branche en local nommée par exemple Tempo 2. faire git fetch upstream (met à jour la preprod avec la prod) From 5ff9b1e773ef52ebd824a124b332449d9923cd54 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 23 Oct 2025 16:16:04 +0200 Subject: [PATCH 112/119] fix links components --- docs/Concepts/components.md | 2 +- docs/Project/components.md | 2 +- versioned_docs/version-20-R10/Concepts/components.md | 2 +- versioned_docs/version-20-R10/Project/components.md | 2 +- versioned_docs/version-20/Concepts/components.md | 2 +- versioned_docs/version-21/Concepts/components.md | 2 +- versioned_docs/version-21/Project/components.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/Concepts/components.md b/docs/Concepts/components.md index 2aff64fb665de5..2295ba0c354992 100644 --- a/docs/Concepts/components.md +++ b/docs/Concepts/components.md @@ -9,7 +9,7 @@ A 4D component is a set of 4D code and forms representing one or more functional Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Additionnally, you can [develop your own 4D components](../Extensions/develop-components.md). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Additionnally, you can [develop your own 4D components](../Extensions/develop-components.md). ## Using components diff --git a/docs/Project/components.md b/docs/Project/components.md index 2d79126754eaab..77a729af060bfe 100644 --- a/docs/Project/components.md +++ b/docs/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/topics/4d-component). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. diff --git a/versioned_docs/version-20-R10/Concepts/components.md b/versioned_docs/version-20-R10/Concepts/components.md index 224dd859b31fbb..8bb757e34edb7a 100644 --- a/versioned_docs/version-20-R10/Concepts/components.md +++ b/versioned_docs/version-20-R10/Concepts/components.md @@ -7,7 +7,7 @@ A 4D component is a set of 4D code and forms representing one or more functional ## Installing components -Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Additionnally, you can [develop your own 4D components](Extensions/develop-components.md). +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Additionnally, you can [develop your own 4D components](Extensions/develop-components.md). Installation and loading of components in your 4D projects are handled through the [4D dependency manager](../Project/components.md). diff --git a/versioned_docs/version-20-R10/Project/components.md b/versioned_docs/version-20-R10/Project/components.md index 56c1ed2475148a..da352948708c93 100644 --- a/versioned_docs/version-20-R10/Project/components.md +++ b/versioned_docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies A 4D component is a set of 4D code and/or 4D forms representing one or more functionalities that you can add and use in your projects. For example, the [4D SVG](https://github.com/4d/4D-SVG) component adds advanced commands and an integrated rendering engine that can be used to display SVG files. -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/topics/4d-component). When developing in 4D, the component files can be transparently stored in your computer or on a Github repository. diff --git a/versioned_docs/version-20/Concepts/components.md b/versioned_docs/version-20/Concepts/components.md index 2c28b167511513..2aced2e9ea1dd6 100644 --- a/versioned_docs/version-20/Concepts/components.md +++ b/versioned_docs/version-20/Concepts/components.md @@ -7,7 +7,7 @@ A 4D component is a set of 4D code and forms representing one or more functional ## Where to find components? -Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Additionnally, you can [develop your own 4D components](Extensions/develop-components.md). +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Additionnally, you can [develop your own 4D components](Extensions/develop-components.md). ## Installing components diff --git a/versioned_docs/version-21/Concepts/components.md b/versioned_docs/version-21/Concepts/components.md index 2aff64fb665de5..2295ba0c354992 100644 --- a/versioned_docs/version-21/Concepts/components.md +++ b/versioned_docs/version-21/Concepts/components.md @@ -9,7 +9,7 @@ A 4D component is a set of 4D code and forms representing one or more functional Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Additionnally, you can [develop your own 4D components](../Extensions/develop-components.md). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Additionnally, you can [develop your own 4D components](../Extensions/develop-components.md). ## Using components diff --git a/versioned_docs/version-21/Project/components.md b/versioned_docs/version-21/Project/components.md index 397c118e34a070..0cfd64f9f98038 100644 --- a/versioned_docs/version-21/Project/components.md +++ b/versioned_docs/version-21/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies The 4D [project architecture](../Project/architecture.md) is modular. You can provide additional functionalities to your 4D projects by installing [**components**](Concepts/components.md) and [**plug-ins**](../Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components shared by the 4D community that [can be found on GitHub](https://github.com/topics/4d-component). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. From 43e6a64cf7dc8773bd8cae1c665947b66c7824bc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 23 Oct 2025 19:10:25 +0200 Subject: [PATCH 113/119] fixe server-open-connection and context menu --- docs/FormObjects/listbox_overview.md | 2 +- docs/FormObjects/properties_Entry.md | 4 ++-- docs/commands-legacy/array-to-list.md | 2 +- .../on-server-open-connection-database-method.md | 6 +++++- docs/commands-legacy/save-list.md | 2 +- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- .../on-server-open-connection-database-method.md | 6 +++++- versioned_docs/version-18/FormObjects/properties_Entry.md | 2 +- versioned_docs/version-19/FormObjects/listbox_overview.md | 2 +- versioned_docs/version-19/FormObjects/properties_Entry.md | 2 +- .../version-20-R10/FormObjects/listbox_overview.md | 2 +- .../version-20-R10/FormObjects/properties_Entry.md | 2 +- .../version-20-R10/commands-legacy/array-to-list.md | 2 +- .../on-server-open-connection-database-method.md | 6 +++++- versioned_docs/version-20-R10/commands-legacy/save-list.md | 2 +- versioned_docs/version-20/FormObjects/listbox_overview.md | 2 +- versioned_docs/version-20/FormObjects/properties_Entry.md | 2 +- versioned_docs/version-21/FormObjects/listbox_overview.md | 2 +- versioned_docs/version-21/FormObjects/properties_Entry.md | 2 +- versioned_docs/version-21/commands-legacy/array-to-list.md | 2 +- .../on-server-open-connection-database-method.md | 6 +++++- versioned_docs/version-21/commands-legacy/save-list.md | 2 +- 32 files changed, 93 insertions(+), 33 deletions(-) diff --git a/docs/FormObjects/listbox_overview.md b/docs/FormObjects/listbox_overview.md index 3c1b6e116e8d3b..9657a607cb73bb 100644 --- a/docs/FormObjects/listbox_overview.md +++ b/docs/FormObjects/listbox_overview.md @@ -291,7 +291,7 @@ You can set standard properties (text, background color, etc.) for each column o ### Column Specific Properties {#column-specific-properties} -[Alpha Format](properties_Display.md#alpha-format) - [Alternate Background Color](properties_BackgroundAndBorder.md#alternate-background-color) - [Automatic Row Height](properties_CoordinatesAndSizing.md#automatic-row-height) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Background Color Expression](properties_BackgroundAndBorder.md#background-color-expression) - [Bold](properties_Text.md#bold) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Data Type (selection and collection list box column)](properties_DataSource.md#data-type-list) - [Date Format](properties_Display.md#date-format) - [Default Values](properties_DataSource.md#default-list-of-values) - [Display Type](properties_Display.md#display-type) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression](properties_DataSource.md#expression) - [Expression Type (array list box column)](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Italic](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Maximum Width](properties_CoordinatesAndSizing.md#maximum-width) - [Method](properties_Action.md#method) - [Minimum Width](properties_CoordinatesAndSizing.md#minimum-width) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Picture Format](properties_Display.md#picture-format) - [Resizable](properties_ResizingOptions.md#resizable) - [Required List](properties_RangeOfValues.md#required-list) - [Row Background Color Array](properties_BackgroundAndBorder.md#row-background-color-array) - [Row Font Color Array](properties_Text.md#row-font-color-array) - [Row Style Array](properties_Text.md#row-style-array) - [Save as](properties_DataSource.md#save-as) - [Style Expression](properties_Text.md#style-expression) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Truncate with ellipsis](properties_Display.md#truncate-with-ellipsis) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Alignment](properties_Text.md#vertical-alignment) - [Vertical Padding](properties_CoordinatesAndSizing.md#vertical-padding) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) +[Alpha Format](properties_Display.md#alpha-format) - [Alternate Background Color](properties_BackgroundAndBorder.md#alternate-background-color) - [Automatic Row Height](properties_CoordinatesAndSizing.md#automatic-row-height) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Background Color Expression](properties_BackgroundAndBorder.md#background-color-expression) - [Bold](properties_Text.md#bold) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Data Type (selection and collection list box column)](properties_DataSource.md#data-type-list) - [Date Format](properties_Display.md#date-format) - [Default Values](properties_DataSource.md#default-list-of-values) - [Display Type](properties_Display.md#display-type) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression](properties_DataSource.md#expression) - [Expression Type (array list box column)](properties_Object.md#expression-type) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Padding](properties_CoordinatesAndSizing.md#horizontal-padding) - [Italic](properties_Text.md#italic) - [Invisible](properties_Display.md#visibility) - [Maximum Width](properties_CoordinatesAndSizing.md#maximum-width) - [Method](properties_Action.md#method) - [Minimum Width](properties_CoordinatesAndSizing.md#minimum-width) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Picture Format](properties_Display.md#picture-format) - [Resizable](properties_ResizingOptions.md#resizable) - [Required List](properties_RangeOfValues.md#required-list) - [Row Background Color Array](properties_BackgroundAndBorder.md#row-background-color-array) - [Row Font Color Array](properties_Text.md#row-font-color-array) - [Row Style Array](properties_Text.md#row-style-array) - [Save as](properties_DataSource.md#save-as) - [Style Expression](properties_Text.md#style-expression) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Truncate with ellipsis](properties_Display.md#truncate-with-ellipsis) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Alignment](properties_Text.md#vertical-alignment) - [Vertical Padding](properties_CoordinatesAndSizing.md#vertical-padding) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) ### Supported Form Events {#supported-form-events-1} diff --git a/docs/FormObjects/properties_Entry.md b/docs/FormObjects/properties_Entry.md index 92f23435d1a346..8d14b110eaa75a 100644 --- a/docs/FormObjects/properties_Entry.md +++ b/docs/FormObjects/properties_Entry.md @@ -32,7 +32,7 @@ Allows the user access to a standard context menu in the object when the form is For a picture type [input](input_overview.md), in addition to standard editing commands (Cut, Copy, Paste and Clear), the menu contains the **Import...** command, which can be used to import a picture stored in a file, as well as the **Save as...** command, which can be used to save the picture to disk. The menu can also be used to modify the display format of the picture: the **Truncated non-centered**, **Scaled to fit** and **Scaled to fit centered prop.** options are provided. The modification of the [display format](properties_Display.md#picture-format) using this menu is temporary; it is not saved with the record. -For a [multi-style](properties_Text.md#multi-style) text type [input](input_overview.md), in addition to standard editing commands, the context menu provides the following commands: +For a [multi-style](properties_Text.md#multi-style) text type [input](input_overview.md) or [listbox column](listbox_overview.md#list-box-columns), in addition to standard editing commands, the context menu provides the following commands: - **Fonts...**: displays the font system dialog box - **Recent fonts**: displays the names of recent fonts selected during the session. The list can store up to 10 fonts (beyond that, the last font used replaces the oldest). By default, this list is empty and the option is not displayed. You can manage this list using the `SET RECENT FONTS` and `FONT LIST` commands. @@ -49,7 +49,7 @@ For a [Web Area](webArea_overview.md), the contents of the menu depend of the re #### Objects Supported -[Input](input_overview.md) - [Web Area](webArea_overview.md) - [4D Write Pro areas](writeProArea_overview.md) +[Input](input_overview.md) - [List Box Column](listbox_overview.md#list-box-columns) - [Web Area](webArea_overview.md) - [4D Write Pro areas](writeProArea_overview.md) #### Commands diff --git a/docs/commands-legacy/array-to-list.md b/docs/commands-legacy/array-to-list.md index d3247a29055ca8..0464e9802e30fd 100644 --- a/docs/commands-legacy/array-to-list.md +++ b/docs/commands-legacy/array-to-list.md @@ -27,7 +27,7 @@ The optional *itemRefs* parameter, if specified, must be a numeric array synchro * This command only lets you set first-level items of the list. * When you use this command with a choice list, it modifies the structure of the application (lists are saved in the structure file), so any modifications made locally are lost when the structure file is updated in production. -* This command cannot be used with a choice list in a structure loaded in **read only**, such as a .4dz project or a component. +* This command cannot be used with a choice list in a structure loaded in **read only**, such as a .4dz project (which includes [remote projects](../Desktop/clientServer.md)) or a component. You can use ARRAY TO LIST to build a list based on the elements of an array. However, to free yourself from these restrictions and make full use of the lists of values, we recommend using the commands of the *Hierarchical Lists* theme. diff --git a/docs/commands-legacy/on-server-open-connection-database-method.md b/docs/commands-legacy/on-server-open-connection-database-method.md index 5a16cc653a0813..2a254f1ab88314 100644 --- a/docs/commands-legacy/on-server-open-connection-database-method.md +++ b/docs/commands-legacy/on-server-open-connection-database-method.md @@ -125,7 +125,11 @@ The following example prevents any new connection from 2 to 4 A.M.   // On Server Open Connection Database Method  #DECLARE($user: Integer; $id: Integer; $toIgnore : Integer) -> $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time $result : Integer   - If((?02:00:00?<=Current time)&(Current time + If((?02:00:00?<=Current time)&(Current time Date: Fri, 24 Oct 2025 10:15:20 +0200 Subject: [PATCH 114/119] fix notes for release notes --- docs/Notes/updates.md | 2 +- versioned_docs/version-21/Notes/updates.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index f75b4a25e1907b..521bcda5b7e450 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -406,7 +406,7 @@ If your 4D applications use TLS connections, it is recommended that you upgrade ## 4D 20.x LTS -See [**Release Notes for 4D 20.x LTS**](../../versioned_docs/version-20/Notes/updates.md). +See [**Release Notes for 4D 20.x LTS**](../../20/Notes/updates). diff --git a/versioned_docs/version-21/Notes/updates.md b/versioned_docs/version-21/Notes/updates.md index 98124657dd0b0f..f532793e368d5b 100644 --- a/versioned_docs/version-21/Notes/updates.md +++ b/versioned_docs/version-21/Notes/updates.md @@ -319,7 +319,7 @@ If your 4D applications use TLS connections, it is recommended that you upgrade ## 4D 20.x LTS -See [**Release Notes for 4D 20.x LTS**](../../versioned_docs/version-20/Notes/updates.md). +See [**Release Notes for 4D 20.x LTS**](../20/Notes/updates). From 0f427b2f6251471ee5739adc58505361e81680e1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 24 Oct 2025 09:47:13 +0200 Subject: [PATCH 115/119] New Crowdin updates (#2975) * New translations updates.md (Spanish) * New translations forms.md (Spanish) * New translations updates.md (Spanish) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations orda-events.md (French) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations entityclass.md (Spanish) * New translations webserverclass.md (Japanese) * New translations updates.md (Spanish) * New translations openai.md (Spanish) * New translations entityclass.md (Spanish) * New translations forms.md (Spanish) * New translations orda-events.md (French) * New translations updates.md (Spanish) * New translations orda-events.md (Spanish) * New translations orda-events.md (Japanese) * New translations orda-events.md (Portuguese, Brazilian) * New translations openai.md (Spanish) * New translations openaichatcompletionsparameters.md (Spanish) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations http-request-handler.md (Spanish) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (Spanish) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations components.md (French) * New translations components.md (Spanish) * New translations components.md (Japanese) * New translations components.md (Portuguese, Brazilian) * New translations http-request-handler.md (Spanish) * New translations http-rules.md (Spanish) * New translations http-request-handler.md (Spanish) * New translations http-request-handler.md (Spanish) --- .../current/Concepts/components.md | 2 +- .../current/FormEditor/forms.md | 26 +- .../current/Notes/updates.md | 106 ++++---- .../current/ORDA/orda-events.md | 246 ++++++------------ .../current/Project/components.md | 2 +- .../current/WebServer/http-request-handler.md | 88 +++---- .../current/WebServer/http-rules.md | 4 +- .../current/aikit/Classes/OpenAI.md | 6 +- .../OpenAIChatCompletionsParameters.md | 2 +- .../version-20-R10/API/EntityClass.md | 2 +- .../version-20-R10/Concepts/components.md | 2 +- .../version-20-R10/Notes/updates.md | 14 +- .../version-20-R10/Project/components.md | 2 +- .../WebServer/http-request-handler.md | 66 ++--- .../version-20-R10/aikit/Classes/OpenAI.md | 6 +- .../version-20/Concepts/components.md | 2 +- .../version-20/Notes/updates.md | 2 +- .../version-21/API/EntityClass.md | 4 +- .../version-21/Concepts/components.md | 2 +- .../version-21/FormEditor/forms.md | 26 +- .../version-21/Notes/updates.md | 104 ++++---- .../version-21/ORDA/orda-events.md | 244 ++++++----------- .../version-21/Project/components.md | 2 +- .../WebServer/http-request-handler.md | 84 +++--- .../version-21/WebServer/http-rules.md | 4 +- .../version-21/aikit/Classes/OpenAI.md | 6 +- .../OpenAIChatCompletionsParameters.md | 2 +- .../current/Concepts/components.md | 2 +- .../current/ORDA/orda-events.md | 246 ++++++------------ .../current/Project/components.md | 2 +- .../version-20-R10/Concepts/components.md | 2 +- .../version-20-R10/Project/components.md | 2 +- .../version-20/Concepts/components.md | 2 +- .../version-21/Concepts/components.md | 2 +- .../version-21/ORDA/orda-events.md | 244 ++++++----------- .../version-21/Project/components.md | 2 +- .../current/Concepts/components.md | 2 +- .../current/ORDA/orda-events.md | 246 ++++++------------ .../current/Project/components.md | 2 +- .../version-20-R10/API/WebServerClass.md | 10 +- .../version-20-R10/Concepts/components.md | 2 +- .../version-20-R10/Project/components.md | 2 +- .../version-20/Concepts/components.md | 2 +- .../version-21/Concepts/components.md | 2 +- .../version-21/ORDA/orda-events.md | 244 ++++++----------- .../version-21/Project/components.md | 2 +- .../current/Concepts/components.md | 2 +- .../current/ORDA/orda-events.md | 246 ++++++------------ .../current/Project/components.md | 2 +- .../version-20-R10/Concepts/components.md | 2 +- .../version-20-R10/Project/components.md | 2 +- .../version-20/Concepts/components.md | 2 +- .../version-21/Concepts/components.md | 2 +- .../version-21/ORDA/orda-events.md | 244 ++++++----------- .../version-21/Project/components.md | 2 +- 55 files changed, 977 insertions(+), 1601 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/components.md index 16edac0f404e2c..fe6ae7e719caec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -9,7 +9,7 @@ Un componente 4D es un conjunto de código y de formularios 4D que representan u Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Varios componentes son [desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d), pero muchos componentes 4D de la comunidad 4D [se pueden encontrar en GitHub](https://github.com/search?q=4d-component&type=Repositories). Adicionalmente, puede [desarrollar sus propios componentes 4D](../Extensions/develop-components.md). +Varios componentes son [desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d), pero muchos componentes 4D de la comunidad 4D [se pueden encontrar en GitHub](https://github.com/topics/4d-component). Adicionalmente, puede [desarrollar sus propios componentes 4D](../Extensions/develop-components.md). ## Utilización de los componentes diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index dd34615ea6612d..3372865a4eb79b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -147,27 +147,27 @@ En este caso, el modo de renderizado Fluent UI se utilizará por defecto en Wind Cada formulario puede definir su propio renderizado a través de la propiedad **Apariencia de los Widgets**. Las siguientes opciones están disponibles: - **Heredado**: hereda las propiedades globales de la aplicación (por defecto), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
        +- **Classic**: utiliza el estilo clásico de Windows, +- **Fluent UI**: permite el renderizado moderno basado en Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propiedad de formulario JSON](./properties_JSONref.md) correspondiente es `fluentUI` con el valor undefined (es decir, heredado, valor por defecto), "true" o "false". ### Comportamientos específicos -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). +- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Valores posibles: "Classic" o "FluentUI". Si no existe un formulario actual o el comando se ejecuta en macOS, se devuelve una cadena vacía. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) es llamado en el contexto de un formulario, la información devuelta se refiere a la apariencia actual del formulario (Classic o FluentUI). Si se llama al comando fuera del contexto de un formulario, la información devuelta se refiere a las [propiedades globales del proyecto](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. +- El objeto de formulario [Stepper](../FormObjects/stepper.md) no admite el [evento doble clic](../Events/onDoubleClicked.md). +- Los [botones circulares](../FormObjects/button_overview.md#circle) son soportados (como en macOS). +- Los comandos [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) no son compatibles en áreas Web con motor de renderizado sistema. +- Se puede añadir rectángulo de foco a las [entradas](../FormObjects/input_overview.md) imagen y texto. -:::info Limitations +:::info Limitaciones -This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). +Esta **Vista previa para desarrolladores** incluye algunas limitaciones, que se [enumeran en la entrada del blog relacionado](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). ::: 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 7f0f9eda7ba93a..28b989a640e0ec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,50 +9,50 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent #### Lo más destacado -- Support of AI Vector Searches in the [`query()`](../API/DataClassClass.md#query-by-vector-similarity) function and in the [`$filter`](../REST/$filter.md#vector-similarity) REST API. -- Support of TLS encryption for the [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew) class. +- Soporte de búsquedas vectoriales de IA en la función [`query()`](../API/DataClassClass.md#query-by-vector-similarity) y en la API REST [`$filter`](../REST/$filter.md#vector-similarity). +- Soporte de encriptación TLS para la clase [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew). - Servidor Web: - - new [HTTP rules](../WebServer/http-rules.md) to customize HTTP response headers, - - ability to set [HTTP request handlers](../WebServer/http-request-handler.md) using a `handlers` property in the *settings* parameter of the Web server [`start()`](../API/WebServerClass.md#start) function, - - the Web server object contains new [`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) properties. -- New [ORDA events on data](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. -- New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes. + - nuevas [reglas HTTP](../WebServer/http-rules.md) para personalizar los encabezados de respuesta HTTP, + - posibilidad para definir los [gestores de peticiones HTTP](../WebServer/http-request-handler.md) utilizando una propiedad `handlers` en el parámetro *settings* de la función [`start()`](../API/WebServerClass.md#start) del servidor Web, + - el objeto servidor Web contiene nuevas propiedades [`rules`](../API/WebServerClass.md#rules) y [`handlers`](../API/WebServerClass.md#handlers). +- Nuevos [eventos ORDA sobre los datos](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Nueva opción que permite utilizar certificados de Windows Certificate Store en lugar de una carpeta local de certificados en las clases [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) y [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew). - Cliente/servidor: - - You can display Qodly pages in Web areas and [share the remote client session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). - - The [QUIC network layer](../settings/client-server.md#network-layer) has been enhanced to handle network interface changes transparently, for example when you travel with your laptop. See [this blog post](https://blog.4d.com/work-and-move-with-quic-and-network-switching). -- You can now [create components directly from the host project](../Extensions/develop-components.md#creating-components) and [edit their code from a dedicated tab](../Extensions/develop-components.md#editing-all-component-code) in the 4D Explorer without leaving or restarting the project. -- The 4D product activation step has been simplified and automated during [sign-in](../GettingStarted/Installation.md#sign-in). -- 4D AIKit component: new features to [invoke a specific tool automatically](../aikit/Classes/OpenAIChatHelper.md#registertool) and [specify a response format](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). + - Puede mostrar las páginas Qodly en las áreas Web y [compartir la sesión del cliente remoto](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). + - La [capa red QUIC](../settings/client-server.md#network-layer) se ha mejorado para gestionar los cambios de interfaz de red de forma transparente, por ejemplo, cuando viajas co su ordenador portátil. Ver [esta entrada del blog](https://blog.4d.com/work-and-move-with-quic-and-network-switching). +- Ahora puede [crear componentes directamente desde el proyecto local](../Extensions/develop-components.md#creating-components) y [editar su código desde una pestaña dedicada](../Extensions/develop-components.md#editing-all-component-code) en el Explorador 4D sin salir o reiniciar el proyecto. +- La etapa de activación del producto 4D se ha simplificado y automatizado durante la [conexión](../GettingStarted/Installation.md#sign-in). +- Componente 4D AIKit: nuevas funcionalidades para [invocar automáticamente una herramienta específica](../aikit/Classes/OpenAIChatHelper.md#registertool) y [especificar un formato de respuesta](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). - Lenguaje 4D: - - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). + - Nuevos comandos "trim" para eliminar los espacios iniciales y finales de una cadena: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md) y [`Trim end`](../commands/trim-end.md). - Los comandos [`Num`](../commands/num.md) y [`String`](../commands/string.md) han sido actualizados para soportar conversiones en diferentes bases (radix). -- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21): list of all bugs that have been fixed in 4D 21. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21): lista de todos los bugs que se han corregido en 4D 21. #### Vista previa para desarrolladores -[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. +El [renderizado **Fluent UI** para los formularios 4D](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) está disponible en Developer Preview durante el programa de pruebas beta. #### Cambios de comportamiento -:::caution Index rebuild +:::caution Reconstrucción del índice -4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla. +4D 21 incluye una actualización de la librería ICU ([ver abajo](#library-table)) que forzará una reconstrucción automática de los índices de tipo alfa, texto y objeto. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla. ::: -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. +- Servicios web (SOAP): cuando las [sesiones escalables](../WebServer/sessions.md#enabling-web-sessions) están activadas, los servicios web se ejecutan ahora en [**procesos apropiativos**](../Develop/preemptive.md) en modo compilado. Asegúrese de que su código SOAP es hilo seguro. +- Servidor web: se elimina la compatibilidad con las URL obsoletas `4DSYNC/` y `4DCGI/`. Ya no se realiza ningún tratamiento específico en estas URL. - Las sesiones usuario web ahora son devueltas por [`Process activity`](../commands/process-activity.md). -- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- El comando [`HIGHLIGHT TEXT`](../commands/highlight-text) es ahora compatible en el contexto de los subformularios. +- **Componentes ya no integrados**: a partir de 4D 21, los componentes desarrollados por 4D (4D NetKit, 4D SVG..., ver [esta lista](../Extensions/overview.md#components-developed-by-4d)) ya no están integrados en la aplicación 4D. Cuando se actualiza un proyecto a 4D 21 o superior, se muestra un cuadro de diálogo:
        ![alt-text](../assets/en/getStart/convert.png)
        - \- **Import**: import automatically 4D components as dependencies to the project
        - \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        - \- **Ask later**: do not import components and display the dialog at the next project opening. + \- **Importar**: importar automáticamente componentes 4D como dependencias del proyecto
        + \- **Ignorar**: no importar componentes y dejar que [gestione los componentes manualmente](../Project/components.md)
        + \- **Preguntar más tarde**: no importar componentes y mostrar el cuadro de diálogo en la próxima apertura del proyecto. :::note -In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). +En las bases de datos binarias, debe seleccionar los componentes necesarios en el programa de instalación de 4D o descargarlos del [portal de descarga de productos 4D](https://product-download.4d.com/?type=components). ::: @@ -208,12 +208,12 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - Nueva clase [`4D.Vector`](../API/VectorClass.md) para procesar y comparar vectores, normalmente calculados por IAs. - Nuevas opciones para generar UUIDs en **versión 7** para el comando [4D automatic fields](../settings/database.md#auto-uuid-version) y [`Generate UUID`](../commands/generate-uuid). - Nuevas clases [`UDPSocket`](../API/UDPSocketClass.md) y [`UDPEvent`](../API/UDPEventClass.md) para enviar datos utilizando sockets UDP. Soporte de registro detallado para eventos UDP en el archivo de registro [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) (renombrado de `4DTCPLog.txt`). -- New [`.promote()`](../API/SessionClass.md#promote) and [`.demote()`](../API/SessionClass.md#demote) functions in the [Session class](../API/SessionClass.md) to dynamically add/remove privileges in a web process. -- [Automatic selection of licenses to embed](../Desktop/building.md#application-automatically-embedding-available-licenses) in the Build application dialog box, modified [`Create deployment license`](../commands/create-deployment-license.md) command, new [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html) BuildApplication xml key. +- Nuevas funciones [`.promote()`](../API/SessionClass.md#promote) y [`.demote()`](../API/SessionClass.md#demote) en la [clase Session](../API/SessionClass.md) para añadir/eliminar privilegios dinámicamente en un proceso web. +- [Selección automática de licencias a integrar](../Desktop/building.md#application-automatically-embedding-available-licenses) en el cuadro de diálogo del Generador de aplicaciones, modificación del comando [`Create deployment license`](../commands/create-deployment-license.md), nueva llave xml BuildApplication [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html). - Seguridad mejorada para copiar/pegar fórmulas en [4D Write Pro](../WritePro/managing-formulas.md) y [áreas de texto con estilo](../FormObjects/input_overview.md): las fórmulas copiadas desde fuera de la aplicación 4D actual se pegan ahora siempre sólo como valores. -- 4D AIKit component: new [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) to create embeddings using OpenAI's API. -- You can now [associate a class](../Develop/field-properties.md) to an object field in the structure editor. -- Automatic handling of [recursive dependencies](../Project/components.md#automatic-dependency-resolution). +- Componente 4D AIKit: nueva [clase OpenAIEmbeddingsAPI](../aikit/Classes/OpenAIEmbeddingsAPI.md) para crear embeddings utilizando la API OpenAI. +- Ahora puede [asociar una clase](../Develop/field-properties.md) a un campo objeto en el editor de estructura. +- Gestión automática de [dependencias recursivas](../Project/components.md#automatic-dependency-resolution). - Lenguaje 4D: - Por coherencia, los comandos [`Create entity selection`](../commands/create-entity-selection.md) y [`USE ENTITY SELECTION`](../commands/use-entity-selection.md) han sido movidos del tema ["4D Environment"](../commands/theme/4D_Environment.md) al ["Selection"](../commands/theme/Selection.md). - Nuevos comandos [`OBJECT SET DATA SOURCE FORMULA`](../commands/object-set-data-source-formula.md) y [`OBJECT Get data source formula`](../commands/object-get-data-source-formula.md) para asignar y leer los objetos `Formula` como fuentes de datos para los objetos de formulario. @@ -226,7 +226,7 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - Se ha eliminado la biblioteca *MeCab*. Este cambio sólo afecta al tratamiento del texto en japonés. - Cuando una variable o parámetro objeto se declara con un tipo ["cs" class](../Concepts/classes.md#cs), asignarlo con una instancia de objeto de una clase diferente genera ahora un error de sintaxis. - [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) devuelve True para privilegios promovidos en el proceso web. -- The [`Time`](../commands/time) command now returns a negative time expression when the *timeValue* parameter is negative. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. In previous releases, the negative sign was ignored. +- El comando [`Time`](../commands/time) devuelve ahora una expresión de tiempo negativa cuando el parámetro *timeValue* es negativo. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. En versiones anteriores, se ignoraba el signo negativo. ## 4D 20 R9 @@ -237,7 +237,7 @@ Lea [**Novedades en 4D 20 R9**](https://blog.4d.com/en-whats-new-in-4d-20-R9/), - La biblioteca [*MeCab*](../settings/database.md#support-of-mecab-japanese-version) está obsoleta y se eliminará en la próxima versión. - Soporte de [token de sesión](../WebServer/sessions.md#session-token-otp) manejado con las nuevas funciones [`Session.createOTP()`](../API/SessionClass.md#createotp) y [`Session.restore()`](../API/SessionClass.md#restore). - El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el [área de diseño de etiquetas](../Desktop/labels.md#label-preview). -- New [`TCPListener`](../API/TCPListenerClass.md) class to create TCP server connections; new properties in related classes: `address`, `listener` and `port` in [`TCPConnection`](../API/TCPConnectionClass.md) class, `address` and `port` in [`TCPEvent`](../API/TCPEventClass.md) class. +- Nueva clase [`TCPListener`](../API/TCPListenerClass.md) para crear conexiones del servidor TCP; nuevas propiedades en las clases relacionadas: `address`, `listener` y `port` en la clase [`TCPConnection`](../API/TCPConnectionClass.md), `address` y `port` en la clase [`TCPEvent`](../API/TCPEventClass.md). - Comandos y constantes obsoletos ahora generan advertencias específicas en el [Live checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). Puede saber si un comando está obsoleto utilizando el comando [`Command name`](../commands/command-name.md). - Nuevos comandos [WA SET CONTEXT](../commands/wa-set-context.md) y [WA Get context](../commands/wa-get-context.md) para controlar los contenidos [$4d](../FormObjects/webArea_overview.md#4d-object) en áreas web. - Nuevo [parámetro de base de datos `RDP optimization`](../commands-legacy/set-database-parameter.md#rdp-optimization-133) para optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D. @@ -298,7 +298,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), - Lenguaje 4D: - Nuevos comandos: [Process info](../commands/process-info.md), [Session info](../commands/session-info.md), [SET WINDOW DOCUMENT ICON](../commands/set-window-document-icon.md) - Comandos modificados: [Process activity](../commands/process-activity.md), [Process number](../commands/process-number.md) - - Deprecated commands (replacement): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) and [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) declarations). Los comandos obsoletos llevan el prefijo "\*o\*". + - Comandos obsoletos (reemplazo): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) y [#DECLARE/declaraciones Function](../Concepts/parameters.md#declaring-parameters)). Los comandos obsoletos llevan el prefijo "\*o\*". - 4D Write Pro: - Nuevo comando: [WP DELETE SECTION](../WritePro/commands/wp-delete-section.md) - Comandos modificados: [WP DELETE SUBSECTION](../WritePro/commands/wp-delete-subsection.md) y [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md) @@ -433,23 +433,23 @@ Ver [**Notas de lanzamiento para LTS 4D 20.x**](../../versioned_docs/version-20/ ## Tabla de la librería -| Librería | Versión actual | Actualizado en 4D | Comentario | -| --------- | -------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| BoringSSL | fa47b1d | **21** | Utilizado para QUIC | -| CEF | 7258 | **21** | Chromium 139 | -| Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | -| ICU | 77.1 | **21** | This upgrade forces an automatic rebuild of alphanumeric, text and object indexes. | -| libldap | 2.6.10 | **21** | | -| libsasl | 2.1.28 | 20 | | -| Liblsquic | 4.2.0 | 20 R10 | Utilizado para QUIC | -| Libuv | 1.51.0 | **21** | Utilizado para QUIC | -| libZip | 1.11.4 | **21** | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | -| LZMA | 5.8.1 | **21** | | -| ngtcp2 | 1.16.0 | **21** | Utilizado para QUIC | -| OpenSSL | 3.5.2 | **21** | | -| PDFWriter | 4.7.0 | **21** | Used for [`WP Export document`](../WritePro/commands/wp-export-document.md) and [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | -| PHP | 8.2.4 | 20 | | -| SpreadJS | 17.1.0 | 20 R7 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) para obtener una visión general de las nuevas funciones | -| webKit | WKWebView | 19 | | -| Xerces | 3.3.0 | **21** | Utilizado para comandos XML | -| Zlib | 1.3.1 | **21** | | +| Librería | Versión actual | Actualizado en 4D | Comentario | +| --------- | -------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| BoringSSL | fa47b1d | **21** | Utilizado para QUIC | +| CEF | 7258 | **21** | Chromium 139 | +| Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | +| ICU | 77.1 | **21** | Esta actualización fuerza una reconstrucción automática de los índices alfanuméricos, textos y objetos. | +| libldap | 2.6.10 | **21** | | +| libsasl | 2.1.28 | 20 | | +| Liblsquic | 4.2.0 | 20 R10 | Utilizado para QUIC | +| Libuv | 1.51.0 | **21** | Utilizado para QUIC | +| libZip | 1.11.4 | **21** | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | +| LZMA | 5.8.1 | **21** | | +| ngtcp2 | 1.16.0 | **21** | Utilizado para QUIC | +| OpenSSL | 3.5.2 | **21** | | +| PDFWriter | 4.7.0 | **21** | Utilizado para [`WP Export document`](../WritePro/commands/wp-export-document.md) y [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | +| PHP | 8.2.4 | 20 | | +| SpreadJS | 17.1.0 | 20 R7 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) para obtener una visión general de las nuevas funciones | +| webKit | WKWebView | 19 | | +| Xerces | 3.3.0 | **21** | Utilizado para comandos XML | +| Zlib | 1.3.1 | **21** | | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 12b7b0d036ccbd..329dec884c4263 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -18,7 +18,7 @@ No se puede activar directamente la ejecución de la función de evento. Events :::tip Entrada de blog relacionada -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Tabla resumen @@ -139,7 +139,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - el usuario define un valor en un formulario 4D, - el código 4D realiza una asignación con el operador `:=`. El evento también se activa en caso de autoasignación (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Ejemplo -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Ejemplo 1 +#### Ejemplo -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Ejemplo 1 +#### Ejemplo -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Ejemplo 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Ejemplo 1 +#### Ejemplo -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Ejemplo 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Ejemplo 1 +#### Ejemplo -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Ejemplo 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md index 05ff3c96923e4a..de12a84917a83c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,7 +5,7 @@ title: Dependencias [La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Los componentes están hechos de código 4D, mientras que los plug-ins pueden [construirse utilizando cualquier lenguaje](../Extensions/develop-plug-ins.md). -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\\\\\\\\\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/topics/4d-component). Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index 72aff3bfa10d5a..7a727201020ac8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -5,47 +5,47 @@ title: HTTP Request handler Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). -In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. +Además, 4D soporta la implementación de **gestores de peticiones HTTP personalizadas**, permitiéndole interceptar peticiones HTTP entrantes específicas y procesarlas utilizando su propio código. Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, se procesa directamente y no hay otras funcionalidades de procesamiento (por ejemplo, son llamados métodos base [On Web authentication](./authentication.md#on-web-authentication) o [On Web connection](./httpRequests.md#on-web-connection). -Custom HTTP request handlers meet various needs, including: +Los gestores de peticiones HTTP personalizados satisfacen diversas necesidades, entre ellas: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- la utilización de una URL dedicada como proveedor de recursos o como cuadro de carga de archivos (para descargar o cargar varios archivos), +- la redirección en páginas específicas en función de un contexto (usuario autentificado, privilegios otorgados...), - gestionar una autenticación a través de oAuth 2.0. ## Requisitos -Custom HTTP Request handlers are supported in the following context: +Los manejadores de peticiones HTTP personalizadas están soportados en el siguiente contexto: -- [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, -- a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). +- las [sesiones escalables](./sessions.md#enabling-web-sessions) o [sin sesiones](../settings/web.md#no-sessions) están activadas, +- un servidor web ejecutado localmente por 4D o 4D Server, incluyendo aquellos [ejecutados por componentes](./webServerObject.md). :::warning -For security reasons, external access to the datastore can be disallowed in 4D. You need to configure the [ORDA privileges](../ORDA/privileges.md) to allow HTTP requests. +Por razones de seguridad, el acceso externo al datastore puede ser desautorizado en 4D. Necesita configurar los [privilegios ORDA](../ORDA/privileges.md) para permitir peticiones HTTP. ::: -## Cómo definir los manejadores +## Cómo definir los gestores -You can declare HTTP Request handlers: +Puede declarar gestores de peticiones HTTP: -- in a configuration file named **HTTPHandlers.json** stored in the [`Project/Sources`](../Project/architecture.md#sources) folder of the project. HTTP Request handlers are loaded and applied in the main Web server once it is started. -- using a [`.handlers`](../API/WebServerClass.md#handlers) property set in the *settings* parameter of the [start()](../API/WebServerClass.md#start) function, for any web server object: +- en un archivo de configuración llamado **HTTPHandlers.json** almacenado en la carpeta [`Project/Sources`](../Project/architecture.md#sources) del proyecto. Los gestores de peticiones HTTP se cargan y aplican en el servidor Web principal una vez se inicia. +- utilizando una propiedad [`.handlers`](../API/WebServerClass.md#handlers) definida en el parámetro *settings* de la función [start()](../API/WebServerClass.md#start), para todo objeto servidor web: ```4d -WEB Server.start($settings.handlers) //set rules at web server startup +WEB Server.start($settings.handlers) //definir reglas al inicio del servidor web ``` -If both a **HTTPHandlers.json** file and a call to the [`WEB Server`](../commands/web-server.md) command with a valid `$settings.handlers` are used, the `WEB Server` command has priority. +Si se utiliza tanto un archivo **HTTPHandlers.json** como una llamada al comando [`WEB Server`](../commands/web-server.md) con un `$settings.handlers` válido, el comando `WEB Server` tiene prioridad. -The json file (or the object in the *settings* parameter) contains all listened URL patterns, the handled verbs, and the code to be called. +El archivo json (o el objeto en el parámetro *settings*) contiene todos los modelos URL escuchados, los verbos manejados y el código a llamar. -Handlers are provided as a collection. +Los *handlers* se proporcionan como una colección. -At runtime, the first pattern matching the URL is executed, the others are ignored. +Al momento de la ejecución, se ejecuta el primer patrón que coincida con la URL, los demás se ignoran. Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: @@ -61,11 +61,11 @@ Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ] ``` -This handler declaration can be read as: when any request starting by `/start/` with a `GET` or `POST` verb is received by the server, the `gettingStarted` function of the `GeneralHandling` singleton is executed. +Esta declaración de handler puede leerse como: cuando cualquier petición que comience por `/start/` con un verbo `GET` o `POST` es recibida por el servidor, se ejecuta la función `gettingStarted` del singleton `GeneralHandling`. :::note -You must restart the Web server so that modifications made in this file are taken into account. +Debe reiniciar el servidor Web para que se tengan en cuenta las modificaciones realizadas en este archivo. ::: @@ -74,31 +74,31 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - un patrón de URL a interceptar -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler +- una función y su clase donde se implementa el código para manejar el patrón URL escuchado +- los verbos con los que se puede llamar a la URL para activar el gestor -The handler identifier is the couple [pattern + a verb among the verbs list]. +El identificador del gestor es la pareja [patrón + un verbo de la lista de verbos]. ### Patrones de la URL -URL patterns can be given as **prefixes** or using **regular expressions**. +Los patrones de URL pueden indicarse como **prefijos** o utilizando **expresiones regulares**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. +- Para declarar un patrón de prefijo, utilice el nombre de propiedad "pattern" en el archivo HTTPHandlers.json. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. +- Para declarar un patrón de expresión regular, utilice el nombre de propiedad "regexPattern" en el archivo HTTPHandlers.json. Los modelos de expresiones regulares se manejan directamente. Ej: `"regexPattern" : "/docs/.+/index\.html"` -"Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). +Las propiedades "Pattern" y "regexPattern" no pueden utilizarse en la misma definición de gestor (en este caso, sólo se tiene en cuenta la propiedad "regexPattern"). -#### Concordancia de modelos +#### Correspondencia de modelos Los modelos de URL se activan en el orden indicado: - se ejecuta el primer modelo coincidente - los siguientes patrones no se ejecutan aunque coincidan con la URL -As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. +En consecuencia, debe aplicar una estrategia precisa al escribir sus gestores: los patrones más detallados deben escribirse antes que los patrones más generales. ```json [ @@ -126,7 +126,7 @@ As a consequence, you need to apply a accurate strategy when writing your handle #### Patrones prohibidos -URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: +Los patrones URL que coincidan con las funciones de procesamiento HTTP integradas en 4D no están permitidos en los gestores HTTP personalizados. Por ejemplo, los siguientes modelos no pueden ser manejados: - `/4DACTION` - `/rest` @@ -135,7 +135,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu ### Clase y método -You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. +Declare el código a ejecutar cuando se intercepte un patrón de URL definido utilizando las propiedades "class" y "method". - "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. @@ -144,19 +144,19 @@ You declare the code to be executed when a defined URL pattern is intercepted us ### Verbs -You can use the "verbs" property in the handler definition to declare HTTP verbs that are supported in incoming requests for this handler. A request that uses a verb that is not explicitely allowed is automatically rejected by the server. +Puede utilizar la propiedad "verbs" en la definición del manejador para declarar los verbos HTTP que se admiten en las peticiones entrantes para este manejador. Una solicitud que utiliza un verbo no permitido explícitamente es rechazada automáticamente por el servidor. -You can declare several verbs, separated by a comma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. +Puede declarar varios verbos, separados por una coma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. Ej: `"verbs" : "PUT, POST"` :::note -No control is done on verb names. Se pueden utilizar todos los nombres. +No se hace ningún control sobre los nombres de los verbos. Se pueden utilizar todos los nombres. ::: -By default, if the "verbs" property is not used for a handler, **all** HTTP verbs are supported in incoming requests for this handler (except those possibly used beforehand in a more detailed pattern, as shown in the example above). +Por defecto, si la propiedad "verbs" no se utiliza para un manejador, **todos** los verbos HTTP son soportados en las peticiones entrantes para este manejador (excepto aquellos posiblemente utilizados de antemano en un patrón más detallado, como se muestra en el ejemplo anterior). :::note @@ -225,7 +225,7 @@ En este ejemplo, debe implementar las siguientes funciones: - *handleDocs* en la clase *DocsHandling* - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* -Examples of URLs triggering the handlers: +Ejemplos de URL que activan los gestores personalizados: `IP:port/info/` con un verbo GET `IP:port/info/general` con un verbo GET @@ -246,11 +246,11 @@ Examples of URLs triggering the handlers: ### Configuración de funciones -The HTTP Request handler code must be implemented in a function of a [**Shared**](../Concepts/classes.md#shared-singleton) [**singleton class**](../Concepts/classes.md#singleton-classes). +El código del gestor de peticiones HTTP debe implementarse en una función de una clase [**Compartida**](../Concepts/classes.md#shared-singleton) [**clase singleton**](../Concepts/classes.md#singleton-classes). -If the singleton is missing or not shared, an error "Cannot find singleton" is returned by the server. If the class or the function [defined as handler](#handler-definition) in the HTTPHandlers.json file is not found, an error "Cannot find singleton function" is returned by the server. +Si el singleton no se encuentra o no está compartido, el servidor devuelve un error "No se puede encontrar singleton". Si la clase o la función [definida como manejador](#handler-definition) en el archivo HTTPHandlers.json no se encuentra, el servidor devuelve un error "No se puede encontrar la función singleton". -Request handler functions are not necessarily shared, unless some request handler properties are updated by the functions. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). +Las funciones del gestor de peticiones no son necesariamente compartidas, a menos que algunas propiedades del gestor de peticiones sean actualizadas por las funciones. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). :::note @@ -262,13 +262,13 @@ Request handler functions are not necessarily shared, unless some request handle Cuando una solicitud ha sido interceptada por el manejador, se recibe en el servidor como una instancia de la [clase 4D.IncomingMessage](../API/IncomingMessageClass.md). -All necessary information about the request are available in this object, including the request url, verb, headers, and, if any, parameters (put in the URL) and body. +Toda la información necesaria sobre la petición está disponible en este objeto, incluyendo la url de la petición, el verbo, los encabezados y, si los hay, los parámetros (puestos en la URL) y el cuerpo de la petición. -Then, the request handler can use this information to trigger appropriate business logic. +A continuación, el gestor de solicitudes puede utilizar esta información para activar la lógica de negocio adecuada. -### Output: an instance of the 4D.OutgoingMessage class +### Salida: una instancia de la clase 4D.OutgoingMessage -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +El gestor de peticiones puede devolver una instancia de objeto de la clase [4D.OutGoingMessage](../API/OutgoingMessageClass.md), es decir, algún contenido web completo listo para que un navegador lo maneje, como un contenido de archivo. ### Ejemplo @@ -291,7 +291,7 @@ El archivo **HTTPHandlers.json**: La URL llamada es: http://127.0.0.1:8044/putFile?fileName=testFile -The binary content of the file is put in the body of the request and a POST verb is used. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. +El contenido binario del archivo se coloca en el cuerpo de la petición y se utiliza un verbo POST. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. ```4d //UploadFile class @@ -336,4 +336,4 @@ Function uploadFile($request : 4D.IncomingMessage) : 4D.OutgoingMessage ## Ver también -[Perfect mastery of your back end business logic thanks to HTTP requests handlers](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (blog post) \ No newline at end of file +[Maestría de las peticiones HTTP con los gestores de peticiones 4D](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (entrada del blog) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index c362533f28a3d9..4a997b5f1b63da 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -3,7 +3,7 @@ id: http-rules title: Reglas HTTP --- -You can define HTTP rules to control HTTP response headers for any requests received by the 4D web server, including REST requests. You can add, modify, or remove HTTP headers, send redirections or set the HTTP status. This feature is useful to implement security policies based upon the handling of headers. +Puede definir reglas HTTP para controlar los encabezados de respuesta HTTP para toda petición recibida por el servidor web 4D, incluyendo las peticiones REST. Puede añadir, modificar o eliminar los encabezados HTTP, enviar redirecciones o establecer el estado HTTP. This feature is useful to implement security policies based upon the handling of headers. To define HTTP rules, you just need to write some RegEx to declare the URL patterns you want to control, as well as how to modify response headers. You can set these rules using a `HTTPRules.json` file stored in the project folder, or using the *settings* parameter [`start()`](../API/WebServerClass.md#start) function of the web server object. @@ -82,7 +82,7 @@ Puede conocer las reglas actuales utilizando la propiedad [`.rules` del objeto W ``` var $rules : Collection -$rules:=WEB Server.rules //current rules +$rules:=WEB Server.rules //reglas actuales ``` ## Ejemplos diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index a2a69675bf98f7..a56241b39b33dc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -29,9 +29,9 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. Crear una instancia de la clase cliente OpenAI. -| Nombre del argumento | Tipo | Descripción | -| ------------------------- | -------------- | ------------------------------------------------------- | -| `apiKey or configuration` | Texto u objeto | apiKey if Text or configuration Object. | +| Nombre del argumento | Tipo | Descripción | +| ------------------------- | -------------- | --------------------------------------------------------- | +| `apiKey or configuration` | Texto u objeto | apiKey si Text u objeto de configuración. | #### Llave API diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index 23279b40c9c82a..53bb4b8143fd98 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -79,7 +79,7 @@ $messages.push({ \ $result := $client.chat.completions.create($messages; $params) ``` -#### 3. JSON Schema Format (Structured Outputs) +#### 3. Formato de esquema JSON (salidas estructuradas) For precise control over the JSON structure, you can define a schema: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md index ac489e35bd61c7..36b6aaf3f75cb6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md @@ -396,7 +396,7 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      1203. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      1204. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza entity.drop( ), este error puede ser devuelto cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza entity.lock(), se puede devolver este error cuando la opción dk reload if stamp changed es utilizada
      1205. **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
        **statusText asociado**: "Already locked" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **statusText asociado**\*: "Other error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1206. with `.save( )`: error only if the `dk auto merge` option is not used
      1207. with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
      1208. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      1209. **Associated statusText**: "Stamp has changed"
      1210. | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md index b58f64c736ee2c..adcaaac1e2b4ee 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md @@ -7,7 +7,7 @@ Un componente 4D es un conjunto de código y de formularios 4D que representan u ## Instalación de los componentes -Varios componentes están [preinstalados en el entorno de desarrollo 4D](Extensions/overview.md), pero muchos componentes 4D de la comunidad 4D [están disponibles en GitHub](https://github.com/search?q=4d-component&type=Repositories). Adicionalmente, puede [desarrollar sus propios componentes 4D](Extensions/develop-components.md). +Varios componentes están [preinstalados en el entorno de desarrollo 4D](Extensions/overview.md), pero muchos componentes 4D de la comunidad 4D [están disponibles en GitHub](https://github.com/topics/4d-component). Adicionalmente, puede [desarrollar sus propios componentes 4D](Extensions/develop-components.md). La instalación y carga de componentes en sus proyectos 4D se manejan a través del [gestor de dependencias de 4D](../Project/components.md). 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 d82ec8269a7b3a..5ec31955dfa4ec 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 @@ -14,12 +14,12 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - Nueva clase [`4D.Vector`](../API/VectorClass.md) para procesar y comparar vectores, normalmente calculados por IAs. - Nuevas opciones para generar UUIDs en **versión 7** para el comando [4D automatic fields](../settings/database.md#auto-uuid-version) y [`Generate UUID`](../commands/generate-uuid). - Nuevas clases [`UDPSocket`](../API/UDPSocketClass.md) y [`UDPEvent`](../API/UDPEventClass.md) para enviar datos utilizando sockets UDP. Soporte de registro detallado para eventos UDP en el archivo de registro [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) (renombrado de `4DTCPLog.txt`). -- New [`.promote()`](../API/SessionClass.md#promote) and [`.demote()`](../API/SessionClass.md#demote) functions in the [Session class](../API/SessionClass.md) to dynamically add/remove privileges in a web process. -- [Automatic selection of licenses to embed](../Desktop/building.md#application-automatically-embedding-available-licenses) in the Build application dialog box, modified [`Create deployment license`](../commands/create-deployment-license.md) command, new [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html) BuildApplication xml key. +- Nuevas funciones [`.promote()`](../API/SessionClass.md#promote) y [`.demote()`](../API/SessionClass.md#demote) en la [clase Session](../API/SessionClass.md) para añadir/eliminar privilegios dinámicamente en un proceso web. +- [Selección automática de licencias a integrar](../Desktop/building.md#application-automatically-embedding-available-licenses) en el cuadro de diálogo del Generador de aplicaciones, modificación del comando [`Create deployment license`](../commands/create-deployment-license.md), nueva llave xml BuildApplication [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html). - Seguridad mejorada para copiar/pegar fórmulas en [4D Write Pro](../WritePro/managing-formulas.md) y [áreas de texto con estilo](../FormObjects/input_overview.md): las fórmulas copiadas desde fuera de la aplicación 4D actual se pegan ahora siempre sólo como valores. -- 4D AIKit component: new [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) to create embeddings using OpenAI's API. -- You can now [associate a class](../Develop/field-properties.md) to an object field in the structure editor. -- Automatic handling of [recursive dependencies](../Project/components.md#automatic-dependency-resolution). +- Componente 4D AIKit: nueva [clase OpenAIEmbeddingsAPI](../aikit/Classes/OpenAIEmbeddingsAPI.md) para crear embeddings utilizando la API OpenAI. +- Ahora puede [asociar una clase](../Develop/field-properties.md) a un campo objeto en el editor de estructura. +- Gestión automática de [dependencias recursivas](../Project/components.md#automatic-dependency-resolution). - Lenguaje 4D: - Por coherencia, los comandos [`Create entity selection`](../commands/create-entity-selection.md) y [`USE ENTITY SELECTION`](../commands/use-entity-selection.md) han sido movidos del tema ["4D Environment"](../commands/theme/4D_Environment.md) al ["Selection"](../commands/theme/Selection.md). - Nuevos comandos [`OBJECT SET DATA SOURCE FORMULA`](../commands/object-set-data-source-formula.md) y [`OBJECT Get data source formula`](../commands/object-get-data-source-formula.md) para asignar y leer los objetos `Formula` como fuentes de datos para los objetos de formulario. @@ -31,7 +31,7 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - En Windows, las fuentes de impresora actuales destinadas únicamente a la impresión (es decir, no se pueden utilizar en pantalla) ya no son cargadas al inicio por 4D. - Se ha eliminado la biblioteca *MeCab*. Este cambio sólo afecta al tratamiento del texto en japonés. - Cuando una variable o parámetro objeto se declara con un tipo ["cs" class](../Concepts/classes.md#cs), asignarlo con una instancia de objeto de una clase diferente genera ahora un error de sintaxis. -- The [`Time`](../commands/time) command now returns a negative time expression when the *timeValue* parameter is negative. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. In previous releases, the negative sign was ignored. +- El comando [`Time`](../commands/time) devuelve ahora una expresión de tiempo negativa cuando el parámetro *timeValue* es negativo. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. En versiones anteriores, se ignoraba el signo negativo. ## 4D 20 R9 @@ -103,7 +103,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), - Lenguaje 4D: - Nuevos comandos: [Process info](../commands/process-info.md), [Session info](../commands/session-info.md), [SET WINDOW DOCUMENT ICON](../commands/set-window-document-icon.md) - Comandos modificados: [Process activity](../commands/process-activity.md), [Process number](../commands/process-number.md) - - Deprecated commands (replacement): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) and [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) declarations). Deprecated commands are prefixed with "\*O\*". + - Comandos obsoletos (reemplazo): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) y [#DECLARE/declaraciones Function](../Concepts/parameters.md#declaring-parameters)). Deprecated commands are prefixed with "\*O\*". - 4D Write Pro: - Nuevo comando: [WP DELETE SECTION](../WritePro/commands/wp-delete-section.md) - Comandos modificados: [WP DELETE SUBSECTION](../WritePro/commands/wp-delete-subsection.md) y [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 4278b5bd24df39..689c99155f4d23 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: Dependencias Un componente 4D es un conjunto de código y/o de formularios 4D que representan una o varias funcionalidades que pueden añadirse y utilizarse en sus proyectos. Por ejemplo, el componente [4D SVG](https://github.com/4d/4D-SVG) añade comandos avanzados y un motor de renderizado integrado que puede utilizarse para visualizar archivos SVG. -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\\\\\\\\\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/topics/4d-component). Al desarrollar en 4D, los archivos de los componentes pueden almacenarse de forma transparente en su ordenador o en un repositorio Github. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 5a5143056222b6..8ac073255275ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -5,14 +5,14 @@ title: HTTP Request handler Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). -In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. +Además, 4D soporta la implementación de **gestores de peticiones HTTP personalizadas**, permitiéndole interceptar peticiones HTTP entrantes específicas y procesarlas utilizando su propio código. Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, se procesa directamente y no hay otras funcionalidades de procesamiento (por ejemplo, son llamados métodos base [On Web authentication](./authentication.md#on-web-authentication) o [On Web connection](./httpRequests.md#on-web-connection). -Custom HTTP request handlers meet various needs, including: +Los gestores de peticiones HTTP personalizados satisfacen diversas necesidades, entre ellas: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- la utilización de una URL dedicada como proveedor de recursos o como cuadro de carga de archivos (para descargar o cargar varios archivos), +- la redirección en páginas específicas en función de un contexto (usuario autentificado, privilegios otorgados...), - gestionar una autenticación a través de oAuth 2.0. ## Requisitos @@ -24,7 +24,7 @@ Se soportan gestores de solicitudes HTTP personalizados: :::warning -[Por defecto](../ORDA/privileges.md#default-file) por razones de seguridad, el acceso externo al datastore no está permitido en 4D. You need to configure the [ORDA privileges](../ORDA/privileges.md) to allow HTTP requests. +[Por defecto](../ORDA/privileges.md#default-file) por razones de seguridad, el acceso externo al datastore no está permitido en 4D. Necesita configurar los [privilegios ORDA](../ORDA/privileges.md) para permitir peticiones HTTP. ::: @@ -34,7 +34,7 @@ Define sus manejadores de petición HTTP personalizados en un archivo de configu This file contains all listened URL patterns, the handled verbs, and the code to be called. Los administradores se proporcionan en forma de colección en formato JSON. -At runtime, the first pattern matching the URL is executed, the others are ignored. +Al momento de la ejecución, se ejecuta el primer patrón que coincida con la URL, los demás se ignoran. Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: @@ -50,11 +50,11 @@ Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ] ``` -This handler declaration can be read as: when any request starting by `/start/` with a `GET` or `POST` verb is received by the server, the `gettingStarted` function of the `GeneralHandling` singleton is executed. +Esta declaración de handler puede leerse como: cuando cualquier petición que comience por `/start/` con un verbo `GET` o `POST` es recibida por el servidor, se ejecuta la función `gettingStarted` del singleton `GeneralHandling`. :::note -You must restart the Web server so that modifications made in this file are taken into account. +Debe reiniciar el servidor Web para que se tengan en cuenta las modificaciones realizadas en este archivo. ::: @@ -63,31 +63,31 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - un patrón de URL a interceptar -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler +- una función y su clase donde se implementa el código para manejar el patrón URL escuchado +- los verbos con los que se puede llamar a la URL para activar el gestor -The handler identifier is the couple [pattern + a verb among the verbs list]. +El identificador del gestor es la pareja [patrón + un verbo de la lista de verbos]. ### Patrones de la URL -URL patterns can be given as **prefixes** or using **regular expressions**. +Los patrones de URL pueden indicarse como **prefijos** o utilizando **expresiones regulares**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. +- Para declarar un patrón de prefijo, utilice el nombre de propiedad "pattern" en el archivo HTTPHandlers.json. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. +- Para declarar un patrón de expresión regular, utilice el nombre de propiedad "regexPattern" en el archivo HTTPHandlers.json. Los modelos de expresiones regulares se manejan directamente. Ej: `"regexPattern" : "/docs/.+/index\.html"` -"Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). +Las propiedades "Pattern" y "regexPattern" no pueden utilizarse en la misma definición de gestor (en este caso, sólo se tiene en cuenta la propiedad "regexPattern"). -#### Concordancia de modelos +#### Correspondencia de modelos Los modelos de URL se activan en el orden indicado: - se ejecuta el primer modelo coincidente - los siguientes patrones no se ejecutan aunque coincidan con la URL -As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. +En consecuencia, debe aplicar una estrategia precisa al escribir sus gestores: los patrones más detallados deben escribirse antes que los patrones más generales. ```json [ @@ -115,7 +115,7 @@ As a consequence, you need to apply a accurate strategy when writing your handle #### Patrones prohibidos -URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: +Los patrones URL que coincidan con las funciones de procesamiento HTTP integradas en 4D no están permitidos en los gestores HTTP personalizados. Por ejemplo, los siguientes modelos no pueden ser manejados: - `/4DACTION` - `/rest` @@ -124,7 +124,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu ### Clase y método -You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. +Declare el código a ejecutar cuando se intercepte un patrón de URL definido utilizando las propiedades "class" y "method". - "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. @@ -133,19 +133,19 @@ You declare the code to be executed when a defined URL pattern is intercepted us ### Verbs -You can use the "verbs" property in the handler definition to declare HTTP verbs that are supported in incoming requests for this handler. A request that uses a verb that is not explicitely allowed is automatically rejected by the server. +Puede utilizar la propiedad "verbs" en la definición del manejador para declarar los verbos HTTP que se admiten en las peticiones entrantes para este manejador. Una solicitud que utiliza un verbo no permitido explícitamente es rechazada automáticamente por el servidor. -You can declare several verbs, separated by a comma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. +Puede declarar varios verbos, separados por una coma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. Ej: `"verbs" : "PUT, POST"` :::note -No control is done on verb names. Se pueden utilizar todos los nombres. +No se hace ningún control sobre los nombres de los verbos. Se pueden utilizar todos los nombres. ::: -By default, if the "verbs" property is not used for a handler, **all** HTTP verbs are supported in incoming requests for this handler (except those possibly used beforehand in a more detailed pattern, as shown in the example above). +Por defecto, si la propiedad "verbs" no se utiliza para un manejador, **todos** los verbos HTTP son soportados en las peticiones entrantes para este manejador (excepto aquellos posiblemente utilizados de antemano en un patrón más detallado, como se muestra en el ejemplo anterior). :::note @@ -214,7 +214,7 @@ En este ejemplo, debe implementar las siguientes funciones: - *handleDocs* en la clase *DocsHandling* - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* -Examples of URLs triggering the handlers: +Ejemplos de URL que activan los gestores personalizados: `IP:port/info/` con un verbo GET `IP:port/info/general` con un verbo GET @@ -235,11 +235,11 @@ Examples of URLs triggering the handlers: ### Configuración de funciones -The HTTP Request handler code must be implemented in a function of a [**Shared**](../Concepts/classes.md#shared-singleton) [**singleton class**](../Concepts/classes.md#singleton-classes). +El código del gestor de peticiones HTTP debe implementarse en una función de una clase [**Compartida**](../Concepts/classes.md#shared-singleton) [**clase singleton**](../Concepts/classes.md#singleton-classes). -If the singleton is missing or not shared, an error "Cannot find singleton" is returned by the server. If the class or the function [defined as handler](#handler-definition) in the HTTPHandlers.json file is not found, an error "Cannot find singleton function" is returned by the server. +Si el singleton no se encuentra o no está compartido, el servidor devuelve un error "No se puede encontrar singleton". Si la clase o la función [definida como manejador](#handler-definition) en el archivo HTTPHandlers.json no se encuentra, el servidor devuelve un error "No se puede encontrar la función singleton". -Request handler functions are not necessarily shared, unless some request handler properties are updated by the functions. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). +Las funciones del gestor de peticiones no son necesariamente compartidas, a menos que algunas propiedades del gestor de peticiones sean actualizadas por las funciones. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). :::note @@ -251,13 +251,13 @@ Request handler functions are not necessarily shared, unless some request handle Cuando una solicitud ha sido interceptada por el manejador, se recibe en el servidor como una instancia de la [clase 4D.IncomingMessage](../API/IncomingMessageClass.md). -All necessary information about the request are available in this object, including the request url, verb, headers, and, if any, parameters (put in the URL) and body. +Toda la información necesaria sobre la petición está disponible en este objeto, incluyendo la url de la petición, el verbo, los encabezados y, si los hay, los parámetros (puestos en la URL) y el cuerpo de la petición. -Then, the request handler can use this information to trigger appropriate business logic. +A continuación, el gestor de solicitudes puede utilizar esta información para activar la lógica de negocio adecuada. -### Output: an instance of the 4D.OutgoingMessage class +### Salida: una instancia de la clase 4D.OutgoingMessage -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +El gestor de peticiones puede devolver una instancia de objeto de la clase [4D.OutGoingMessage](../API/OutgoingMessageClass.md), es decir, algún contenido web completo listo para que un navegador lo maneje, como un contenido de archivo. ### Ejemplo @@ -280,7 +280,7 @@ El archivo **HTTPHandlers.json**: La URL llamada es: http://127.0.0.1:8044/putFile?fileName=testFile -The binary content of the file is put in the body of the request and a POST verb is used. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. +El contenido binario del archivo se coloca en el cuerpo de la petición y se utiliza un verbo POST. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. ```4d //UploadFile class @@ -325,4 +325,4 @@ Function uploadFile($request : 4D.IncomingMessage) : 4D.OutgoingMessage ## Ver también -[Perfect mastery of your back end business logic thanks to HTTP requests handlers](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (blog post) \ No newline at end of file +[Maestría de las peticiones HTTP con los gestores de peticiones 4D](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (entrada del blog) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index b218df5a79d550..098b4d13d45456 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -29,9 +29,9 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. Crear una instancia de la clase cliente OpenAI. -| Nombre del argumento | Tipo | Descripción | -| ------------------------- | -------------- | ------------------------------------------------------- | -| `apiKey or configuration` | Texto u objeto | apiKey if Text or configuration Object. | +| Nombre del argumento | Tipo | Descripción | +| ------------------------- | -------------- | --------------------------------------------------------- | +| `apiKey or configuration` | Texto u objeto | apiKey si Text u objeto de configuración. | #### Llave API diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/components.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/components.md index d3c8a52fc7bba5..effaefdaa08b7e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/components.md @@ -7,7 +7,7 @@ Un componente 4D es un conjunto de código y de formularios 4D que representan u ## ¿Dónde encontrar los componentes? -Varios componentes están [preinstalados en el entorno de desarrollo 4D](Extensions/overview.md), pero muchos componentes 4D de la comunidad 4D [están disponibles en GitHub](https://github.com/search?q=4d-component&type=Repositories). Adicionalmente, puede [desarrollar sus propios componentes 4D](Extensions/develop-components.md). +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Adicionalmente, puede [desarrollar sus propios componentes 4D](Extensions/develop-components.md). ## Instalación de los componentes diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 2baa81e494ea4c..b3728efa113318 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -25,7 +25,7 @@ Por razones internas, la versión de los clientes remotos que se conectan a 4D S #### Cambios de comportamiento -- As of 4D **20.7 HF2**, the [`Time`](https://doc.4d.com/4dv20/help/command/en/page179.html) command returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will now return -01:02:03. In previous releases, the negative sign was ignored. +- As of 4D **20.7 HF2**, the [`Time`](https://doc.4d.com/4dv20/help/command/en/page179.html) command returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will now return -01:02:03. En versiones anteriores, se ignoraba el signo negativo. ## 4D 20.6 LTS diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 235b647126aa6e..c2aa39d0888d53 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -398,7 +398,7 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      1211. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      1212. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
      1213. **Associated statusText**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
        **statusText asociado**: "Already locked" | | `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **Associated statusText**: "Other error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
        **statusText asociado**\*: "Other error" | | `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **Associated statusText**: "Serious Validation Error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
      1214. with `.save()`: error only if the `dk auto merge` option is not used
      1215. with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
      1216. with `.lock()`: error only if the `dk reload if stamp changed` option is not used
      1217. **Associated statusText**: "Stamp has changed"
      1218. | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | @@ -1019,7 +1019,7 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
      1219. la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
      1220. la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

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

      1225. **Associated statusText**: "Stamp has changed" | #### Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/components.md index 16edac0f404e2c..fe6ae7e719caec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/components.md @@ -9,7 +9,7 @@ Un componente 4D es un conjunto de código y de formularios 4D que representan u Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Varios componentes son [desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d), pero muchos componentes 4D de la comunidad 4D [se pueden encontrar en GitHub](https://github.com/search?q=4d-component&type=Repositories). Adicionalmente, puede [desarrollar sus propios componentes 4D](../Extensions/develop-components.md). +Varios componentes son [desarrollados por 4D](../Extensions/overview.md#components-developed-by-4d), pero muchos componentes 4D de la comunidad 4D [se pueden encontrar en GitHub](https://github.com/topics/4d-component). Adicionalmente, puede [desarrollar sus propios componentes 4D](../Extensions/develop-components.md). ## Utilización de los componentes diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index 62fd87c2f3ffa9..8c272c69a56671 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -147,27 +147,27 @@ En este caso, el modo de renderizado Fluent UI se utilizará por defecto en Wind Cada formulario puede definir su propio renderizado a través de la propiedad **Apariencia de los Widgets**. Las siguientes opciones están disponibles: - **Heredado**: hereda las propiedades globales de la aplicación (por defecto), -- **Classic**: uses the classic Windows style, -- **Fluent UI**: enables the modern rendering based on Fluent UI.
        +- **Classic**: utiliza el estilo clásico de Windows, +- **Fluent UI**: permite el renderizado moderno basado en Fluent UI.
        ![](../assets/en/FormObjects/fluentui-form.png) -The corresponding [JSON form property](./properties_JSONref.md) is `fluentUI` with value undefined (i.e. inherited, default value), "true" or "false". +La [propiedad de formulario JSON](./properties_JSONref.md) correspondiente es `fluentUI` con el valor undefined (es decir, heredado, valor por defecto), "true" o "false". ### Comportamientos específicos -When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: +Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Possible values: "Classic" or "FluentUI". If there is no current form or the command is called on macOS, and empty string is returned. -- If [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) is called in the context of a form, the information returned relates to the current appearance of the form (Classic or FluentUI). If the command is called outside the context of a form, the information returned relates to the [global project settings](#application-setting). -- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. -- [Stepper](../FormObjects/stepper.md) form object does not support [double-click event](../Events/onDoubleClicked.md). -- [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). -- The [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) commands are not supported in Web areas with system rendering engine. -- A focus ring can be added to picture and text [inputs](../FormObjects/input_overview.md). +- El nuevo comando `FORM Windows theme` devuelve el tema de visualización actual del formulario. Valores posibles: "Classic" o "FluentUI". Si no existe un formulario actual o el comando se ejecuta en macOS, se devuelve una cadena vacía. +- Si [`GET STYLE SHEET INFO`](../commands-legacy/get-style-sheet-info.md) es llamado en el contexto de un formulario, la información devuelta se refiere a la apariencia actual del formulario (Classic o FluentUI). Si se llama al comando fuera del contexto de un formulario, la información devuelta se refiere a las [propiedades globales del proyecto](#application-setting). +- [`SET MENU ITEM STYLE`](../commands-legacy/set-menu-item-style.md) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. +- El objeto de formulario [Stepper](../FormObjects/stepper.md) no admite el [evento doble clic](../Events/onDoubleClicked.md). +- Los [botones circulares](../FormObjects/button_overview.md#circle) son soportados (como en macOS). +- Los comandos [`WA ZOOM IN`](../commands-legacy/wa-zoom-in.md) / [`WA ZOOM OUT`](../commands-legacy/wa-zoom-out.md) no son compatibles en áreas Web con motor de renderizado sistema. +- Se puede añadir rectángulo de foco a las [entradas](../FormObjects/input_overview.md) imagen y texto. -:::info Limitations +:::info Limitaciones -This **Developer preview** includes some limitations, which are [listed in the related blog post](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). +Esta **Vista previa para desarrolladores** incluye algunas limitaciones, que se [enumeran en la entrada del blog relacionado](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui). ::: 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 65292b41b776d6..32d9b34d2cdefe 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 @@ -9,50 +9,50 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent #### Lo más destacado -- Support of AI Vector Searches in the [`query()`](../API/DataClassClass.md#query-by-vector-similarity) function and in the [`$filter`](../REST/$filter.md#vector-similarity) REST API. -- Support of TLS encryption for the [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew) class. +- Soporte de búsquedas vectoriales de IA en la función [`query()`](../API/DataClassClass.md#query-by-vector-similarity) y en la API REST [`$filter`](../REST/$filter.md#vector-similarity). +- Soporte de encriptación TLS para la clase [4D.TCPConnection](../API/TCPConnectionClass.md#4dtcpconnectionnew). - Servidor Web: - - new [HTTP rules](../WebServer/http-rules.md) to customize HTTP response headers, - - ability to set [HTTP request handlers](../WebServer/http-request-handler.md) using a `handlers` property in the *settings* parameter of the Web server [`start()`](../API/WebServerClass.md#start) function, - - the Web server object contains new [`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) properties. -- New [ORDA events on data](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. -- New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes. + - nuevas [reglas HTTP](../WebServer/http-rules.md) para personalizar los encabezados de respuesta HTTP, + - posibilidad para definir los [gestores de peticiones HTTP](../WebServer/http-request-handler.md) utilizando una propiedad `handlers` en el parámetro *settings* de la función [`start()`](../API/WebServerClass.md#start) del servidor Web, + - el objeto servidor Web contiene nuevas propiedades [`rules`](../API/WebServerClass.md#rules) y [`handlers`](../API/WebServerClass.md#handlers). +- Nuevos [eventos ORDA sobre los datos](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Nueva opción que permite utilizar certificados de Windows Certificate Store en lugar de una carpeta local de certificados en las clases [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) y [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew). - Cliente/servidor: - - You can display Qodly pages in Web areas and [share the remote client session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). - - The [QUIC network layer](../settings/client-server.md#network-layer) has been enhanced to handle network interface changes transparently, for example when you travel with your laptop. See [this blog post](https://blog.4d.com/work-and-move-with-quic-and-network-switching). -- You can now [create components directly from the host project](../Extensions/develop-components.md#creating-components) and [edit their code from a dedicated tab](../Extensions/develop-components.md#editing-all-component-code) in the 4D Explorer without leaving or restarting the project. -- The 4D product activation step has been simplified and automated during [sign-in](../GettingStarted/Installation.md#sign-in). -- 4D AIKit component: new features to [invoke a specific tool automatically](../aikit/Classes/OpenAIChatHelper.md#registertool) and [specify a response format](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). + - Puede mostrar las páginas Qodly en las áreas Web y [compartir la sesión del cliente remoto](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). + - La [capa red QUIC](../settings/client-server.md#network-layer) se ha mejorado para gestionar los cambios de interfaz de red de forma transparente, por ejemplo, cuando viajas co su ordenador portátil. Ver [esta entrada del blog](https://blog.4d.com/work-and-move-with-quic-and-network-switching). +- Ahora puede [crear componentes directamente desde el proyecto local](../Extensions/develop-components.md#creating-components) y [editar su código desde una pestaña dedicada](../Extensions/develop-components.md#editing-all-component-code) en el Explorador 4D sin salir o reiniciar el proyecto. +- La etapa de activación del producto 4D se ha simplificado y automatizado durante la [conexión](../GettingStarted/Installation.md#sign-in). +- Componente 4D AIKit: nuevas funcionalidades para [invocar automáticamente una herramienta específica](../aikit/Classes/OpenAIChatHelper.md#registertool) y [especificar un formato de respuesta](../aikit/Classes/OpenAIChatCompletionsParameters.md#response-format). - Lenguaje 4D: - - New "trim" commands to remove leading and trailing spaces from a string: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md), and [`Trim end`](../commands/trim-end.md). + - Nuevos comandos "trim" para eliminar los espacios iniciales y finales de una cadena: [`Trim`](../commands/trim.md), [`Trim start`](../commands/trim-start.md) y [`Trim end`](../commands/trim-end.md). - Los comandos [`Num`](../commands/num.md) y [`String`](../commands/string.md) han sido actualizados para soportar conversiones en diferentes bases (radix). -- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21): list of all bugs that have been fixed in 4D 21. +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21): lista de todos los bugs que se han corregido en 4D 21. #### Vista previa para desarrolladores -[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program. +El [renderizado **Fluent UI** para los formularios 4D](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) está disponible en Developer Preview durante el programa de pruebas beta. #### Cambios de comportamiento -:::caution Index rebuild +:::caution Reconstrucción del índice -4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla. +4D 21 incluye una actualización de la librería ICU ([ver abajo](#library-table)) que forzará una reconstrucción automática de los índices de tipo alfa, texto y objeto. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla. ::: -- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe. -- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL. +- Servicios web (SOAP): cuando las [sesiones escalables](../WebServer/sessions.md#enabling-web-sessions) están activadas, los servicios web se ejecutan ahora en [**procesos apropiativos**](../Develop/preemptive.md) en modo compilado. Asegúrese de que su código SOAP es hilo seguro. +- Servidor web: se elimina la compatibilidad con las URL obsoletas `4DSYNC/` y `4DCGI/`. Ya no se realiza ningún tratamiento específico en estas URL. - Las sesiones usuario web ahora son devueltas por [`Process activity`](../commands/process-activity.md). -- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms. -- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview.md#components-developed-by-4d)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
        +- El comando [`HIGHLIGHT TEXT`](../commands/highlight-text) es ahora compatible en el contexto de los subformularios. +- **Componentes ya no integrados**: a partir de 4D 21, los componentes desarrollados por 4D (4D NetKit, 4D SVG..., ver [esta lista](../Extensions/overview.md#components-developed-by-4d)) ya no están integrados en la aplicación 4D. Cuando se actualiza un proyecto a 4D 21 o superior, se muestra un cuadro de diálogo:
        ![alt-text](../assets/en/getStart/convert.png)
        - \- **Import**: import automatically 4D components as dependencies to the project
        - \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
        - \- **Ask later**: do not import components and display the dialog at the next project opening. + \- **Importar**: importar automáticamente componentes 4D como dependencias del proyecto
        + \- **Ignorar**: no importar componentes y dejar que [gestione los componentes manualmente](../Project/components.md)
        + \- **Preguntar más tarde**: no importar componentes y mostrar el cuadro de diálogo en la próxima apertura del proyecto. :::note -In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components). +En las bases de datos binarias, debe seleccionar los componentes necesarios en el programa de instalación de 4D o descargarlos del [portal de descarga de productos 4D](https://product-download.4d.com/?type=components). ::: @@ -67,12 +67,12 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - Nueva clase [`4D.Vector`](../API/VectorClass.md) para procesar y comparar vectores, normalmente calculados por IAs. - Nuevas opciones para generar UUIDs en **versión 7** para el comando [4D automatic fields](../settings/database.md#auto-uuid-version) y [`Generate UUID`](../commands/generate-uuid). - Nuevas clases [`UDPSocket`](../API/UDPSocketClass.md) y [`UDPEvent`](../API/UDPEventClass.md) para enviar datos utilizando sockets UDP. Soporte de registro detallado para eventos UDP en el archivo de registro [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) (renombrado de `4DTCPLog.txt`). -- New [`.promote()`](../API/SessionClass.md#promote) and [`.demote()`](../API/SessionClass.md#demote) functions in the [Session class](../API/SessionClass.md) to dynamically add/remove privileges in a web process. -- [Automatic selection of licenses to embed](../Desktop/building.md#application-automatically-embedding-available-licenses) in the Build application dialog box, modified [`Create deployment license`](../commands/create-deployment-license.md) command, new [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html) BuildApplication xml key. +- Nuevas funciones [`.promote()`](../API/SessionClass.md#promote) y [`.demote()`](../API/SessionClass.md#demote) en la [clase Session](../API/SessionClass.md) para añadir/eliminar privilegios dinámicamente en un proceso web. +- [Selección automática de licencias a integrar](../Desktop/building.md#application-automatically-embedding-available-licenses) en el cuadro de diálogo del Generador de aplicaciones, modificación del comando [`Create deployment license`](../commands/create-deployment-license.md), nueva llave xml BuildApplication [`AutomaticLicenseIntegration`](https://doc.4d.com/4Dv20R10/4D/20-R10/AutomaticLicenseIntegration.300-7611090.en.html). - Seguridad mejorada para copiar/pegar fórmulas en [4D Write Pro](../WritePro/managing-formulas.md) y [áreas de texto con estilo](../FormObjects/input_overview.md): las fórmulas copiadas desde fuera de la aplicación 4D actual se pegan ahora siempre sólo como valores. -- 4D AIKit component: new [OpenAIEmbeddingsAPI class](../aikit/Classes/OpenAIEmbeddingsAPI.md) to create embeddings using OpenAI's API. -- You can now [associate a class](../Develop/field-properties.md) to an object field in the structure editor. -- Automatic handling of [recursive dependencies](../Project/components.md#automatic-dependency-resolution). +- Componente 4D AIKit: nueva [clase OpenAIEmbeddingsAPI](../aikit/Classes/OpenAIEmbeddingsAPI.md) para crear embeddings utilizando la API OpenAI. +- Ahora puede [asociar una clase](../Develop/field-properties.md) a un campo objeto en el editor de estructura. +- Gestión automática de [dependencias recursivas](../Project/components.md#automatic-dependency-resolution). - Lenguaje 4D: - Por coherencia, los comandos [`Create entity selection`](../commands/create-entity-selection.md) y [`USE ENTITY SELECTION`](../commands/use-entity-selection.md) han sido movidos del tema ["4D Environment"](../commands/theme/4D_Environment.md) al ["Selection"](../commands/theme/Selection.md). - Nuevos comandos [`OBJECT SET DATA SOURCE FORMULA`](../commands/object-set-data-source-formula.md) y [`OBJECT Get data source formula`](../commands/object-get-data-source-formula.md) para asignar y leer los objetos `Formula` como fuentes de datos para los objetos de formulario. @@ -85,7 +85,7 @@ Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R - Se ha eliminado la biblioteca *MeCab*. Este cambio sólo afecta al tratamiento del texto en japonés. - Cuando una variable o parámetro objeto se declara con un tipo ["cs" class](../Concepts/classes.md#cs), asignarlo con una instancia de objeto de una clase diferente genera ahora un error de sintaxis. - [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) devuelve True para privilegios promovidos en el proceso web. -- The [`Time`](../commands/time) command now returns a negative time expression when the *timeValue* parameter is negative. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. In previous releases, the negative sign was ignored. +- El comando [`Time`](../commands/time) devuelve ahora una expresión de tiempo negativa cuando el parámetro *timeValue* es negativo. Por ejemplo, `Time("-01:02:03")` devolverá **-01:02:03**. En versiones anteriores, se ignoraba el signo negativo. ## 4D 20 R9 @@ -157,7 +157,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), - Lenguaje 4D: - Nuevos comandos: [Process info](../commands/process-info.md), [Session info](../commands/session-info.md), [SET WINDOW DOCUMENT ICON](../commands/set-window-document-icon.md) - Comandos modificados: [Process activity](../commands/process-activity.md), [Process number](../commands/process-number.md) - - Deprecated commands (replacement): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) and [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) declarations). Los comandos obsoletos llevan el prefijo "\*o\*". + - Comandos obsoletos (reemplazo): `GET LAST ERROR STACK` ([Last errors](../commands/last-errors.md)), `GET SERIAL INFORMATION` ([License info](../commands/license-info.md)), `PROCESS PROPERTIES` ([Process info](../commands/process-info.md)), `SET SCREEN DEPTH`, `C_XXX` commands ([var](../Concepts/variables.md#declaring-variables) y [#DECLARE/declaraciones Function](../Concepts/parameters.md#declaring-parameters)). Los comandos obsoletos llevan el prefijo "\*o\*". - 4D Write Pro: - Nuevo comando: [WP DELETE SECTION](../WritePro/commands/wp-delete-section.md) - Comandos modificados: [WP DELETE SUBSECTION](../WritePro/commands/wp-delete-subsection.md) y [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md) @@ -292,23 +292,23 @@ Ver [**Notas de lanzamiento para LTS 4D 20.x**](../../versioned_docs/version-20/ ## Tabla de la librería -| Librería | Versión actual | Actualizado en 4D | Comentario | -| --------- | -------------------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| BoringSSL | fa47b1d | **21** | Utilizado para QUIC | -| CEF | 7258 | **21** | Chromium 139 | -| Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | -| ICU | 77.1 | **21** | This upgrade forces an automatic rebuild of alphanumeric, text and object indexes. | -| libldap | 2.6.10 | **21** | | -| libsasl | 2.1.28 | 20 | | -| Liblsquic | 4.2.0 | 20 R10 | Utilizado para QUIC | -| Libuv | 1.51.0 | **21** | Utilizado para QUIC | -| libZip | 1.11.4 | **21** | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | -| LZMA | 5.8.1 | **21** | | -| ngtcp2 | 1.16.0 | **21** | Utilizado para QUIC | -| OpenSSL | 3.5.2 | **21** | | -| PDFWriter | 4.7.0 | **21** | Used for [`WP Export document`](../WritePro/commands/wp-export-document.md) and [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | -| PHP | 8.2.4 | 20 | | -| SpreadJS | 17.1.0 | 20 R7 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) para obtener una visión general de las nuevas funciones | -| webKit | WKWebView | 19 | | -| Xerces | 3.3.0 | **21** | Utilizado para comandos XML | -| Zlib | 1.3.1 | **21** | | +| Librería | Versión actual | Actualizado en 4D | Comentario | +| --------- | -------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| BoringSSL | fa47b1d | **21** | Utilizado para QUIC | +| CEF | 7258 | **21** | Chromium 139 | +| Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | +| ICU | 77.1 | **21** | Esta actualización fuerza una reconstrucción automática de los índices alfanuméricos, textos y objetos. | +| libldap | 2.6.10 | **21** | | +| libsasl | 2.1.28 | 20 | | +| Liblsquic | 4.2.0 | 20 R10 | Utilizado para QUIC | +| Libuv | 1.51.0 | **21** | Utilizado para QUIC | +| libZip | 1.11.4 | **21** | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | +| LZMA | 5.8.1 | **21** | | +| ngtcp2 | 1.16.0 | **21** | Utilizado para QUIC | +| OpenSSL | 3.5.2 | **21** | | +| PDFWriter | 4.7.0 | **21** | Utilizado para [`WP Export document`](../WritePro/commands/wp-export-document.md) y [`WP Export variable`](../WritePro/commands/wp-export-variable.md) | +| PHP | 8.2.4 | 20 | | +| SpreadJS | 17.1.0 | 20 R7 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) para obtener una visión general de las nuevas funciones | +| webKit | WKWebView | 19 | | +| Xerces | 3.3.0 | **21** | Utilizado para comandos XML | +| Zlib | 1.3.1 | **21** | | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index bdaddd77019819..82555980c41cae 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -18,7 +18,7 @@ No se puede activar directamente la ejecución de la función de evento. Events :::tip Entrada de blog relacionada -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -Con otras configuraciones remotas (p. ej. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Tabla resumen @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Ejemplo -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Ejemplo 1 +#### Ejemplo -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Ejemplo 1 +#### Ejemplo -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Ejemplo 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Ejemplo 1 +#### Ejemplo -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Ejemplo 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Ejemplo 1 +#### Ejemplo -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Ejemplo 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md index 9c9aa3644752e3..b0d39e3af03167 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -5,7 +5,7 @@ title: Dependencias [La arquitectura de los proyectos](../Project/architecture.md) 4D es modular. Puede ofrecer funcionalidades adicionales a sus proyectos 4D instalando [**componentes**](Concepts/components.md) y [**plug-ins**](../Concepts/plug-ins.md). Los componentes están hechos de código 4D, mientras que los plug-ins pueden [construirse utilizando cualquier lenguaje](../Extensions/develop-plug-ins.md). -Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/search?q=4d-component\\\\\\\\\\&type=Repositories). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos compartidos por la comunidad 4D que [se pueden encontrar en GitHub](https://github.com/topics/4d-component). Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md index 72aff3bfa10d5a..fa31f6b403cfc2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-request-handler.md @@ -5,47 +5,47 @@ title: HTTP Request handler Por defecto, las peticiones HTTP recibidas por el servidor web 4D se gestionan a través de [funciones de procesamiento integradas](httpRequests.md) o del [servidor REST](../REST/REST_requests.md). -In addition, 4D supports the implementation of **custom HTTP Request handlers**, allowing you to intercept specific incoming HTTP requests and process them using your own code. +Además, 4D soporta la implementación de **gestores de peticiones HTTP personalizadas**, permitiéndole interceptar peticiones HTTP entrantes específicas y procesarlas utilizando su propio código. Cuando un manejador de peticiones HTTP personalizado intercepta una solicitud, se procesa directamente y no hay otras funcionalidades de procesamiento (por ejemplo, son llamados métodos base [On Web authentication](./authentication.md#on-web-authentication) o [On Web connection](./httpRequests.md#on-web-connection). -Custom HTTP request handlers meet various needs, including: +Los gestores de peticiones HTTP personalizados satisfacen diversas necesidades, entre ellas: -- using a given URL as a resource provider or a file-uploading box (to download or upload various files), -- redirecting on specific pages according to a context (user authenticated, privileges granted...), +- la utilización de una URL dedicada como proveedor de recursos o como cuadro de carga de archivos (para descargar o cargar varios archivos), +- la redirección en páginas específicas en función de un contexto (usuario autentificado, privilegios otorgados...), - gestionar una autenticación a través de oAuth 2.0. ## Requisitos -Custom HTTP Request handlers are supported in the following context: +Los manejadores de peticiones HTTP personalizadas están soportados en el siguiente contexto: - [scalable sessions](./sessions.md#enabling-web-sessions) or [no sessions](../settings/web.md#no-sessions) are enabled, - a web server run locally by 4D or 4D Server, including those [run by components](./webServerObject.md). :::warning -For security reasons, external access to the datastore can be disallowed in 4D. You need to configure the [ORDA privileges](../ORDA/privileges.md) to allow HTTP requests. +Por razones de seguridad, el acceso externo al datastore puede ser desautorizado en 4D. Necesita configurar los [privilegios ORDA](../ORDA/privileges.md) para permitir peticiones HTTP. ::: -## Cómo definir los manejadores +## Cómo definir los gestores -You can declare HTTP Request handlers: +Puede declarar gestores de peticiones HTTP: -- in a configuration file named **HTTPHandlers.json** stored in the [`Project/Sources`](../Project/architecture.md#sources) folder of the project. HTTP Request handlers are loaded and applied in the main Web server once it is started. -- using a [`.handlers`](../API/WebServerClass.md#handlers) property set in the *settings* parameter of the [start()](../API/WebServerClass.md#start) function, for any web server object: +- en un archivo de configuración llamado **HTTPHandlers.json** almacenado en la carpeta [`Project/Sources`](../Project/architecture.md#sources) del proyecto. Los gestores de peticiones HTTP se cargan y aplican en el servidor Web principal una vez se inicia. +- utilizando una propiedad [`.handlers`](../API/WebServerClass.md#handlers) definida en el parámetro *settings* de la función [start()](../API/WebServerClass.md#start), para todo objeto servidor web: ```4d -WEB Server.start($settings.handlers) //set rules at web server startup +WEB Server.start($settings.handlers) //definir reglas al inicio del servidor web ``` -If both a **HTTPHandlers.json** file and a call to the [`WEB Server`](../commands/web-server.md) command with a valid `$settings.handlers` are used, the `WEB Server` command has priority. +Si se utiliza tanto un archivo **HTTPHandlers.json** como una llamada al comando [`WEB Server`](../commands/web-server.md) con un `$settings.handlers` válido, el comando `WEB Server` tiene prioridad. -The json file (or the object in the *settings* parameter) contains all listened URL patterns, the handled verbs, and the code to be called. +El archivo json (o el objeto en el parámetro *settings*) contiene todos los modelos URL escuchados, los verbos manejados y el código a llamar. -Handlers are provided as a collection. +Los *handlers* se proporcionan como una colección. -At runtime, the first pattern matching the URL is executed, the others are ignored. +Al momento de la ejecución, se ejecuta el primer patrón que coincida con la URL, los demás se ignoran. Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: @@ -61,11 +61,11 @@ Este es un ejemplo del contenido de un archivo *HTTPHandlers.json*: ] ``` -This handler declaration can be read as: when any request starting by `/start/` with a `GET` or `POST` verb is received by the server, the `gettingStarted` function of the `GeneralHandling` singleton is executed. +Esta declaración de handler puede leerse como: cuando cualquier petición que comience por `/start/` con un verbo `GET` o `POST` es recibida por el servidor, se ejecuta la función `gettingStarted` del singleton `GeneralHandling`. :::note -You must restart the Web server so that modifications made in this file are taken into account. +Debe reiniciar el servidor Web para que se tengan en cuenta las modificaciones realizadas en este archivo. ::: @@ -74,31 +74,31 @@ You must restart the Web server so that modifications made in this file are take Un manejador está definido por: - un patrón de URL a interceptar -- a function and its class where the code is implemented to handle the listened URL pattern -- the verbs with which the URL can be called to trigger the handler +- una función y su clase donde se implementa el código para manejar el patrón URL escuchado +- los verbos con los que se puede llamar a la URL para activar el gestor -The handler identifier is the couple [pattern + a verb among the verbs list]. +El identificador del gestor es la pareja [patrón + un verbo de la lista de verbos]. ### Patrones de la URL -URL patterns can be given as **prefixes** or using **regular expressions**. +Los patrones de URL pueden indicarse como **prefijos** o utilizando **expresiones regulares**. -- To declare a prefix pattern, use the "pattern" property name in the HTTPHandlers.json file. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. +- Para declarar un patrón de prefijo, utilice el nombre de propiedad "pattern" en el archivo HTTPHandlers.json. Los prefijos son considerados como expresiones regulares que ya contienen un `/` inicial y final. Ej: `"pattern": "docs"` o `"pattern": "docs/invoices"` -- To declare a regular expression pattern, use the "regexPattern" property name in the HTTPHandlers.json file. Los modelos de expresiones regulares se manejan directamente. +- Para declarar un patrón de expresión regular, utilice el nombre de propiedad "regexPattern" en el archivo HTTPHandlers.json. Los modelos de expresiones regulares se manejan directamente. Ej: `"regexPattern" : "/docs/.+/index\.html"` -"Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account). +Las propiedades "Pattern" y "regexPattern" no pueden utilizarse en la misma definición de gestor (en este caso, sólo se tiene en cuenta la propiedad "regexPattern"). -#### Concordancia de modelos +#### Correspondencia de modelos Los modelos de URL se activan en el orden indicado: - se ejecuta el primer modelo coincidente - los siguientes patrones no se ejecutan aunque coincidan con la URL -As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns. +En consecuencia, debe aplicar una estrategia precisa al escribir sus gestores: los patrones más detallados deben escribirse antes que los patrones más generales. ```json [ @@ -126,7 +126,7 @@ As a consequence, you need to apply a accurate strategy when writing your handle #### Patrones prohibidos -URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. Por ejemplo, los siguientes modelos no pueden ser manejados: +Los patrones URL que coincidan con las funciones de procesamiento HTTP integradas en 4D no están permitidos en los gestores HTTP personalizados. Por ejemplo, los siguientes modelos no pueden ser manejados: - `/4DACTION` - `/rest` @@ -135,7 +135,7 @@ URL patterns matching 4D built-in HTTP processing features are not allowed in cu ### Clase y método -You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties. +Declare el código a ejecutar cuando se intercepte un patrón de URL definido utilizando las propiedades "class" y "method". - "class": nombre de la clase sin `cs.`, por ejemplo, "UsersHandling" para la clase usuario `cs.UsersHandling`. Debe ser una clase [**compartida**](../Concepts/classes.md#shared-singleton) y [**singleton**](../Concepts/classes.md#singleton-classes). - "method": función de clase perteneciente a la clase. @@ -144,19 +144,19 @@ You declare the code to be executed when a defined URL pattern is intercepted us ### Verbs -You can use the "verbs" property in the handler definition to declare HTTP verbs that are supported in incoming requests for this handler. A request that uses a verb that is not explicitely allowed is automatically rejected by the server. +Puede utilizar la propiedad "verbs" en la definición del manejador para declarar los verbos HTTP que se admiten en las peticiones entrantes para este manejador. Una solicitud que utiliza un verbo no permitido explícitamente es rechazada automáticamente por el servidor. -You can declare several verbs, separated by a comma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. +Puede declarar varios verbos, separados por una coma. Los nombres de verbos no distinguen entre mayúsculas y minúsculas. Ej: `"verbs" : "PUT, POST"` :::note -No control is done on verb names. Se pueden utilizar todos los nombres. +No se hace ningún control sobre los nombres de los verbos. Se pueden utilizar todos los nombres. ::: -By default, if the "verbs" property is not used for a handler, **all** HTTP verbs are supported in incoming requests for this handler (except those possibly used beforehand in a more detailed pattern, as shown in the example above). +Por defecto, si la propiedad "verbs" no se utiliza para un manejador, **todos** los verbos HTTP son soportados en las peticiones entrantes para este manejador (excepto aquellos posiblemente utilizados de antemano en un patrón más detallado, como se muestra en el ejemplo anterior). :::note @@ -225,7 +225,7 @@ En este ejemplo, debe implementar las siguientes funciones: - *handleDocs* en la clase *DocsHandling* - *handleTheInvoice* / *handleDetails* / *handleInvoices* en la clase *InvoicesHandling* -Examples of URLs triggering the handlers: +Ejemplos de URL que activan los gestores personalizados: `IP:port/info/` con un verbo GET `IP:port/info/general` con un verbo GET @@ -246,11 +246,11 @@ Examples of URLs triggering the handlers: ### Configuración de funciones -The HTTP Request handler code must be implemented in a function of a [**Shared**](../Concepts/classes.md#shared-singleton) [**singleton class**](../Concepts/classes.md#singleton-classes). +El código del gestor de peticiones HTTP debe implementarse en una función de una clase [**Compartida**](../Concepts/classes.md#shared-singleton) [**clase singleton**](../Concepts/classes.md#singleton-classes). -If the singleton is missing or not shared, an error "Cannot find singleton" is returned by the server. If the class or the function [defined as handler](#handler-definition) in the HTTPHandlers.json file is not found, an error "Cannot find singleton function" is returned by the server. +Si el singleton no se encuentra o no está compartido, el servidor devuelve un error "No se puede encontrar singleton". Si la clase o la función [definida como manejador](#handler-definition) en el archivo HTTPHandlers.json no se encuentra, el servidor devuelve un error "No se puede encontrar la función singleton". -Request handler functions are not necessarily shared, unless some request handler properties are updated by the functions. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). +Las funciones del gestor de peticiones no son necesariamente compartidas, a menos que algunas propiedades del gestor de peticiones sean actualizadas por las funciones. En este caso, necesita declarar sus funciones con la [palabra clave 'shared'](../Concepts/classes.md#shared-functions). :::note @@ -262,13 +262,13 @@ Request handler functions are not necessarily shared, unless some request handle Cuando una solicitud ha sido interceptada por el manejador, se recibe en el servidor como una instancia de la [clase 4D.IncomingMessage](../API/IncomingMessageClass.md). -All necessary information about the request are available in this object, including the request url, verb, headers, and, if any, parameters (put in the URL) and body. +Toda la información necesaria sobre la petición está disponible en este objeto, incluyendo la url de la petición, el verbo, los encabezados y, si los hay, los parámetros (puestos en la URL) y el cuerpo de la petición. -Then, the request handler can use this information to trigger appropriate business logic. +A continuación, el gestor de solicitudes puede utilizar esta información para activar la lógica de negocio adecuada. -### Output: an instance of the 4D.OutgoingMessage class +### Salida: una instancia de la clase 4D.OutgoingMessage -The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content. +El gestor de peticiones puede devolver una instancia de objeto de la clase [4D.OutGoingMessage](../API/OutgoingMessageClass.md), es decir, algún contenido web completo listo para que un navegador lo maneje, como un contenido de archivo. ### Ejemplo @@ -291,7 +291,7 @@ El archivo **HTTPHandlers.json**: La URL llamada es: http://127.0.0.1:8044/putFile?fileName=testFile -The binary content of the file is put in the body of the request and a POST verb is used. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. +El contenido binario del archivo se coloca en el cuerpo de la petición y se utiliza un verbo POST. El nombre del archivo se da como parámetro (*fileName*) en la URL. Se recibe en el objeto [`urlQuery`](../API/IncomingMessageClass.md#urlquery) en la petición. ```4d //UploadFile class @@ -336,4 +336,4 @@ Function uploadFile($request : 4D.IncomingMessage) : 4D.OutgoingMessage ## Ver también -[Perfect mastery of your back end business logic thanks to HTTP requests handlers](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (blog post) \ No newline at end of file +[Maestría de las peticiones HTTP con los gestores de peticiones 4D](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (entrada del blog) \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index c362533f28a3d9..4a997b5f1b63da 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -3,7 +3,7 @@ id: http-rules title: Reglas HTTP --- -You can define HTTP rules to control HTTP response headers for any requests received by the 4D web server, including REST requests. You can add, modify, or remove HTTP headers, send redirections or set the HTTP status. This feature is useful to implement security policies based upon the handling of headers. +Puede definir reglas HTTP para controlar los encabezados de respuesta HTTP para toda petición recibida por el servidor web 4D, incluyendo las peticiones REST. Puede añadir, modificar o eliminar los encabezados HTTP, enviar redirecciones o establecer el estado HTTP. This feature is useful to implement security policies based upon the handling of headers. To define HTTP rules, you just need to write some RegEx to declare the URL patterns you want to control, as well as how to modify response headers. You can set these rules using a `HTTPRules.json` file stored in the project folder, or using the *settings* parameter [`start()`](../API/WebServerClass.md#start) function of the web server object. @@ -82,7 +82,7 @@ Puede conocer las reglas actuales utilizando la propiedad [`.rules` del objeto W ``` var $rules : Collection -$rules:=WEB Server.rules //current rules +$rules:=WEB Server.rules //reglas actuales ``` ## Ejemplos diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index b218df5a79d550..098b4d13d45456 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -29,9 +29,9 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources. Crear una instancia de la clase cliente OpenAI. -| Nombre del argumento | Tipo | Descripción | -| ------------------------- | -------------- | ------------------------------------------------------- | -| `apiKey or configuration` | Texto u objeto | apiKey if Text or configuration Object. | +| Nombre del argumento | Tipo | Descripción | +| ------------------------- | -------------- | --------------------------------------------------------- | +| `apiKey or configuration` | Texto u objeto | apiKey si Text u objeto de configuración. | #### Llave API diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index 23279b40c9c82a..53bb4b8143fd98 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -79,7 +79,7 @@ $messages.push({ \ $result := $client.chat.completions.create($messages; $params) ``` -#### 3. JSON Schema Format (Structured Outputs) +#### 3. Formato de esquema JSON (salidas estructuradas) For precise control over the JSON structure, you can define a schema: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md index 1a124b4e2246f9..b086a5b4e4092b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -9,7 +9,7 @@ Un composant 4D est un ensemble de code et de formulaires 4D représentant une o L'installation et le chargement des composants dans vos projets 4D sont gérés par le [Gestionnaire de dépendances de 4D](../Project/components.md). -Plusieurs composants sont [développés par 4D](../Extensions/overview.md#components-developed-by-4d), mais de nombreux composants de la communauté 4D [sont publiés sur GitHub](https://github.com/search?q=4d-component&type=Repositories). De plus, vous pouvez [développer vos propres composants 4D](../Extensions/develop-components.md). +Plusieurs composants sont [développés par 4D](../Extensions/overview.md#components-developed-by-4d), mais de nombreux composants de la communauté 4D [sont publiés sur GitHub](https://github.com/topics/4d-component). De plus, vous pouvez [développer vos propres composants 4D](../Extensions/develop-components.md). ## Utilisation des composants diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 641f0bf6dda050..10a47f8f80a131 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -18,7 +18,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::tip Article(s) de blog sur le sujet -[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont to ::: -Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). ### Tableau de synthèse @@ -139,7 +139,7 @@ Cet événement est déclenché dès que le moteur de 4D Server / 4D détecte un - l'utilisateur saisit une valeur dans un formulaire 4D, - le code 4D effectue une assignation avec l'opérateur `:=`. L'événement est également déclenché en cas d'auto-assignation (`$entity.attribute:=$entity.attribute`). - en **client/serveur sans le mot-clé `local`** : du code 4D effectue une assignation avec l'opérateur `:=` est [exécuté sur le serveur](../commands-legacy/execute-on-server.md). -- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.qodly.com/docs)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. +- en **client/serveur sans le mot-clé `local`**, une **[application Qodly](https://developer.4d.com/qodly)** ou **[datastore distant](../commands/open-datastore.md)** : l'entité est reçue sur le serveur 4D lors de l'appel d'une fonction ORDA (sur l'entité ou avec l'entité en tant que paramètre). Cela signifie que vous devrez peut-être mettre en place une fonction *refresh* ou *preview* sur l'application distante qui envoie une requête ORDA au serveur et déclenche l'événement. - avec le serveur REST : la valeur est reçue sur le serveur REST avec une [requête REST](../REST/$method.md#methodupdate) (`$method=update`) La fonction reçoit un objet [*event*](#event-parameter) en paramètre. @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Exemple -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Exemple -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Exemple 1 +#### Exemple -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Exemple 1 +#### Exemple -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Exemple 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Exemple 1 +#### Exemple -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Exemple 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Exemple 1 +#### Exemple -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Exemple 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md index 1dff99a10fce34..f18f0d6bc25387 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,7 +5,7 @@ title: Dépendances [L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Les composants sont constitués de code 4D, tandis que les plug-ins peuvent être [construits à l'aide de n'importe quel langage](../Extensions/develop-plug-ins.md). -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/topics/4d-component). Une fois installées dans votre environnement 4D, les extensions sont traitées comme des **dépendances** avec des propriétés spécifiques. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md index 7db6e099377e5b..88689190e4c61a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md @@ -7,7 +7,7 @@ Un composant 4D est un ensemble de code et de formulaires 4D représentant une o ## Installation des composants -Plusieurs composants sont [préinstallés dans l'environnement de développement 4D](Extensions/overview.md), mais de nombreux composants 4D de la communauté 4D sont disponibles sur GitHub. De plus, vous pouvez développer vos propres composants 4D. +Plusieurs composants sont [préinstallés dans l'environnement de développement 4D](Extensions/overview.md), mais de nombreux composants 4D de la communauté 4D [sont disponibles sur GitHub](https://github.com/topics/4d-component). De plus, vous pouvez développer vos propres composants 4D. L'installation et le chargement des composants dans vos projets 4D sont gérés par le [Gestionnaire de dépendances de 4D](../Project/components.md). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index 1fbd39997f849f..785281501ef4cd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: Dépendances Un composant 4D est un ensemble de code 4D et de formulaires représentant une ou plusieurs fonctionnalité(s) que vous pouvez installer et utiliser dans vos projets. Par exemple, le composant [4D SVG](https://github.com/4d/4D-SVG) ajoute des commandes avancées et un moteur de rendu intégré qui peut être utilisé pour afficher des fichiers SVG. -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/topics/4d-component). Lorsque vous développez dans 4D, les fichiers de composants peuvent être stockés de manière transparente sur votre ordinateur ou sur un dépôt Github. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/components.md index a0f92dbd5a7934..f9416e730d822d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/components.md @@ -7,7 +7,7 @@ Un composant 4D est un ensemble de code et de formulaires 4D représentant une o ## Où se trouvent les composants ? -Plusieurs composants sont [préinstallés dans l'environnement de développement 4D](Extensions/overview.md), mais de nombreux composants 4D de la communauté 4D [sont disponibles sur GitHub](https://github.com/search?q=4d-component&type=Repositories). De plus, vous pouvez [développer vos propres composants 4D](Extensions/develop-components.md). +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). De plus, vous pouvez [développer vos propres composants 4D](Extensions/develop-components.md). ## Installation des composants diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/components.md index 1a124b4e2246f9..b086a5b4e4092b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/components.md @@ -9,7 +9,7 @@ Un composant 4D est un ensemble de code et de formulaires 4D représentant une o L'installation et le chargement des composants dans vos projets 4D sont gérés par le [Gestionnaire de dépendances de 4D](../Project/components.md). -Plusieurs composants sont [développés par 4D](../Extensions/overview.md#components-developed-by-4d), mais de nombreux composants de la communauté 4D [sont publiés sur GitHub](https://github.com/search?q=4d-component&type=Repositories). De plus, vous pouvez [développer vos propres composants 4D](../Extensions/develop-components.md). +Plusieurs composants sont [développés par 4D](../Extensions/overview.md#components-developed-by-4d), mais de nombreux composants de la communauté 4D [sont publiés sur GitHub](https://github.com/topics/4d-component). De plus, vous pouvez [développer vos propres composants 4D](../Extensions/develop-components.md). ## Utilisation des composants diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index ce305436ea120e..ee558cb7612b7b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -18,7 +18,7 @@ Vous ne pouvez pas déclencher directement l'exécution d'une fonction d'événe :::tip Article(s) de blog sur le sujet -[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA - Gérer une logique événementielle lors des actions de persistance des données](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ Les fonctions ORDA [`constructor()`](./ordaClasses.md#class-constructor) sont to ::: -Avec d'autres configurations distantes (i.e. applications Qodly, [requêtes via l'API REST](../REST/REST_requests.md), ou requêtes via [`Open datastore`](../commands/open-datastore.md)), la fonction d'événement `touched()` est toujours exécutée **côté serveur**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. Cela signifie que vous devez vous assurer que le serveur peut "voir" qu'un attribut a été touché pour déclencher l'événement (voir ci-dessous). ### Tableau de synthèse @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Exemple -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Exemple -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ La fonction reçoit un objet [*event*](#event-parameter) en paramètre. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Exemple 1 +#### Exemple -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Exemple 1 +#### Exemple -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Exemple 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Exemple 1 +#### Exemple -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Exemple 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Exemple 1 +#### Exemple -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Exemple 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md index d0bac014d46a03..e2e93c1843a937 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -5,7 +5,7 @@ title: Dépendances [L'architecture des projets](../Project/architecture.md) 4D est modulaire. Vous pouvez ajouter des fonctionnalités supplémentaires dans vos projets 4D en installant des [**composants**](Concepts/components.md) et des [**plug-ins**](../Concepts/plug-ins.md). Les composants sont constitués de code 4D, tandis que les plug-ins peuvent être [construits à l'aide de n'importe quel langage](../Extensions/develop-plug-ins.md). -Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/search?q=4d-component&type=Repositories). +Vous pouvez [développer](../Extensions/develop-components.md) et [construire](../Desktop/building.md) vos propres composants 4D, ou télécharger des composants publics partagés par la communauté 4D [sur GitHub](https://github.com/topics/4d-component). Une fois installées dans votre environnement 4D, les extensions sont traitées comme des **dépendances** avec des propriétés spécifiques. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md index 024694520c74aa..22368f829aff95 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -9,7 +9,7 @@ title: コンポーネント 4D プロジェクト内へのコンポーネントのインストールとロードは、[4D 依存関係マネージャー](../Project/components.md) を通して管理されます。 -いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが[GitHub 上で公開されています](https://github.com/search?q=4d-component&type=Repositories)。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 +いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが[GitHub 上で公開されています](https://github.com/topics/4d-component)。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 ## コンポーネントの使い方 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 605811450b1c29..55806fa7ab68bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -18,7 +18,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -139,7 +139,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### 例題 -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### 例題 -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### 例題 1 +#### 例題 -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### 例題 1 +#### 例題 -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### 例題 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### 例題 1 +#### 例題 -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### 例題 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### 例題 1 +#### 例題 -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### 例題 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md index ec4b08fc2b4273..a7bd810462640c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,7 +5,7 @@ title: 依存関係 4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。 [**コンポーネント**](../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。 コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../Extensions/develop-plug-ins.md)。 -独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/search?q=4d-component\\\\\\&type=Repositories) ダウンロードすることもできます。 +独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/topics/4d-component) ダウンロードすることもできます。 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebServerClass.md index 17424e7687aaaa..355622d42cb192 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/WebServerClass.md @@ -318,7 +318,7 @@ The HTTPリクエストログファ **.isRunning** : Boolean -*内容* +*読み取り専用プロパティ* Webサーバーで旧式セッションが有効されている場合に true、それ以外は false。 @@ -417,7 +417,7 @@ The HTTPリクエストログファ **.name** : Text -*内容* +*読み取り専用プロパティ* Webサーバーアプリケーションの名称。 @@ -429,7 +429,7 @@ The HTTPリクエストログファ **.openSSLVersion** : Text -*内容* +*読み取り専用プロパティ* 使用されている OpenSSLライブラリのバージョン。 @@ -441,7 +441,7 @@ The HTTPリクエストログファ **.perfectForwardSecrecy** : Boolean -*内容* +*読み取り専用プロパティ* サーバーの PFS利用可否状況。 @@ -489,7 +489,7 @@ The HTTPリクエストログファ セッションID の保存に使用されるセッションcookie の名称。 -*内容* +*読み取り専用プロパティ* diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md index b7c42db2785c20..8855875dcf17ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md @@ -7,7 +7,7 @@ title: コンポーネント ## コンポーネントのインストール -いくつかのコンポーネントは [4D開発環境にプリインストール](Extensions/overview.md) されていますが、4Dコミュニティによる多くの 4Dコンポーネントが [GitHub 上に公開](https://github.com/search?q=4d-component&type=Repositories) されています。 また、[独自の 4Dコンポーネントを開発](Extensions/develop-components.md) することもできます。 +いくつかのコンポーネントは [4D開発環境にプリインストール](Extensions/overview.md) されていますが、4Dコミュニティによる多くの 4Dコンポーネントが [GitHub 上に公開](https://github.com/topics/4d-component) されています。 また、[独自の 4Dコンポーネントを開発](Extensions/develop-components.md) することもできます。 4Dプロジェクトのコンポーネントのインストールとロードは、[4D依存関係マネージャー](../Project/components.md) を介しておこなわれます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index ac467cef8235cb..0318156284d0d5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: 依存関係 4D のコンポーネントとは、プロジェクトに追加可能な、1つ以上の機能を持つ 4Dコードや 4Dフォームの一式です。 たとえば、[4D SVG](https://github.com/4d/4D-SVG)コンポーネント は、SVGファイルの表示するための高度なコマンドと統合されたレンダリングエンジンを追加します。 -独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/search?q=4d-component\\\\\\&type=Repositories) ダウンロードすることもできます。 +独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/topics/4d-component) ダウンロードすることもできます。 4D で開発する際、コンポーネントファイルはコンピューター上または Githubリポジトリ上に、透過的に保存することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/components.md index 638238501fa66e..2e3049c4d4bb7a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/components.md @@ -7,7 +7,7 @@ title: コンポーネント ## コンポーネントの見つけ方 -いくつかのコンポーネントは [4D開発環境にプリインストール](Extensions/overview.md) されていますが、4Dコミュニティによる多くの 4Dコンポーネントが [GitHub 上に公開](https://github.com/search?q=4d-component&type=Repositories) されています。 また、[独自の 4Dコンポーネントを開発](Extensions/develop-components.md) することもできます。 +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). また、[独自の 4Dコンポーネントを開発](Extensions/develop-components.md) することもできます。 ## コンポーネントのインストール diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/components.md index 024694520c74aa..22368f829aff95 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/components.md @@ -9,7 +9,7 @@ title: コンポーネント 4D プロジェクト内へのコンポーネントのインストールとロードは、[4D 依存関係マネージャー](../Project/components.md) を通して管理されます。 -いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが[GitHub 上で公開されています](https://github.com/search?q=4d-component&type=Repositories)。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 +いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが[GitHub 上で公開されています](https://github.com/topics/4d-component)。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 ## コンポーネントの使い方 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 926a1d5f6e87d0..55806fa7ab68bf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -18,7 +18,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### 例題 -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### 例題 -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### 例題 1 +#### 例題 -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### 例題 1 +#### 例題 -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### 例題 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### 例題 1 +#### 例題 -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### 例題 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### 例題 1 +#### 例題 -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### 例題 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md index 76f679bb238d05..2b43e0d03225a0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -5,7 +5,7 @@ title: 依存関係 4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。 [**コンポーネント**](../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。 コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../Extensions/develop-plug-ins.md)。 -独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/search?q=4d-component\\\\\\&type=Repositories) ダウンロードすることもできます。 +独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [GitHubで見つけて](https://github.com/topics/4d-component) ダウンロードすることもできます。 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/components.md index f68e3abde1e8ad..0fc243a77163dd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -9,7 +9,7 @@ Um componente 4D é um conjunto de código 4D e formulários que representam uma Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Além disso, você pode [desenvolver seus próprios componentes 4D](../Extensions/develop-components.md). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Além disso, você pode [desenvolver seus próprios componentes 4D](../Extensions/develop-components.md). ## Utilização de componentes diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index cd035c693e740d..d95347972ed07a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -18,7 +18,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -139,7 +139,7 @@ This event is triggered as soon as the 4D Server / 4D engine can detect a modifi - the user sets a value on a 4D form, - the 4D code makes an assignment with the `:=` operator. The event is also triggered in case of self-assignment (`$entity.attribute:=$entity.attribute`). - in **client/server without the `local` keyword**: some 4D code that makes an assignment with the `:=` operator is [executed on the server](../commands-legacy/execute-on-server.md). -- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.qodly.com/docs)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. +- in **client/server without the `local` keyword**, in **[Qodly application](https://developer.4d.com/qodly)** and **[remote datastore](../commands/open-datastore.md)**: the entity is received on 4D Server while calling an ORDA function (on the entity or with the entity as parameter). It means that you might have to implement a *refresh* or *preview* function on the remote application that sends an ORDA request to the server and triggers the event. - with the REST server: the value is received on the REST server with a [REST request](../REST/$method.md#methodupdate) (`$method=update`) The function receives an [*event* object](#event-parameter) as parameter. @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Exemplo -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Exemplo -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Exemplo 1 +#### Exemplo -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Exemplo 1 +#### Exemplo -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Exemplo 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Exemplo 1 +#### Exemplo -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Exemplo 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Exemplo 1 +#### Exemplo -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Exemplo 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md index 0e1b416ff79da9..95b98dbb8e7fa1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies A [arquitetura dos projetos](../Project/architecture.md) 4D é modular. Você pode fornecer funcionalidades adicionais aos seus projetos 4D instalando [**componentes**](Concepts/components.md) e [**plug-ins**](Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). -Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/search?q=4d-component&type=Repositories). +Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/topics/4d-component). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md index 2232b0ee3396be..7a4eddbb6334c8 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Concepts/components.md @@ -7,7 +7,7 @@ Um componente 4D é um conjunto de código 4D e formulários que representam uma ## Instalação de componentes -Vários componentes são [pré-instalados no ambiente de desenvolvimento 4D](Extensions/overview.md), mas muitos componentes 4D da comunidade 4D [podem ser encontrados no GitHub](https://github.com/search?q=4d-component&type=Repositories). Além disso, você pode [desenvolver seus próprios componentes 4D](Extensions/develop-components.md). +Vários componentes são [pré-instalados no ambiente de desenvolvimento 4D](Extensions/overview.md), mas muitos componentes 4D da comunidade 4D [podem ser encontrados no GitHub](https://github.com/topics/4d-component). Além disso, você pode [desenvolver seus próprios componentes 4D](Extensions/develop-components.md). A instalação e o carregamento de componentes em seus projetos 4D são feitos por meio do [gerenciador de dependências 4D](../Project/components.md). diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md index ed14c5233d5e9e..ad35a6ee75ce9a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies Um componente 4D é um conjunto de código 4D e/ou formulários que representam uma ou mais funcionalidades que pode adicionar e usar nos seus projetos. Por exemplo, o componente [4D SVG](https://github.com/4d/4D-SVG) adiciona comandos avançados e um mecanismo de renderização integrado que pode ser usado para exibir arquivos SVG. -Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/search?q=4d-component&type=Repositories). +Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/topics/4d-component). Ao desenvolver em 4D, os arquivos de componentes podem ser armazenados de forma transparente no seu computador ou em um repositório do Github. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/components.md index c695c30ff0d90b..84eb7b918d34f7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Concepts/components.md @@ -7,7 +7,7 @@ Um componente 4D é um conjunto de código 4D e formulários que representam uma ## Onde encontrar componentes? -Criar e instalar componentes 4D é realizado diretamente a partir de 4D. Basicamente, os componentes são geridos como [plug-ins](Concepts/plug-ins.md) de acordo com os seguintes princípios: Além disso, pode [desenvolver os seus próprios componentes 4D](Extensions/develop-components.md). +Several components are [preinstalled in the 4D development environment](Extensions/overview.md), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Basicamente, os componentes são geridos como [plug-ins](Concepts/plug-ins.md) de acordo com os seguintes princípios: Além disso, pode [desenvolver os seus próprios componentes 4D](Extensions/develop-components.md). ## Instalação de componentes diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/components.md index f68e3abde1e8ad..0fc243a77163dd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Concepts/components.md @@ -9,7 +9,7 @@ Um componente 4D é um conjunto de código 4D e formulários que representam uma Installation and loading of components in your 4D projects are handled through the [4D Dependency manager](../Project/components.md). -Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/search?q=4d-component&type=Repositories). Além disso, você pode [desenvolver seus próprios componentes 4D](../Extensions/develop-components.md). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components from the 4D community [can be found on GitHub](https://github.com/topics/4d-component). Além disso, você pode [desenvolver seus próprios componentes 4D](../Extensions/develop-components.md). ## Utilização de componentes diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 22f3ae5c7dd484..d95347972ed07a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -18,7 +18,7 @@ You cannot directly trigger event function execution. Events are called automati :::tip Related blog post -[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-data-persistence-actions) +[ORDA – Handle an event-driven logic during data persistence actions](https://blog.4d.com/orda-handle-an-event-driven-logic-during-database-operations) ::: @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) functions are always ::: -With other remote configurations (i.e. Qodly applications, [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). +With other remote configurations (i.e. [Qodly applications](https://developer.4d.com/qodly), [REST API requests](../REST/REST_requests.md), or requests through [`Open datastore`](../commands/open-datastore.md)), the `touched()` event function is always executed **server-side**. It means that you have to make sure the server can "see" that an attribute has been touched to trigger the event (see below). ### Summary table @@ -348,26 +348,21 @@ It is not recommended to update the entity within this function (using `This`). #### Exemplo -In this example, the user is not allowed to save a product with a margin lower than the average. In case of an invalid price attribute, you return an error object and thus, stop the save action. +In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class +// +// validateSave event at attribute level Function event validateSave margin($event : Object) : Object var $result : Object -var $marginAverage : Real -$marginAverage:=ds.Products.query("category= :1"; This.category).average("margin") - -If (This.margin<$marginAverage) - $result:={\ - errCode: 1; \ - message: "The margin of this product ("+String(This.margin)+") is under the average"; \ - extraDescription: {\ - info: "For the "+This.category+" category the margin average is: "+String($marginAverage)};\ - fatalError: False} +//The user can't create a product whose margin is < 50% +If (This.margin<50) + $result:={errCode: 1; message: "The validation of this product failed"; \ + extraDescription: {info: "The margin of this product ("+String(This.margin)+") is lower than 50%"}; seriousError: False} End if - return $result ``` @@ -408,32 +403,35 @@ To stop the action, the code of the function must return an [error object](#erro #### Exemplo -When a product is saved, some information is logged to an external system which may be unavailable. +When a file is saved on disk, catch errors related to disk space for example. ```4d -Function event saving($event : Object) : Object +// ProductsEntity class +// saving event at attribute level +Function event saving userManualPath($event : Object) : Object -var $result; $status : Object -var $log : cs.Entity -var $remote : 4D.DataStoreImplementation - -Try - $remote:=Open datastore({hostname: "events@acme.com"}; "logs") - $log:=$remote.Logs.new() - $log.productId:=This.ID - $log.stamp:=Timestamp - $log.event:="Created by "+Current user() - $status:=$log.save() -Catch - $result:={\ - errCode: Last errors.last().errCode;\ - message: Last errors.last().message; \ - extraDescription: {info: "The external Logs can't be reached"}} -End try +var $result : Object +var $userManualFile : 4D.File +var $fileCreated : Boolean + +If (This.userManualPath#"") + $userManualFile:=File(This.userManualPath) + + // The user manual document file is created on the disk + // This may fail if no more space is available + Try + $fileCreated:=$userManualFile.create() + Catch + // No more room on disk for example + $result:={/ + errCode: 1; message: "Error during the save action for this product"; / + extraDescription: {info: "There is no available space on disk to store the user manual"}/ + } + End try +End if return $result - ``` ### `Function event afterSave` @@ -454,29 +452,25 @@ The function receives an [*event* object](#event-parameter) as parameter. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. It will raise an error. - Throwing an [error object](#error-object) is **not supported** by this function. -#### Exemplo 1 +#### Exemplo -If an error occurred in the above saving event, the product is recorded in the ProductsInFailure dataclass so an employee can review it later. +If an error occurred in the above saving event, the attribute value is reset accordingly in the `afterSave` event: ```4d // ProductsEntity class Function event afterSave($event : Object) -var $failure : cs.ProductsInFailureEntity -var $status : Object - - // $event.status.errors is filled if the error comes from a validateSave event If (($event.status.success=False) && ($event.status.errors=Null)) - $failure:=ds.ProductsInFailure.new() - $failure.name:=This.name - $failure.category:=This.category - $failure.costPrice:=This.costPrice - $failure.retailPrice:=This.retailPrice - $failure.reason:="Error during the save action" - $failure.stamp:=Timestamp - $status:=$failure.save() -End if - + // $event.status.errors is filled if the error comes from the validateSave event + + // The userManualPath attribute has not been properly saved + // Its value is reset + If ($event.savedAttributes.indexOf("userManualPath")=-1) + This.userManualPath:="" + This.status:="KO" + End if + +End if ``` ### `Function event validateDrop` @@ -506,44 +500,24 @@ This event is triggered **before** the entity is actually dropped, allowing you To stop the action, the code of the function must return an [error object](#error-object). -#### Exemplo 1 +#### Exemplo -Products can be deleted only if they have been flagged TO DELETE. +In this example, it is not allowed to drop a product that is not labelled "TO DELETE". In this case, you return an error object and thus, stop the drop action. ```4d - //ProductsEntity class -Function event validateDrop status($event : Object) : Object - -If (This.status != "TO DELETE") - - var $result:= New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={attribute; $event.attributeName; info: "The status must be TO DELETE"} - $result.fatalError:=False - return $result -End if -``` +// ProductsEntity class -#### Exemplo 2 +Function event validateDrop status($event : Object) : Object -The user can delete products if they are flagged as "TO DELETE" and if their creation year is < current year -3. +var $result : Object -```4d - //ProductsEntity class -Function event validateDrop($event : Object) : Object - -var $yearOffSet : Integer -$yearOffSet:=Year of(Current date)-3 - -If ((This.status != "TO DELETE") || (Year of(This.creationDate) >= $yearOffSet)) - var $result:=New object() - $result.errCode:=1 - $result.message:="The record can't be deleted" - $result.extraDescription:={info: "The status must be TO DELETE and the creation year must be lower than " + String($yearOffSet)} - $result.fatalError:=False - return $result +// Products must be marked as TO DELETE to be dropped +If (This.status#"TO DELETE") + $result:={errCode: 1; message: "You can't drop this product"; \ + extraDescription: {info: "This product must be marked as To Delete"}; seriousError: False} End if + +return $result ``` ### `Function event dropping` @@ -579,54 +553,31 @@ The business logic should raise errors which cannot be detected during the `vali To stop the action, the code of the function must return an [error object](#error-object). -#### Exemplo 1 +#### Exemplo -When dropping an order with *totalPrice >= 500*, a log file is updated. +Here is an example of `dropping` event at entity level: ```4d - //OrderEntity class -Function event dropping totalPrice ($event : Object) - -var $log : cs.LogEntity -var $status: Object - -If (This.totalPrice >= 500) - - $log:=ds.Log.new() - $log.orderID:=This.ID - $log.orderPrice:=This.totalPrice - $log.event:="Drop" - $log.creationDate:=Current date() - $status:=$log.save() - - If($status.success=False) - throw ({errCode: 1; message: "Error while updating the log file"}) - End if -End if - -``` - -#### Exemplo 2 - -When a product is dropped, a log file is updated. +// ProductsEntity class +Function event dropping($event : Object) : Object -```4d - //ProductsEntity class -Function event dropping ($event : Object) +var $result : Object +var $userManualFile : 4D.File -var $log : cs.LogEntity -var $status: Object +$userManualFile:=File(This.userManualPath) -$log:=ds.Log.new() -$log.productID:=This.ID -$log.productPrice:=This.price -$log.event:="Drop" -$log.creationDate:=Current date() -$status:=$log.save() + // When dropping a product, its user manual is also deleted on the disk + // This action may fail +Try + If ($userManualFile.exists) + $userManualFile.delete() + End if +Catch + // Dropping the user manual failed + $result:={errCode: 1; message: "Drop failed"; extraDescription: {info: "The user manual can't be dropped"}} +End try -If($status.success=False) - throw ({errCode: 1; message:"Error while updating the log file"}) -End if +return $result ``` ### `Function event afterDrop` @@ -653,50 +604,21 @@ The dropped entity is referenced by `This` and still exists in memory. ::: -#### Exemplo 1 +#### Exemplo -Send a mail to the customer with the details of the dropped order. +If the drop action failed, then the product must be checked manually: ```4d - //OrderEntity class -Function event afterDrop ($event : Object) - -var $oAuth2 : cs.NetKit.OAuth2Provider -var $google : cs.NetKit.Google - - //$param contains clientId, secretId... -$oAuth2:=cs.NetKit.OAuth2Provider.new($param) -$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"}) - - //Email creation -$email:=New object -$email.from:="youremail@gmail.com" -$email.to:="destinationmail@mail.com" -$email.subject:="Your order is cancelled" -$email.textBody:="Products numbers: " + This.products.number.join("-") - - //Email sending -$status:=$google.mail.send($email) -``` - -#### Exemplo 2 +Function event afterDrop($event : Object) -Create an action to do because there were errors in the [`dropping()`](#function-event-dropping) event. +var $status : Object -```4d - //ProductEntity class -Function event afterDrop ($event : Object) - -var $action: cs.ActionEntity -var $status: Object - - // The drop action failed -If($event.dropStatus = "failed") - $action:=ds.Action.new() - $action.label:=Last errors.first().message //message is "Error while dropping product XXX" - $action.status:="TO CHECK" - $status:=$action.save() -End if +If (($event.status.success=False) && ($event.status.errors=Null)) + //$event.status.errors is filled + //if the error comes from the validateDrop event + This.status:="Check this product - Drop action failed" + $status:=This.save() +End if ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md index 4abdc5190be21e..26d5677b930cd9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Project/components.md @@ -5,7 +5,7 @@ title: Dependencies A [arquitetura dos projetos](../Project/architecture.md) 4D é modular. Você pode fornecer funcionalidades adicionais aos seus projetos 4D instalando [**componentes**](Concepts/components.md) e [**plug-ins**](Concepts/plug-ins.md). Components are made of 4D code, while plug-ins can be [built using any language](../Extensions/develop-plug-ins.md). -Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/search?q=4d-component&type=Repositories). +Você pode [desenvolver](../Extensions/develop-components.md) e [construir](../Desktop/building.md) seus próprios componentes 4D, ou baixar componentes públicos compartilhados pela comunidade 4D que [podem ser encontrados no GitHub](https://github.com/topics/4d-component). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. From 9318bee62d7f7fee071c778ec776456985feef83 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 24 Oct 2025 10:05:13 +0200 Subject: [PATCH 116/119] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index f51721521ae236..3deefa1a94a619 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,13 @@ banner: 'none', 3. Aller dans i18n\en\code.json, à la fin du fichier : liens de la page Home (vers extensions) à mettre à jour +### Mettre à jour le lien vers les versions Notes précédentes dans notes + +Lien main : +`See [**Release Notes for 4D 20.x LTS**](../../20/Notes/updates)`. +à transformer en +`See [**Release Notes for 4D 20.x LTS**](../20/Notes/updates)`. + ### Si problème de traduction avec cmfcmf: 1. Faire `git restore --rebase --autostash` @@ -181,6 +188,7 @@ Tester : Faire npm run build ### Builder Sur github, faire une PR de docs4d/docs/main sur 4d/docs/main +** a revoir : passer par une branche tempo ** ### Algolia (4D only) Aller dans l'interface Algolia et lancer un reindex de la doc From 6b9f56df4d35b61dbb1d47de9f618e23b1b59b41 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 24 Oct 2025 10:05:58 +0200 Subject: [PATCH 117/119] Fix link to previous release notes Updated the link for previous release notes in README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3deefa1a94a619..442d5d95aae226 100644 --- a/README.md +++ b/README.md @@ -157,7 +157,7 @@ banner: 'none', ### Mettre à jour le lien vers les versions Notes précédentes dans notes Lien main : -`See [**Release Notes for 4D 20.x LTS**](../../20/Notes/updates)`. +`See [**Release Notes for 4D 20.x LTS**](../../20/Notes/updates)`.
        à transformer en `See [**Release Notes for 4D 20.x LTS**](../20/Notes/updates)`. From b576233d23cd965970cf4493ce27ca497776947b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 24 Oct 2025 10:09:08 +0200 Subject: [PATCH 118/119] Revise README for PR process and Algolia reindexing Updated instructions for PR and reindexing in Algolia. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 442d5d95aae226..8112949d623586 100644 --- a/README.md +++ b/README.md @@ -187,8 +187,7 @@ Forcer une synchro globale de main sur Crowdin Tester : Faire npm run build ### Builder -Sur github, faire une PR de docs4d/docs/main sur 4d/docs/main -** a revoir : passer par une branche tempo ** +voir ["mise à jour prod"](#mise-a-jour-prod) ci dessous ### Algolia (4D only) Aller dans l'interface Algolia et lancer un reindex de la doc From 4ad9935800dcb949c2559aadae95db3cf0b2230f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 24 Oct 2025 11:56:03 +0200 Subject: [PATCH 119/119] Create overview.md --- .../version-21/settings/overview.md | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 versioned_docs/version-21/settings/overview.md diff --git a/versioned_docs/version-21/settings/overview.md b/versioned_docs/version-21/settings/overview.md new file mode 100644 index 00000000000000..ede138092298e2 --- /dev/null +++ b/versioned_docs/version-21/settings/overview.md @@ -0,0 +1,187 @@ +--- +id: overview +title: Settings +--- + +The Settings configure how the current project functions. These parameters may be different for each project. They include the listening ports, backup configurations, security options, Web parameters, etc. + +![](../assets/en/settings/main.png) + + +:::info + +4D provides another set of parameters, called **Preferences**, that apply to the 4D IDE application. For more information, refer to [Preferences](../Preferences/general.md). + +::: + +## Accessing the settings + +You can access the Settings dialog box: + +- using the **Design > Settings...** menu option +- by clicking **Settings** on the 4D toolbar +- on 4D Server, using the **Edit > Settings...** menu option + +When [**User settings** mode is enabled](#user-settings), **Settings...** is renamed **Structure Settings...** and two additional menu commands are available at each location: + +- **User Settings...** gives you access to settings that can be stored externally in a user file. If these are modified, they are used instead of structure settings. +- **User Settings for Data File...** gives you access to settings that can be stored externally in a user file attached to the current data file. If they are modified, they are used instead of user or structure settings. + +### Locking information + +Locking can occur in both Project and Client/server modes when: + +- The *settings.4DSettings* file is 'Read-only' (Projects only). Modifying a setting will display an alert to unlock it, if possible. +- Two or more users attempt to modify the same settings at the same time. The settings cannot be used until the first user frees it by closing the window. (Client/server only) + +In both cases, the settings can be opened in 'Read-only', but cannot be used until the lock is removed. + + + +## Customizing parameters + +In the Settings dialog boxes, parameters whose values have been modified appear **in bold**: + +![](../assets/en/settings/customize-settings.png) + +Parameters indicated as customized may have been modified directly in the dialog box, or may have been modified previously in the case of a converted project. + +A parameter still appears in bold even when its value is replaced manually with its default values. This way it is always possible to visually identify any parameters that have been customized. + +Most of the settings are applied immediately. However, a few of them (such as the Startup environment setting) only take effect when the database is restarted. In this case, a dialog box appears to inform you that the change will take effect at the next startup. + + +### Resetting the settings + +To reset the parameters to their default values and remove the bold style indicating that they have been customized, click **Reset to factory settings**. + +This button resets all the parameters of the current page. It becomes active when at least one parameter has been modified on the current page. + + +## User Settings + +4D provides two modes of operation for project Settings: + +* **Standard** mode: all settings are stored in the [*settings.4DSettings* file at the project level](../Project/architecture.md#sources) and are applied in all cases. This is the default mode, suitable for development phase (all applications). + +* **User settings** mode: part of the custom settings are stored in a *settings.4DSettings* file [in the Settings folder](../Project/architecture.md#settings-user) (for all data files) or [in the Data folder](../Project/architecture.md#settings-user-data) (for this data file) and are used instead of the structure settings. This mode is suitable for deployment phase for Desktop applications. You enable this mode using an option located on the [Security page](./security.md) of the Settings. + +By defining user settings, you can keep custom settings between updates of your 4D applications, or manage different settings for the same 4D application deployed on several different sites. It also makes it possible to use programming to manage setting files using XML. + +4D can generate and use two types of user settings: + +- **User Settings**: They are used instead of structure settings for any data file opened with the application. +- **User Settings for Data file**: They can be defined specifically for each data file used with your application, configuring for example the port ID or the server cache. + +With this option, you can easily deploy and update several copies of the same desktop application with several data files, each containing different settings. + +Consider for example the following configuration, where an application is duplicated and each copy uses a different Port ID setting. If this user setting is linked to the data file, you will be able to update the application without having to manually change the Port ID: + +![](../assets/en/settings/user-settings-config.png) + +### Enabling User settings + +To enable user settings, you need to check the **Settings** > **Security** > **Enable User Settings** option: + +![](../assets/en/settings/user-settings-enable.png) + +When you check this option, the settings are separated into three dialog boxes: + +* **Structure Settings** +* **User Settings** +* **User Settings for Data file** + +You can access these dialog boxes using the **Design > Settings...** menu or the **Settings** button in the toolbar: + +![](../assets/en/settings/user-settings-dialog.png) + +You can also access these dialog boxes using the [OPEN SETTINGS WINDOW](../commands-legacy/open-settings-window.md) command with the appropriate *settingsType* selector. + +The Structure Settings dialog box is identical to the standard Settings, and provides access to all its properties (which can be overriden by user settings). + +### User Settings and User Settings for Data file + +The **User Settings** and **User Settings for Data File** dialog boxes contain a selection of relevant properties that can be defined for all data files or a single data file: + +![](../assets/en/settings/user-settings-2.png) + +The following table lists the pages of settings found in the **User Settings** and **User Settings for Data File** dialog boxes and describes their main differences with respect to standard settings: + +| **Page of Structure Settings** | **Page of User Settings** | **Page of User Settings for Data File**| +| --- | --- | --- | +| [General page](./general.md) | N/a | N/a | +| [Interface page](./interface.md) | Identical to standard settings | Identical to standard settings | +| [Compiler page](./compiler.md) | N/a | N/a | +| [Database/Data storage page](./database.md#data-storage-page) | N/a | N/a | +| [Database/Memory page](./database.md#memory-page) | Identical to standard settings | Identical to standard settings | +| [Backup/Scheduler page](./../Backup/settings.md#scheduler) | N/a | Identical to standard settings | +| [Backup/Configuration page](./../Backup/settings.md#configuration) | N/a | Identical to standard settings | +| [Backup/Backup & Restore page](./../Backup/settings.md#backup--restore) | N/a | Identical to standard settings | +| [Client-server/Network options page](./client-server.md#network-options-page) | Identical to standard settings | Identical to standard settings | +| [Client-server/IP configuration page](./client-server.md#ip-configuration-page) | Identical to standard settings | Identical to standard settings | +| [Web/Configuration page](./web.md#configuration) | Identical to standard settings | Identical to standard settings | +| [Web/Options (I) page](./web.md#options-i) | Identical to standard settings | Identical to standard settings | +| [Web/Options (II) page](./web.md#options-ii) | Identical to standard settings | Identical to standard settings | +| [Web/Log (type) page](./web.md#log-type) | Identical to standard settings | Identical to standard settings | +| [Web/Log (backup) page](./web.md#log-backup) | Identical to standard settings | Identical to standard settings | +| [Web/Web Services page](./web.md#web-services) | Method prefixing option not available | Method prefixing option not available | +| [SQL page](./sql.md) | Identical to standard settings | Identical to standard settings | +| [PHP page](./php.md) | Identical to standard settings | Identical to standard settings | +| [Security page](./security.md) | N/a | N/a | +| [Compatibility page](./compatibility.md) | N/a | N/a | + +When you edit settings in this dialog box, they are automatically stored in the corresponding *settings.4DSettings* file (see below) or the *Backup.4DSettings* file (check the [Backup settings](../Backup/settings.md) page for more information). + +### `SET DATABASE PARAMETER` and user settings + +Some of the user settings are also available through the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command. User settings are parameters with the **Kept between two sessions** property set to **Yes**. + +When the **User Settings** feature is enabled, user settings edited by the [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md) command are automatically saved in the user settings for the data file. + +> `Table sequence number` is an exception; this setting value is always saved in the data file itself. + +### settings.4DSettings files + +When you [check the **Enable User Settings** option](#enabling-user-settings), user settings files are automatically created. Their location depends on the type of user settings defined. + +#### User Settings + +The standard user settings file is automatically created and placed in a settings folder at the following location: + +[`ProjectFolder/Settings/settings.4DSettings`](../Project/architecture.md#settings-user) + +... where *ProjectFolder* is the name of the folder containing the project structure file. + +In merged applications, the user settings file is placed at the following location: + +* In single-user versions: ProjectFolder/Database/Settings/settings.4DSettings +* In client/server versions: ProjectFolder/Server Database/Settings/settings.4DSettings + +#### User Settings for Data File + +The user settings file linked to the data file is automatically created and placed in a settings folder at the following location: + +[`Data/Settings/settings.4DSettings`](../Project/architecture.md#settings-user-data) + +... where *Data* is the name of the folder containing the current data file of the application. + +> When the data file is located at the same level as the project structure file, structure-based and data-based user settings files share the same location and file. The **User Settings for Data File...** menu command is not proposed. + +:::note + +Settings files are XML files; they can be read and modified using integrated 4D XML commands or using an XML editor. This means that you can manage settings by programming, particularly in the context of applications compiled and merged with 4D Volume Desktop. When you modify this file by programming, the changes are only taken into account the next time the database is opened. + +::: + + +### Priority of settings + +Settings can be stored at three levels. Each setting defined at one level overrides the same setting defined at a previous level, if any: + +| **Priority level** | **Name** | **Location** | **Comments** | +|---|---|---|---| +| 3 (lowest) | Structure settings (or Settings when "User settings" feature not enabled) | ***settings.4DSettings*** file in the Sources folder (project databases) or in the Settings folder as the same level as the structure file (binary databases) | Unique location when user settings are not enabled. Applied to all copies of the application. | +| 2 | User settings (all data files) | ***settings.4DSettings*** file in the Settings folder at the same level as the Project folder | Overrides Structure settings. Stored within the application package. | +| 1 (highest) | User settings (current data file) | ***settings.4DSettings*** file in the Settings folder at the same level as the data file | Overrides Structure settings and User settings. Applied only when the linked data file is used with the application. | + +Keep in mind that user settings files only contain a subset of relevant settings, while the structure file contains all custom settings, including core settings.

        H4J1$OST)I&8P34}J=V>j+h)iz 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.en.png deleted file mode 100644 index 1454f02b49f34cce7b6cd8a93a4401025dd388fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115615 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 L*qxGFkAwdQvv)d> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.en.png deleted file mode 100644 index 5430cc882d6f13b376f8cca1664488371934fcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43182 zcmZ6ybyOQ&^e#+`JB8w2ytq5XT?({laCdiiDDFjDid!g9B*BV>5ZpaLA-HSNe!Ta0 z?^^e}e`F>zD{CfaKhJsgK6~$z@KI9<7mET52?+^TMOj`43F+0s%lBLiw3nk&?Hlr! z(C0QikIMx2k1&W=Fh71x?V=DHe1?tN+rn|DC7ZMWQz<-}t+3a|fFE?ep6%4%P z++192T)mOxbQEMhY3Yd3*;#Wsy4%>%`SNn{(6Rb>Ik?)PckAzftqarW!$=~$22tAm3aPFoEsiaI=7JkK@{FYGpf|)*= zfDUuG07aQTnJ`cgas@A_hJ^1gLb`+n)tanTTs=<}^iIJCb9#-|ONFP86LZkR5m<(^ zweii`H<~f{TG7&ysNFcfovp90^ustlN-*6!@nt_1-Amt;`0F-`t*VtYbKB3H531iz%A9H}PBy1U4BRG1d;~<*d9i zpVz(kJ;#Q}a@m0(J+$?JTtL{RG|1s>Lvz)ACC=k%!x&c>en3lj3M+8^wGQ}jcC&K) zcdTuVIqdOa9h|f;GV3!0wurzmj7^y)Oub z`Ozah@2(ey2Xg`M7S_a|)8)ZGbstZ-LjCRz4}W$%Ui20#MDJga`S(B+DSpzSgti`1d2;B5->KrNQxGsD>8B>^nGtaA{(dFAs6)Q#GI1MX zj5bnNC7RJ`pCHe|tTNlV7O##a^G8DNQ)HO(0U&fg(Sob3+ui? zx#xit;K%F#3#z}7~}tk%q4(?@X@3 zd<&OrXv)@2p6|u}7x$zduLuIRo~HCt9u+45-8VU>{{jE+37g19^~yPqf{1?Vaz|BN zCsMsgQnxsCQ#7w2!y3*XZa(J4iIX+5cKd%R%;#b@MGvMg(;1k?g!OU{gMCWvV|0~e0#tmS`?Ax~&6#Ymo!@q@X;e!4RS8_;F z&}p7p?M$5hUyLDGSwjTOl^UORn3;ySMVrKhrgNJk78}>811}06DDHP27;v^oIMd<- z&Ivns3<-5ep@nys+j+TW0!=<^Gv?AxD_l#3>70IRx8Kv9!jMpX81(&NqyxHD*<>9+xRA{y-ern{BqP625Vh<{Ol{1 zQqte_>R(SopPPL5&EeOoc;C|U1;Y{7|DWY#^mN~XkbUqB3Bh8@f6tmH3XVV(JyIY3 z6BU)eqh||<;-PO@OUnekrf)K&Ed0(pM$F9O{ufE00n3w~eFU{l@d0iId69-PMK3g7s9X*}!Zv?o2BNo8?uqJOLJ2OkurZnwuX36{9Pe zfO7!97q<18$*s}t8_x8lgakfaUO5wU9?ojyd>(h<1FS}D5}yqAm~mdLqOGuwN36u2 z4_~Xd*K^N0c1uutByQ0ry6$o$&W^kY%bSFB=CGo56l>b76d^1rq@e)^K}X#UX2p-v zHn-Rv{l&M}L+UQ{LH)>>#a3>=SuL-4gpRBpEpKL+<@)(z9KOHJ4LEym7UX2uqy>tlE8kn)Y+iES@V$3 z!)rI0``!yJwTi7kjA*R4UFIc>4Mv>Udi9y0#N2AxQT>a!zeKZSoLNkV!nFlGfQ+2_ zjK2zMHkR^9?=^pzsEII%jROnvzScQ7meL1Az*Av)bh?)GY%YULX>o7s>#&b0LY2nM z%I@;)7T&~3q$^#>D|fSUUsAL*bp-pN_SoI@ai@@K^#}oI0?wH_+HON7>E}~l@1>D; zOrTQw%v<$6uY&j_xiohwDpX-G1YuEzC2kMhRK_|ZXTQkdbg8(TrFEHUn@*Fe8k5Jq z&djbuV%eRw-kop~Z5_iIe`4doIYKS7syV+?e5cx*Tq%&U9J zr*`U;tbr@D=OudP+?B57cUFNw2cE+S$r+riQ;tkT<06|-vn-}B5KY$oXetIx@`NOn zupcc>HYYy@eG8rRT$kQCd3k=CnEEE4SB0SLGLL|>$Uu~ohJQta9Qm)Fzr^2V5hHTU z5%Q(3I_iblEItmFzhKI@)ht^)t*THQf~r&anQB;(cQVXLD{j`}+FIJqv% zj0K*TjILAf4#xq5%>xj_06X-^`;lObE0Valzzr}{QEvRDEHajkRoE8@{#YWSvf%N) zw^j?N?$5>ZcT>sw@7KoG)A8Gi$EqQT37l-=iDWKq<~_2eawlOu8XSc{yB8{9a?eS_S<2Bf@hxjbpl2f9g$3+4tTC^4sc_?Z5F^PVvj4Mkr%!GUN_> zS%zHxE4etFbn*^v%{Uqbd0ZUTHYop!JyxylUGViCMye>aBPD@tJVb6gx;Bt3(`?sR zZ}P|yOJ41Se*f7ObDBbn;i=FF`cT3aFmx{JNJY2MR6o|_k_&B0HdYtWR{7PgW4#|M z;PA1h_%d8#w6BlSj#7|_uG%3Yp=kz4%4;_(ZA2oluaveE6PV0yM8JgwJ3nB zpA<7o_*bFH1bH9`;cj~@)^Gqc+zKkBgZo>g{%STEL-6(19Fpct=lGQ3Z|kJkiOXw6 zskPpM9NKmWyP9=UU3!2Pw56(5ug1uzt`qBhZCO*JN`A{KYeyD>oiSh#ONE;&M<9k_ zVc!vh8bnWvLCjYqrhna0ijE^4yq)Y>R%g=XflIAaLnTK;wQH0zgApl><>XkVoxHH~ z=XIWtupR=n8pX%1#cAW;z^qnd zs{gKhu;L4a6ap9)Ixn!Q7w1`RaE)E+f``G^IsjevYNrL%pf_{O6UI%m5aCxS5`xUF znN$_>6X}@E44feg*u?qYPA(47Z*lObyYwWTw^E{^59rm(}$u%R{n={`nL?cgA2GVrF4W(#HW??9P-k;dX0k6hRehtZF_ zPk)Z>Ihs#l_;)|GxY-{{ZYJq}Jyw(|Nngg`<`dJhOawrQEsyCIisGn2k&{kKag%h5 zF|`XYUt-M`EH<0L_fCe>ExljeLv31GP}tlT#$*mN2^1>kwx+#`nK?aVL%j;^hA;*= zJ~5OIu?&tj5+o(Y|AHNbiZ|p7nB;*v{ZMb!O?qD>E=~-Te_JwCZT+cEFmIo^;ixIR zh45Ulay-w9rrv3Dy05Z4_1uqy3 z-bY7-$H}YtT6!mCv+*T;?qe3vQc{We`^IrHK`s#JwDwTL6i@&Tv$|Q!9KYKCq>1Y2!@%#8Q`mK&c&_Ifu z0CU7KEboGGVwN~mw-t!P_OE@G$(M71p5cJvmc6bzV+=Kb&n^Nc6DEF&*0l+b)@%## zWykMwtvSFNy3YUaz;`W9PZ~{2?6_|8Zz;Yz@rdEhA-OLA<+T9W0Kn8tjIrn@i zZkuEpxxP#Nx}(CvSloA#vdXVIqH(>%sQ-r)uwLvG?G*E{;q1V!cbpmrD=TAG3T}T$ zxm#%}TMP|%#^fq?=4zimE~Imtat`sc4jsGjvAt8JoKpJ*AaOK2zL9O*TJ(y~M?4*5f80{f<%N3Qp~M^G^cf z$pwNVI8T3k-j`|=*tjTGykS)wHs#b2t*Da7slw5BUFBHuJ^JO!R9wVW0dj<<@tO=0 zwKQ3d?lu5ihSJ6PWKN)N=gZggWLus5`B}6V-zp&!>2}5pV_TE2WG@5NlXfNGGF7RgP;;VVqw1AyeXJ-X z{4ABlfY9jbJ+nBf5*{AWSM3aR%Hr**bl8fI)%ufR!+faVq+hU`Zwjco!x8$$(_N@$ z(gT-0K~B(}@DF7n4JEn}1Q{{BimFE$xhw~+&YYkNC;?!_Kv--4F1WP`L48Hee%OezoY|B>`rCJi?7lew%4=bjL;sq2 zE%0#lP?jV@mb%h8r^@BGZK>ZC-N(vTh&UR;hDyY)7Lc2keEVRdtN4*X2SmWJMPZDE zRo{`wMV>`rr876{%sF(QpF2qGtb+vyur>yyrVA|G$*p5&?wT)OE+*D?6aIk(bQ z!27JxYp>H3_Qfg`BKj6?cNO(N;ke_qRJT!feR_)*-XgS_c!*^#SoSh-S>3~DmGnIQ$zw!w#&S;uoZerUi zu-CSbr_;IX_!hSJAO+N%6A*-)Y;^HKd0+yBY`tnegeao7(R*;BB>_b z3)S{Xe)9^^)DluT$8hzn#c>Zj$R6?cjAN|!lP6Odp7|#>ziHFVVv8<(e+VKuIm1kw z%}3l&F5_*t?bEt`c2OwUSk24pSS<#j@pO;B8$rl)utOwh9yR@MF*U}c! zCZH=OkPcj+#^HNMal@D@#v&?(uP*OKpw<;x-vC276={Q^lf2Q|s%5eqICg2*aLS{& zD5TSjB0xf4@4GszP0+Bv2#p@DZyyRCX`n6S5_QL+e*K^Z6o_|Vq|+*n19wOl5yGOj zGT*%$GhT1?${o(;>unxVER6!)kIs4omgP8<+Bg|^?5D7^I}3=#Xj-l# zpv@wU#@gTc{7J>brR%9;Y9aGN{LgUqL&ulxP$HdPp0^mt<+h{!Y}_Wi(X3*yu|;$% z20)x8gE@*)FiPBOp4PTNH85Krc$DKIIlY3?r96X`_*>AVPI;5L`d(ngpeCw!Um121 zk2-Mq-GUy+mYuh#CF{bjJ&4PYqult=HKtZ?rJdU+ zeUOKw&VcK>ekB=Dnz^$SGIN1l2j^OEAHK5Cu&tQ$iO1!R4MC#UW)4vSUip6I5DNs+ zEfzLm)js%ZNQjrI%Eb(;FBY+BPu;9862b^WASdRPtlYp|BXF9=dbWCi5ICP-O*JYR zy-Qe#N#Mg8VgWxV3|}M`FXD+_{{W3~_|lv^{eu{qztF;>^a(VZ?~hnK8TF=Lj+7T- zUNOkUdoWf*XJOh=EP*D2=3e$m@tZT5GNrAz96t+k{kd)x31RGcy? z5tp-0uK_H{JLUxBn?$_6I62iee@}qbW9bwnKQWV|1Zxl z{V!~NU>bt*mkn^}+`p!P!X~FRD>H{n8}*;Gv668eqSO0Htd^j5TF6+YVYO2wX7vZe zK0U*yv8bQGd3+>$3>CGh{O6*C-o>B+5kemI6tnU5Y4iR6jxl~jVUFY&lF}*$n)p@( z0KM@USd7a3>+5hbt8JD#)tt|XOqoiVRu-4J5_9Uaa8*NB{JtEg7D$Zg(K_8p4_j`b z34TgYeVwhE@|l@``ztl;l;> zv6LAlX%@Rp>Our{$)+rTqBQL_oWkVJzdmdK2z0K>++4@SRKcZp+5^QoDtxPqg3oM7 z**3S_zEo2Nnump*=g;NCWfN4@f8HCHT@>^L=go~pUZ^hpNTy8UD<()TB@=9K{?*M- zV>j7JG3A&i@i1@fd74JgoXV#97_F&kx^{#K5EcJ;qxVd0J#IkfL$fwm)#2(a5g^>~ z8#jVuy>m$-3__QVjGOhPqGFuOpZRKbvzo1U5@GmB*Upqfo+ck3y+^_ieMT2w1dS#9 ziAjH^{Hp=-<-0UWIE!brh)X?c2+fs)m0k*UWVXyUdz@cMOv(!Lh&(PPzPJeL8V6E#5tFlGckXM*|5nsnL6&11AT)|)96Q;xmE$S zI=%aVz^C~e>g7MCZjq%I3wt0`RmiWhyS1xcuIo<=RYS%#iWQ2+tGu@IWDK%jiGG!1 zl}r=Mz@ftOBfR>0CiGVUa+{<>iE>2%ZKErm(y{^Dx4_k=C1^ILMpD;wQ9O&nAjcF; zhV+f1l!tZ=qkW8nt{i^4?G7=;)VP)jvsWf5^bex8ZpA;uHa74(rp`x0dK=tpTPXd4 zv`PJwEiE!_WpdqHLHL%fdK-bK%SVQu7Mr*-4#4|2UON=M^DV!~dv_h#$s&(Ww_%LD zN#rJdqrWOT@I0fftHsB?$|;M{aIKc1NLC{Hl77&vVrmI|jJ$Oy_JuhKAMW_wL5Sv; zuPz8G@ehL(e91=tSnaIkx@2k6-Y0*KFBX|?kas!Cnp;qDb@+Y2faWt-A;1saMn8@1 z9M^t|mnI36sOgXLzOLmS&Te8JX#SO;7-+^krCmYU@&-*s7U+LD-psNsoJ;{MRV#uc zL+I%BAvEN<(eeARI%mgp#QkW}7GK4og#L%W2#~n zEd2q?10`RzetlEmC5hp;berP$$s)iBPOco6`g%UK5e6TG>P*b&4_U*`!0ha`FB+8f zc)R*p#zhJ}e@LfA3ayg)!4d4gJd{a8c0ZP)k0HH~>YLE2tr23AZ( zZn2=d^oDSOL0&>H38|<0G3{V>kJYe?N#h_ZD>Iiy}JG!_3VKU;b`tBO|RsC#FZJLt=z2s(~x&S$VNZJ_Rf1v)oX@20`rmv8M+U6@YuM zaLWYWujmQBrkrWAUfaPj1UnY#{S8?DgID!jW!Dr~&kYLPylQ^QGN*>b(Sicky;_z! z9JlvF?Ox}N9nE!a%4EB&*wQeYWce2pu$#9>0Sz(g9E~#r61@jm%DDt1jlsTM0WJQ_ zNj-c6uX!0*F!0@yTtz906K4rD6TbX{7q=V))XkvbcS#y!UDOv=vlFn(CpDH;#)m+C zVv8%&<&Z@UCD)gCj(1e#?)@c`Udj0-43{Ya^VEdzJI1axqOw+qu%^16^OrQ zG!!*>=*QQGXO${Z=- zBnwe&PDHjnvS!p?0vued$dDegL>~y) zP0q<&nBPvtKnT8YcBkjrWUA2_m^$?7#!T)>{=WPU*#8kXOZLyYiRhf1!G>x~Sx+S? z4?4?mK#stsGYZ6HwK~AM#*!@`3Eiy8wq;Ex_sIcTO6Z*o5#Y%Q`%iLxNE(wlSX~JK zhM!m{WAv3KJ!Al0A(HVHpR#86X<{+txbeK}|)gY^e&Z~XDH>xP+ zv4IvaxH=c|>I>fvCQdeqmJQDZnV3aBh^NuUCnd;_BE^`K?nnqwr7-_Uvt;G#y)>1z8!CY22hjhg-nToACWvGzP<>x9?| za!?eh-;`4N>zYQ4Ni(}(o~}3;IOnl(JNd z0Z#3eS){U(MH}LM`v~#Z`tqd-Hs-;PqB7d%zxq>Hey8QU%Z$%vlEFoSW=f9zGr zS5PTIg!UC@e*Z2-2OQ>TFopyvNF(B?&U5x{3v1Bu+~QB#1C|XeJ)`+O;dZDc6NiFE zp%}?M+-ESpEC4T77JqC6m&Jj^+JNTzS~O*Gfn7x>od_(2&tjfOY}^AzfE-sT(~puz z)>wT+rw7YxV(|9)lJ-Ey0Lv8s700sDJNzlp4ohR%HF^3|NLkr3tN}jlw0gkO9}1bI zBzg1O{~ZxdO?pv<3i&M)2rQ6vHmmlhJE_NV;5>~r?5Y6qZfLxCO;o&l=5J}HY8f=n zYER7b$19Yji*b(Atr^Lr@$)1Bigvp&I(_S;!b#q%7&sd|1R)HLOL3=Ri6b!dO!A-A zwN7^Zj=gAh^)}?kxEQ6ROscNwc*Uf9FOcz|OV4HaC#FSb+qn2FFhUj{^yiNDCBl4a z|3Ey9xx$9FK}PHtY@Nl%fO?<|K@bz}P`F75H!rNk&Exe{%U>;&Zah}-H4+lZZix_& zOwX;GzDAHe0Q#Rqhq~2z8r-Wg*~Q{FOENx!EJ>U0@oLW)4|$o?KReG~53p)GsP|rz z#l~Z8zi)67u=uWm%`hsOM78z-I%Zws$!oah0i(4Vbi>GuO${hD5`w0e@9=!J9TlLt z?+*w9rd@brgqTjlDP^}#u{)a>wYJC9fZ?9L*uDl!R!MIKbdWOB={_crwnivoTdx?V z2uKLvN?^r`pK;ZlLq#>d{YqzO+HA|Lr+n>k9SIbzje3tC+Oaj-$^1_fPcMwexdu6@ zh&L=EmUIXS*K}JG`oxOtwx-ych3xPG)Use8?GchSmb%g;KW_bI)g5Ch0g}zzhGa|_ z=J%N_YWfW_1VkeGpjD_~RQ{F^VbiKKlKAVmmJ$*8`vo9UaW@@^W5^sWND(y)cC?q44_hBh>7bX=n?kxun zGA=~{&wJF{Uka5I!K*K+habap>F)xNN?^Ti(3#Jkz!LNQ9|)?2k8gN?7nVkP)+dg1 ztF5f1Zkl!67Ld4s* z>Ff153j!Q5bguw>9x90f>DYJp6fB9gJ-qE{?2L(1Oq>t(O}k5MUKd_K~r4Si`NN-J<66O zoQ-z*gq3}2Iu>U>l#)Y&RJ#Y-suRhdv|?MNj%_i6JL>Pw!voKJhomr|osTd;F@`M@NNgUIrSjp`4*fkDSJ zQqDBCa}T40EIM(Vc4HnItsE>zh{=pMMvm7<)8E5i6t*$b>0fFYlY=A@r`9mh_w3n; zDm?IpKOd{E(lq z41L-kjxTJuQ{TLclppsJG4#@6!Dk_2VS)XXP6Ao}?2W_Fy9~co%-d>7Hv@-~Tg7|~ zAQ>;|A>f%np|b%pNd|tzpvQn_d#{Cj$fDIUeR?S?HAsQ^JoZnyLDPrZ2m4f}TAvKh zOHdCu0trFV*D_&V)Ego{Q>Ch&&H1OkVQPDcxrnwdJ5{ncfs`t_vg2bCTY!#H2EDwY z#v$0p*OLwW zP5p1-v;L`viCK7%60f1b5<)s#Fy-No*|dwT7P#NwpWLZ%_U;y7RiHYY>&$biM> z=V+;a#S;$}(Wd`-$^Ts-pW=rNW^*rm1OlQ;Hca}K?hAMi$RsBYg`zucqmt>Y-@Q3+ zFZKpN4XW6~WVa*Y)G)~9l4iN}TeE7}%^GkDlfLdBZp*A~8j{%|vW10jVC+7fgy`oh zULSY%vSEEI<~-BKd$7>`v9|3JyI2F!fI|~4SdZ{U%lf^<(IuBqPt>iBY}>t(;rC3h zD?@+Ch8rwbM1r;pwKGQg&NJn2c;0e!rmX_XF6IEr%-IgAcdpq7|8K9{IjU$eJs+a* zhYL!F7J2nu@k)B02Ja6V-;yza4^ zhRz%CxYJ4Jt(5qXPg$?v5q|e2m$={cwJ9)Zr9u%2IO|O*9%BLL`%7`%3e0JxE?DHt=aut zb$sZM17g1O4>|4YH+zQSyK~at$^&F~#e~?QNcl zS{P9ifwgn{E3>U1{i=5tac(&Zf^H_ zk2h;|pL~7?x`7njRI!IT1a4*vw%be=TbzL>A5ZY2CP2nqL9rdDv|0TpKP%66#_&(1 z;6VW%@Vg%24)vuHGb*nI@sJhD$o->#m#5sW)T`-sxOc}FLtZ85P^ysVj>Sqm3+y$1 zwCfuh&}IcC!tCE&+vpscQ;@im5^CG4N7nc6Guq&RYL1SM+fn#ZX+`39IbdiCwRl-e zws4$$enElF!_Bd8cYXcX_?=6K?{QPwVf;vovxbJo^z`&Q?(V-o%KLZ58$CioLb{H< z!p1>C9YLV9pdEFTg|1e3b@mvC|6HUWF5I^8lood{hG?c)~I z4mt0=@evoGc1FJ2F?xB>oBVI^NSEW~7Cwh*Mzsl-#h%If#>Pgg(|(`wT26tUlCzP_ z|9S2V<==9Ua5UtbR0z1NygY9-twsFgDAtU^)PLsUzv|WFpDQ#I7cQ5+*jO}i2!GSL zv+KGO19cpyVUxV=Sia4JE2Xq-d3iaX4J<1~t~c4r`4g$dZ zvi6c!p;n6fiM#j~nk{BxU|@eu5hN3GoAGsB@`Gwx8!9%5vaD?6644Rfo!rDQ{v8Yo z{TZC$C+nQW-@fJ&dV6$wb^u#!w6eL}8S`Cr!%hyWDydEOlAsOz(iK(U{&(_oN(sXr zvRLxCrSO!;6_cRg97c}6E9LLux;l=4e^0l^vYLcVAc8>_-YoaK3&h1q$0=;GL=KUz zM3c@^>@RCO`jy^kzOIqdOK#eoc%HW-=w}>l=wj%?{Jd&tXt#|NFR!-kcp)2i=UL>c z*M#K7cBYo9ynM9t;?EM@YLg0+MEcI-2O+-`K;DP2ZgO(#FETPD(2eq3Q$EqvklQt8 zD+y|fk020;d8LcZ&R<+W=m4Y12Uq(B^Bh3R1z7a>yzVkwJ$R__k=8tzL{H=LSP_xG>?DiBq4Nnd;9Bop+rDa=i|jl&O{td zpmK58b3g~l8I=HD%9TrBG^QTS;!E`%R0Aq{!rm;w%eM5es z0PKHmdHCka6`2+1?YH@Ozfwyvg&`!XV2A7O`-9r~0|tw))LUv6R!J7FyXUd4z{zic z2W;5Y{?^4K+p#_WWMa=wbPGU#DLk1H_&y%;yl1&G?xK*t^Qf5;l@K%-n|+%}#S zoBSnW)imf>@UV-Om6gYNwS8(kJR(oXC4YFuC-HCje#|<5&?f1wbRW0Y|Cyf~xjRaj zZJ^jR@f`_$YrGplvyyY!-q;eGQYkBc`=2rZf!_|JrDiX4>0%=aU-i?cEWy^b9lwcG zLgy?60H9D5&!0I>-1Af8@{URzBD28Iqn3lA1Y_|E60HJgirYb}rkRHs5+h zfR>$*EI@u6Rj2KGLPSo^hK!DvHNw>~dLpOxFr`G>Lc&zQf3oTFPpFd=hw@9rABl&f z=BB`FM|L|3?I<){K2%u{Pc+mS0n4^^@8rXEi`&^rD$UHU4Z1RjZUsJAdYN>RRgaFU z2W&*3kCMs#BADfDTYaZ*8c^PO0b{rQ<=Sy9)J(gGbg{fZiI8phO35I%`z`21lmX!U z1{e8g^0;l?6^?ZWi7G!T43WraOCVy&pOF(4Gx4GnD(`XILjtRmrkRpm{Y?=+Neepd zTDW@6RfhAUwDdU8`?XSZZ0+qG`bVB5?j#yX@YduBNyEyX5S5VgR|Q-3lwN0MW zuwOX8ms$6kY(~U}T(u`By%+aLn2|rdPZG-h5+@VU(EbODoXEdk6+RZ z0><@|vmU>wc%^VSVC^gWMd>aQ>W@U4(#v73(CI)%dx5F5zP%}EiHBV9f1(@M1Mhor zz>j~ZG|z%;U(V5yfz+y>(vUe%fzuuyvZ=Qu&cF`mZD{&Ddkks(^W=!nyrG?;>1rA> zt^`?&f zuDQ7P-qwF+U$P(o2oP~y6%pTfyDHv`R66qa{THP^f_FHfFt$oEHm@XCVsP-@vqzo} zW%Qowmvq}wrUwY68=1oe62aBKmtObb7*bPvRW0E+_(M_e)P+7Y;kk9K>(v=pnBq`2 zx3Ps;A3_FGM0d#eg#>((q(tU+qo4J70J7d1;)uO z`&>5$L+?h+a{S-{N=?np_1a3Qn2bp;eH#rgV~;+GRs3nVjVj54kCR^H-iN6tY`gh=69F5)dJ`b2Z|0_|P0ecN)&?2aZV>2Pa4c@2i<*Je>Bd2RcvLd86(kpOp2+ zWWK%&6lT!3`?MB&(FpP&dXH2u1oj8?Z4IU7UQT>iU$srq_TZUhr9(N!TK!C-zn8|I zT{MjH$u~*3nB8MPrECz%aErcl&wn7PrwJ4s)AqDtZ&QLpCb1pyXutg(T_8hKY@hKV zxwlukNlPyN5}srDBE)TzV!KIbxHZT!K;X&DqAgWs;87>ih5OBtopDGd+$*`6vhV`| zrKHf+u=S9?Ih&iWxM!SZ~3=tAHEiNhI98Uop>~~2y>tE@1 z%i>%+cFq#6|7f($`WCYF;+k3^gt0M=#98}Yw{U*L=r*}9@x^Uetdw?To^C|)_ctja z@d*j(-~K)B+7^l`Zspyl-p1pKer)#G&#?WQ5F5^*{~`gJI4p3%fHF<#_M;i3jl7hr zV|Nz)t5=}Xf<4s0`|F0VH41A1q)l;WhRdw4+XFj0jsC)Bo<1>%_@uOm5Lab|jaWd~ zlmaPvfmJZQd6Gaj$|7j%ev`&Efs6*!VRACI6LwxDDC7 z+~8+=jVuT`DfF$UkLMZ~tvde+eSRk=e4@6oLQ^ipdI_N*O)Xy%*9i?>I z`ilVM2i8rTC|H#iq*LgHgjYzevfPs{-Z8kIHaeNNcOk>sV}~J4TDcgfp&(3U*5&HT zVn+y>&@S0Pd_mGhEJ^1BE~qJ;8Eu74kTbmJ>DWz3ck$XO^St8(JaRI8?Ys%xd|KZl z+3|VbiSi!PQyQI48`6P}LuO8cricpSI}SdWt+xFONLBO~_il^Q06M3U+`o=E=aNWv zgH-OlDowoW6j=ozz{Q3y1is<|ZD)*|3S2xkriP4CToZf<7+~-9deQ$6 zAU=+O{qo%W(CNRWaZ#8W?u<_;NmzYuu27_ZRobOT zfy^j8OYu20u6!Kh>K1QjgQ9>?Vy!Iyq~^ZA-lEg_WfwDi<`5b+NR68 z5VOF!D?KF&?7%qY-Oola-6Ro z2)G&~CcAbd!jY%^D@szH`s}9-1`PO~VGnhkwh_k`kxcZEY<*vMW_$bCw*GGbkDHC6 z0$1?x5uMPRi|A51eSf?nMSXxo+n?P3keU081NK;?)8B2B1&;nLRm&w0izZ+mP>$K$ zf%oCn@1=ftZf|k42wuo9N2u1Ok#ODpM&8M$eoysf!iT`O-S}_m(q5l?y|1;_7U~^{ zxa})${KceGxCBocl=dCoEfv-MN-wj%H%fs_$Y88_{Jw2z!$fjN z6Lq`=`o#|O_cZ;hZ?00YYINGRFn+5n{n?*B(Kw&A(fe>mU&fIxsL7Db-kxlM{1>yx z{BPv$ZdVwEscQ<7DLYYNr_Gd28_)I-1a}|U>($%-$3;vhdQMve>_Kljp2_R>>LHz- za(@dqQ}jKlL&-+jpqml4fA8uDf~hk^fU>x@U@6v_&2IY(4qH$lV;XLtj8y`Ja`5*Ld!$|O_TDPy6~8$U^(lbxZ$qRY2huKNN^SAcGa*N$R{j1hi?p(# zrMD93cliJD=tt_Jf`q{leFG!k6cKv#)}x}nJpmZgRfHq0*6%O_&_(>#Q|?X~hbao> zmGG|ZCmh+V)DX8EoPp^30^)8qq1S%wrjgh>i3k8Iw_UIT5#1Hxstc~tY2qhIlFN$-=Y*g6B6(0!oAMf4N0=iS);1@}wPik#z zZQ-Z%;azl;m6hh|(UN;6Ctv{=x4mbfE#JQ@LsF=@X(tb1m_OD2`5d(g2&yR6Fh z5tr0)(3K-zVP-iXSUFqM))Cn@I))}C+P=dnMJ}->O*5gVkKfnM7Ku`qPw(q}NE+&7 zaX}Dz4!pPIfWVi9RY@y9HEC?)sX-R_BVi_CS;zt&yD_ZzLJ?1aDTY~B7Dkgt=sC(B z$AcI0aUG**lyGM(I}3F<2ry$@W%03KBSPGE(aXtco&K|+>W}hQbB&&C4OJN#;Rl&N z>Nu2}2uQ-6#qF@fDc=Ti^IKy{p5(T{&F^3~gp?nYjQpI1*OYpk4rxVM#~!F1a^CHU>=dCda*JQAHhPpvGas z7=Xi4b`Dx{J%ij0?{7_VHs>sYEnKKb%y@S$AOSso3pz^)4*GtjS&d1p9oOh)(C!~W zZUoC{^4Z1&i5Y?w@%Vf^tLhtg$?wa_AtlImXKCCI!0}Oyq})4f-JAB-w#AlO6YE{q z;O{-Jh8zaPH&6xK+_YtDW@9PD%5g=QK0#Z4WpRHwV%C?C>wL9)Zs`?%E7fQ4VKU?d z@t=*BzLfK^a8+aiuoJO=(SKZWnCbMzm|Pst^yo4RR3e0Ekg<~+?ick?m;7)#3Tlwd z+Pq?|>gagY6T$ZZMKv3}Ws|t-Q$~GSPW>|7r_UzoU;qgdHx8i_`luHt2S*Mj(JEmS ziMQ(~LWsh-K{dupc+%%X>zOp^Q|(^V=Jflx;GvE(GkbB5&oeu5@|EA}amO!@p*495 zx8?sd)mD}dDOLT&YuO}6SbbOw$AT>k7o-6n-0yC`jm?P)zahvA6R-l(U|TMBl~Chx z)~~em>M_N!5n?Sq_O^!JyaHzX3kJ z+HIfjvU~$6!9Ad%r{pU=;Vr>jiZflIoLoe6p$Xn=Gs>Voun=lv^KfxV`;za-)=;1G z1x!(0*U++_##Ms6AOqog>gwe->w0C=TP8)KE>qdaZEE6ouUX`N{b~|A5QF>`vNwr~qReazmwtf9)W0sYcGphZ2wyvo3UwT~9EAvmx!3TMj;$aQc>*v;dIElV4AV?B3HoEsd#G zPvszgjxTJOFz=<4k;9<-LeAhx?y}%wx3KLYE-gQ=? zkDj}Wv7zh9_h;xSYRP^;`j72Gs@Ew24S7A*jR#n_rZs``)QUqnu)b_?50>O|$oThj zQqDOmYJ+y`i3id4hk(--ZeW$9a}u!O-NW?k>!aC zPf3^!{ZRxK@blSh9Jh^>Ej3%$wW>lU3h9Y_!u}j#9m$9wG?+sr##L+B|cf93FiVU4~nbG1jY^MXd6 zpj?HcRHZ#lul1bdG*a1aR|DzE-|p}W|C1Jdo3p1|pJ%j_rJ@ww&{6}4As?Y$Bss9Ggd?M=u8udLXYj^+>HM2lD|a zOMRR7Q`NxXiacR$sbgr(5!M%p$u0M0YP+J~`mHXo)!@())6r&ayc0}-xr}xuz~wFp z>(AS_ZJ|a*NWKpEgc1hh<8t?mzIO~{15853Haf}8k)Mv@3j$Ruoga{2{ptEbFRRwL zBFns}tiphQW2305M5SWfJ{1hnP;`urucu4P(D>M>fnsv{ExBA1A@+;0NP_^;GY}Az znJzABRl;Anq*>bN_XPtn0?fjq^ZbK#yJCZ>iH)q%xz~X`0+yWH+F8@4D$J`>--sUr zTBYqj_gghh?ANYG=(ze9D3CDysG=&9HZN6cQK;Jbum=l%(o9L#Y{GN@V)w(fm%?WHr} zv1kO%*0m$E1*zkko41q81^AnzBxFw){#^%mgMwDJ+jj0Ku+7r{wGN8h0ijlAmU9}J7|f>R&3MZd zi>+q(Dc$#WS=O+b)iWV~xx2TO66eg8wIzqXeI|A1b#~jr`=23+Wb^Sg6W$cZ7ag}@YhpcaXhy<(1EYiCO4~m&hq-?GY2-~QFQ0RK)r2t7&~s-4H!_r zpO3h4uaI30j+Ue0M7RB*eiOv>{F&+?X)e(|Tz zYA)K1G!B_YV_?)uoM)!IN7U(J!Ud0lNy4vsm|wI? z8Es87Y?4iM+mvju#eb<_k*U&TAi3j<^a4YHXPv#pfg!oDK!*KXeg%uK70+@qL)9p? zqgt;=-g0>;Y7yBy!TYcS*dbxLAog6C&+a$t`6$DcYjO}wL?<3q$pd_Faf4mqZTL&U zu8|SNA=>3jNuIRcS?&JGM}mSMUVeg9K6O#bPkyd%T6_oO+ps3@M7 z97x80Ae&0gc`!~XmYh<0)toi)^WK1gzP>$q5n*t>slzX(b$=RXU~J*KZd*q3#cP$M zPC2^qQ@N>zSsE}Sy6+6EhXgw|Z1s45@8hbIMW}!FDmAcUzGd`WmxBZ^KlB?qPz#}Q ze-ESNO{;g$W+D?V+r0GTCPHjHxw6QKK-%cqUp8K_c zL=YSv-?1Kl5AFQkyp{yP4?TDVc@^HZd7I9$`|cg?*7Z&j1<#nPO`DF%qh+5zp5RMP zPJT`4;+Ig6B|h?7{{gXu zc~sigN8u(^_@*WVro4^?HrRhoQtuZWt=8~-gci^VrTdg<;{-U~5jFw!kc*0E;6UOg zrsTzE1K=`eQk=tzC7#=tvo*4MONd2}{VJ5avZStRm4PY^FWZ$BHg*nAwrj=^TXbrS zf7&Sh+&q+w)|@6sxEBU`;Rd|KokeY3VIr89F2e4DRr4j$KJheMOI^}4_AVn%cZX3) zR)q{BJLx2>=fgy6W|Mw3wdCC-VeZn)#&>I4yCef&Yqg1}tn{`wE1EC$fKJ=7?iW36ST0N?TSNy8-5$vO!BUeZ-j#K zeH=nsu3$wRMras>y;K|++_D}1D9rBknp@qo-`9WjlmrZUl`4?1DT)ltS5S6EQH`P1 zthLkb7=hJ-l@V8+V9sTa1VuGVv~nKY=Fv%SfT8gqMm=mGnu-56W4~!fpy<*Q_ zwtnZ~@p&L{DNqhVFgw_RhR?x+YebNvk;cY;#Jrew z;NBYNyASseI&qUB?!{a56_CtgR*m#zr+o1ib~Gc`6fpJWcbLS30rKzZ$pxezZv4E>zR{$cW5?P}ItK&&!GDIwhlk1VyW{ zM#Xrn-soTt;iXeL^8nLqmnt1X#I2ht*yx6KQ>pa@52SVMGMCX43*yV?f_#o=brg90o!NErbfJ`#a#OzOrmMrGLvDpUC`*P zyyv-~Y^PjMtg#&iiv%q0c-Xq{P*1O?MA&jwCm1)^646$J+hM(x!g9HlKH}M)#QHpb z_({7PHD~M5X2MQD$=oyl=LK=GF(Q7?n(vB&hUxB#;M*^-^z^=jrM7nuo_uZh5_bB~ zzb8;tnGuuz8)*FZA5j5o#(H)5brR!da4vKZb{^2^2swar(p1tkZM4JWOdyH_|v)<}oGg6>26HjV9T)0?&v<2LyD zoL<(|Eis?08>gkSqJ<~=<C$N;vRVco#U{{Q+Iv+ z=pn^js;pN9v|&L?@SevzS)LE?i#wKb$Va`g+01Zu6@G#Z{v|9%ck?rY(71jaDf^JY z#I%!8g6NZ*BHZ5(n{CFZ;fp|?DjVM@E;Cf0{NQ1DG5VE|>)MU^;%{#7Ys@~5Ta@tD zC%61_IH-93c-aVvdkTPlY?C3Jc>ckv6n@)OF^+%wou}9JVtdFy-_&LPrQm}H;+F@8 zh9K0>-k$E2DhSsQmsQ!gfF_zIOh(6PvFyQ&he3r(bunV3x8bQ`YX|hyCsPtu!XO_P zpf^!bxY2nm7f|!@NdCPIoQ-?@9`tNc>?SvOH&}$++t!ic@k^}&WEHQ3MN{-s7J^N4 zx}=ubudXf@|H0po%A8ebOUbR_&&}90d9Mo1*3pYnL(f9f!r)LHknfQ&>pvh8WIvaY@-786uQ1V9JneZh2qq7n9va zwpz5h#>1iU#)pV~-9N8;7>yy@ReW1?&C!Ve=%abnP8!6*rXzZ__bn_t$%FHXDI&-x z7sg&kM&v!B6jlUhuQFTm<#UJ#`ALs1Nk%ayH(Y`AQVU(kk== zqxinXawwq_{3>x+y$Ot?wNv~6hl*!pm>xqlvp?5~^pW^^6>TZG9{F6$c*(0&gVS^` z&PsO|gh&bJmzTAGEdzWapgx3qd^LI^y!`8@aZFYzivi^}J@3+&6BH(7(fQvj)A#l~ zi8tH_60xgT6O-bocvp(~-~$W%ck&_4P)6V0w7PI8!zwXg-%^p_@rvisH5X?HCPwFj zYDG~7^~icXWY|N=4`#YxEj>hQ@g3$xsex8grq4MqXacj*jtvZw%4rNH+F=J-Dw^0P zgW)s+2b>rQ@<`jV^QFb{t!ch2&6pE81YJ2q=UceS70UFP7!lK2w{WP(H)5SH@;(e> zoSLCgJzX)BvuAoVchJr=Buj|PJ`VqBYiST;^rA3i^E;`?;g(Esqw!I73$)~i3bJ)9 za^E@zcsn-#c{>}ePgjpd&eYKkAA>6&m5sXT@^j8s-;LSW_dXeLyTN0DBq{j*$|Dk2U$XJ-{jw}FNqJ{dsxxd%aejmb3 zPb=1BVrrgQaf^R`npd}DuTJ)8lbnWEFeCYKW>5(wK#xNT7sSWJJRI`++H<`(%eBL9 zUh|qS8F54L))E5$dyL+amH$BY_-zts|4LBUFoVb6H`IsK11dH#bw3V&vh*7S^lJ>D zTfW2CrTnRKDvlPe{ItMRcN$1k!AywJ_yVdClc(sz0XI((^EPqZ^|@lAj(RHG;f9zt z=`~%1y~7tT>iT2wHPG$#ww;}w4}A?fdp_=hW7osm!piI(7qUO`digz~R^%y@$H1?K zd=}pHt}t2k+zieIV;e z!lwm4yBj<-#@;=0bsU8mHQCzZ<9payD9u^W_z6QV; z`j&y)a(?Tx2e$G4YT2svNG1zAqfg1=#KZ=!tjHw&D~8i^_MZ+|8tjJra--p#?`{vx zVGWG{Bpzz~aS|2nM2=6Igf=p)`E&A-_6=(p*XdjQxs9Sb6TNG^X!t@}Bz-=bD25mn zea(FLr`@gSQcGrjYPs`N43>WSKFv)Kh7>8XFYPjY=cwO7o-0ps%Y*~+Zc6nyQ@bjP zrI1cHSdXz7vf-%g2mVs0?Vd6Y~@aPyCA(#3NOXqI>PL4vTy-}24hA8TF-a}b)44(JI# zP~X7Y85o#3w@j81_h*~tlM)tef2EV2Tch4a(yW(5X^o7uw7R(D86}pgE~J@3e+O@;n9qbN&>Z8|>07d)gK2 zzMm(Qs2hZ>tP|ld6sMmhu?EzL%&te{eCFfZn%(nl zVWyx=-|~sq1KKTFB^(FnaJqtI&~ZxaLE35kG4c+jy-L!4hAhQ zBB(-Ki=h5kF_kJWqFJt=pZMH{yz~|ksv5`WIQt_Jl#=O`_7t{bKu(BHC7JhoBP+MZ z#R1vsB-Fl8em5txhX|l-+s@a3XY)||mI}3|_Hy*^YFQh4DGm(>F zfWRj4k}8{^g8V9T`Fw*WE}165a>%cXas1b#Y7(s%8$*~6#gywyU>6L3xfzF&+|dOz zC^EHtpzfN^=g^F_%m>C!y63Byp+0J(>w&TzA3sfcelh9$sDs;0%&<%>D?*5GNy|Mj zGe|FR|R(*Oa@Fwsv*4_(QbkMk0HarUtRTu zZMo)j^;>a}kx11hMn{ua6OhoZdhA)enKjHd!{Xc15-|;FU*4O)>4Kb64m)zS8^D+k_cn%-NzSXVMXzd20Xsy+1NV}E-bK=*V1;Sq$(Y5Luo zC77L&<-%!RYS&`dM~B#P4M{84PqIJ!#O@hB&B@_XKr5Fl3FdT%koSy;t>(- z+P*C>g`*Dnv^+-pHd*?rTiwRZ-7;o?(%`xtH}(0@7h(7_1fK@6RrYUT z;O+IV1-GhN`Kw=7IQ`Ub`ni`o=at+nj5*->EZG2X0HrKV}vajS0oc}vy!YH_=8 zCo;a%zpn%2YqzMp<^|9|Ca=X7I{vKxdY{HrnM(!U>N^y-NG9moZBDA_>1kWKdfaX9 z%2>Np40g1MfG^e=^fsC-EiC~)q_pOQgMC?U+2X|NS3)UB`q1g)1>xZChq-($_})wr zZALF@z%jYp+HMvc9iy3OBkvZ*95lld=?eQbS((lf-;F3Q2MfK_zmJvh*Wn z)WZszKbacBWJ0VOt_!%?b8+@Q8IlKuZ*^G7!6hp-$9fF^;DtX4TBt z0>+lP0Mcoi^Lis-R*Xl)& z{JYa{qQUGT$2|(gpDL#DJ8c(d<)^rcN^CT}Rq{|U5k`}g$Qxa*iMh=a1l|hX6TWgp z&dX;#^X{x*<>78N>D$W~l+2x+RWVAOJ9x@~aS7g@wHT; znuxnC!X-Y@YSqpA#~|fhmQk*`bNe$exm&VrjJ5!IQ8pM@(tXOrU20IZI?WTBbhftt zLhv^=^(%h#;)+zTWx?rcOdnT=0kXN#fJvZML?(DJlpSJdHcOp?Q>FfoYvIT8dRNW! z>j1AE#o8N(GY!x-4~AfM5p`?KElK`3EMm>-BIy#Fg4wypxY+1t!j+>QAaVp|yg5sYjNYA( zIbeDma=Dn&9=&Wi(>cN*FF5o`37Cy6*IExlj>6vuyLoa`-91sQr!mD|b8Hs^_0N~F zxvH%7UK;Ehgo`6xse|nhi7Uzs)~RKpiB(K*W|>;+b_xisB~uv~jROIU#&WcD{HocP zHf{bUanuH77Iw(2{Yh@nTsL&rB=h5);$!cXOoyvhKlI(t)`vp4w_6GC;*l-86JnJR z)FWbq5k@2=0X6| z7-Q4Ji>O$Y<`CDZOFP`r(Un`K;CSlqlMYZoujoiB2K%mLihoyX62|y%U8BEy%T+(@ zux(?OH1DLf|7~;{)60%;jBx*# zlx~a1M8{C9W6E#qP0jG)M4NhTbmjPJTE(>(H(=HDb`{gH%byp6tNbrG#=~pi<@GNY z$6@H+V#q1P{>M{wOXbI?#))a?#mQ8^x*!NiTNJV(?F2`tRVZRH7{E+QB z0)eL)^XBExRK0WIBJF0ot0Cu_*O`4<{c`Tc2?gVRi7ZSmZ=Nokusw7?J4l0QntJ8T zcpn5gttF&~SOph*wf*4c{K8*)#I=sD@tC+A)$-P^-bl>ZrR3JDv41iTr$@ z`e@=H_+CoMP%7NKfV)1nve#Ge9um19hvUR`>*z(>Hx0HE_m~D9hU`nM%sjHn)@|u^NU@Y zqe$_mQB*8Wv+aoj+n+`99XH01`+P0Cw|RO`j|kOYD4z@V4y7e=%r!)E-@ku<^9im& za0B^Mu5{@6c901B8>Ex`&>ZN+5i{!chr8S#p|j1rbFi+i9~G;4pVYPY>K<1mVqY&O zNVrEjXLh_Ai{>$d>>Ot^`<=&2Y|b!roK?qn;1~Vi*5HGn1UdHkvk~2}cq9xy`_1DF ziCCR(W3aJPhuYID*NQ+w=g)GW>ooRCw+WnUbR|AT%`Hj>bb_e?+a0PUI+>gd>yCAS z>mr$jcJa9n%s%(d&6dF48)y5vl-{InQejG9$%UPUVc^I#4H|Cr6Sn_^p(5t#2^3H6 z;Ku)P<`Wbvg z-hTD`XdYCobDF8n_l#Nw_?~P~SO)9f7y^+CNe@*D0JIN3uBctzfMT`I%}tshd)Yun4$qw0 zt4j!{qMG(&C)4&oL=YHm8gHtom>X|8J~lorEc=Uyo9GP@>M$CVTXoJ9gGFslH)x8u z*KzUa-4}DZ>PN*0E8b`*f!XwLPX$~P%zKgs4JF=q`1EVPm!Q>KkNuge97_J`-8y;f zre>w@3;$tY4H{L?Nx716wCONlZc%(J233Fc)vX8Vx8Wy({-=PoM*8cg8!Z<#Ab4_0 zJKp#RD28V`^v#fro@6Eq7kxYApENNlJFYiAyu-Ad3h0Il5p<2*R5_LdMkHc(pSWSa|>h4Yom_1JgVdqBD3x$SZ;pPJoV+D$AW{ z{6@g`G)aQg{^<@nRX_nAaemFbU&fsB^uwN@Q$%}J(YchL1_)fzh~eq~z?Z_ok^0HC z0XGEH^lYDar*jHgJV$E*?I%9n@y65vh`@`|3lQLck&3vgS9qb%HctuIH>=qkvEr^< z(3eTlhEsD7`dO(2=k@+L%d38Ac2>zCR?g+TyT+Cbi?lcAJc`{qRRpsmGOVkY$_rxhgS_PXv5{a+X4VjKo9=79N1o})+7f#`}Uq{$7 zq{t0y%hLr<=4H>`Xf&>aNe<7#txjh)sECVi9CF!JLsp(bul76{%SXi>|S2*ivW++u(_)RbH8U#eHqK>;-SEYTdQMua)f27!q z;Eck;fmT~*=nj;@1DhQXoufRedwwiYZP#BEOFtKAVd;OOeN^c$0E}&OYbVk=W?{xe zgY7Z?Q}O7&y=Eyqc3Z^$*bQ-j?6J%C7rV*TF`xNxkfJ{!xOnc|-cBG~r1j%pFO~u07`3&I8lJwDcSi>{ zqMv2^3i5moe6sl0AvR72Vl8w2O3sfFF>mbH?&&dgR!aKfJe%sJZ(Fi4SmC%%_3gsT5$)c}@>dINj- z$hR#~BG=7KJ)eS2!tABrS}?=@`Hd+9v#J(Tu1wlugNE?pIVTKWQ9=_FW-FNGqz>s4 zoC6Dq$^622aiId<$Z|bVZ3ktE<^YywokHLmLIu|I9t2U!h zLi=gK%*Bjo-2(+xCWcGZS13i4D5uCdR3;}Gu}`i<>_QF{Uk~FcBO!E_p1BayeE^AK z%T0vJYsZ3C0xWC?fi9hNm8I+%$w)qN$bvqwzY;J343RzqF6-J zeDZ-qe`3a5fH@u9ibL#o^~6qAPBt%f+fEgQ-?CWd-P?TY6+gYcc(2JhRV5uXZdiBW zxx4|cG7R&(cA3-bw{#ZtpbO_Z33HBH#7|FsN#W@u-)^@#z{m|l8rmsY2<=s%2S#1< z{KgxZL?3rAJFVqN1@0YPO_oI=ZUXjSo@wBl+ zi5Hc+#QZvA$`XGCV;4bjnOioCgQDg4zoKQv9^2gAH2#P9&_$V{`fBUKJ5@DUz-Tt_ zNe;x&aeEaD>Kw^QH?MZv^B=WN%cSAb=uS8^5wTSCFHWv#6j$y4z#U>V#P97_ak}1- zp$^vG0o_9oJH1Ru9oN$vE8LoVFpReKG`^ay{!{px?*I=`M{6PpvuJ%pU2) zvosN(H$clcUN{sVJ11@h}L7LK6qvE%M z!6OxVQ`h-nMa@++mZs0>9)2giHz6VjdfQ-ty;NHl!7Q{)sGwT)Jqv}n9d3al`tk08 zCj@QOgk!*vnCjMiS7H@?!Z2Z{BntbEu zSDV>+gKCMJ%8?U1aOAlEW5mcI2P@mPq5LchuP`h{W_16}Yq2#uRIt!#2QcV41&x7S zXexA^Akd;qJij!)$gGWfwFAw$@{E}5<|1g`?l>s>+TG=K{j(6|k7MmZ&=PA!%l1dY zRD;=J_g!u%eL_eX!0o^v>c~DP;+MgZUU4L5h1oDM!L_3Z|B~7`Xy`X1&nPn$)s5c=vAlEPbCXdZW zXb-XRL#!or(*C2o_C?iyY!_OYg|Y+Jz_#Toak;Ti=2QW`{qkjKwxy!^=~i&6lqGda zvql<}ePYzWg|l4$vTx-|ZF>1Z1@8l)0ZVIuczIoi5@9Q|mt8VsX z0xl-A&5j=ae0=%OKXy0HJFH^0Q?e;+R$)3fHlFUSOmrXrQt>!4?3DyRQF4KiF|j18 zV*94EagO-J^JPwUVf6(=4@(6tc)Ydy?@On6&wGm*rE?3 zn@a;)om>rk;ZH&Xr#Mw>AV53rp+_GgwmANXFfxy%J>%l6{fa%Epy24^9=Z9Cqm)R*Lzd2{IiWkygo79!pgK@~Q=liOc0qRa zhI)zz^S1hN5Gmw(aM5)1yVXDQqeVA`IvJ6S@>&&&oBK5VAIm#!F8Og+So_>Vw{}yn zmN(r=!F9==41$>x{y?DYK%jj+n~CtErI1eEhp?TFW|H;Jr4lQfOnJ$(meX1A0F zXleY)-K*Hv*>Fao_`?eJA}oHPtaDC*n=vpIcPoEMLDu`)kU5v_PPd?njppGrA$qfx^7ibBd)vp z@}|JjStt&X zS3Ps7*&+7o9LotC#@VwNjkcE$@itPL_PWyUURQA>3I>!czxV|}^}>RdePr#@4Lpcr zY<20!K&q|#G-pgCz+p+UrUP`ZMbDt1F)Dmc3qU(8KQevHCFOD3M*U^^tM9%@=jnSX zNXp*Ad|Rsa67hJM{k;U3c>>Cg95;c;ue|?eC5O@+t+MOUZwl<(Kfd0fT4YxSrq2bpn)X5k_xeFd2y>5%Ess``RN(s$)*><-~=z+DVuM9e* z-usoc)zLv{fiGMgrv(P~HFo;y{{ve2bDzWMl5c1z3loE*yR{n$#uioNCXC8iKkU8R zOt9$O&i$7b0bC#DM#XiAodTFGz$a5zW_!PR!8ie7;C=t1L0wH}WzaOVzL;`Kzu?_H59aJW`& z09=0wU=OUN8q)ve`}~oMS*=yp|1&4ta#p=!GJwA2&*07<-WIRU9KaSfVu-Tu5pu`|mmVGUJ`|8? zalL^LwtC4@8F3Xtc8QbfQ0ekn|K=AD%VwOOk=fx*{>=Ufa7V-Cy_ujP`Con(kbCC< z8(~#1%qq9-f8+z?=pm=rJY0KmGRV(L=`JD!w)=iG=ox5B(RzS?vUaBQFXRSTFsamq z42OS3cc9*T%zBsI)~r3~OXS`?b`O8SvNyqQ{$z9$Uq3YqmtG!7sXjC`iM;t!IO<-*%muzPz=RYJf2>mm+O35C z`%eGBKAs;&kcxzSyABfiD$K~e`9vkyZ~y+IHoboVJ=??grW#P1kC`H+8Wb^TepSA; zAK}j!MBF_D-Um_NgMbJ4t@RmZOQ}A6n29?yiB|v6npSr7gvgr(__$UYWtspn{XW2jTf%3?@)1{;sJ`o|5-mg zCK5z|KNMu|l!Xv(7^zGs;Sw28=uB!hhAXa?XMY#$Ki~L!yV<{YZ2e0Jie!okHA<>J zkpr%h(aMoQH}waQjjqD({}b>`bK5Z&wP$&0oK4n5{@RVh_DVK>F$K$1iK~lC!iuO? z>vW^dW}a8q-<=Hy60iH>Jq!%(FmVhM^(x=k+JHX6eDs?xY$@mv+5fMu11uxJ-c`lM zug0{!65Y!gAOThp$oc-O2f6++&yIbIzUbF!=dW*B+w5gJ_ZB8e-x>3Jn~G&~gkI(r zbIT>x6sDQnrWZ(DX&fAn^hv?>xpou^>a}>7$362fMrKMm)USTNY|{7C{2ga+yUc3j zmvDm8yUJnHfmzK3d6L0k-Ql?$SdL8Vh2=A=e zS=|I^NL@k$552!Jkl1SYvD*aeM#ra2{wQbTADRpI41dNNHBexbyfl9Gt80K%2YG6l z#D;P$W5vC&-I*#ari!(Pld>5<3OP&D)^D}9c7Pc@ff_2lg%7pyqGtm-X7If>B0Ks!Zx_>5!yx!p~K`-ntCFc*A3fQxk z;HS{G!i?T`az$R-ne6U^k@QIAjEg4VRgj3x+zw|AF1!6D;iQMf_C(IiHT1^RH*_#CQo*1fL<` zh-$rX&#lz9pPuGD`t`c;>7CDNRSG$o2K|Wzk)v*d+cZ&Nc5N91;~yhhiqA}J1r_@-eH1OdztNi9=pLX^eir4lucgb`dlk; zp~DdH7;tU?U-B7xLi!iw^7qtPq$g>{dw2~X(-&E}K{_#+9Qp+MP5p_Jt7iLT1T&e$ zAx<9Z_j{Ne>-A?t&(OmxCyTyc{S?1$BZ3HH65tC1 z^=y9+2;dz84r{BJT})Axm8(tiOXk!-Yl0NrpBF9n@9_ty?ZT$oPLqGpCPzT-6C8z2 znR3JUM3w=36=wFK7_493n4o;FiDTLX={5W^FNPNzS3C;#gtiKXOioYi%0XtYZ_dyL z(!S9hOmn8(R|U|FEnCXyaf6X*elZ!J50|YxR&#RDzd=gmxW|8;rauA1T_2l%+M}JU z2LTeSwQsBmN&ok@&7hv`8v9bmT^%3@v74AJ#0%3qgOS~=SEB6T)W1K4W4kNijOGkIW}m>g`Lvw5)t3Kx-n68hIq z%?&uPP&a8nIbW-(5GGAO=s$9qt@78l`lDH)KW7)3&&A2vje5tDDkvd4N4+ryNYXp% zmZY%f85)_%LO9a;7a{i6wYFG#bzl_i`wyN;h@1E3ce;e38&;0`l_O0$s@iLs1@MK53-AWQSpERF1iJ~&Vva-yTa%l9@DtT&h z9<#5FZ;>7pC*KPz+F)5;Ma)*xocnD^y)YULAnaq1V4by&b=rdw>A$SHx`X>hmihlV z%#{eE#*-{i#>?^p>oJh9$Iby5x^w+RSjdk>CAcNiZ<3~{KOMv#>ycdvCW=6wl1>c;V7Z(eYg?>w zGHZkhaaRfVoJW2YvZuW^1|}xFTmWd+X`CN%vh@Xv?-NQxTLvgkRGEXCX2eazi%Qki zEz<6c8>ww}*=7p!py-l50pW-$cNb>5W0B|fu%D$J12-D(R+L!z1jq=HWduWjU=_tk zC6N3yxSXCM514P!)HaM2fVL>XI~KY5AVQ5*RsFrhR>ELP-YJI1{ReGE-$%tO#h+WX zp5IhlS!a8(sJqMy)Q~3Jm@ZNFvO`* z_<4O$!-o(qbY07JhW%r6ajEEH$)BU6oE#kA-V#6m)JYMxnacw=vvg(AnXG)=t9E1WzUIFhOnAjsqZqSN2=J1L}VvNd%SDKNAow6_89fY%#vCo$(b zaNp`5f}J&v`a(=4tiF>@y;x81}8uS~RFJf9iI zR~;3bOMbKjvBmk~r|5056=I_^qtj9=Kwag+EOkrO$Ox-pi;|mqMRHyv14OK>V9@W@6t-I*A>^~&tc42!dgu` zml!;X6V*xFy~yuGAc@0@@1Z9Wr?!`8{2bO2`H0jEh6mj$D%12y(nFxubyhxLNj2mh zWxXDVRvz(q##(=RMIF1p6GLig>i^Mb!>2q)$XJ&m3+~O3^97Y_BDoUr^-Jp;6C1BrauN!kz#H)fercyC3K^)= zYq6XgM@=K#x~j34cLf*qHz%)r7RzhIL6bh&g) zT(x|J<974+T5o{WR{o#W7G-3K0wiZs0c=kChkme7T~V>RNCiKq7lE7MaN&x`!uvwI zueEuJ)*PzStHUv4=k^s2$3UB#P68W`)zP4j-I~mHZ>wFO?bqF&zM6|Yo^pdQ_)C~! zfncqdw<*odowL!=3A!)zc?{U)!%JraZ@Q>`+^dJL-?$18`wmdF5GXrGgDj8s2Tol% zVgv=VZ%Y4rF+*{OqCT*TbE-?VSXjK)2T&4e)$mv?%L{j|;6Jl+|Jis8gEC7LDU}L< zQreFjsXwNad3}{>EM50)bh^;Rf)T^3u3h(yOb3mYWT#^Pj~<4G*no=@Lk@IajtBgX zG5Sv*p!<+bLLaVhE`y9~k+~(7h^QRn7~~afXz&&Vp^P0Ei`-YKP991=&9XFo$r;d` z0&`O@9~;})Ex2C}ho_6dCVDrg>bd0Pv}0n)x%9yN;~V4jkW_VV$0Q?hF}40vKNYx3 z9q7Ld;eW}z)UZMby+Y&_tpsri>fKkbgiJ}OC!BQAV0{}I!0}45i0kBw+eSP(joEx91gfpXo+*KOHt&W`F(%(=} zJJ%A);6dp_&bIiUGwZd?_FGXc`1zk*=<~|-mp87i`h~0El(^c=C>MULvIaF@)1q-b zaOpO_1_n?1a}o2$fbA4gQG4X;1fV%u=7brkUn5|@CCji=TZkPBX)_^1fv~6K7x%Bc zlLEiI8~6n%dMl({Qe_d0*36iGz8`XW&|&v=M746RKW(!@0~aMfgKW_1i=h2*4_)oA z9V!0ka_DQ|f_8*RKHtaOph*8+qKuhy<4#eTX>zl#qHp6)(mSAA+7(DIH51-Re#2}e z{IUL3k@4nsHXkQt(W5KenKWz;m=B-bizyDrN-=9GIwG!~r+b+q{&*t-bm(wg%D@QB z=N65`PhA`(pJJCn)Xl)~)2#&h-qm)zn7T=`$yU%Qsno{Lyd=_FwKdO;7)^)Y-qHMY8wj5j*fyyGa zWz)kOA?{lX|Hq1O3_e607j~q8X1i`Wd!0}D9mPWk3UR zfGL2hIB>UzpzBMp<%>_k(3A6Z>xbr(LG?4^w|d1E*wLq9_sc7P+8p*+xS{dRSJD zsMtii-+E1+6k;~Xg%Zq86xX$5CXbK9nKt)=y0 zDM+T4TwDOJz~3-Za^L!l7`<;U(~8S6_vvgkI`!`y5T0u8R%t%Ejkm}z&MiJI{GpFY zTO8!X=V2>a4kbgbz_2MT2aR?xVPJrz6iy;#u|9jnJ@i!F)H$z}VJQk#<`(H);}BjrfYhVIkk zEoepg2p=(~^o4spi~x}Yh_GAUtE}3r&JUtB*{wuMaWv`r9J+U8P+-43%)n+&*VN3C zg=nG=<>R0^H(X?w(a$?MAnF*)C^HXz83+eg94fGt|7+Yk3o!<;{0TkvQsSUKLy!Cy z#*9%~%F?$3XsHQ<;D~+G@{BW&6ZV{v-U%Ci{W^;VeMeDpl`79@Vbia0@Lb)B^#D%8S`}L4+pPrA4%yO> zbL*eaV|gZfUS+ni-eiOs>faYFA*dt@m|rb(AJW3-Vue`?4lUwi%3+y-(Qm4>L$XZ^ zT)^sUh_yG&~N7G7dL; z1rY)D@?ax651S5}G}g)23=n;xd8y@NAz_C_$SrO@WJ-jFYErUA+KQauar|{ASq-r) z$G9hzlbj#p1kttOZ*LDllNO`^yZBowKggHf|JVLv)OY>0A+USpCU>)1CI55?lJyaE zZ0zMdKE-RrC7*9KSMv(y^pR&VB(9l%t>1KFu@tXpN6^rV*X7BJT?}_LotCZ>oUjL% zjNa^Dy3g+P`yHyh^Un8G`aq`1qaII~8eNNSJYwbH;YOtvIFb&5B1%i{_zm5g?**hu z`$AMizJ_tJZMpQuPqvDRA|DzqJN)OO1@BBSe#(~_U4rlk?PmhViEx(3%7I5Ax5-$b z%2hY{GuyqtM!sRf^==a+_wh0trcDWxry^BnN%kkz{Fo8HcmEF&xUC_?Y4=_$>!^~q4|_!$4Cd9ObGM}KY+Qzkv2hmwPpTRVOIX#)KC$v&fltEhHKy;i-? zU?OROAOIA}Or~Yg=`n>NH~C6^Szywd%GJ>v)Tli7av0+WD&Zh&76VR!0{)J5cEf5v z$u8DYjpxrJ%FP_*ViP^l-#fYI>)`|=%;pEj6zD8a@2s5#g$`PQe9Ep{^Wy9vNCYmw zf|+}*RB-0z=9TZljTL7+7Sg!nPJTzBxgKWaXUo$kC$l$Hsjxn`vfe6F6`Pl0dEWZY z_@qeBvWe)e!m5D{6_2(_fY)4}b9;bCt13hfe_87Lb%;^++bOMh;IE|qk*`}N-k6td zLfy39<|E%Y(sn(A)CrAaAs!F>!=~Ieqsj2eSNt|@8?nkL%)FxCEQ?OmEhMWLm-%zT z092${^cGr2i5#2)Px`3zTyo-gScZJ zl|=KWT_1^P$OOc+@hBVn)v-2wb1GJwP%;N8fK?TnAvho~|DDbydO$tI`|? zz&>n<2W@)VDyxC)xsHy=C6}IxBg=F_)}GuVFiGs-WNcz+`}dYAX+#Xa5!^xQSFb+G zPIlnnfGSq+En^({CnZ19;&U2~Z1(q5x$vIoJLC(eq}_)2Jq~s2{{CFjQlY=WJq9WL z`i;8v5#dmbTglu*^TQ-R?qlX5xYaZp5G+yFZ`7u^ob0=9Uf3O7R`-zpU1c4I#vdz$ zw7I08))w@>NxF5}{0DBO_`5X%8h5mjUrHnao+B##ME{=Wi6lev@voMEN|6^FTy)bj zJfPldQ&IG(X4(J6gy^L2sk@1Og!DtAWUlqO(?(X<`QL&8^&|6bE%IiRVr%BM0iP^ciL3bTrw^+S)hFEAs;7Gg_ z4KZ@-IOxizQx`rKQds@;%!LzJsgyjBY-xqd72ZJFmFB3sTVjbcL;|@WB|5AxXQc7C zHj+9~#PB)t7RV{iLgfE0_>H#miHJRe3(kMs)y$Yhb!9iR1l!+c$O?GKkc#xh#Z?=h zZ<{sjUD_X5?~cbf({Z~2*FHU`NZ;w?$!I_}w)wOhJ@$GbmDFEkIsZ#O&a=TTICuxk zdGF^Ld3`GJ1#ve32v)mOw?pOHk~%bS8%T8`A;c5T(d?`R%9;d)BeBytK! z5qAJbDh|$S+fk;fNubRc$yr#W#eTsc4MQ6^wJE%wRuHX?<6rMrNP%-g%*Jdopu7D4 zyY~^G?>UZ`gt1Yx4(f=EioKHND=&M3rzZBNpASe)ZNDjA7xP)1ko1&!vaN z(VSBi|1Cl(yMj#d8ATq|=g%InN0=lA1{@J4Ryu%L=*Lr^;Fy(1v#sha6;FqwlOZsa ze!Roa`|BDB7Kb;*XB$D@#xjU>?2L0>CL>-`7MgFrrs?Y{Aj7Ya=6^(nTPB^htIV~! z08_x!-Ej`X@zGojcF@qH?eyYkK+KYM33tJwn}@l z-YHJ#6QmTq1<@-pO-J(sqWx(s5ZQ5Q*X{-Omsj9}0QGM+{h&;dlk=_}?T|hJ@!lEy z03%z&;fnd(AQ0Vhg;10W%nSM+j*7Xr%bGTHcpuO3cE;LE~8z;S1vdxwjJrdm?9WccI=*h6Q0uVc_To+sGSOj-lU?O#)@K61L(G<1U)bTE% zze>W(0Kd`oow+jcoA`>%-rWOmH!raEuVviEYZHK~0{wZJ-pjdBalaceglCG9v3(e& z8X&Jx26yW=EfIM*Zbq0!q@BplhcCQZul6R9i%YuRK*a&m;w(+u=VRsBpLKb8c~@iI zeCfEpV$^BoZhh&sDo2Ce6rfW1IsqQ_8UTG8moJ0paE4(5vy3s*q==OmCofnsl>p`( zy1YUy$@^W~m-+XU4$nK|NUm%aUw=PV|CkTqD~lH49UbK-N)7JX7|Ty6AwDWp+1&K9 zxg1#FG-+8lS#(#faP=|DcRxhPpgP9fYgfi=x_oGE>tTT1Jr}55F5)9et*iP-+Q%`p z%yS4~V;0HJs`K|@u;yswRS^0g5ZfcB+jaTP`I*~9pQ#$Lwx|`gn5;#EySJ|^g{#bc z^Oj9grt5g zv#6}Ct^A9K#du>hggVKVtCcB%O!MnCfWU{cgNW>T;XOE+u^@T+AY|Cf=GYr_|J>nU ztO&?OoDZvD8|nv@pv#7tsdu!1Izv)u-bM1ICxJ({x$rR(Rc49|R)4vl!F@2RGFclUsya@@4Y|?r*Lrga`3Ce-JmxSSl)^F7@4iEM?ks z>89tEr4sA|m%%%CE|XO?!Gfz)W7llgT7;ynyO`IACcu9WA-b(g#Vs1hkqNt7Se{v; z&zr}aRi?`zOk?vDJMA?6K$}HPok=^JM$FGw2u zfZ9+hQ}x4j#>5iJ4cT+TGZL{W_qDL0FT)5f{xvIi1Lo*^1CQ>@sL%+*(WxAS-pZd> zey|vFvOg)qW#%qD7);7Y6HLRbtaUz{u@>^L_Uh}uK+vBFddy;{g4#+|?&z>-OIov) z9&bv8e^gh?%KL1R*WT_}@xZhxI2f>w43@LzU+vRgR*L{nIyFd35&Q3*{C~HCDmI#f zrFpSE!Kdm_;xl5QDu+!c`9{R|+(Y1z^#kma_gfqH7Ya-r3-P}DS902S1H7^|QmCzn zOSacef3-s#$1Ml%`g@S9*TA~Gp1i+|m!X`1bW{51R9I)KJ6XPqfy@@XAy)ta=7M|+Pqg;nw5qVX6o;%9z}DWzti07uyRY6WHo78WIN^;M^PTj2ip}pO zPFQ_1u6mZ{x1#Aq`ZO)f#)1EUIBDH({Cu158C8QTt`?}C6a~z_?9`Y5hcKjaNWHZp zc`@k(T#pTF2lK;UC9BLYUlWU-V`3Sqob=MZ=eH+h_a(PHv5{{gU=D5AK6$e3;bl*J zRAM`B0y@}@+LXsJq}fCNel~NbJ04H<5ZrVAP5V;5T?L3dclwD2))TpA3WYwSmvzcd zIqjaxSy}U$ryJHc;*Otq6I;76pX|O`dv@w}Uqv5#1RUsj0doM!S;~g^!n7TQ!+HBv zr2b*hcu)Fa3Xmt14z_f7SR~#>beRj36z*))8Mnf}O;6!UF0y(dyt<%;G_I))4#8u> zFN+)sCT-VowDa?LXMev)zwYh!6)X}`*kIBQfv^j47~k_;rGmi{IBx!i?;9Nq{yMA9 zBL7_+AOGF*ard>N;$Uz!# zi>#aQec9D8^W(gTG+EP=z3u?|-(8xTqES0&oeYN?Gt_5!NLWwL4h^H(LgMX5-|NW; zvQ}8n4nPc@sS~cyOryK75bO3PnbL2TKarZjnL0_hucB>!o8jy%?M8Go7bDY>d6p9C zO6vSV#|}5%BdeXzsD6WCE|7&f4dc!bi8CzE6TICmlO*Zgk=KW7D@$@R3R;reA{@O|bK&;R(Vv!#UC00aM%q~{CLO1rbX?uR$D3Cu zaSPP03QH~%yYZv3T*Kj7wex+G`0^tEWW^3;{!Vg?`0#x`Huiw>B z0Q2MVe~8|0ptL46whJ1Dgexr?@*G)TmoFrr{c-+3*IB^3O&S^*d=(p$=DAG+{Gfc0 z00~A63rmLW8XIQj5I(NgvI$1rW$C`oEU>Pb_&gIN(sacxVlE5&hN0@q%jLoxye4Lz z$2T6GjC|3VC!@YYnK<0$A+w!Xm!?qppl}f^ggKd^+L0+%rnS3cL6vec-jUb6rj^Jp zwr8RMINv@eeulf8?swa$L$muG3eY9tuBwEN=;X_k$Qx=^YX&KMpp6BV|9YR4YgV`9 z9>qZD!;2Qa^4A^KDh?>$6>`2EyUf4(lqTp}bDg--RVVMob3T&8rVOp`zN5Uzgr%f< zi9I}Q=)}o#%PqP4gvM+~PMAl;frRk$I1Np;GPD4%qUrTzA9BIDuM4ddN zEK2vefZ_Xf!?WJ>o1o0pn)+Vvq7LwAcHBtF4o#EvTfXD2$ne)qNKku+eOmH%e4lmnlk>7RR^b1QdtL{hQx6Jf#d zeNFGhMD^2Wf^wq(HFJE){g1F0fssJrYFf&nc>=n8siC|{`44L)5V_Vb7TT8wFplR= z0LBd${8xY&oV#N7{NQ{Bnw4*nW^trolMLy^Q{>nkdDgW82cQDmlMA#INzR z*7}-jxxvhiWP^CLmtZdK%WM|tYr=&mt~X|<{=txG`VWQloWA8tTzTs-E@XWj*R^=x z@QQOS+a;8?#uc0tti`3B4Nh5og(%hV9?tV{t7AzofLo5FV#b8Kyc|fR|DppVksR;B z)p#I<`hw+f`bsf;c>mljA;-Ae3-hC_C%zJOpR-L=tJD?VTCDWfU_@B@KqWHQ5T-s24ez`jMk&Ge7v$k^G-O2$cbV#05u7H3c zDrxuCr27q&ih)9Ee}x#`H+LDBgrGKl+mXZY`meQf7UJZ4O+@;Gysot$J1gbAPWH$n zlTKgdHXkL6sSA`I9a0pt7M8D`BO}7Xg@%cPmu!MMj<7c}PR|+Bii#zljlJ|M_e_oC zc)m+8hDXz%JTl*s!c1xvClbZ1DhqmNQObXe!q=l>hzJIUbYX?=6xr=ik`+8b=sBl_ z5bUSs%VkElg1oqh4hJ3xrbxSc&X%ZRs`SaLfRAXdtNR=z6sWkL*4d5AfCaLUC4dqe zF87h|n`lFbe+%&}RLeAboG(!3hrp53zYiG==6+DM^eyx~<(Hx0ruWqH*o=(##H0*< zF?s93zP;&<9~7S+Bn1+eBlRd*hH_P(xOPqsT3+8pc1_dk0>#x6SEcoyfJg?Npp_?; zETBd$tAbsO5uK6R%9TTzJH2;>Wz176>qrW28Kgusp0|5xR~(gHdYg3?+Y-#7tNV;w zRIT>iyso9l+eymb>XZ_c19D0JT zNfl~ZR}LFn8r4DD;!jg1#bq;zBQE3hA<)O+*v9(ENzSXQ*>VmxJT)Bt1h>67fqq2D#+HR=sDuLJrPq~w=j?~r^A zWRq#K3fY`FZxYv(Y24!*)*6pB8@PUF#0kWT=V+Bq+9q$^b?40p8B*K1*HBYbbA-6F z=6vACbeh#;#cuga3L+kV??CAS#bM9cBaDv+1kAobY_&>hxv>*I(|HZ#m%=%{eD759 zU2U~^KU;K8!R2qoa01E`1923NWgC*jhxtU}zIAFw)Q~s=fjP(MupJE@G*#dUmQRUo-=j%I`=HJ%^ zRt1j#e1w|4hqQbsot_xZ^pt{aWCjTjom;j$T5DV*4VhLoEbSuB-uJExj7@HB4z#fh zSM_Hs9Oh9mdS@WCUJ|Y*^4qn}s~8En zSi^7~e&yV>RBPpRpGIF!g{6H5MBZu@O4X;}^E(bfRmearzrsPKP=Q z^sC(&MXAlv!#hLmtD~4HD1R0G9RsbUuRVyI;6g(hCZod325{amN^ zk-U5MAFX+DGk@K#6xlaprtkzKaxY&pc+F8HRl12{o*V9aL-F*gA>Fx0UAj5Z zZvB+4=Ef$yj2$Ddc%Yy8mmcSOmwD#d_$nI)fNCx#6u=L^&Gw0m)JZ#gM8-5o#1Uzw z(3o}Gv0(lit?26I(p<*7M+mEuApa@*ZEKV^jnLs;U0eQ+z!4L=tqq02@12N0=jlQ# zArt4q$wn`e)v2kQiEg&e0_P7|XsE49oz(!#U=qJhNs)GlU1}QR9Y`$oj8DqhX1+(Y z{4FX;QlSK;zrQFk7j!Z!y(N;$CQ6)L-9*7VTQLjktD%w>$6x({(w32I++)gkic1#y zEdR!(x21H8f03(inAuA*3rAuBH;w64MIZ()^Utn<)H?v3xqtWTA)Im*z4Xe3G;zq(u~##}=3LY*x3aOdvQTQ6_?*std+Q>KaL2_dBIJYIhM`e7oE<;L@ zvRcQ;C^vA+tzO=_Shr#)b%jg+Bs?OHOsD7DF@*+zQ&p*+X!NWwW-DD3@)Jw2N%-vU z`n1_040T^AI3PpV*cL(@p^-z~W}tfeR=k9E->~0V_Y?9s0dzBP zDru=kq?Viqb!kAF8#-tu%Q*duE*lHCdz`IqSSV)9=GL$hCGt!lXfvL#xa6M*iIBP( zkHu}v)i4|n57g`@g`v~eVc!Oc(A%gcq;5RVRS!0=o?91=h@rtB@6gQ)!tbk+&tp#b z;)41wl~^CYI^$cqs(;*N1TCRTP2GKq)GNv>?yfi)h^Lb?E{eIo{jhtvvb?OU4QpCs z{XLSY1ml+jx}L@U>f|SV>oR3B461xzS6*3}9B~x}gJl(H+LZa#98)+S`+yQy?9D_I z8GYmRF;#vFXH+PJyggX>Jc_QNX>>x|XFyTh&>fXr${bo98SDym{yM+orDj%>JK4ip zP~DI^=^e5QckKJPYPAH~Ypp%`{Aerag74zniA%+VJJDP}aSAueT7!)~Jwq_B>LWSc z0Mfo^=u7AStMuBs>~FUNUf%!FJxC1y#l_%}&-J@T;ZHkrk^d5f<%n;nmx5Q{nU3VA zX!T04ICgX$5;UJv`JZnBF~?`UA(?;P?H%nmFWr#e?1P>4X#OAN)*k_iCm~{zd1O}= z{G~sgZfiF_mNIyU0n>1*yr|q8p^;YgS4r@dNHHIcPqq|1Oy4wX+<#U#{&Ig>NvU`u YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.en.png deleted file mode 100644 index 12cb8442c5f68c3030ce4112aaae370b839bef1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3132 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 _I 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

      H4J1$OST)I&8P34}J=V>j+h)iz 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 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png deleted file mode 100644 index 1454f02b49f34cce7b6cd8a93a4401025dd388fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115615 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 L*qxGFkAwdQvv)d> diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png deleted file mode 100644 index 5430cc882d6f13b376f8cca1664488371934fcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43182 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 YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png deleted file mode 100644 index 12cb8442c5f68c3030ce4112aaae370b839bef1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3132 zcmV-C48!w@P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D3(-kLK~#8N?VVeQ zT~`^$^P*7nC73>hHdv9o6e0vgiPD!MR7I;5D-o#=5vJ6KR*`}T(oic55js@kEg_)L zs3{i0fP-jji73=2bIaT_nfv6-EoO{u;@$DT*Z1wUzrFX`=bV}BeR4AM|8YpxS?gPC zeQTfn|DUz@IWx0sgAhU*L8l;uG=@$=2x&~fDSC$1n|x>oLdbT9PC*E144r}y(il1g zA*3;M3PMO@8al=DOWnVF?k6ulclwQAyuO-lqEisEQ>fzj>*eSYy{*Aj2K7X=b9O0EO9(?Be{j1&4Q|BO``sEoq1tB|$pi|60``LRA zzbJPlR$u-&(Q0S@4x@?vvdkVb`U|Q=>E*ECpy&^CXRjc;rn(! z@bM!*{gKwJpZwPQ4}EunPC>}dp};8)JbyCwh3M(Q7fvNl*H0b&(EUgIP|yy9knK*; zDSrLAw}1INdXoZ=tW*5p>-!%(K97QSAcSmpf=;p8`Pe%jJU$&;L)t0&e|vcMN1uK* zDr*Nq$aW{_6ze@b$KSW_iTKk{>lD+SkKJ?kS6=CMPqjnS{EraQ9;haprobtN*3X=J za__!Jo;p1if8?>=eeU;9ed0ZPA37C(dfM12G^s}Xmk?47sVv8ws3OvsK=2xHp zz@E3gWADB9?Z0>5p1XE`_hvshhHzA~YRBr~=q(ikDqe@QGgi{nhw1YvXa%dI~NlvqN z{EHCMT2y-uk)-O=p}KXbo(*L>g-+to$HgF34?;-wsNNhRLy@G&Q?**xEGlsd znN^aIgd{mhRC9Oyoe)wzsyBzoP$Vhx6sd}ARm06V#n#Z_b2cFfd4rI=Z^qn+d5aKI zHma^0H&kyoZ;Aj#jMgtiup(Yna@s6Pb_$tEW)+)o{uSATHwfe{%XriAH$q62h|olI z-ZjK8M4m-vq1two;}kM3kZG(iED^oK$7qaZx$_e3cI1OHX-{6WGU`|Wh^Z%)oQgX zjzz};A*4J+Rw6NI4T=-{fB<0`vde&9c(cfCD@4?)@DiQE*^oMgzwVHW4rGIzG?Wn1 z9^h>oejyhlkgAwPW?P}5r8tGNp74eOHh~=uYyuvp(S(rp0DBE=F|gB@okjg^MI}z* zHxzQ+fmD!?MiWBXgX!sMT%L$o;2j-;&D^aJX-jbVPLbbGV3UJuB#kD7v9G#eCeA5_J=8GoQ)aHkbT21Gqhby6=^Vy;hOwSJ$x6~UU z;tq9+d^s+JUik>rC$(k-6qWQiLbf#~nkD~oBsJ*gp4icXWn1Zcxss9(vwbBzrA|*W zTB=JDssZ`62*DKv4`UQ*KwPHA%ce;hbhoPrmQ#uO=7iuXq^P9F5wfi@(Jbi%(>3Vl zp4icXWn1Zcxss9(vwbBzcQWMDOZBot6^!6$$E%Oc+|dlKS?$~lvJD|^C@Xe_~;a^8N>^=0m&g(d-jb{ zl@F6b{nn%^CK=x~O3{oKE=Rqz*7x#_!K`c<0f#y|l2_IaYflbaA9qfYlxovKKl_Mk zwKBCLEk$+tVN)O^8Flj%b;opmwqV&-MqnWK+y>-U;TxkWA0~zRtw~i(GQMk+q8Tk* zj(TaW@8uhVS=llI!Y4y8J*lumIMp~O6C5{f`;#FqE3Q3h(uTNKdW01H z{r&#?6#ko6t#Ar#S1?EZ+uSQFD~pSZ8om9oFXvW3|AJRG$gNICs-(pyLx4IX3=9m6 zkB`sI&B=E(Z_l^6;S_JV-%PRde(vMeP7b`^Y_2z*qMd2+$&jP&2!n%z6B85S6s`Wb z4{Ta6lU#uKo0@BDYqeTUqqjd>J~?Dly4k*Tigu>OCxfN&2p2D2ymaZ({QP|8C&ZxQ zRyYL=2~L42{jCc5_(P)!A??A?(2)ErDR%vMM~7hjO^Oydg}ng5wnA=IXfz?DJs24o znVOnfTwIjjPf@v30C5U$7IFb%w-rc5LkS`6f&3;L`@x63^Z?!_Kxs}PW)a+0h*QY7 zDzMub9Ua95Qh$H{g$oznaQvANQVk-p^XJb)ZoR#|eSLic0|U737#kad82#-`I7OYC z6rg0Mux4Sm74iv4tyY_zoxObd^7!~Tc0NcKmH`GGSO6iUEJRi!F#x#@4-Z3kc&o;4 z0y2b6K$8AfU(hU&6ZSbs4k^MikSl<35JIX$ zga*Y4Vi4F$;LZC@_cwvWChBY`K*>%4WF~7Cz+Z-VzYvhFfYb>g<)Z3}|Kd4-I{;`< zJOZjLvI(Htc9iB6K!?wnh4=+F7XX=wWe6}1LP*u9-rOHI2O>l0(R&0C*{X)qHUTPe z3LvurNh0GH08T~-X(g&X2gK-YLbYma0;sBE%5(~#lQ?v8hxH3V5+#JR4Aq`PB&qsz zsBRsqXG6(O0d%Su&B7tcSu|@xNR_DG45~?oYBffcoThxI5Ohw1CKW<+Cxn!ZYAl2* z)1c}NQI%5&I)5WHaY9JhsKy$hiY=yEr^uj55khV^s>!BlsZ$U_?oj9ygpfvTZ2TW8 W7fZn+M;v$n0000HDl@<@Mr$NQcMyg!KI+wVZqVc=i%Q{Ad_Z8Nsb`7P+SHp|2WK`5#CP38TYVw zA7XA^SYUk$ zVw$giK2q%pPx`xHV1k}$o9tYOGCZ{iOaR`>n)IfR9Jnbi9G`p{)otLt;R3bW6wYp<@#~(?h1VE}ER{lHnZ!`-w(hwKW zAV^98kQC*Qq!IgLUcl4{|9_NJn(>r+hZP&|d+povi%`OZrR@>t94*&X9H_Foxiht9m9$S?2*HdbTM}wYsdcm;G z$-qn5M~L@u#{Lx{#C+>KUDL5CD4Wly26`p z%i*aZcSyjq^;bHzJ9zx>tH6yNv8RRK1@1i={*^LBB;oNM;4^6%a&duDPi?^Ytsju7t&2%j#5eXsCRM*d<-{CIaB z(lfUsDMJM3L?!t6X5;dm(ABZO(yLSkpt>#x+U2ov%AsEJ7kQ6c#`Efx-f+L;(~Z}h zjRfwX{oL2wmgiK$XJWs*tmJDxKs!4`zy>&jAiA*Z{~mX*+f}vC`kshNU~fdf*YrjH zC--mDc#l`a^U{{P)nmUs{qx7(a6uJGp@+@a`7FTB_DV#)&V?tkO%ACMD2^ggc7zACaez-olv5<0wgvEA0AbY8`3 z?_K9TFA)1ZdZSQe`sm%C<#}GNoHO^3%Uuip>UNKfN}pf0%}qGzKFy1J^+ra&7x@ZW z-!uPT!d~*+Rg8aWp!<&o$Y$j+fIX7c|5ph`@g5hCD-PBC z>OS5Z*Qs}duUSEl=B8YC!9B0u#PTZ^VwgQQL+fiVWSq0l8*e84_H|bbOTdVqgWX@3 zTGNs~T4-3oOK7Yn;w%9|FoWb>B%wM@Zj5nKYl+|`wBJ3fPUWx zTHgI&%Zpn%6K$=bf7Wy8Q}%XTy~jSUy*>Zd>+|`m-wK1^gYN6uqM%mCON;~c(|MQg zz0?*IXi1Um^|c&B3I-v=NlSb;4?=rNuL|3u|~AMuLvx+(O@ zV5O{Z#imF3V55ird1CA1#tXY!&*`f{P#Y=ngVJ@(&sTeo+t~9e6f24c*z*xwbS#}s zh4%~}PnqkH%{GPvZ&w`bnr|KqgCGbTi3L!8_--)!=qj5-IDipd?Dunb?{?idtg#5*4!i%Ffdwy zt;tYd!V7Lc?Mc&I0lh-`D!|6LLx-N)dL1rd359MGe#6T@j96IT-|UQ^&{S| zgK4I5ve=-90=#&1U6q|k9^J?(= zT1Dg=1I<4<{qZ7#Ib5GoVEZ)W4ps=*huQQZR0zP@Pk*BM3!WTC^jwU25nb(UzBMcC zHO*Z`Cc4^(>=_Af#lJ7jdwKInAB$ntS&uC6IGI}&cmL(W?|HH3_u3x#%U!@N!_kwa z{{wf_!0T2a)hpm;6cQ7!VB;5X@3HsuUppLZUW;_(^4u_1UR@zy7p=Ck)*n_}hw6HW zq8ssE7jsO~;5*>~*M@mX`*M0d(W7i{c5i6G-*0*{%+8XHDAl>b_~|E)kWc?r1hu8y zSSc?cwd*FDzsAX4M9=R(Quoa?SR(_QO&{27m`_wfGizWcA0B${80^p6_IviFUUygW zI)`3Jx||Ge_ZQwiB2|5E`_Ex~l&?C;1Hq2IBW?+Z8uug|z2lW%{rVx8cm1b;L}xsS~| z6VgM1ZHEtwhkOIF5bI@*KwxKq13N46N@&aB>W}NrZ?eqO3$m^uh+gGuk7ACtXLXPiGWyeAD&nIHhn!A@-Bw5e*x-So@po# z2E>8}#LBr6*mAgQFc94a{4o(@79Ze^bOD#Vy2<@}6DIe$+t9A(%UB)iro)M=|3uII z>t{dn8==X~Q~lS7JO6W;+mREi9M)Ol-BbVl&h?EU;<_=YbtvG$5M^rjrypa_ALlRQ zzbr!T9hfqd-52c-hUXafAgWG!@NWv;S8iwyLIT0)qq$qt_w>VfXQB)5FsUc)x(@P} zFMr|^?C^=lpT`UA-66&QZVcGisr@)GMvC$(s8ABuy_e?KBQ5xZFJ#(dA=IAc!5(w& z^{GG8wZ}i^Byo9~&$Lu%^tAR{&F`!;sXFoOYz3vzXRN)fED$yAP~5E{N-2yaDV%FXHvH!({ln?#p4tc6@z(Lwuh1uLuWA zpUqzQNx;c4{&T0m)*WK}{YPU%sV5nOg{yRGlxXc-;Dt*$6J0(2<6jpAwkW%A&u8K4 zoVt#KxBc!DuwbOm1`7OU^l{FoosUe|=M72SFT-kVxHp#SE6Ug}ucSSBU@ z-R1t&c#Z8HYO`z(A>{EVm-0J)|LWz)r7n2g(eq345k9>rzCOPpKG*v`V#u(Gw%732 z5GZRK{rfE7HRtpL&U0xN&A%}11{B0hazC@OKSyQ{Jt=Oo`U?VYc-VIAZLaS&zfFkW zb(Y_+({ta~@XI%c4!iz;5|n33iD&xIrAya1k6j>P9Pe1a3w*ube3BNrEI{cz*Wao} zN?NNMo=wPjS&e&nb$;*n_)Ix32;?~F=p8W{HFjz6Px*jrGZ1*J-gx9H-$F^7bFhE{E`}50x$<*IN`XvJpfgb=d zo_J3KwQ0#+mz#!NAO8bMyboR>`cL2@@aA3t00Urk>Q<&#S#laZFv9RP+e+`(*j%8zpz!b zi}}Apbu*mbbu8Hb!B!@THUAFPX|)e(kJHk)LJK*!`!z2 zb9JFs~Da&B~otjb3a=1FmyZz zB@k80%#01bbagC+iVey-7_shnzG%CP;S7DSxPNwgHk=af$(v!(^DBV+9x za}kL7#x1CF%6>~IZCID`a`7ib<&E~?)>bK&{rv-;N`vSh3+kz|7u%3h)_YB)6@=P5 zuU9@xdN!W!{D*Rk3$%6EnyNi35cFPDsEj2K(ka`P;8Mi9nZ``JXt8L_XvGstv01IG zxEIpJCGF!F3=b21i_E#-B^OX_%R-mmqG(nqI-d2Wr}}d4X%`>6z#$=8%V~$g;?G(C zB65=JV8l8aF{OGBuKlecBAr4@A#+s5mXI>_NWBA0TyPSTb2{b#GXx{k#-N&9STZOv z>J9?^VsOMd9f0G^!kkQU46$v>GzJXkk_?Py-re_7#6-CCIZsmIZ=@K4M|z9Wt-dlM z=D#0?Pl!2sTfvMjH%=-RyoHt{F?v^u?`r~EO3pzsHKV=#sjVr(dw*wPxZ)GhGIyIe z^=?V9`LG*y*`Q2p5DqJ1*;L4P-61l4Y%!Df;{~t<9i1@Td7c6M?DAXzRet(U-4S{s z`g#U~o{qBhs`ZeX12DPB_gO?lksEf`SSMPOiU>{MCi{%UkCZ~ z_T8L*M;oV9p}4Rx!l(r(ocdth>Dl2jU;`&cDW-o!AeNfpL8AS8_=oHD5A9wIFX-wu z?GFS;8(3BWm{WlnsNKjIPj3X7Ajvp`S!%Z+t2k((AU_0ZHoP;#T`7FvY%%wBb}i`= z^Hf0_Nk=PS;pn+cTufE7`ZfBwZinuM^7>5A_d?21_YFKjg9}T2_#&_C|C0 zU+fJ3CWHTp&IDg4U;3xk~19kqqts-1IZfEyS}npN%oyS$jDF0;OIrw4V3AJLo@R3X&_6z(hHVqiz1%syL3d1=0NLs{mKOCYZ(baBXfN7>XqY++&c83wFOjXpnzVpyk zY;uWhTnHo2HeSjgK{!zSIu#g%f4(Q`j_UqhPBSdpWCkfG`6CP)3F%0|VuE%$bCF*< zPf^m_bS9|6fxzrf#)J}#r}!3ZpY~Q73POpU(RVUZiI({rAr?ooi4OQ=BI#7exHwv~ zQ((7c(`ZY$S@4rc#x>RzoHw8?TWV&eILnIS6vThRI1)S-y*9`#_u*bBOf@$Nl;Hdn$}Vj5C;6tjI?NQ!~{AwjV!?3$Hb06R629`QR-% ze`?Jt6l3G&gkMSNX7m=K+6=YtXbkJ5fLHYc| zc)Q?2`gP~6{+DiUm0A;KtAZY~7AdTX>*1Q|89puD8s}}c?`6$yyJ!=2t%&PN;U$0U zpJ;ocR~ZhR@vBvtPUhxy79mFP&4Z8GlEMcx!tLyAOio%hMotok(&wPD{+O1`2n9>C zszzu39PPUS&(FE5nTk;bdX{=Z;a=`1`3j7jGFA?9_5a zdng5kAfj(niQjiJZnl=Xtm6m?C{gk}0x`8Dhq0&POCnkC1k?>*fqh_ULGN;&GB!UD z9hJrHFJT`qus1{gNQr5v)3Cj!*c#af6Ugyv^m3n2?JgFpO3BK#Uvd z>qdhK`xKd8Rd(sdqw$^+yNlxY>}>R1QPq6%*vQp=r6Y}?0bB|8S=TCdrSy0!0zwV= zFnQuog`+T_YTqK7S`6&)=_3T$dghKgBPV;hN9znPW{(nlnS&l6$FmxS&1DHcs&2Q* zZMJ0pDd}}uF}vl!HPci$J?OjfyF5fR`PN=l=vJ01oWX1&wjtG=b_D@H9UfjT9NCg1 zkT=4BF8EMsu1;i1l$eg`S+VF^_duCv=T;nG45+m-iEw!5B*=f{VKaU}Xn_1gzl7z5 zb;w6}xu+t(J0qd=d?&gTP|>Pw+hxYxseMgj#53Wu5T#$v;o=~=NUNbXR+w0vwlPnOFGpIj-xibAZ-s8yAUEm&gY87&@JLU-GUp8TouzKV6MQXXL~ILoNw4#K`L zVc0GqT*u4obJJyod}SNGeARY$`=d%qx!8@QR}qRh!QZ5sywkYDMgV~|zY6t)hfCEd z@e3L{_sa8WsZ{u0vhe2JMHkuf)?2#Sw8)a>vgpH9v=OpovRM(RQ4_ddI$r7l<@Fdl z^3ST|D9ykoJ+xUj4hLcvv@&UYMCY=-top*ZX1}z!ffr;nsVI@43dY%72WQRBumQlY zorP1!GduKb{0FxKuupeit>f=`Y`9YCro{4XjIlwDr$Togr1#pivh%yM$2{eqaLDdF*M>_edfC55HG{YvxM|37%1w4xzvcMJbS`!h8D^YJUf%d}T`e6i6o~IG(uW~K6PDK0LneJt>_)p9j~eHU4W!#6C1BCMKp)dkXb`jvrpU% z^sMwla!gQCM6||1g_(BpBAl$%9TvY~D=D`q(TBstHS*AfdAC7z|3dnKqEVc5wd+1l zP}pzY1Z#2lev%h=mY5x6jH~F4?KI%-NNg6mQ*NlK4US<%wB4`e#!(PqA!n)4S=$OR zalI-3>+o&X*a1%F*GH4l930QWKbUlTWIB)&XVIb)o$w3HElJd}JT6UFpog^nx6(NB z&<`*(>XCOksn2Ip(g9{_iZt?!^1NVb`IXidytLTLqZxc&eHnD;RC}XH=s4{7Ygq)C zbctOIjRC{u378Kkh=bI z#VdkIwn2^}JP4zIwa)Jo3!PZGUOaE8=TVdhv!p9!dF)xtF;q#~H{aPo9&xWLHZru! zCm>tN(u;vTM!bsq+lN? za6CiK4=wjDWuuO@Df6xb*;mPWZAoVaj;?(Jfef^e&51Rz)@u1icgC?`LQy^nsX~m% z%kdGG7QNiah4g$L^(MK+eM{`fAD$SR&Qk1<(`pI*5*xntfHZc#08xEGeEpunf$zk4l zSNatw-TaW@IzDy%Vr<%uf7aV)by=)vV(R{q4@dI8Ax8NXPMdo&-@{`S#I=BUIz8=5u{tA45BRbe%q{Q zSOwYU02{xy-6wgBDHfv*CI^kBaE&Asd2z=zC~D$fJ6U)*HgTfhdf1QmR`pt|NDQ|~ z#mZ4-+UfTlsHlZ+d1X9Xky!3UJ9=THcnOhidv&@HrRv{;D#H%-zHAwnC=09+vFJvA zK64HF=oU>^sQ%>w&RJ)tejAUlLROb`?(kZ|GJUPq<*Wz;%o{y6<{%QU%)_pYPGc+n zja_y&QTfgcx!Dp0M3q1XA7`eI2}6yQdfYhgAIm`{(L)!dP*xfXpN1iIX0}a^zA6!E zu-qyf&e(=6q)=fbMXeQQbYj(2-H=tjZmvYGu#(JNI>~5{HZgureY2UQi|!C(_StH8 zqJkl3Sn-Q;2IH?sXXykCaP9m<{7IHB2!eOj7P%R8w4du%WpNl zWsk9H794#45~|Z=+@?sUqmSQ+V^($zvqkEv5!37|;q}d~9hR^e86sJ#U*sk+)Q@Lm z%>jx8YRUz-QliB7JCf(3vpvpi!FM{U_Ky|q@b{kYF?FaTP-LzuWgXhu^?u-=#biTh zr-HI1xf7#U$`ZBg^3rIpQh+{E38a< z9DC#55W>lJsP}owU`Kikk+cW{AU(0GDD+ENjS~-@sb&WaY++PxYLA$UEcNTO@z;oW z{@=6|*!D|I*>m>f&m|BYgetX3aqz- zhG1hAsn*Op(@xWlJs1h7`Fm9PWYPt)BU)eg%X$#13WGGc7+gzK^#d#1*!BH_Y1ua) z>fb?vya&Cim)W9~FQKMUGoNpYBqzR{goe1W!cZ6jXsXhMP6ySi2j>)*&IW@Uu0NW# zSm&+4mV%mBQ#)eyHnV}^<&0qA*D>@`KX8_XucA^zj$B}0atcay|FFp?;@J_LCeA>~ z{Rd;N_kDPiu=TOX3D=t(R=!`}@JFL)3lNaFzVA(Goh)s+1{OsjV;p&)_uaXqlk2Nv zHnTz6VpP!PsMn<kl|4I~sbmJw9bG>Js>`P? zNLhDe%CR5G>Z!#Wbg`~~lUKz_897Y|rF++4)6}%koFa>lFuQ2obxG+}XGD$A_|7P? z<|3i77CTMTWMxC*;T3X=W{5}LBz0Qin16`Nrb#LyLA6m2&Wq4uG(p6mu3a{t95-&J z`@1Zw2iZ;W21=*yL}_q`An&)?vyc|* zc|l%Gt!CoaBc5svoM}LsleEvq;9IMT-K|HJ=i94J=W3IzSm?>;A;OOY)3N%VxE^|ck%!t3s zQk|68`NZ;RE9z;#%%kr6bY%j&XT_rp3<{CM@Uq7~%1rryh32!u=;|~+p|hY>%66UY zA~&0|gQ)9e@&>x2YAD1AI=j+5tzADaBZl`U2iu5LVWn)(j0r1baw?!Dit1yfVwr1p zTztu&DLtr#pu*Izz5x|N@V*|Ni=E4Bo$#=L69sE4(s_C{qzrYL5?axr8=4JC8-!Rd z6j;xfpwNiXQDsjDjp^dsW!5{Sgjuh2R4s*gSWvivC#sU_ssPJ-i_IC(3_D74*52mP zjIG`i=oafC_ov*Vqh%w8T83aFf2xt(UxpOYlH^D}@fnffZSZ@?jP`E?I`;K|!$mw; zbU=kmC1g}c5W!ng%3)P@w8&@0k+fx55T!MvS?fb#%Q5DlAc{L#ruZJ042TQk>o~RU0}{ zjftxUEmtf;h$fr2YYJNn<+dMuS|z=#vuj3b3G?g=x~cnSQ>hgZlc``yz?5GJBjQDZ zJLP+Y#Dz5H;zY0+s)tUy1vo%TI?R0|aOk!%?#|4_eKG_miHwt;Ws@zHIYB!1lL{_3)u=LVMmxT(V$lxLGs4ey zBgu)M^|wAF3FxHsN+4kPqXvo-UY6$v9YL`I95g*l*yS4=J~}@!TToiw)Px0Km zNVeDoFP$!$14bTvy6zaR@Q$oZgQkF`)!dnXryLa7lJzMYt1j)QWY>u$-B>FR>Yn}; z+2X8};n$t;E8^A~16FKEz1GBE!tXCR(#h}Xp^=)kNW_VaAOKiT7Gr8Q){!o;ig6vR zuphpP*#Pym(ai=lcd<>0MR_&lceWtLduMjcV`nd8!k`jy%vp0&2h8@#8r~BLG1K1Qmu;*J5cf;K{wlP4b=@}7lKQgF~FBF~l0>mwjeA#4u ze+C9nw+0>w8#_1nd_9cG;r;L^oGfpQ3(j4LkIvJ1+v zRpc%I==dii%u~!Q1#nQUCmp%@R4iSm8$J7Ye9hkYh{dxGc^S3ggZXs+x+8AZQgQMq z#s$S9b*YE}wW2(~1z-BZR|Z0HQaUNcVa5b%05#r8w<*SlIzfWDpbp6Cf0OlU7=m*m zVN?2(9J-lx2!3M7T0a$b52yE<_i2<;r1F-UDJkCF`DtS!Z8*oNFft(XBd~pT*nC<> zp|v8-(V~PoQl8q*o(z45Ygi0mNep#DtKSQ*5ysJOLt^qfEe_0*m{oz&uBNoM6GrQ7E80ZzU2@-{v($l$CP>~S7 zi{fP6x6CSvw&q&mAVx_X^kd?(VPsNf$UCIu?3}taj8LSD+fV2|nvd>zi)kDvJ-z#z z>Df<$%|7d|LI>?>-!2)Gej|)UG|sVLKZu^kceBEX?>r>{ zx~ida9BEpEH0LWJ?Q4v)vUydYQW=x5P4|Qan}hn0oZ+dlMJxinYIAn;!8j|{hO<#8 zIMm#vqrRA%bvgi!MJ5e!EK0+bvfoXotuzOXAQd#J&V-R>awXaa#h$+ueKDQ=$g+i> zv}(|PDo3U|!j_5eDJasqLz@q;>#o#C-dVQLu-l2WaW62zMV;lO=%-He9%S^3o?f6q68t96|?GJ^jwJT)bZB%c%h@; zC7-}B_Rs(B{sC4jcp(?c>_T|LSQv)W=yWm(DjT?YjeqvGQMS>N^2uz&{S|PnvGx_= zFpp-LF$p0RK2tzU=Uz|5^=r8}^Z}UNL0ES(N7I+ga|{hAOIsqAYhzZLMF4`qUb?bN9NwFB*Ja zy7c5rah@IbX{2$^CVwJ5q4fPE^MplmVz{(y#LWA#)LPqJL}$jdbe@W73$ns_=5}sw zMTxI3WDQgUd z?*m1DN=!)ld)!2Zk6=~8?oH^CFnfF~Z|$%TopGt#-ZTh-N@3yO?|#FOkh29yoWvZc z8{SzJWGz)9|AosRe~8rd`XJ~)Gb+8IFl9Yxdh*3RXK}sk%adwg`>Ey)oq~CpuXgzYO1SYd5`XBF{V#w^GR=j7yLGC`qG+#lEXj<0Bn7H#tMEM%^OemJC4TvKiSY zcs(Aax^TE=Y$~9DkFR0_?SK)4ycJHuLUeFkygI?u5IA=?DXmlvXD*wSUF+RbWAkni zUay&Ugz8!jML!W1jzOKO)}_a)uoOa1;S_&;(5T5Ot-L%QAwg0Wp+IlnaS$oWwaKy_ zOXBEY=opHRNtGOSCv{kr@tvqjN!!eEdhD^qwEF(sC-u&$FF_0FO5XtXVmSeii6;xk z5K+ilY*9joNk`M0(&~WANJWw`R#Akt0cT{@g}8g!DR< zajR19>cxJR?R34&<6@5vqj^>IdHzwCik&ZiiQa`0z~;&3k_M6#ymrZMypzc|65GYs zMj4QB>HhRd@Hc$jll9tdZw;)G1lM=hEYB-0VoOk;FP*3vR+{GyuEB?uxCJkkGI*7o zD5eNS!gXeVSKf;u%XABRb0nX&G*Qv#@*UwS!?^(R2%!{4<#aK6F5Z-iTa3sGME2S$ z8)>D(qq#t5$qA}gY&F5cxF4UIWz<9$h;!=OMW65CaaUAW717aPPlX~ z`+@Z0;9`3?{p~>+f}aqEni)~6J5VZvwM@A!EB1i&Vgxp{yQ?Fk0{Al855uEu{v-}thsXG+}{8W z_)l(GK9#z=i^$Hfq*uKwx~m%e(cK#Ai397yJ>z2Hi)x8${%La7)g7_Sv`8z5P=% z86vo1&C?5aXGfSvx0*Y*!=fofq~Qp*?XdS-3i1jC_QypJ0#Op}L}?=*_`GcuJNXeu zBGr$qjcwi!Hukcn_jY`^JHu=?WVsQ62@*}pBIJ-J5^OinhbW=UttBme-;SULSsB@P zZDeb#BgL*j(D6Pq(f_=+Z{Qtg0}N1={@&E?Be6iQT>E1-DHcYFD~l&t_fNsC5l1d? zPw4o|;@JXkR>Ubp$pxfpEW?7+=L9JDCyh1v(sE?Pfb4gfgvmE??A6JoC%8xqRaE0} zI?>O~YIczoIv4VX>c(TgBIno%Nw~%Ta>AEL^!QFU+>E9y+qD6ZXBMH|(u>}H8)p)AiPUf)M3$x}3ma!>C^ElD zEA2IaDhVKpprbLiK2A#^L?>JZ$VW-$MEc8% zXw&Oz>M3f8=T{53!RlLb6qS-HlTiMMnBKcf#YZRXl3u7HFN-dmcC8#;MQI}i#c~vy z&O{@WG9yCly;9qO%8)Ekpp$Exv>AGE&a_Q@e_~tQSgj?I!?c0f6CEOb$nS_sqSHO) zgHRH$bz^at*$|%@{;>0x8)tZnpP62H6igbt>{UA!oqg^*Xn zZ~owCqiWAmd|_}o4NPZ$joLj}!a{h*MG((smpx%pqow+F{tZt!Q|n;F4`^A|m$0lf z=CNkC#_sPNjOkNCiPL<%hGyUF`dHCbzBHN9nhc|;9f%Y`=fJ~TvMa39&i(#bPo4=+ zkXn(oYPg2jMtU(QeLK+U<-O&6y5op;G;|iXq6lKAWgjKKWrQX&XbxdHt~f*yt*XIr zPB?l@Rw##*ow#OginyQ9*tbvE3$^Aop+5^{y(c1Q@Jr`n#4S|+NRQI~J!CX^Bo$*V zzeU@sG@R75(A0$5Ze4j*o<-_?tiaq1`9L1YyG^15_%J@z!s(iy2Z!7l0|R3KcS$zc zotb3q!X5CKfXJe7!>xiVk3lYB0W(`m#n_J}^AUX{yNQoAJkatoKhdmA4lz;#PLc&$ zJ!TOa?T(j)`^~aTi1ko@@bAnEr)%^ed8*HUIIgZnJ}fGH;l4E6S!kQWnHu@8ZL0L4 z%cW#uCCRS`b;hu*VZzUATpN3ME}I~W|9JJuR#(DtU++LW8{nJUS8$Kk!%L_Ud zsa5(Jdo94gn0{g>8w%)}P((|qA>%ed$6966aJE<`jIE0N=25EBBocld>?bx6}l=M6(X(}C@>8|ilfX7W}4NJDxr2@`+*N;hH%H7`MZLQ&Kb&oGYh26jc1~*yQ+ar z#-xN#e4Oe!SPG-`0{pse(N;-EMyBIq1rS-cP0m~Snb&pLhHR=*J5(TG-pyt1W5KZ6Q}^9cokz^W_=|K8asnk<+E&r-G2nRdWU@248SV5555H*$`|Qt(5JI#o%GKO5v+Q(%|F*um@HDaXmbKd5A!El$QCwt|Y+BB8dd zw@e}|Ole_gi0p6hcxNRt){gh}CB}yMg0}8E!+@7Nk|MI;auKWCXLgxf!6a5rV@Klx z6yB1V)tg8dNj2)>IIdYz^tAF2Qs^>f-n^{cDWXAyXBp`o3Lwh2tuhhm8xRSwT7(KF zN|`VxS9%pds@#k@Ac3kxgUdj}*^J=^c=Eo;@LQRQ%#3u=CF~T|Mv@Zs7V{Rp>Z>|; zb~O@>u_ovK{D5GCBn}P*Md41?q^_WwC34f3S+A0;;;g!y`%1_w`7YKT~QwNczW# zERFna5L8xXT;z>BUkA9vr?8$?vd_X_;sE$o)tS4@gVExWW*+qjc0GUD`pyMZWf!$1 zAE73ismKj1`?2P-Y0;mh{|GI__0HQ%4@Ue0QH5l)HEY|?u&I&Kgc}>g#TnQIoV1Rc ztO_#CRJ51Ew+P8y>g%m)_zB9m1JWkmM$jqS2|yDtA&AdyYo9UEO{))bjU2a-bY`Bd zG`UFsm(o_XL*&+UukC^f%dyh4im)>*sFFA}P@sfV4_r%r$ka5(foWtm`1^GsnM9kA zpkQh9G*YF*ja}lKyNdV#7 z;hZAwq(}8nEVgwy^)aN;zkSc5{S}kL5mnm#|83VV$GV6 zkk_70&RGi>*2P)VPh27Ug9D3y2&x$;zv)e}uL}oLT2Z>T;{K%!6jykP zQ+2>-r$pJ#!>F-qGzTxRl0=EC8k>c0euB@@E-mIaN}ev49XFxsxtO8fW6o82EiY^w z{v@lEC40@oWkUZ+S3o9Ty($&Ht#xT3T>Ut4!e$a?1+A9O7Z)~&SW`DLXe0C-#ZjwkdaW3<43oqjGkVmgV zUlq!Nw<+91EPLK$G8dWAe)98GC$I}%ko`urG zi~7!OJsPA{SC;|y8wDbY_D^3dTA!w!i>78HZ=6%$(dnHoHLT^ha_FckLOn7A*t0~d z1mPoBasIUF?hCuh$ka#`7|qWqr|>O!>ivcWokrTWC1S|zjcr|tS4W_`y2fjiS{}(F zy-$rJQV?P*V|zaz0QNXM94xUon>xnq(exy$fJtzso}(_jo2ZZ%@X}wS6BLW}6f;T^ zJO4JhgOXeF57^Am^u?q zv<;5Niwo)@LxK~@c!^zneZ!#Xkux}t9_J>Y$fS%UGAtb<;^NwHW%?XHR!0$5rjKwY z?rQ_IrBxT9u4e1az_&Nz-f*M&dxY%2$@Hnklq2Zm(0+C?FsX28o__q!A<*lCL)BNX zAQivlfY)qURHMq6#JHt_nnqkp0bb$Ju$8VO>dwp3GPA1bqlB5_79%^Ki$aZT|MqPg zYXb#f?}~Z@DK~C`A61u$HA@4>N{Iif*0gLXylCjM!qOuwXcgnIr-t$~JzC*K%o3Bs z6opV}Jy{MuESnfRUu%X@f|&(1l8Hw)Dk5=zeUB3BD$Edj0fSZgpi9yc3M9HpH=c8* znEcEO^>yq9ahf0KGr=Q{L0u_xR8Vl-KRS0G>19vDlnBBi`@@j#`ajH4HDz=eD}U7a z)`R@UVg#49SRp|wRk|7ys$m*tPdClbwdS@%JFx=-2i$}fCyLR;Wk-AfXir2JQSh$2 z%)IPutvoB9QYdNBRo@3^oN?tVULc9WP(w2UJFAE$$>`+|v`T)5Q$gX`2#%%8J(NUk z%CO{6^I=jlOGl{Sc0?mV-6pzpO#353+N^UQUz_2eGUs#{T{_Lrl15FnnhbR#iZ9`7 zdp>X9@}f0-1uCZeS~ie;2R114+iY>xsr^BNYsS5x-YlLh{^+0c@h;rTk`F6thdT@S zWdS^%*wTb$iWpO{^)md+s9AJcc>*r0A4J@WUB8ppZIM9p(ou*{eFjrR`b8y-D<oVtABIL064ovqg^8`PW4_$Wl@r& zl)CSYniAriR|uZYMHhNsLHViwJ25^bc(T zMHaku?=ouw>Vtm7ltg}eBkz#83gfu|oTo#Wb0aP5c7jY#b7~Eb2y`>XtI3rjhGbI% znq~{mhQGKB3?vj2{c~3FQhp#vgGqGTua4!NovMj9Ir`QaA_+hiXdAA8uL!RLH zAqBfFE4%*Wsx%9&>8+fpS_|zr_C8OBHxN`Uf3f7YVhoXCPiTIOh}tkY8TU$cA*6dj zQItIG-xw5@FmAJ7`7OmStvi+jlF@(#Pn_TTQ_gD4&lVS?(ZiNsnQ{rC^%5cp;ZY0( zRI0jCdXideO1PmitNUO$G)Su1{||d_6%<$0whIz8cnA&wg1fuByEN{>-3bsNKyY^t zZjA(Y2^!qpAwci|!Gg|i^8I!GGgUL^Tus$foqg9A-Mf12wbxqD`^ZZ%-1e2HR69fG zqsjDF0*J5AV>l1&>DIrrK)0z>TDVk|F+vwa#{8v$=>j5qUcL;-N39Zm_DPp5#L_A3tXiRk-_a9C&?qMJ>$?*#HikKBtSJVh`77} z>ziv_@1G~S?0&qsRV7x-c32j*VpBQb4S!K`}zv%+qMg>9jBatnO<3Yju7my~(kUqrajzF=nuv+al z&RG)oM^r9%&r*JsmEfG+sm*C;mKJ z2`}#RQHzB+B_R<5P(ex?n}~MsZf698;s0)BVDE~6hXZV1EE%d?_jo&UR(^J~4p5hC zW9z6ln}K$($CMdR$Ix%QwBUBt*cS52fHSpC2wTqyO~dAKlGr0aTTbZ*Kri!4&^xRWY-eCwS4Y09S_+r4 z8~*?)c&3f*E8WEs8+D&@^MS6&0#`cePrKok&=SxX2|2hSxYShg?vwT5G;$<0 zKU(Ze!?L*JkkH~kaA`wlbjqp1B)V|`W&0@!kYdF3#qeI**J&LWvmc#8X0?XkXr&4c z+r+rR@Hk6d?=OXSddV(TyH!Z{WL%o_fY3-n=tW=Ix;W`Z2wmo3tH6TWSD9HHd{aU` z7Fkw^D4%msCPLD>Rj-QjG|B0;+1x*U#YCTZ??(jEkfN`lF?=$^u(P>X)Xz*-1MeGy zQ7`v!t_KnYQW7x9Vj&Wg-DR7Gw+nWMC^--43l%mTlMWxENXh?GHbxK0dO!_47INoo z-!?Q~WHy+zT65Eq%wUQz*q2Jv+s|7%`XT}ppw5~T{CuyFv^sYbwF?S#*v+|6C)XiUu9KLO1;r+8dK5(BCBM_!dT@LZk_R>y!xT}1T{bM#7m6RO$?$pm8O#SZP z^%QZ+6+-Lc&GHuI>0}G8KKa8RhV`%Z0$z>6%rr%&j=^4FrS(*+WIUojffdjG zfWeKXhZz_Vx(|vZYT0)yp3O%#BdSJCd$86} z31*u2?gSJ>TFW!+yHh=`mKe#TqNo3q2t%{18|Su&22g}RHAtgTg;WP=f!`(}|vt_MX}4Y2(@v2Uq6CNb5<)jxuxv{8ecP_0Wqt)AKxL z0$a?0-MC>EcQ{tm+j~T!KO`wyCbCP_mFWFS`jqC#*!ziOzpnuF%~*?bi~R|#R>Ua! z0}332R~2MDx&pUG16dyO0CY{jSm|zGH0^-Be3qQaV^=u|x}23Z0cwCMZ}bNExj3F*DrXaFd30kf^6?&s0U2H!G5%zcUzZJtIoPOjmsyjzfi+BAh0( zh@ep6$L4*|F<-v;wMqZm%c7tO937)I7b@DTFLa-sd`VR6FyS2AUQAmInf;MGL(gMx zo#US7@UYBc-(W~h_0e5L-DH15ra84{+8d8S4X`6L*l;Gg?}MfiPh)2kR)H!bi zvc|iu3f}BTnf}Nu8xYsXTVPr0UfMx9&=Qox7#)yJsi#nION|(@s@oppB_dDZn~gdw z+!v&~-dY5`1CY$c*$Wq#Fw!&aorT@}ZS_M1r_<^1zkwss>y2KNTr13Ss{NhI^nRwD zgJWHXd7DatRSsQO-uGGgI36LEshF{*m(g`#SA35rz972f%MdY@vx1#hjY0pl2+{?x z86m`eOpvz)>6wh(d2=Km%^gd01a0?GP;DI@hVK{C9ZR@Sj45V3lw8VQh36)qEElc@@h=RflB$4hrUW=+LwN!#7t6% z`1g0k$dSleXfmO$8=TP%^kW@4k|bcDuf~(>rp3ucs(n1>LDz0RvDj=(DAu7_Y#uwg zo5LK|;7RPS8*2G5V#L&AuH`k%b+qF*MO5672d@y!L}75$b8FS+#G*$n!3K~N ztmr`$z?xKnyLg);7rC4&2)ziOUS4O$#wf1Y-~fKj^p!|;l3-N))8M(d%*{1i*5;^w zx_2di!wA?ZSInLGcN&}Fc zT$G-^%D6WIz5LBM-aau{MW1RcZUED_cuoSWWjv!8=B$`3V0nmqwa5 zUV!!8+RR|_y=r2hR$RIRMWkioAF28FDozG}lTp&q$l~91k~<4BODX%taAN0;0Sz%R zT&x<2GtuH?)FKe8TsAbe?miOsaP8*NB=-4e#-P2XlMV5O>Km^E)IM>h#;<$zy!5pk z)En~nL4@@1poUnsgxwZ0_ndqJ)_27=hN&SqaOv!tViC=)bGziFnsqOWmDCI~`NRNZZt~R@_v(6t2P4O} z*15fD$&5xRCbbRaneE<^II8avh*jjAvu@uhh6s*oJww3KXh|0OE5>7v+%}a9EMi*t z>8k&+p(b1>R&bk85A{1hKx_ZA}0spG~|?s!M(iSq=xIuIxOCta54{bIJk(v$i|sfk`N;B z>2#d>S1pKJI0x;79rlXdnLa=kK01u(@dOfo`2~?^H12(3*@37~Oo!3vpH%4BvT+$C zCa9cwMt34QwI5R66|XVG>XavbI0!q~a>_hb>kR*}t1}7A-52R?Zi;~*L0v~t?jPwI zrHCnm~-TK}camt|{|Q&$+$ z;Vx0+qn9^v`yEAzlSgOYLt*2h{*np8sge|FI!-8|72IJ}8w%C^RHQIW68B<1FY5xF zmQRwU15U;(1id^g2No0s(2JGmR(J2``??cDqb+FnG?_w4t$lS%DYR|U2`NP~auDkI zi`iu6d=HeeI9y5tki2U;JsDkB;COj!S%BSJ&L}w2^psAgLE0QNJe}NNhh)35#|Z-y z>1Kdp{k|8&KdO!Mb~9?7Kq$zmC%VOXb;l%MN4K`1l5q!}srg#9<&r;{Mvwu~atUw5 za(NRoE2z-}h7~rNfGnmXF0*zSZ;0vpcE63S$cd@7rUu8jT(RcWGW}fjCt2Za4ea%uPk3<$f>sq2^IJu1zFS{^(iIK)53O-C&7Q89`^FHA{M4MKjfq zg=uiq8EQ!rKTgT!p5y$- zbWK)bhXW9B5G9&w)?m?e(xXW9|0jd-;*G4W;T;ff*gTA(bK?-46NeP9%?t5M^gs@$$>1*L!_zXOcgWw-&kuXfCe z<`xW#U8{3;>xi)*o5gCbkvXBVvz7N5rZ#KEZkkZ>e@j@u^)wnwF3Ysedkvb6ap*4o ztE?HoSxajMw=%8h0?!g%%=cb=94U>-+^rITeoT#Ws|@?fqHy9J|`8iGja+;3fQ zeN{;sp)htFQ`q%_dW^{+Ogb=#p2RzBLao8zl;Ry2%{1Xup^qKo8rGe2KO~t_MzejO zu9rpj(&O#Kne?De1GA88D^jFrNm$THyI`q%#Ckg4SO9!4J3n*GxXXtvLte7kGHaK& zFYx`FH*H~Xu2zT^5#!#wYFYz6xADtb!;&Wo z-@Yug+v+5tk5SapYCh46a4o18+VZh+8l`KUDzE8u?n5#`M;q&u20XHUB>>mXy1@Ylfaus3EV=%MqAV(eGv^=guA-xtOEzX zQ*ia+=Q)a)qW9x!2iSFsl)r-XG}|Y?R6nS_|AEE5PAMHn&)Y@EQ?vDJ7N6<$hux=U zmAYBzu(dcs@`?J(*Q)jNcfPMCx2ljjN>5*>=NeZw25VjdM&_`70JNfpGuA~a)f;8O z-t3quHe6p$kV*ie!0*b(wAQ66@H1%-WtbUNndZ3T)om=>evn)?+|C2Y`o}{U++JmC+o{GmVLB}KA3Nse9uoV<9?)eWmc|R5avCsr zIP=h4Oir2G%9d(fO;>tR?P@0%Mb>WfD2M-Q)$iWo@ievWUlREV4_kCDQpyykaMwN4 z!tLVwKZLW%jfsu4gXZ)Gn33sreIV91bQCkYWN_1~P>`W#s#}8N)#q}{g$?AZYf~-u z26Vf}P3cxJcexDHt959+)NW-@)b!?2 zjeugd;uEWZ6VkfOZX*M0Wp~wd$LmNA25pRt3T$8frx$0vyB3p0}W}FSJSL;svsfRqRZOzYtAZ56KEr z$*NpKs^NV~S*^;E0S9O!9le2xLmz!dt5X!Lliq+Bs5m_N7AUs#i5kMMkZO z5wX~xtnbT1{sky-e+qy+B>-G!}Vo;?N$jW+HiuA43pVHO7 zJoDIjX&{})$6idhF2OK0?frcH7Y$gCgP7rtM|Le1v0hq|Il!P zqr;CRP%zG8V*KDvZ-I{LnROOMvesZVBbbyfM9|zeOLXe+x>Lu#GtZL!d#xO_LBBr*cy>FSuKH3z6RuxfoK@|y(p znnm^@rO!Q)yxLwWt5EY^Vd|eF|4Kk`N9xil+yT=T8pyDtVEoVlUXMlC)0yjfMWOzc z?{7^6*gulvh&pSHv-Z2bNIOSDFbp49qTjBU242@2T{;(E*CEkyTgQ$`lJ}hF^+;L< zt$u}!WT2*|{&zu9RK6)QbWsI3_wLdBQJ}1h5*)%%I$MUcD>ek3wX%KLA@^sh(8I_+ zf+f22wd&FVG21bdu}vl}4;A`rojMlwWw6B^*7Q+eCi8_K5N5V!{#6;G=}bJ`>fFGR33s6y%+)!VchU&Hn(0IOG{`G^8fnV4pCW zhRFV>p_@62-6C9N$-I^7>GKgBwI=z0K57JdWr4@;3i;x1%AOu$?N48{^c@3 z=vBdcyS=tMc0h;Q0t0;82l8#+?`3FSUr+l0IWMHAiOWFNnU8?7R{{XS|Jhb8v&Zi8 z{m#o_2EBmnrvH=0^rBz>?^#R;V{=8Tfxj-mQA87n4j;uQjz{CDjfmT;L<>e>h}_8J zv#GGB7<@(>jdu3l?lRK<8p1o$|FO<$2rwOxEU+7yykI>a`tK1qrVM}`>TQ}n=(5_M zl&#JD;(S(Fic*yllY?+IOgho` zVd!*Wvb;OHpV3|HUx2Zon)M7)rbb1+xI-PwntR9fDGn1Io94@Ud}>_`hkFF`-7(s1 zLk8?|@NFnE-{Za5{C8UGEAm=vLn3=Ks%X`<^^$?u+QqN*Q(mk8k>vUmJ{5yjZP+Wc zG4E_Ze2K2Xd!_`zkk?mW)-fI(ufz9K|aNp!pH0t|3P!H3>n&s(?5};GIylMqM<8I(-{hrOVUxnFm^OGGvyN_KXl=3aj6X# zOkY{!1tL_T|1qY`)5gr-J0$PRj4NkY6A2Yx=@({`er*KIl&?pH+y+A3&(7hpHbb~C zM}c+QUeC@T(0EtfTwmX?wf!^0`OJ=uzLdUxI=L*TY* zF%W2N7iey{cd6)8)0&L7mOT2baCWZ+*hr|w#or_v{|>nIqTyoGBK;Lp;oEdc=5=W` zsL6;QpHXWQ{1>GG8)gaKfH5wp(Wf={d)9lczoy%8D(5q0<8?rC+fY#x-!^q})fElr z5xP0U^icaCkw({hEzw8ue{Lpj!8HT4sZ3scPm46WXx877+c91WIQ!+gD%KfC1)nsb zYU0xmUR?#}2quuU91GR|xOUJ^+M(G7WYEZK%xLfaXa-fHPgl!0YYr-iR`v(HsAkm< znP3L~XeL?L^r^kkLe6cT9k~G$e#M3PIpdTdD|1p@t1?F{=%-(lXYuKoYLsdKYRG_W zWCll`DIfbIfLMD-nZXWCF7en|D|h3jFvp4C zHM@K`7+tQR=Oc}l_qw8c4S5#kJ@l#!IzQx`qO)B!#C@+zHyB2Blj^$ z5%u%F!|g=N6=2E9`3mv)h}fAqER%biVwt{Gtru1}hI39xByD?%A>Pjvh^o(!yfQvq z)inWEr?mjHt8^*Qx6s|a`IvW;GiBQY)S8`7!q77fGHED$w5fl!hsolFqc*8nCv{`f z(F!YVf?JVr4?SPPkfn-K`l>v|{iH_+p9veQp-k2r)X~a&Sdn^#!naVHO0kQh=6?{W zkLi^Q{K@gWN?x>*BtEh_A|!>OWegqpbd1_a3MuO`BPcW%4A+71vSnzF?(r z>j0H&WSZ~;xg~Oirx=_3H_mPqCYubTxVP4(pEA&-P_tu~<5qdfOU+H?BTC&xi&|+g z)r3(M+M#SrPeWH>y>5YfDs^S!l@U<4g+UcD8XvS~oSvUfOQ|ra3un=6zm(yeq`A`0 zro^jHnCi9qmqQ)G5l@j%O@+Q)PQt#CS3U}|gVOH*QqgAEdts^ec5#_rGQqhuXevX8 zt3QE~tCl4?EQ3JpMCiVqp|OOOGp&nS>Z>)tbFkY{$EbZ(B>j!ED<<_gTe?n^Csuh4 zJk1J@iDQU=+o~vu^fbl4wm5Lej-#7d{vcJ?GSjoh}i1yIMlpb~F zqOHlT5HDiwI`C9uG=Z3Mm5++DKAIi*Tg9!@G1|17nwvU+R%Yi^))xnSMb)!Giz7>| zOx>RmetFDw?)O2xBg7wCRfeZv+b&2fvhGo;ma4ok-TC7V)0E{pv$=^rTGJ`dYB{{7 zv%}H70$9t{TFSt{bC2e#PtC>kg)hx^W_Ff2hbySzSkyBeh%lVL1>k005oa_TOjj8D zG8MAUG4|*y??ZdDy&71l9>|c6tj%jr=jt0%$#!{=CV$fWOYi93SK;XpxMN>@H4$ag zFUlKpk-w0q=OX{_7M+Jtb4+BTp_Y<4X{~xFI>6%Tqt8{cMiH9aipV3wY7w8I^OYuc{els`?aZB}R7pfQPp5(%9R|9h z7}-Bz?s~drD)WGM@ZqCI$5#!Hz0W;%mJpQ@)_NimE)cb^)s~#!D?0<3lT)Gvb&l6b zy#bn873mT`m6j)Pw}Hu+Kk*KS1V7Y?b&c#AY{(k$FIp%lXFcuB(dyz?C9~6PpnX?i zEz`GZGV199WKNYRMw}|&K7>7mK=Df9XamsnXLfwuNc(25n5ox?y!RP!Xb)57I=qeVxrNEN<82=m$CO|)pkGkxP62q zOX;{!+3wIWI3F2c2Wum7JIsqDNZ6~Lx~HhjnX;;o=LP0-AtItCAB=mjFWFJ5 _I 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

    H4J1$OST)I&8P34}J=V>j+h)iz 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014414.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..1454f02b49f34cce7b6cd8a93a4401025dd388fb GIT binary patch literal 115615 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 L*qxGFkAwdQvv)d> literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014426.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..5430cc882d6f13b376f8cca1664488371934fcd4 GIT binary patch literal 43182 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 YH(T&6PJq5d^)K+Hs-&femA44|KkmMAcmMzZ literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/WritePro/pict6014429.EN.png new file mode 100644 index 0000000000000000000000000000000000000000..12cb8442c5f68c3030ce4112aaae370b839bef1a GIT binary patch literal 3132 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 _I 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